( cvs diff -u -r 1.147 -r 1.148 src/main.c; cvs diff -u -r 1.87 -r 1.88 src/procmime.c; cvs diff -u -r 1.7 -r 1.8 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs134.patchset
( cvs diff -u -r 0 -r 1 doc/src/rfc2231.txt; cvs diff -u -r 1.88 -r 1.89 src/procmime.c; cvs diff -u -r 1.4 -r 1.5 src/common/quoted-printable.c; cvs diff -u -r 1.55 -r 1.56 src/common/utils.c; cvs diff -u -r 1.32 -r 1.33 src/common/utils.h; ) > 0.9.12cvs135.patchset
( cvs diff -u -r 1.56 -r 1.57 src/common/utils.c; ) > 0.9.12cvs136.patchset
+( cvs diff -u -r 1.89 -r 1.90 src/procmime.c; ) > 0.9.12cvs137.patchset
FILE *fp = user_data;
EncodeAs encas = ENC_AS_TOKEN;
- fprintf(fp, "; %s=", param);
-
for (valpos = val; *valpos != 0; valpos++) {
if (!IS_ASCII(*valpos)) {
encas = ENC_AS_EXTENDED;
switch (encas) {
case ENC_AS_TOKEN:
+ fprintf(fp, "; %s=", param);
fprintf(fp, "%s", val);
break;
case ENC_AS_QUOTED_STRING:
+ fprintf(fp, "; %s=", param);
fprintf(fp, "\"%s\"", val);
break;
case ENC_AS_EXTENDED:
- /* FIXME: not yet handled */
- fprintf(fp, "%s", val);
+ fprintf(fp, "; %s*=", param);
+ fprintf(fp, "%s''", conv_get_current_charset_str());
+ for (valpos = val; *valpos != '\0'; valpos++) {
+ if (IS_ASCII(*valpos) && isalnum(*valpos))
+ fprintf(fp, "%c", *valpos);
+ else {
+ gchar hexstr[3] = "XX";
+ get_hex_str(hexstr, *valpos);
+ fprintf(fp, "%%%s", hexstr);
+ }
+ }
break;
}
}