Fixed not found rfc charset from news articles
This commit is contained in:
parent
d457314ec2
commit
a29a2f7b09
14
ChangeLog
14
ChangeLog
@ -3,6 +3,20 @@ $Id$
|
|||||||
|
|
||||||
v0.91.7 07-Mar-2007
|
v0.91.7 07-Mar-2007
|
||||||
|
|
||||||
|
mbselib:
|
||||||
|
If find_rfc_charset doesn't find a valid characterset we log a
|
||||||
|
warning instead of an error.
|
||||||
|
|
||||||
|
mbfido:
|
||||||
|
In rfc2ftn if we cannot find the incoming charset from the
|
||||||
|
standard table we will fall back to the charset in the
|
||||||
|
Content-type: header and try to initialize iconv with that
|
||||||
|
value.
|
||||||
|
For debug help to me, the headers Content-Type and
|
||||||
|
Content-Transfer-Encoding are temporary stored in the fido
|
||||||
|
message as kludges.
|
||||||
|
|
||||||
|
|
||||||
v0.91.6 05-Mar-2007 - 07-Mar-2007
|
v0.91.6 05-Mar-2007 - 07-Mar-2007
|
||||||
|
|
||||||
upgrade:
|
upgrade:
|
||||||
|
@ -172,7 +172,7 @@ int find_rfc_charset(char *rfcname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (charmap[i].rfcname == NULL) {
|
if (charmap[i].rfcname == NULL) {
|
||||||
WriteError("find_rfc_charset(%s) not found", rfcname);
|
Syslog('!', "find_rfc_charset(%s) not found", rfcname);
|
||||||
return FTNC_ERROR;
|
return FTNC_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +248,6 @@ int rfc2ftn(FILE *fp, faddr *recipient)
|
|||||||
charset = xstrcpy((char *)"ISO-8859-1");
|
charset = xstrcpy((char *)"ISO-8859-1");
|
||||||
Syslog('m', "No charset, setting default to ISO-8859-1");
|
Syslog('m', "No charset, setting default to ISO-8859-1");
|
||||||
}
|
}
|
||||||
chars_in = find_rfc_charset(charset);
|
|
||||||
|
|
||||||
if ((p = hdr((char *)"Message-ID",msg))) {
|
if ((p = hdr((char *)"Message-ID",msg))) {
|
||||||
if (!removemsgid)
|
if (!removemsgid)
|
||||||
@ -332,14 +331,21 @@ int rfc2ftn(FILE *fp, faddr *recipient)
|
|||||||
if (fmsg->to)
|
if (fmsg->to)
|
||||||
hdrsize += (fmsg->to->name)?strlen(fmsg->to->name):0;
|
hdrsize += (fmsg->to->name)?strlen(fmsg->to->name):0;
|
||||||
|
|
||||||
|
chars_in = find_rfc_charset(charset);
|
||||||
chars_out = msgs.Charset;
|
chars_out = msgs.Charset;
|
||||||
Syslog('m', "rfc2ftn: chars_in=%d chars_out=%d", chars_in, chars_out);
|
if (chars_in == FTNC_ERROR) {
|
||||||
Syslog('m', "rfc2ftn: charset in: %s charset out: %s", get_ic_rfc(chars_in), get_ic_ftn(chars_out));
|
/*
|
||||||
|
* Not in standard tables, go ahead with the uppercase name
|
||||||
/*
|
* and see if iconv will take it. It doesn't really matter if
|
||||||
* Setup charset conversion
|
* we support the incoming rfc charset,
|
||||||
*/
|
*/
|
||||||
chartran_init(get_ic_rfc(chars_in), get_ic_ftn(chars_out), 'm');
|
tu(charset);
|
||||||
|
Syslog('m', "rfc2ftn: charset in: %s charset out: %s", charset, get_ic_ftn(chars_out));
|
||||||
|
chartran_init(charset, get_ic_ftn(chars_out), 'm');
|
||||||
|
} else {
|
||||||
|
Syslog('m', "rfc2ftn: charset in: %s charset out: %s", get_ic_rfc(chars_in), get_ic_ftn(chars_out));
|
||||||
|
chartran_init(get_ic_rfc(chars_in), get_ic_ftn(chars_out), 'm');
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
Syslog('m', "rfc2ftn: split loop, splitpart = %d", splitpart);
|
Syslog('m', "rfc2ftn: split loop, splitpart = %d", splitpart);
|
||||||
@ -843,9 +849,9 @@ int needputrfc(rfcmsg *msg, int newsmode)
|
|||||||
if (!strcasecmp(msg->key,"Keywords")) return 2;
|
if (!strcasecmp(msg->key,"Keywords")) return 2;
|
||||||
if (!strcasecmp(msg->key,"Summary")) return 2;
|
if (!strcasecmp(msg->key,"Summary")) return 2;
|
||||||
if (!strcasecmp(msg->key,"MIME-Version")) return removemime ?0:1;
|
if (!strcasecmp(msg->key,"MIME-Version")) return removemime ?0:1;
|
||||||
if (!strcasecmp(msg->key,"Content-Type")) return removemime ?0:1;
|
if (!strcasecmp(msg->key,"Content-Type")) return removemime ?1:1; // was 0:1 temp 08-03-2007 mb
|
||||||
if (!strcasecmp(msg->key,"Content-Length")) return removemime ?0:1;
|
if (!strcasecmp(msg->key,"Content-Length")) return removemime ?0:1;
|
||||||
if (!strcasecmp(msg->key,"Content-Transfer-Encoding")) return removemime ?0:1;
|
if (!strcasecmp(msg->key,"Content-Transfer-Encoding")) return removemime ?1:1; // dito
|
||||||
if (!strcasecmp(msg->key,"Content-Name")) return 2;
|
if (!strcasecmp(msg->key,"Content-Name")) return 2;
|
||||||
if (!strcasecmp(msg->key,"Content-Description")) return 2;
|
if (!strcasecmp(msg->key,"Content-Description")) return 2;
|
||||||
if (!strcasecmp(msg->key,"Message-ID")) return removemsgid ?0:1;
|
if (!strcasecmp(msg->key,"Message-ID")) return removemsgid ?0:1;
|
||||||
|
Reference in New Issue
Block a user