Index: elm2.4.ME+.123d-cvs/hdrs/patchlevel.h Prereq: 1188000000 *** elm2.4.ME+.123c/hdrs/patchlevel.h 2006-09-18 19:27:12.000000000 +0300 --- elm2.4.ME+.123d-cvs/hdrs/patchlevel.h 2006-09-24 16:30:35.000000000 +0300 *************** *** 1,12 **** ! #define PATCHLEVEL "123c (25)" /* Used by Configure: SHAREDTAG: .1.0.123 */ ! #define LAST_REPORT_TIME 1188000000 #define BUG_REPORT_ADDR "Kari Hurtta " ! #define VERS_DATE "Aug 2006" /* for elm -v option */ #define WHAT_STRING \ ! "@(#) Version 2.4(ME+), USENET supported version, released Aug 2006" /* * Local Variables: --- 1,12 ---- ! #define PATCHLEVEL "123d (25)" /* Used by Configure: SHAREDTAG: .1.0.123 */ ! #define LAST_REPORT_TIME 1190000000 #define BUG_REPORT_ADDR "Kari Hurtta " ! #define VERS_DATE "Sep 2006" /* for elm -v option */ #define WHAT_STRING \ ! "@(#) Version 2.4(ME+), USENET supported version, released Sep 2006" /* * Local Variables: Index: elm2.4.ME+.123d-cvs/README.ME+ *** elm2.4.ME+.123c/README.ME+ 2006-09-18 19:27:12.000000000 +0300 --- elm2.4.ME+.123d-cvs/README.ME+ 2006-09-23 16:27:52.000000000 +0300 *************** *** 1,4 **** ! $Header: /home/users/hurtta/cvsroot/mail/elmme+/README.ME+,v 1.1137 2006/08/27 12:18:50 hurtta Exp $ Version Elm2.4ME+ PL0 (25) is based on version Elm2.4 PL24 ME8b+. Version Elm2.4 PL24 ME8b+ is based on version Elm2.4 PL24 ME8b. --- 1,4 ---- ! $Header: /home/users/hurtta/cvsroot/mail/elmme+/README.ME+,v 1.1151 2006/09/23 13:27:52 hurtta Exp $ Version Elm2.4ME+ PL0 (25) is based on version Elm2.4 PL24 ME8b+. Version Elm2.4 PL24 ME8b+ is based on version Elm2.4 PL24 ME8b. *************** *** 13,18 **** --- 13,51 ---- Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24. Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25. + Changes on Elm 2.4ME+ PL123d (25) compared with Elm 2.4ME+ PL123c (25) + --------------------------------------------------------------------- + + [ This patch is branch from the main line. ] + + - Fixed compilation on ubuntu (GCC 4.0.2). + + - "troubles when moving from pgp5 to gpg - cannot + encrypt. Seems parsing of gpg --list-public-keys + is broken in gnupg 1.4.5. syscall to gpg paramter + 8 after receipient is <2> ?!" + Problem noted by: Axel Reinhold + > Added support for newer gpg versions + + - "last gpg pathes you sent to me work only on some keys!" + Problem noted by: Axel Reinhold + > Elm ME+ was adding < > around of address (not related + to patch) and therefore gpg did not found key when + on key there was no < > around addresses. Removed + adding of < >. + + - Elmrc option verify-local-address did worked only for + 'address' but not for '
'. Fixed that. + + NOTE: However verify-local-address works only when + mailer option verify=yes works. + + Elmrc option + mailer=sendmail; verify=yes + works only when sendmail is setuid root. Use + instead elmrc option + mailer=submission; verify=yes + Changes of Elm 2.4ME+ PL123c (25) compared with Elm 2.4ME+ PL123b (25) ---------------------------------------------------------------------- *************** *** 38,47 **** - Fixed incorrect generation of elm.mimecharsets file during installation (elm.mimecharsets.NEW was ok). ! - Avoid error message bin/elmregister: [trim_list] Bad command letter: s ! - Fix valgrind reported memory leak: 77 bytes in 2 blocks are definitely lost in loss record 11 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) --- 71,80 ---- - Fixed incorrect generation of elm.mimecharsets file during installation (elm.mimecharsets.NEW was ok). ! - Avoided error message bin/elmregister: [trim_list] Bad command letter: s ! - Fixed valgrind reported memory leak: 77 bytes in 2 blocks are definitely lost in loss record 11 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) *************** *** 49,55 **** by 0x40DE1B1: elm_message (output.c:1481) by 0x809F789: set_folder_window_title (screen.c:82) ! - Fix valgrind reported memory leak: 57 bytes in 1 blocks are definitely lost in loss record 8 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) --- 82,88 ---- by 0x40DE1B1: elm_message (output.c:1481) by 0x809F789: set_folder_window_title (screen.c:82) ! - Fixed valgrind reported memory leak: 57 bytes in 1 blocks are definitely lost in loss record 8 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) *************** *** 168,174 **** - Fix USGNAMES compilation. ! - Fix valgrind reported error on case elm -i non-existing-file address Conditional jump or move depends on uninitialised value(s) at 0x808B83E: reset_parts (mime.c:105) --- 201,207 ---- - Fix USGNAMES compilation. ! - Fixed valgrind reported error on case elm -i non-existing-file address Conditional jump or move depends on uninitialised value(s) at 0x808B83E: reset_parts (mime.c:105) *************** *** 363,369 **** not indivual message or list of messages (search result). That is like imap://user@full.hostname/inbox ! - imap server can not specified without mailbox. That is like imap://user@full.hostname/ it is not currently available. --- 396,402 ---- not indivual message or list of messages (search result). That is like imap://user@full.hostname/inbox ! - imap server can not be without mailbox. That is like imap://user@full.hostname/ it is not currently available. *************** *** 377,383 **** accepts URL separator (/) as hierarcy separator (even when native separator differ.) ! - Numbers 0-9 are also valid for imap atom. Not need to convert parameter to string or literal. - Added RFC 2369 headers to known headers: --- 410,416 ---- accepts URL separator (/) as hierarcy separator (even when native separator differ.) ! - Numbers 0-9 are also valid for imap atom. No need to convert parameter to string or literal. - Added RFC 2369 headers to known headers: *************** *** 387,393 **** "List-ID:", "List-Help:", "List-Subscribe:", "List-Unsubscribe:", "List-Post:", "List-Owner:", "List-Archive:" ! to default weedlist. - RFC 2919 List-ID header is parsed. - RFC 2369 List-help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner and --- 420,426 ---- "List-ID:", "List-Help:", "List-Subscribe:", "List-Unsubscribe:", "List-Post:", "List-Owner:", "List-Archive:" ! to default weedout list. - RFC 2919 List-ID header is parsed. - RFC 2369 List-help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner and *************** *** 423,429 **** folder for example is not available). Actually probably command Ia Mailing list archive ! make sense from these. - When remote url is referenced, elm asks confirmation from user before entering mailbox/folder. - Also anonymous imap urls such as --- 456,462 ---- folder for example is not available). Actually probably command Ia Mailing list archive ! makes sense from these. - When remote url is referenced, elm asks confirmation from user before entering mailbox/folder. - Also anonymous imap urls such as *************** *** 452,467 **** Duplicare removal requires that messages have Message-ID. When duplicates are collected also some other headers than Message-ID is checked that they are same. ! Duplicate removal does no delete messages but shows duplicates as one message on mailbox menu. Status changes are copied to all duplicates when message is read, tagged, flagged or marked for deletion. ! - NOTE: Mailing list are not currently supported. Specially duplicates are not currently removed ! if mail have any List-* -header. ! - Also on duplicate removal mode folder state do not work and ! therefore commands which use readmsg. On duplicate ! removal mode pipe (|) command is not available. - Reimplemeted thread sorting (old code did not work with duplication removal mode.) --- 485,500 ---- Duplicare removal requires that messages have Message-ID. When duplicates are collected also some other headers than Message-ID is checked that they are same. ! Duplicate removal does not delete messages but shows duplicates as one message on mailbox menu. Status changes are copied to all duplicates when message is read, tagged, flagged or marked for deletion. ! - NOTE: Mailing lists are not currently supported. Specially duplicates are not currently removed ! if mail has any List-* -header. ! - Also on duplicate removal mode folder state does not ! work and therefore commands which use readmsg. On ! duplicate removal mode pipe (|) command is not available. - Reimplemeted thread sorting (old code did not work with duplication removal mode.) *************** *** 498,511 **** function. - Added "Eo" as o)pen mailbox to current view -command. ! This works similarry than several -f options on command line. That command opens new mailbox without closing current mailbox. - When displaying some text/plain parts inside of ! multipart/mixed catenate them without adding "[ Part #X/X: ... " text between them. Specially ! allow body part to change inside of line. That should allow changing a charset inside of line. * RFC 2046 says: "NOTE: The CRLF preceding the boundary delimiter --- 531,544 ---- function. - Added "Eo" as o)pen mailbox to current view -command. ! This works similarly with several -f options on command line. That command opens new mailbox without closing current mailbox. - When displaying some text/plain parts inside of ! multipart/mixed they are catenated without adding "[ Part #X/X: ... " text between them. Specially ! allows body part to change inside of line. That should allow changing a charset inside of line. * RFC 2046 says: "NOTE: The CRLF preceding the boundary delimiter *************** *** 517,524 **** decoding routines. - State routines did not handle the situation where ! charset of mail changed on middle of line. Now ! current line buffer is converted to new charset in that case. - Added V)iew digest as mailbox --- 550,557 ---- decoding routines. - State routines did not handle the situation where ! charset of mail changed in the middle of the line. ! Now current line buffer is converted to new charset in that case. - Added V)iew digest as mailbox *************** *** 564,570 **** - Changed handling of elm.mimetypes and mime.types - If charset is defined on some other file than ! elm.mimetypes or mime.types, these definations are not moved. - Removed "compatcharsets" (marked as obsolete) - Removed "iso646-charsets" (marked as obsolete) --- 597,603 ---- - Changed handling of elm.mimetypes and mime.types - If charset is defined on some other file than ! elm.mimetypes or mime.types, these definitions are not moved. - Removed "compatcharsets" (marked as obsolete) - Removed "iso646-charsets" (marked as obsolete) *************** *** 574,580 **** - Configure do no longer read elm.mimecharsets from elm global library directory. Instead existing elm.mimecharsets from elm global library directory ! is merged during installation (with -c option on elmcharsets). - Option -N is removed from Configure - Elmterminal option -c merges elm.terminalinfo or --- 607,613 ---- - Configure do no longer read elm.mimecharsets from elm global library directory. Instead existing elm.mimecharsets from elm global library directory ! are merged during installation (with -c option on elmcharsets). - Option -N is removed from Configure - Elmterminal option -c merges elm.terminalinfo or *************** *** 611,617 **** mime.types is any entry for type without pattern, warning is NOT printed. If warning is printed, confirmation is required. This mainly protects routines ! on mailcap to get bogus types. Notice that this do NOT protect metamail (if used). - Added elmrc option "attachment-fix-extension". --- 644,650 ---- mime.types is any entry for type without pattern, warning is NOT printed. If warning is printed, confirmation is required. This mainly protects routines ! on mailcap to get bogus types. Notice that this does NOT protect metamail (if used). - Added elmrc option "attachment-fix-extension". *************** *** 752,763 **** "=received") to "none". This disables Move read messages to "received" folder? (y/n) question. When "receivedmail" is set to "none", ">" ! can not used as folder name. Requested by: Laura Kataja - Allow setting "sentmail" elmrc option (normally "=sent") to "none". When "sentmail" is set to "none", ! "<" can not used as folder name. - If "sentmail" is set to "none", "copy" defaults to OFF. --- 785,796 ---- "=received") to "none". This disables Move read messages to "received" folder? (y/n) question. When "receivedmail" is set to "none", ">" ! can not be used as folder name. Requested by: Laura Kataja - Allow setting "sentmail" elmrc option (normally "=sent") to "none". When "sentmail" is set to "none", ! "<" can not be used as folder name. - If "sentmail" is set to "none", "copy" defaults to OFF. *************** *** 1135,1141 **** [ This patch is branch from the main line. ] ! - Fix valgrind reported error on case elm -i non-existing-file address Conditional jump or move depends on uninitialised value(s) at 0x808B83E: reset_parts (mime.c:105) --- 1168,1174 ---- [ This patch is branch from the main line. ] ! - Fixed valgrind reported error on case elm -i non-existing-file address Conditional jump or move depends on uninitialised value(s) at 0x808B83E: reset_parts (mime.c:105) *************** *** 1398,1404 **** Already have selection criteria - add more? Enter criteria or '?' for help: ! - Fix valgrind reported memory leak: 32 bytes in 2 blocks are definitely lost in loss record 6 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8151DBF: safe_malloc (safemalloc.c:47) --- 1431,1437 ---- Already have selection criteria - add more? Enter criteria or '?' for help: ! - Fixed valgrind reported memory leak: 32 bytes in 2 blocks are definitely lost in loss record 6 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8151DBF: safe_malloc (safemalloc.c:47) *************** *** 1406,1421 **** - Add redraw handling to display_file() ! - Fix "Reverse Thread" sorting order. ! - Fix valgrind reported memory leak: 56 bytes in 5 blocks are definitely lost in loss record 9 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) by 0x80E9095: new_state_1 (charset_input.c:18) by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348) ! - Fix valgrind reported memory leak: 16 bytes in 2 blocks are definitely lost in loss record 3 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) --- 1439,1454 ---- - Add redraw handling to display_file() ! - Fixed "Reverse Thread" sorting order. ! - Fixed valgrind reported memory leak: 56 bytes in 5 blocks are definitely lost in loss record 9 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) by 0x80E9095: new_state_1 (charset_input.c:18) by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348) ! - Fixed valgrind reported memory leak: 16 bytes in 2 blocks are definitely lost in loss record 3 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) *************** *** 1423,1429 **** by 0x8163FBC: new_string (string.c:153) by 0x80876EA: read_number (in_utils.c:282) ! - Fix valgrind reported memory leak: 30 bytes in 1 blocks are definitely lost in loss record 7 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148225: safe_realloc (safemalloc.c:63) --- 1456,1462 ---- by 0x8163FBC: new_string (string.c:153) by 0x80876EA: read_number (in_utils.c:282) ! - Fixed valgrind reported memory leak: 30 bytes in 1 blocks are definitely lost in loss record 7 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148225: safe_realloc (safemalloc.c:63) *************** *** 1431,1450 **** by 0x8133A5E: elm_message (output.c:1460) by 0x80FD9DA: init_debug (debug.c:58) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148173: safe_malloc (safemalloc.c:47) by 0x8145BA9: split_remote_name (remote_mbx.c:620) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fix valgrind reported memory leak: 14 bytes in 1 blocks are definitely lost in loss record 3 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148349: safe_strdup (safemalloc.c:79) by 0x8145B8E: split_remote_name (remote_mbx.c:618) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148237: safe_malloc (safemalloc.c:47) --- 1464,1483 ---- by 0x8133A5E: elm_message (output.c:1460) by 0x80FD9DA: init_debug (debug.c:58) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148173: safe_malloc (safemalloc.c:47) by 0x8145BA9: split_remote_name (remote_mbx.c:620) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fixed valgrind reported memory leak: 14 bytes in 1 blocks are definitely lost in loss record 3 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148349: safe_strdup (safemalloc.c:79) by 0x8145B8E: split_remote_name (remote_mbx.c:618) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148237: safe_malloc (safemalloc.c:47) *************** *** 1453,1472 **** by 0x81307E5: elm_smessage (output.c:857) by 0x8087063: prompt_letter (in_utils.c:84) ! - Fix valgrind reported memory leak: 29 bytes in 5 blocks are definitely lost in loss record 7 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148243: safe_malloc (safemalloc.c:47) by 0x8105414: rfc822_tokenize (getaddr.c:37) by 0x8061333: do_expand_group_l (aliaslib.c:88) ! - Fix valgrind reported memory leak: 7104 bytes in 1 blocks are definitely lost in loss record 27 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148339: safe_realloc (safemalloc.c:63) by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 2 of 29 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x814826B: safe_malloc (safemalloc.c:47) --- 1486,1505 ---- by 0x81307E5: elm_smessage (output.c:857) by 0x8087063: prompt_letter (in_utils.c:84) ! - Fixed valgrind reported memory leak: 29 bytes in 5 blocks are definitely lost in loss record 7 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148243: safe_malloc (safemalloc.c:47) by 0x8105414: rfc822_tokenize (getaddr.c:37) by 0x8061333: do_expand_group_l (aliaslib.c:88) ! - Fixed valgrind reported memory leak: 7104 bytes in 1 blocks are definitely lost in loss record 27 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148339: safe_realloc (safemalloc.c:63) by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 2 of 29 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x814826B: safe_malloc (safemalloc.c:47) *************** *** 1478,1484 **** - Removed pattern_enter() ! - Fix "Append to mail folder " -question. - Changed IMAP \Flagged that they are not longer tagged (+), but instead marked with new flag (F) --- 1511,1517 ---- - Removed pattern_enter() ! - Fixed "Append to mail folder " -question. - Changed IMAP \Flagged that they are not longer tagged (+), but instead marked with new flag (F) *************** *** 1525,1531 **** Content-Type: text/plain; charset=US-ASCII - Added mlterm to terminal.info without charset UTF-8. ! To actually use that terminal defination you need also doc/term/mlterm.ti from mlterm distribution. Install it with 'tic' command. Then you need start start mlterm with 'mlterm -y mlterm' option, otherwise mlterm sets $TERM to --- 1558,1564 ---- Content-Type: text/plain; charset=US-ASCII - Added mlterm to terminal.info without charset UTF-8. ! To actually use that terminal definition you need also doc/term/mlterm.ti from mlterm distribution. Install it with 'tic' command. Then you need start start mlterm with 'mlterm -y mlterm' option, otherwise mlterm sets $TERM to *************** *** 1539,1545 **** - Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles to bin/elm.mimecharsets even when elm.mimecharsets have ! already alias defination for charset. - Added eucJP, eucKR, EUC-CN, GB2312, eucCN and Big5-HKSCS, Big5HKSCS to ConfTool/CharMap --- 1572,1578 ---- - Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles to bin/elm.mimecharsets even when elm.mimecharsets have ! already alias definition for charset. - Added eucJP, eucKR, EUC-CN, GB2312, eucCN and Big5-HKSCS, Big5HKSCS to ConfTool/CharMap *************** *** 1727,1733 **** from lib/cs_binary.c to lib/cs_unknown.c - File lib/cs_wfallback.c includes 'fallback' mapping for whar_t, similar than lib/cs_fallback.c ! files 'fallback' defination. - Unknown system (locale) charset is now implemented with wide characters (wchar_t) on systems which support it. Also support of wcwidth() function is --- 1760,1766 ---- from lib/cs_binary.c to lib/cs_unknown.c - File lib/cs_wfallback.c includes 'fallback' mapping for whar_t, similar than lib/cs_fallback.c ! files 'fallback' definition. - Unknown system (locale) charset is now implemented with wide characters (wchar_t) on systems which support it. Also support of wcwidth() function is *************** *** 1742,1748 **** - Added elmrc option "locale-charsets" for systems which have __STDC_ISO_10646__ defined. Given charset names is type unknown used for system (locale) ! charset, even when Elm ME+ is builtin defination for charset. - Added to terminal.info file new keyword DW. This indicates for unknown system charset that wcwidth() --- 1775,1781 ---- - Added elmrc option "locale-charsets" for systems which have __STDC_ISO_10646__ defined. Given charset names is type unknown used for system (locale) ! charset, even when Elm ME+ is builtin definition for charset. - Added to terminal.info file new keyword DW. This indicates for unknown system charset that wcwidth() *************** *** 1798,1804 **** - Configure was incorrectly made conlusion that nl_langinfo(CODESET) ! do not work on IRIX 6.5 - If given folder name 'aaa@bbb@ccc' for split_remote_name(), do not split is as user='aaa', host='bbb@ccc', but use --- 1831,1837 ---- - Configure was incorrectly made conlusion that nl_langinfo(CODESET) ! does not work on IRIX 6.5 - If given folder name 'aaa@bbb@ccc' for split_remote_name(), do not split is as user='aaa', host='bbb@ccc', but use *************** *** 2004,2010 **** - "unicode_value (uint16) can not possibly exceed 0xFFFF. Remove the statement, that triggers a compiler warning." ! From: From: Mikhail T. * Patch removes ...->unicode_value > 0xFFFF -test from cs_add_state_to_iconv() on shared_libs/iconv/iconv.c. --- 2037,2043 ---- - "unicode_value (uint16) can not possibly exceed 0xFFFF. Remove the statement, that triggers a compiler warning." ! From: Mikhail T. * Patch removes ...->unicode_value > 0xFFFF -test from cs_add_state_to_iconv() on shared_libs/iconv/iconv.c. *************** *** 2120,2126 **** - Configure was incorrectly made conlusion that nl_langinfo(CODESET) ! do not work on IRIX 6.5 - If given folder name 'aaa@bbb@ccc' for split_remote_name(), do not split is as user='aaa', host='bbb@ccc', but use --- 2153,2159 ---- - Configure was incorrectly made conlusion that nl_langinfo(CODESET) ! does not work on IRIX 6.5 - If given folder name 'aaa@bbb@ccc' for split_remote_name(), do not split is as user='aaa', host='bbb@ccc', but use *************** *** 2160,2166 **** Content-Type: text/plain; charset=US-ASCII - Added mlterm to terminal.info without charset UTF-8. ! To actually use that terminal defination you need also doc/term/mlterm.ti from mlterm distribution. Install it with 'tic' command. Then you need start start mlterm with 'mlterm -y mlterm' option, otherwise mlterm sets $TERM to --- 2193,2199 ---- Content-Type: text/plain; charset=US-ASCII - Added mlterm to terminal.info without charset UTF-8. ! To actually use that terminal definition you need also doc/term/mlterm.ti from mlterm distribution. Install it with 'tic' command. Then you need start start mlterm with 'mlterm -y mlterm' option, otherwise mlterm sets $TERM to *************** *** 2174,2180 **** - Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles to bin/elm.mimecharsets even when elm.mimecharsets have ! already alias defination for charset. Changes of Elm 2.4ME+ PL121d (25) compared with Elm 2.4ME+ PL121c (25) ---------------------------------------------------------------------- --- 2207,2213 ---- - Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles to bin/elm.mimecharsets even when elm.mimecharsets have ! already alias definition for charset. Changes of Elm 2.4ME+ PL121d (25) compared with Elm 2.4ME+ PL121c (25) ---------------------------------------------------------------------- *************** *** 2183,2189 **** - Fix "Reverse Thread" sorting order. ! - Fix valgrind reported memory leak: 24 bytes in 1 blocks are definitely lost in loss record 4 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147EF3: safe_malloc (safemalloc.c:47) --- 2216,2222 ---- - Fix "Reverse Thread" sorting order. ! - Fixed valgrind reported memory leak: 24 bytes in 1 blocks are definitely lost in loss record 4 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147EF3: safe_malloc (safemalloc.c:47) *************** *** 2191,2206 **** by 0x80784E5: mailbox_command (elm.c:808) by 0x807920D: main (elm.c:1185) ! - Add redraw handling to display_file() ! - Fix valgrind reported memory leak: 56 bytes in 5 blocks are definitely lost in loss record 9 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) by 0x80E9095: new_state_1 (charset_input.c:18) by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348) ! - Fix valgrind reported memory leak: 16 bytes in 2 blocks are definitely lost in loss record 3 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) --- 2224,2239 ---- by 0x80784E5: mailbox_command (elm.c:808) by 0x807920D: main (elm.c:1185) ! - Added redraw handling to display_file() ! - Fixed valgrind reported memory leak: 56 bytes in 5 blocks are definitely lost in loss record 9 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) by 0x80E9095: new_state_1 (charset_input.c:18) by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348) ! - Fixed valgrind reported memory leak: 16 bytes in 2 blocks are definitely lost in loss record 3 of 28 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8147F8F: safe_malloc (safemalloc.c:47) *************** *** 2208,2214 **** by 0x8163FBC: new_string (string.c:153) by 0x80876EA: read_number (in_utils.c:282) ! - Fix valgrind reported memory leak: 30 bytes in 1 blocks are definitely lost in loss record 7 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148225: safe_realloc (safemalloc.c:63) --- 2241,2247 ---- by 0x8163FBC: new_string (string.c:153) by 0x80876EA: read_number (in_utils.c:282) ! - Fixed valgrind reported memory leak: 30 bytes in 1 blocks are definitely lost in loss record 7 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148225: safe_realloc (safemalloc.c:63) *************** *** 2216,2235 **** by 0x8133A5E: elm_message (output.c:1460) by 0x80FD9DA: init_debug (debug.c:58) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148173: safe_malloc (safemalloc.c:47) by 0x8145BA9: split_remote_name (remote_mbx.c:620) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fix valgrind reported memory leak: 14 bytes in 1 blocks are definitely lost in loss record 3 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148349: safe_strdup (safemalloc.c:79) by 0x8145B8E: split_remote_name (remote_mbx.c:618) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148237: safe_malloc (safemalloc.c:47) --- 2249,2268 ---- by 0x8133A5E: elm_message (output.c:1460) by 0x80FD9DA: init_debug (debug.c:58) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148173: safe_malloc (safemalloc.c:47) by 0x8145BA9: split_remote_name (remote_mbx.c:620) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fixed valgrind reported memory leak: 14 bytes in 1 blocks are definitely lost in loss record 3 of 31 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148349: safe_strdup (safemalloc.c:79) by 0x8145B8E: split_remote_name (remote_mbx.c:618) by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 1 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148237: safe_malloc (safemalloc.c:47) *************** *** 2238,2257 **** by 0x81307E5: elm_smessage (output.c:857) by 0x8087063: prompt_letter (in_utils.c:84) ! - Fix valgrind reported memory leak: 29 bytes in 5 blocks are definitely lost in loss record 7 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148243: safe_malloc (safemalloc.c:47) by 0x8105414: rfc822_tokenize (getaddr.c:37) by 0x8061333: do_expand_group_l (aliaslib.c:88) ! - Fix valgrind reported memory leak: 7104 bytes in 1 blocks are definitely lost in loss record 27 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148339: safe_realloc (safemalloc.c:63) by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291) ! - Fix valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 2 of 29 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x814826B: safe_malloc (safemalloc.c:47) --- 2271,2290 ---- by 0x81307E5: elm_smessage (output.c:857) by 0x8087063: prompt_letter (in_utils.c:84) ! - Fixed valgrind reported memory leak: 29 bytes in 5 blocks are definitely lost in loss record 7 of 30 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x8148243: safe_malloc (safemalloc.c:47) by 0x8105414: rfc822_tokenize (getaddr.c:37) by 0x8061333: do_expand_group_l (aliaslib.c:88) ! - Fixed valgrind reported memory leak: 7104 bytes in 1 blocks are definitely lost in loss record 27 of 29 at 0x4002668F: realloc (vg_replace_malloc.c:310) by 0x8148339: safe_realloc (safemalloc.c:63) by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291) ! - Fixed valgrind reported memory leak: 8 bytes in 1 blocks are definitely lost in loss record 2 of 29 at 0x400260DC: malloc (vg_replace_malloc.c:153) by 0x814826B: safe_malloc (safemalloc.c:47) *************** *** 2264,2270 **** Changes of Elm 2.4ME+ PL121c (25) compared with Elm 2.4ME+ PL121b (25) ---------------------------------------------------------------------- ! - Fix incorrect drawing of "MIME structure Menu" when arrow cursor was used. Changes of Elm 2.4ME+ PL121b (25) compared with Elm 2.4ME+ PL121a (25) --- 2297,2303 ---- Changes of Elm 2.4ME+ PL121c (25) compared with Elm 2.4ME+ PL121b (25) ---------------------------------------------------------------------- ! - Fixed incorrect drawing of "MIME structure Menu" when arrow cursor was used. Changes of Elm 2.4ME+ PL121b (25) compared with Elm 2.4ME+ PL121a (25) *************** *** 2770,2776 **** - Added give_next_open_mailbox() to src/messages.c and made save_copy() to use it. ! - Moved defination of struct mv_storage and struct mv_digest out from src/messages/def_messages.h - When mail is forwarded mail, user is prompted --- 2803,2809 ---- - Added give_next_open_mailbox() to src/messages.c and made save_copy() to use it. ! - Moved definition of struct mv_storage and struct mv_digest out from src/messages/def_messages.h - When mail is forwarded mail, user is prompted *************** *** 3694,3700 **** - iconv:auto-charset is now applied to charsets on lib/precompiled_sets.c if that charset is marked as ! unknown (ie. defination of predefined unknown charset is ignored.) NOTE: By default iconv:auto-charset is OFF. So that --- 3727,3733 ---- - iconv:auto-charset is now applied to charsets on lib/precompiled_sets.c if that charset is marked as ! unknown (ie. definition of predefined unknown charset is ignored.) NOTE: By default iconv:auto-charset is OFF. So that *************** *** 3882,3888 **** charset/MAPPINGS/MICSFT before applying this patch! ! SUMMARY: This release fixes some charset definations, add some maps to distribution and new keyword to l)imit command. --- 3915,3921 ---- charset/MAPPINGS/MICSFT before applying this patch! ! SUMMARY: This release fixes some charset definitions, add some maps to distribution and new keyword to l)imit command. *************** *** 5242,5248 **** Note that charset type=euc requires that mapping for unicode is available. Otherwise it does not know which characters ! are printable. On builtin defination there is only mapping for US-ASCII part (and ISO-8859-1 upper part) defined. See chapter "ISO2022 maps information" for examples for other mappings. --- 5275,5281 ---- Note that charset type=euc requires that mapping for unicode is available. Otherwise it does not know which characters ! are printable. On builtin definition there is only mapping for US-ASCII part (and ISO-8859-1 upper part) defined. See chapter "ISO2022 maps information" for examples for other mappings. *************** *** 5615,5621 **** - Fix bogus message (which occured on some cases) [ Charset US-ASCII unsupported, converting... ] ! - Configure can now add new terminal definations to exiting elm.terminalinfo from doc/terminal.info - Delay stat()ing directory entries on file browser to --- 5648,5654 ---- - Fix bogus message (which occured on some cases) [ Charset US-ASCII unsupported, converting... ] ! - Configure can now add new terminal definitions to exiting elm.terminalinfo from doc/terminal.info - Delay stat()ing directory entries on file browser to *************** *** 5642,5648 **** Note that charset type=iso2022 requires that mapping for unicode is available. Otherwise it does not know which characters ! are printable. On builtin defination there is only mapping for US-ASCII part and ISO-8859-1 upper part (on ISO-2022-JP-2) defined. See chapter "ISO2022 maps information" for examples for other mappings. --- 5675,5681 ---- Note that charset type=iso2022 requires that mapping for unicode is available. Otherwise it does not know which characters ! are printable. On builtin definition there is only mapping for US-ASCII part and ISO-8859-1 upper part (on ISO-2022-JP-2) defined. See chapter "ISO2022 maps information" for examples for other mappings. *************** *** 6254,6260 **** - Added ISO-8859-16 to builting character set list of ElmME+ - Added ISO-8859-16 to ConfTool/GenCharmap - Added 8859-15.TXT and 8859-16.TXT to ConfTool/mapfiles ! - ConfTool/GenCharmap generates now map=$file definations also files which are on charset/MAPPINGS/ISO8859 directory - elmcharset takes -S option which specifies source directory for map files (so they can be copeid to elm.map.txt directory --- 6287,6293 ---- - Added ISO-8859-16 to builting character set list of ElmME+ - Added ISO-8859-16 to ConfTool/GenCharmap - Added 8859-15.TXT and 8859-16.TXT to ConfTool/mapfiles ! - ConfTool/GenCharmap generates now map=$file definitions also files which are on charset/MAPPINGS/ISO8859 directory - elmcharset takes -S option which specifies source directory for map files (so they can be copeid to elm.map.txt directory *************** *** 8539,8545 **** cc -I../hdrs -O -c parse_util.c "../hdrs/melib.h", line 60: syntax error" From: Geir Johannessen ! > Guess the fix [ perhaps it does not work and is definately untested... ] - Added facility to convert character set of incoming --- 8572,8578 ---- cc -I../hdrs -O -c parse_util.c "../hdrs/melib.h", line 60: syntax error" From: Geir Johannessen ! > Guess the fix [ perhaps it does not work and is definitely untested... ] - Added facility to convert character set of incoming *************** *** 10373,10379 **** - "The bug was that filter truncated the "Saved folder" to only 3 chars (out of the full path). To fix it, just change the following line in 'utils.c' in the filter directory" ! From: From: Yuval Shamir [ Suggested fix was incorrect. ] > Notice: filter code is not tested (and compilation --- 10406,10412 ---- - "The bug was that filter truncated the "Saved folder" to only 3 chars (out of the full path). To fix it, just change the following line in 'utils.c' in the filter directory" ! From: Yuval Shamir [ Suggested fix was incorrect. ] > Notice: filter code is not tested (and compilation *************** *** 11848,11853 **** --- 11881,11921 ---- that part 1 includes all mail headers of message (ie. mail headers is not fragmented.) + + Mapping to content-type + ----------------------- + + Files libdir/elm.mimetypes and ~/.elm/mime.types handle + mapping from file name and file content to content type + (or media type). On file there may be three kinds of + definitions: + + suffix content-type + + - content-type + >offset,magic + + suffix content-type + >offset,magic + + suffix is file name extension after '.' on file name. + content-type is what is added to content-type -header. + + offset,magic is matched agaist content of file. + + + When mime type is determined for file both suffix + and content of file (offset,magic) is used. + + When check-type-pattern is set, content-type + and offset,magic is used to check to see + content-type is legimate. + + When attachment-fix-extension is set content type + together with attachment content (offset,magic) + to determine correct extension for file when file is + saved. + Charset definition ------------------ *************** *** 11860,11887 **** locale charset-definition - alias-definition ! First kind line defines properties of charset. ! Second kind line defines mapping from locale to charset name. ! Third kind line defines mapping from locale to charset and ! defines properties of charset. This kind line should be ! avoided, because it leads to redefinition of charset. ! Fourth kind line gives aliases for charset. This does not ! redefine charset. ! So in file should be only three kind lines - charset-definition - alias-definition locale charset-name ! charset-definition have following forms "charset name"; params... charset; params... ! charset-name is name of charset without quotes (or ; character). ! locale have following forms LL_cc.encoding LL_cc --- 11928,11956 ---- locale charset-definition - alias-definition ! First kind of line defines properties of charset. ! Second kind of line defines mapping from locale to charset name. ! Third kind of line defines mapping from locale to charset and ! defines properties of the charset. This of kind line should be ! avoided, because it leads to redefinition of the charset. ! Fourth kind of line gives aliases for the charset. This does not ! redefine the charset. ! So in file should be only three kinds lines - charset-definition - alias-definition locale charset-name ! charset-definition has following forms "charset name"; params... charset; params... ! charset-name is the name of the charset without quotes ! (or ; character). ! locale has following forms LL_cc.encoding LL_cc *************** *** 11908,11914 **** param="quoted value" params are separated by ; character. ! Possible paramas are following MIME-subset gives byte-to-byte subset type gives type of charset --- 11977,11983 ---- param="quoted value" params are separated by ; character. ! Possible params are following MIME-subset gives byte-to-byte subset type gives type of charset *************** *** 11917,11923 **** depends type of charset alias gives alias for charset ! and iso2022 paramaters given on later. Specially MIME-subset=US-ASCII gives compatcharsets. Notice that MIME-subset should be used only on one-byte --- 11986,11992 ---- depends type of charset alias gives alias for charset ! and iso2022 parameters given later on. Specially MIME-subset=US-ASCII gives compatcharsets. Notice that MIME-subset should be used only on one-byte *************** *** 11934,11940 **** one-byte-map Specifies that mapping to unicode values are given on external file. ! iso646-set Specicies 7-bit character set which invariant part of map directly to unicode values and and variant part is given on map argument. --- 12003,12009 ---- one-byte-map Specifies that mapping to unicode values are given on external file. ! iso646-set Specicies 7-bit character set with invariant part of map directly to unicode values and and variant part is given on map argument. *************** *** 11977,11983 **** CP1252 Possible map values for type ascii-set and one-byte-map ! include following kind names filename File is read from directory given on map-text-dir directory --- 12046,12052 ---- CP1252 Possible map values for type ascii-set and one-byte-map ! include following kind of names filename File is read from directory given on map-text-dir directory *************** *** 12001,12007 **** or can be filename. Map files should be "Format A" files from unicode.org. ! These map files were not included to Elm ME+ distribution, because on these files there were stated that Unicode, Inc. specifically excludes the right to --- 12070,12076 ---- or can be filename. Map files should be "Format A" files from unicode.org. ! These map files were not included in Elm ME+ distribution, because on these files there were stated that Unicode, Inc. specifically excludes the right to *************** *** 12028,12037 **** That is default. That causes that metamail does is not called for these character sets (metamail probably does ! not do any conversions and tries print them as is.) Possible map values for type iso646 include following ! kind names INVARIANT (builtin) --- 12097,12106 ---- That is default. That causes that metamail does is not called for these character sets (metamail probably does ! not do any conversions and tries to print them as is.) Possible map values for type iso646 include following ! kind of names INVARIANT (builtin) *************** *** 12051,12067 **** bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96, bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96 ! and left/right bank definations. Params bank-94x94, bank-G?-94x94, bank-96x96, bank-G?-96x96 are not allowed with charset type ascii-set, one-byte-map or iso646-set. (For these values only charset types iso2022 ! and euc are useful.) Paramater bank-G0-94=4/2 is added automatically to bank specifications of charset type ascii-set. Possible param values for iso-2022 are space separated (usually empty) list of intermediate bytes and final byte given on form d/d. ! If there is several bytes, list must be given on quoted form. Giving of iso-2022 param does NOT itself imply that charset may include ISO 2022 codes. Rather it means, what codes to use when switching terminal to that character set. --- 12120,12136 ---- bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96, bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96 ! and left/right bank definitions. Params bank-94x94, bank-G?-94x94, bank-96x96, bank-G?-96x96 are not allowed with charset type ascii-set, one-byte-map or iso646-set. (For these values only charset types iso2022 ! and euc are useful.) Parameter bank-G0-94=4/2 is added automatically to bank specifications of charset type ascii-set. Possible param values for iso-2022 are space separated (usually empty) list of intermediate bytes and final byte given on form d/d. ! If there is several bytes, list must be given in quoted form. Giving of iso-2022 param does NOT itself imply that charset may include ISO 2022 codes. Rather it means, what codes to use when switching terminal to that character set. *************** *** 12079,12094 **** These are similar than iso-2022 params without "initial-". These parameters give initial assigments for banks if script does not give assigments for banks. These parameters make ! sense only for type=iso2022. Other charset types does not accpet several assigments for same bank so special initial paramaters are not needed. ! Iso2022 left/right bank definations are following possibilities left=bank-G0, left=bank-G1, left=bank-G2, left=bank-G3 right=bank-G1, right=bank-G2, right=bank-G2 Possible map values for type utf-8, utf-7 and imap include following ! kind names UNICODE Specifies identify mapping to unicode on ranges 0x0080 - 0xD7FF --- 12148,12163 ---- These are similar than iso-2022 params without "initial-". These parameters give initial assigments for banks if script does not give assigments for banks. These parameters make ! sense only for type=iso2022. Other charset types do not accept several assigments for same bank so special initial paramaters are not needed. ! Iso2022 left/right bank definitions are following possibilities left=bank-G0, left=bank-G1, left=bank-G2, left=bank-G3 right=bank-G1, right=bank-G2, right=bank-G2 Possible map values for type utf-8, utf-7 and imap include following ! kind of names UNICODE Specifies identify mapping to unicode on ranges 0x0080 - 0xD7FF *************** *** 12104,12110 **** Map files have lines on format start-end start-end where first start-end gives values on given charset ! and second gives correspind unicode-values (start and end value). Start and end should be given on hexadecimal format. --- 12173,12179 ---- Map files have lines on format start-end start-end where first start-end gives values on given charset ! and second gives corresponding unicode-values (start and end value). Start and end should be given on hexadecimal format. *************** *** 12119,12125 **** charset; alias=name... There may be given several aliases given on one line. ! Also aliases may be given on own lines. Alias definition lines for given charset should be after charset-definition line for charset. If charset-definition --- 12188,12194 ---- charset; alias=name... There may be given several aliases given on one line. ! Also aliases may be given on their lines. Alias definition lines for given charset should be after charset-definition line for charset. If charset-definition *************** *** 12150,12163 **** bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2; map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2" ! (that is one line -- splitted for multiple lines for readability) - ISO-2022-JP-2;type=iso2022;MIBenum=40;initial-bank-G0-94=4/2; bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2;bank-G0-94x94=4/1; bank-G0-94x94=4/3;bank-G0-94x94=4/4;bank-G2-96=4/1;bank-G2-96=4/6; map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2;bank-G0-94x94 4/4" ! (that is one line -- splitted for multiple lines for readability) And if character sets uses two character position for 94x94 sets on display, that must be given on ~/.elm/terminal.info file: --- 12219,12232 ---- bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2; map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2" ! (that is one line -- split in multiple lines for readability) - ISO-2022-JP-2;type=iso2022;MIBenum=40;initial-bank-G0-94=4/2; bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2;bank-G0-94x94=4/1; bank-G0-94x94=4/3;bank-G0-94x94=4/4;bank-G2-96=4/1;bank-G2-96=4/6; map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2;bank-G0-94x94 4/4" ! (that is one line -- split in multiple lines for readability) And if character sets uses two character position for 94x94 sets on display, that must be given on ~/.elm/terminal.info file: *************** *** 12176,12183 **** range=upper Uses range 160-255 3col=2 ! Possible filename values for iso2022.sets file are are ! same kind than map names in ~/.elm/mime.charsets file. That is: filename File is read from directory --- 12245,12252 ---- range=upper Uses range 160-255 3col=2 ! Possible filename values for iso2022.sets file are of the ! same kind that map names in ~/.elm/mime.charsets file. That is: filename File is read from directory *************** *** 12203,12209 **** One Eastasian recipe -------------------- ! Lines are splitted to several lines for readibility. \ indicates place where line is splitted. 1) .elm/mime.charset file: --- 12272,12278 ---- One Eastasian recipe -------------------- ! Lines are split in several lines for readibility. \ indicates place where line is splitted. 1) .elm/mime.charset file: *************** *** 12238,12244 **** bank-94x94 4/3 {rc}/KSX1001.TXT bank-94x94 4/1 {rc}/GB2312.TXT ! {rc} refers files on .elm directory! 3) .elm/terminal.info --- 12307,12313 ---- bank-94x94 4/3 {rc}/KSX1001.TXT bank-94x94 4/1 {rc}/GB2312.TXT ! {rc} refers files in .elm directory! 3) .elm/terminal.info *************** *** 12274,12281 **** ------------------------------- Files libdir/elm.terminalinfo and ~/.elm/terminal.info ! handles terminal specific methods for switching of chartset ! of terminal. On file there may be following kind lines: term ISO-2022 charset-name term ISO-2022 charset-definition --- 12343,12351 ---- ------------------------------- Files libdir/elm.terminalinfo and ~/.elm/terminal.info ! handle terminal specific methods for switching of chartset ! of terminal. In the file there may be following kinds of ! lines: term ISO-2022 charset-name term ISO-2022 charset-definition *************** *** 12293,12301 **** next column is character set name or character set definition as on elm.mimecharsets or mime.charsets file and that character set switching happends as given with ! other-set and bank-Gx-* attributes on charcter set definition. PRIVATE literal, which indicates that ! next two columns are charatter set name and bytes given on d/d format for switch character set. ISO-2022/DW literal indicates that terminal uses --- 12363,12371 ---- next column is character set name or character set definition as on elm.mimecharsets or mime.charsets file and that character set switching happends as given with ! other-set and bank-Gx-* attributes on character set definition. PRIVATE literal, which indicates that ! next two columns are character set name and bytes given on d/d format for switch character set. ISO-2022/DW literal indicates that terminal uses *************** *** 12305,12351 **** terminal. That literal is available only with charset which have type=iso2022. ! It is assumed that these escape sequencences not affect ! to input (keyboard) charset of terminal (ie. not affect 'keyboard mode' or 'keyboard language'). [ condition ] is like [ exp = exp ] where exp can be either "quoted value" or $ENV_VAR. "quoted value" allow ! alos environment variables (same way than Elm ME+ allows on pathnames.) For example that may be used on lines like linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15 ! Read commensts about using of these from doc/terminal.info ! ISO-2022-LIKE indicates that terminal assign private ! codes for charset. That defination do not define iso 2022 ! codes for charset, but it is used than these codes are defined for charset. For example that may be used on lines like vt200 ISO-2022-LIKE DEC-MCS left=bank-G0;bank-G0-94=4/2;right=bank-G2;bank-96=3/12 ! DW indicates that system charset that wcwidth() function should be used to get char width. This means that logical width of character ! may be 0,1 or 2 columns on that terminal. On systems which have __STDC_ISO_10646__ defined, DW flag on terminal.info works like "locale-charsets" ! option if charset and terminal matches. ! If charset do not support calculation of visible len and there is DW flag given for that charset and terminal, then error message Double wide characters are not supported is printed. Flag keyword xterm-title specifies that terminal supports ! changing of window title and icon name similar than xterm. ! That can be used with elmrc option set-window-title. Flag ! keyword xwsh-title that terminal supports changing of window ! title and icon name similar than SGI's xwsh. Folder and file browser ----------------------- --- 12375,12421 ---- terminal. That literal is available only with charset which have type=iso2022. ! It is assumed that these escape sequences do not affect ! to input (keyboard) charset of terminal (ie. do not affect 'keyboard mode' or 'keyboard language'). [ condition ] is like [ exp = exp ] where exp can be either "quoted value" or $ENV_VAR. "quoted value" allow ! also environment variables (same way than Elm ME+ allows on pathnames.) For example that may be used on lines like linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15 ! Read comments about using of these from doc/terminal.info ! ISO-2022-LIKE indicates that terminal assigns private ! codes for the charset. That definition do not define iso 2022 ! codes for the charset, but it is used than these codes are defined for charset. For example that may be used on lines like vt200 ISO-2022-LIKE DEC-MCS left=bank-G0;bank-G0-94=4/2;right=bank-G2;bank-96=3/12 ! DW indicates for system charset that wcwidth() function should be used to get char width. This means that logical width of character ! may be 0, 1 or 2 columns on that terminal. On systems which have __STDC_ISO_10646__ defined, DW flag on terminal.info works like "locale-charsets" ! option if charset and terminal match. ! If charset does not support calculation of visible len and there is DW flag given for that charset and terminal, then error message Double wide characters are not supported is printed. Flag keyword xterm-title specifies that terminal supports ! changing of window title and icon name in the same way as ! xterm. That can be used with elmrc option set-window-title. ! Flag keyword xwsh-title that terminal supports changing of ! window title and icon name similar than SGI's xwsh. Folder and file browser ----------------------- *************** *** 12648,12653 **** --- 12718,12727 ---- (you need set verify=yes, otherwise sendmail is not called for verify) + This (sendmail -bv) works only when sendmail is installed as + setuid root. Starting from sendmail 8.12 sendmail is normally + installed as setgid smmsp and not as setuid root. + Sendmail is also called for verify (of envelope sender address) if allow-set-sender=yes is set. *************** *** 13154,13159 **** --- 13228,13258 ---- do not report error. Valgrind do not report that there is illegal free() somewhere occured. + - EXIF files are sometimes labeled with content-type + image/gif. The also use .jpg filename extension. They are + not accepted by Elm ME+ as image/gif because magic number + (and format) is different. It is unclear what is correct + treatment. According of specification EXIF files may + wrap also other file types than jpeg (JFIF). + + - mailer=sendmail; verify=yes works only when sendmail is installed + as setuid root. Use mailer=submission instead. + * Starting from sendmail 8.12 sendmail is normally + installed as setgid smmsp and not as setuid root. + - However error message is printed only if + verify-local-address=yes is also set + + - mailer=sendmail; allow-set-sender=yes works only + when sendmail is installed as setuid root because this + also uses sendmmail -bv {address} to confirm existense + of envelope sender address. + + - Sometimes installation failes on + elmrc-write -G -I /usr/local/lib/elm.rc.old-values + command on replay phase (elmregister replay). This + however is last operation, so it does not matter. + + Collector of these patches -------------------------- Index: elm2.4.ME+.123d-cvs/hdrs/misclib.h *** elm2.4.ME+.123c/hdrs/misclib.h 2006-07-05 20:21:50.000000000 +0300 --- elm2.4.ME+.123d-cvs/hdrs/misclib.h 2006-09-15 22:56:31.000000000 +0300 *************** *** 1,7 **** ! /* $Id: misclib.h,v 1.7 2006/06/28 19:21:09 hurtta Exp $ */ /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.7 $ $State: Exp $ * * Author: Kari Hurtta * or Kari Hurtta --- 1,7 ---- ! /* $Id: misclib.h,v 1.8 2006/09/15 19:56:31 hurtta Exp $ */ /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.8 $ $State: Exp $ * * Author: Kari Hurtta * or Kari Hurtta *************** *** 143,149 **** /* lib/misc/mime_types.c */ ! extern struct mime_types_item builtin_mimetypes_map[]; extern struct mime_types_item * load_mime_types_map P_((const char *filename, int *errors)); --- 143,149 ---- /* lib/misc/mime_types.c */ ! extern struct mime_types_item * builtin_mimetypes_map; extern struct mime_types_item * load_mime_types_map P_((const char *filename, int *errors)); Index: elm2.4.ME+.123d-cvs/lib/misc/mime_types.c *** elm2.4.ME+.123c/lib/misc/mime_types.c 2006-07-05 20:21:50.000000000 +0300 --- elm2.4.ME+.123d-cvs/lib/misc/mime_types.c 2006-09-15 22:56:31.000000000 +0300 *************** *** 1,7 **** ! static char rcsid[] = "@(#)$Id: mime_types.c,v 1.9 2006/06/28 19:21:09 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.9 $ $State: Exp $ * * Author: Kari Hurtta * or Kari Hurtta --- 1,7 ---- ! static char rcsid[] = "@(#)$Id: mime_types.c,v 1.10 2006/09/15 19:56:31 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $ * * Author: Kari Hurtta * or Kari Hurtta *************** *** 43,49 **** #define U_(x) (unsigned char *)(x) ! struct mime_types_item builtin_mimetypes_map[] = { /* application/postscript */ --- 43,49 ---- #define U_(x) (unsigned char *)(x) ! static struct mime_types_item builtin_mimetypes_map_0[] = { /* application/postscript */ *************** *** 66,71 **** --- 66,72 ---- { NULL, NULL, NULL, NULL, 0,0,NULL }, }; + struct mime_types_item * builtin_mimetypes_map = builtin_mimetypes_map_0; static int ok_byte P_((int byte)); Index: elm2.4.ME+.123d-cvs/src/addr_util.c *** elm2.4.ME+.123c/src/addr_util.c 2006-07-05 20:21:50.000000000 +0300 --- elm2.4.ME+.123d-cvs/src/addr_util.c 2006-09-23 15:34:27.000000000 +0300 *************** *** 1,7 **** ! static char rcsid[] = "@(#)$Id: addr_util.c,v 1.46 2006/04/09 07:37:17 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.46 $ $State: Exp $ * * Modified by: Kari Hurtta * (was hurtta+elm@ozone.FMI.FI) --- 1,7 ---- ! static char rcsid[] = "@(#)$Id: addr_util.c,v 1.49 2006/09/23 12:34:27 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.49 $ $State: Exp $ * * Modified by: Kari Hurtta * (was hurtta+elm@ozone.FMI.FI) *************** *** 581,586 **** --- 581,589 ---- struct string * utf8_temp; unsigned char * utf8_textual; + DPRINT(Debug,10,(&Debug,"build_address_l: processing %S\n", + ptr->Textual)); + /* HACK: We use UTF-8 version of Textual .... */ if (!utf8) *************** *** 603,609 **** if (temp && 0 == string_cmp(temp,ptr->Textual,999)) { /* no change -- preserve original address */ ! int pos = ADD_EXPANDED(result, expanded->addrs[ptr->pos].addr, expanded->addrs[ptr->pos].fullname, expanded->addrs[ptr->pos].comment); --- 606,616 ---- if (temp && 0 == string_cmp(temp,ptr->Textual,999)) { /* no change -- preserve original address */ ! int pos; ! ! DPRINT(Debug,10,(&Debug,"build_address_l: ... no change\n")); ! ! pos = ADD_EXPANDED(result, expanded->addrs[ptr->pos].addr, expanded->addrs[ptr->pos].fullname, expanded->addrs[ptr->pos].comment); *************** *** 631,639 **** ptr1++) { charset_t utf7; - int p; ! char * sep = qstrpbrk(ptr1->addr,"!:@"); if (sep) { DPRINT(Debug,9, --- 638,650 ---- ptr1++) { charset_t utf7; int p; ! char * sep; ! ! DPRINT(Debug,10,(&Debug,"build_address_l: ... got %s\n", ! ptr1->addr)); ! ! sep = qstrpbrk(ptr1->addr,"!:@"); if (sep) { DPRINT(Debug,9, *************** *** 649,656 **** --- 660,673 ---- if (0 == istrcmp(sep+1,hostfullname) || 0 == istrcmp(sep+1,hostname)) { + local_address_verify: + if (verify_local_address) { + DPRINT(Debug,9,(&Debug, + "build_address_l: verifying local address %s\n", + ptr1->addr)); + if (mailer_info && verify_mailer_domaddr(mailer_info, ptr1->addr, *************** *** 710,745 **** } ! } else #ifdef I_NETDB ! if (verify_domain) { ! int r; ! DPRINT(Debug,9, ! (&Debug, ! "build_address_l: verifying domain %s\n", ! sep+1)); - r = verify_mail_domain(sep+1); ! if (0 == r) { ! lib_error(CATGETS(elm_msg_cat, ElmSet, ElmDomainUnknown, ! "Domain %s of address %S is unknown"), ! ! sep+1, ! ptr->Textual); ! } } - #endif ! } else if (sep == NULL && ! mailer_info && ! query_mailer_info(mailer_info,MI_USE_DOMAIN)) { ! ptr1->addr = strmcat(ptr1->addr,"@"); ! ptr1->addr = strmcat(ptr1->addr, hostfullname); } if (text_charset != utf8 && 0 != (CS_mapping & charset_properties(text_charset))) { --- 727,778 ---- } ! } else { #ifdef I_NETDB ! if (verify_domain) { ! int r; ! ! DPRINT(Debug,9, ! (&Debug, ! "build_address_l: verifying domain %s\n", ! sep+1)); ! r = verify_mail_domain(sep+1); ! ! if (0 == r) { ! lib_error(CATGETS(elm_msg_cat, ElmSet, ElmDomainUnknown, ! "Domain %s of address %S is unknown"), ! ! sep+1, ! ptr->Textual); ! } ! } ! #endif ! } ! ! } else { /* Local address */ ! ! ! if (sep == NULL && ! mailer_info && ! query_mailer_info(mailer_info,MI_USE_DOMAIN)) { ! DPRINT(Debug,10,(&Debug, ! "build_address_l: Adding domain %s to address %s\n", ! hostfullname, ptr1->addr)); ! ! ptr1->addr = strmcat(ptr1->addr,"@"); ! ptr1->addr = strmcat(ptr1->addr, hostfullname); } ! ! goto local_address_verify; /* HACK */ } + + if (text_charset != utf8 && 0 != (CS_mapping & charset_properties(text_charset))) { *************** *** 898,903 **** --- 931,939 ---- struct string * comment = NULL; int pos; + DPRINT(Debug,10,(&Debug, + "build_address_l: local address %S verify failed\n", + ptr->Textual)); if (verify_local_address) { switch (errcode) { Index: elm2.4.ME+.123d-cvs/src/pgp.c *** elm2.4.ME+.123c/src/pgp.c 2006-07-05 20:21:50.000000000 +0300 --- elm2.4.ME+.123d-cvs/src/pgp.c 2006-09-20 19:22:21.000000000 +0300 *************** *** 1,7 **** ! static char rcsid[] = "@(#)$Id: pgp.c,v 1.54 2006/04/09 07:37:19 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.54 $ $State: Exp $ * * Modified by: Kari Hurtta * (was hurtta+elm@ozone.FMI.FI) --- 1,7 ---- ! static char rcsid[] = "@(#)$Id: pgp.c,v 1.57 2006/09/20 16:22:21 hurtta Exp $"; /****************************************************************************** ! * The Elm (ME+) Mail System - $Revision: 1.57 $ $State: Exp $ * * Modified by: Kari Hurtta * (was hurtta+elm@ozone.FMI.FI) *************** *** 26,32 **** /* the column in which the userid begins in the 'pgp -kv' command output */ #define PGP2_USERID_OFFSET 30 #define PGP5_USERID_OFFSET 5 ! #define GPG_USERID_OFFSET 30 static char * PGPSelectKey P_((char *n, char **k, int len)); --- 26,32 ---- /* the column in which the userid begins in the 'pgp -kv' command output */ #define PGP2_USERID_OFFSET 30 #define PGP5_USERID_OFFSET 5 ! static char * PGPSelectKey P_((char *n, char **k, int len)); *************** *** 250,256 **** "GetPGPKey: %s\n",buf)); switch(v) { case pgp2: - case gpg: /* see if we've reached the beginning of the key listings... */ --- 250,255 ---- *************** *** 258,264 **** start=1; if (start) { - int Len; /* if we've read all the keys, stop here */ if (buf[0] != 'p' && buf[0] != ' ') --- 257,262 ---- *************** *** 273,291 **** if (!pc) /* this shouldn't happen! */ continue; *pc = '\0'; ! switch(v) { ! case pgp2: pc = buf + PGP2_USERID_OFFSET; break; ! case gpg: pc = buf + GPG_USERID_OFFSET; break; ! } ! Len = strlen(pc)+1; ! keys[keys_len] = (char*)safe_malloc(Len); ! strfcpy(keys[keys_len], pc, Len); ++keys_len; } break; case pgp5: if (strncmp(buf, "uid", 3)==0) { - int Len; if (keys_len == keys_max) keys = (char**)DynamicArray((void **)keys, --- 271,344 ---- if (!pc) /* this shouldn't happen! */ continue; *pc = '\0'; ! pc = buf + PGP2_USERID_OFFSET; ! ! keys[keys_len] = safe_strdup(pc); ++keys_len; } break; + + case gpg: + if (0 == strncmp(buf, "pub ",4)) { + int pos = 4; + char work[SLEN]; + + start=1; + + /* ID */ + pos = get_word(buf,pos,work,sizeof work); + if (-1 == pos) + break; + + /* DATE */ + pos = get_word(buf,pos,work,sizeof work); + if (-1 == pos) + break; + + while (isspace(buf[pos])) + pos++; + + if (!buf[pos]) + break; + + /* Ignore [expires: -text (language may be different) */ + if ('[' == buf[pos]) + break; + + if (keys_len == keys_max) + keys = (char**)DynamicArray((void **)keys, + sizeof(char*), + &keys_max, 5); + + keys[keys_len] = safe_strdup(buf+pos); + keys_len++; + + } else if (start && buf[0] == ' ' || + 0 == strncmp(buf, "uid ",4)) { + + int pos = 4; + + while (isspace(buf[pos])) + pos++; + + if (!buf[pos]) + break; + + if (keys_len == keys_max) + keys = (char**)DynamicArray((void **)keys, + sizeof(char*), + &keys_max, 5); + + keys[keys_len] = safe_strdup(buf+pos); + keys_len++; + + } else + start = 0; + + break; + case pgp5: if (strncmp(buf, "uid", 3)==0) { if (keys_len == keys_max) keys = (char**)DynamicArray((void **)keys, *************** *** 298,306 **** *pc = '\0'; pc = buf + PGP5_USERID_OFFSET; ! Len = strlen(pc)+1; ! keys[keys_len] = (char*)safe_malloc(Len); ! strfcpy(keys[keys_len], pc, Len); ++keys_len; } } --- 351,357 ---- *pc = '\0'; pc = buf + PGP5_USERID_OFFSET; ! keys[keys_len] = safe_strdup(pc); ++keys_len; } } *************** *** 366,377 **** target[0] = '\0'; return_val = -1; } ! } else return_val = -1; ! DestroyDynamicArray((void **)keys); ! DPRINT(Debug,9,(&Debug, "GetPGPKey(name=%s)=%d\n",name,return_val)); return return_val; } --- 417,431 ---- target[0] = '\0'; return_val = -1; } ! } else { ! target[0] = '\0'; return_val = -1; ! } ! DestroyDynamicArray((void **)keys); ! DPRINT(Debug,9,(&Debug, "GetPGPKey(name=%s)=%d, target=%s\n", ! name,return_val,target)); return return_val; } *************** *** 786,795 **** argv[a++] = buf; for (i = 0; a < MAX_ARG -5 && id_array[i]; i++) { argv[a++] = "--recipient"; ! /* Modify id_array so that there is space ! * alloced also for form ! */ ! argv[a++] = kludge_addr(&(id_array[i])); } switch (opts & (PGP_SIGNED_MESSAGE|PGP_MESSAGE)) { case PGP_SIGNED_MESSAGE|PGP_MESSAGE: --- 840,846 ---- argv[a++] = buf; for (i = 0; a < MAX_ARG -5 && id_array[i]; i++) { argv[a++] = "--recipient"; ! argv[a++] = id_array[i]; } switch (opts & (PGP_SIGNED_MESSAGE|PGP_MESSAGE)) { case PGP_SIGNED_MESSAGE|PGP_MESSAGE: