diff -rc pine4.10/pine/init.c pine4.10.char_set/pine/init.c *** pine4.10/pine/init.c Tue Jan 26 11:57:56 1999 --- pine4.10.char_set//pine/init.c Wed Oct 13 14:55:14 1999 *************** *** 166,171 **** --- 166,173 ---- CONF_TXT_T cf_text_character_set[] = "Reflects capabilities of the display you have. Default: US-ASCII.\n# Typical alternatives include ISO-8859-x, (x is a number between 1 and 9)."; + CONF_TXT_T cf_alt_character_set[] = "Specifies the character set that a message will be send in, if the result of\n# pine is X-UNKNOWN. Tipically you would define it to be ISO-8859-x."; + CONF_TXT_T cf_text_editor[] = "Specifies the program invoked by ^_ in the Composer,\n# or the \"enable-alternate-editor-implicitly\" feature."; CONF_TXT_T cf_text_speller[] = "Specifies the program invoked by ^T in the Composer."; *************** *** 395,400 **** --- 397,403 ---- {"goto-default-rule", 0, 1, 0, 1, 1, 0, 0, cf_text_goto_default}, {"incoming-startup-rule", 0, 1, 0, 1, 1, 0, 0, cf_text_inc_startup}, {"character-set", 0, 1, 0, 1, 1, 0, 0, cf_text_character_set}, + {"alt-character-set", 0, 1, 0, 1, 1, 0, 0, cf_alt_character_set}, {"editor", 0, 1, 0, 1, 1, 1, 0, cf_text_editor}, {"speller", 0, 1, 0, 1, 1, 0, 0, cf_text_speller}, {"composer-wrap-column", 0, 1, 0, 1, 1, 0, 0, cf_text_fillcol}, *************** *** 1006,1011 **** --- 1009,1015 ---- set_current_val(&vars[V_SIGNATURE_FILE], TRUE, TRUE); set_current_val(&vars[V_CHAR_SET], TRUE, TRUE); + set_current_val(&vars[V_ALT_CHAR_SET], TRUE, TRUE); set_current_val(&vars[V_PATTERNS], TRUE, TRUE); set_current_val(&vars[V_GLOB_ADDRBOOK], TRUE, TRUE); set_current_val(&vars[V_ADDRESSBOOK], TRUE, TRUE); diff -rc pine4.10/pine/other.c pine4.10.char_set/pine/other.c *** pine4.10/pine/other.c Mon Feb 1 15:32:44 1999 --- pine4.10.char_set//pine/other.c Wed Oct 13 14:54:27 1999 *************** *** 5359,5364 **** --- 5359,5366 ---- return(h_config_fld_sort_rule); case V_CHAR_SET : return(h_config_char_set); + case V_ALT_CHAR_SET : + return(h_config_alt_char_set); case V_EDITOR : return(h_config_editor); case V_SPELLER : diff -rc pine4.10/pine/pine.h pine4.10.char_set/pine/pine.h *** pine4.10/pine/pine.h Thu Jan 28 16:52:00 1999 --- pine4.10.char_set//pine/pine.h Wed Oct 13 14:54:27 1999 *************** *** 422,427 **** --- 422,428 ---- , V_GOTO_DEFAULT_RULE , V_INCOMING_STARTUP , V_CHAR_SET + , V_ALT_CHAR_SET , V_EDITOR , V_SPELLER , V_FILLCOL *************** *** 591,596 **** --- 592,599 ---- #define GLO_FLD_SORT_RULE vars[V_FLD_SORT_RULE].global_val.p #define VAR_CHAR_SET vars[V_CHAR_SET].current_val.p #define GLO_CHAR_SET vars[V_CHAR_SET].global_val.p + #define VAR_ALT_CHAR_SET vars[V_ALT_CHAR_SET].current_val.p + #define GLO_ALT_CHAR_SET vars[V_ALT_CHAR_SET].global_val.p #define VAR_EDITOR vars[V_EDITOR].current_val.l #define GLO_EDITOR vars[V_EDITOR].global_val.l #define VAR_SPELLER vars[V_SPELLER].current_val.p diff -rc pine4.10/pine/pine.hlp pine4.10.char_set/pine/pine.hlp *** pine4.10/pine/pine.hlp Thu Feb 4 15:07:54 1999 --- pine4.10.char_set//pine/pine.hlp Wed Oct 13 14:54:29 1999 *************** *** 10069,10074 **** --- 10069,10096 ---- <End of help on this topic> + ====== h_config_alt_char_set ===== + + + OPTION: Alt-Character-Set + + +

OPTION: Alt-Character-Set

+ + The value of this option is used to mark the default outgoing character + set. This will only be used when pine can not recognize the character set, + that is to say, when it intends to send a message with character set + "X-UNKNOWN". In case this value is not set, + "X-UNKNOWN" is used. + +

+

+ <End of help on this topic> + + ====== h_config_editor ===== diff -rc pine4.10/pine/send.c pine4.10.char_set/pine/send.c *** pine4.10/pine/send.c Thu Feb 4 10:17:39 1999 --- pine4.10.char_set//pine/send.c Wed Oct 13 14:54:30 1999 *************** *** 5504,5509 **** --- 5504,5516 ---- dprint(4, (debugfile, "Sending mail...\n")); + /* fix char-set before sending */ + body->parameter->value = strstr(body->parameter->value,UNKNOWN_CHARSET) ? + ((ps_global->vars[V_ALT_CHAR_SET].current_val.p && ps_global->vars[V_ALT_CHAR_SET].current_val.p[0] != '\0') + ? ps_global->vars[V_ALT_CHAR_SET].current_val.p : UNKNOWN_CHARSET) : + body->parameter->value; + + /* Check for any recipients */ for(pf = header->local; pf && pf->name; pf = pf->next) if(pf->type == Address && pf->rcptto && pf->addr && *pf->addr)