Reinstalled charset conversion
This commit is contained in:
parent
f0c4ff4b68
commit
7b44c6839b
@ -79,16 +79,44 @@ extern int most_debug;
|
|||||||
int needputrfc(rfcmsg *, int);
|
int needputrfc(rfcmsg *, int);
|
||||||
|
|
||||||
|
|
||||||
|
char *getrfcchrs(int);
|
||||||
|
char *getrfcchrs(int val)
|
||||||
|
{
|
||||||
|
switch (val) {
|
||||||
|
case FTNC_NONE: return (char *)"iso-8859-1";
|
||||||
|
case FTNC_CP437: return (char *)"cp437";
|
||||||
|
case FTNC_CP850: return (char *)"cp850";
|
||||||
|
case FTNC_CP865: return (char *)"cp865";
|
||||||
|
case FTNC_CP866: return (char *)"cp866";
|
||||||
|
case FTNC_CP852: return (char *)"cp852";
|
||||||
|
case FTNC_CP895: return (char *)"cp895";
|
||||||
|
case FTNC_LATIN_1: return (char *)"iso-8859-1";
|
||||||
|
case FTNC_LATIN_2: return (char *)"iso-8859-2";
|
||||||
|
case FTNC_LATIN_5: return (char *)"iso-8859-5";
|
||||||
|
case FTNC_MAC: return (char *)"MAC 2";
|
||||||
|
case FTNC_KOI8_R: return (char *)"koi8-r";
|
||||||
|
case FTNC_CP936: return (char *)"hz-gb-2312";
|
||||||
|
default: return (char *)"iso-8859-1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int charwrite(char *, FILE *);
|
int charwrite(char *, FILE *);
|
||||||
int charwrite(char *s, FILE *fp)
|
int charwrite(char *s, FILE *fp)
|
||||||
{
|
{
|
||||||
|
char *o;
|
||||||
|
|
||||||
if ((strlen(s) >= 3) && (strncmp(s,"---",3) == 0) && (s[3] != '-')) {
|
if ((strlen(s) >= 3) && (strncmp(s,"---",3) == 0) && (s[3] != '-')) {
|
||||||
putc('-',fp);
|
putc('-',fp);
|
||||||
putc(' ',fp);
|
putc(' ',fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (*s) {
|
while (*s) {
|
||||||
putc(*s, fp);
|
o = s;
|
||||||
|
if (s[0] &0x080) {
|
||||||
|
o = charset_map_c(s[0], 0);
|
||||||
|
}
|
||||||
|
putc(*o, fp);
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -321,6 +349,12 @@ int rfc2ftn(FILE *fp, faddr *recipient)
|
|||||||
hdrsize += (fmsg->from->name)?strlen(fmsg->from->name):0;
|
hdrsize += (fmsg->from->name)?strlen(fmsg->from->name):0;
|
||||||
if (fmsg->to)
|
if (fmsg->to)
|
||||||
hdrsize += (fmsg->to->name)?strlen(fmsg->to->name):0;
|
hdrsize += (fmsg->to->name)?strlen(fmsg->to->name):0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Setup charset conversion
|
||||||
|
*/
|
||||||
|
charset_set_in_out(charset,getrfcchrs(msgs.Charset));
|
||||||
|
|
||||||
do {
|
do {
|
||||||
Syslog('m', "split loop, splitpart = %d", splitpart);
|
Syslog('m', "split loop, splitpart = %d", splitpart);
|
||||||
datasize = 0;
|
datasize = 0;
|
||||||
|
Reference in New Issue
Block a user