$Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.1013 2005/08/21 13:18:32 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. Version Elm2.4 PL24 ME8b is done by Michael Elkins . For details, check file ANNOUNCE.ME [ Michael Elkins posted the equivalent of MIME code in Elm2.4 PL24 ME8b to Elm Development Coordinator. Later changes are not posted to Elm Development Coordinator. ] 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 of Elm 2.4ME+ PL122c (25) compared with Elm 2.4ME+ PL122b (25) ---------------------------------------------------------------------- [ 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) by 0x808B9D6: free_mime_send_info (mime.c:144) by 0x80871B9: mail (mailmsg2.c:1351) by 0x8083910: send_msg_middle (mailmsg1.c:589) - Ctrl-T {pattern} did not updated messages on screen to be tagged when visible messages was limited with l)imit -command. - Enchance redrawing on Delete message? "received" folder not available, continue leaving folder? Move read message to "received" folder? -prompts. - Fix -Wtraditional warning: mailer.c:1644: warning: non-static declaration for `sendmail_mailer_backend' follows static - Fix -Wtraditional warning: mailer.c:1902: warning: non-static declaration for `submitmail_mailer_backend' follows static - Fix -Wtraditional warning: mailer.c:1932: warning: non-static declaration for `execmail_mailer_backend' follows static - Fix -Wtraditional warning: ../../hdrs/elmlib.h:2278:21: warning: function-like macro "special" must be used with arguments in traditional C > special() -macro is removed, it seems not be used. ( No other -Wtraditional warnings are fixed. ) Changes of Elm 2.4ME+ PL122b (25) compared with Elm 2.4ME+ PL122a (25) --------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fixed some -Wuninitialized compilation warnings. - Ctrl-T 'all' did not updated messages on screen to be tagged when visible messages was limited with l)imit -command. - Ctrl-T 'flagged' did not updated messages on screen to be tagged when visible messages was limited with l)imit -command. - Some minor fixes. Changes of Elm 2.4ME+ PL122a (25) compared with Elm 2.4ME+ PL122 (25) --------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix initialization error on lib/read_rc.c (uses $USER instead of $HOME) when pw_dir is NULL. - "tried PL122 - and compiled with new openssl-0.9.8 !: cc -I../include -I/opt/ssl/include -fPIC -O3 -c pop.c -o pop.o In file included from /opt/ssl/include/openssl/crypto.h:131, from /opt/ssl/include/openssl/comp.h:5, from /opt/ssl/include/openssl/ssl.h:176, from elmtls.h:11, from pop.c:10: /opt/ssl/include/openssl/ossl_typ.h:146: parse error before `2'" "a define collision between elm and openssl seams to be occurring! The token "STORE" is used on both sources!" Problem noted by: Axel Reinhold > Changed order of includes. - Do not add addresses parsed (to, from, cc) addresses twice to header_rec. That occured when mail was not downloaded IMAP mailbox was opened and headers was parsed second time when mail was opened. - Create elm.filelist and parent directories of elm.filelist before starting subprocess on "elmregister master". Changes of Elm 2.4ME+ PL122 (25) compared with Elm 2.4ME+ PL121 (25) -------------------------------------------------------------------- Note: You must create directory lib/mailer before applying this patch! Undo Elm 2.4ME+ PL121a (25) - Elm 2.4ME+ PL121h (25) patches before applying this patch. WARNING: Quite lot of changes in many areas. So please report new bugs which you observe... * Some changes on screen handling: - Moved title, menu and prompt area on mailbox, aliases and attachment screens to own subpage. - Changed layout of attachment screen more similar than other screens. - Removed redraw flag from main loop. - Removed nufoot flag from main loop. - Removed redraw flag from mailbox_command(). - Removed redraw flag from motion(). - Removed nufoot flag from mailbox_command(). - Removed nufoot flag from motion(). - Removed redraw flag from new_mail_check(). - Removed redraw flag from partial_loop(). - Removed nufoot flag from partial_loop(). - Removed redraw flag from digest_loop(). - Removed nufoot flag from digest_loop(). - Removed redraw flag from view_canceled_mails(). - Removed nufoot flag from view_canceled_mails(). - Removed redraw flag from alias(). - Removed nutitle flag from alias(). - Removed nufoot flag from alias(). - Changed passing of redraw data from remail(). - Removed redraw flag from remail(). - Changed passing of redraw data from forward(). - Changed passing of redraw data from reply_to_everyone(). - Removed redraw flag from reply_to_everyone(). - Changed passing of redraw data from send_msg_l() and send_msg_middle(). - Changed passing of redraw data from reply(). - Removed redraw flag from reply(). - Changed passing of redraw data from mail_filled_in_form(). - Changed passing of redraw data from pgp_mail_public_key(). - Changed passing of redraw data from print_text(). - Changed passing of redraw data from save(). - Changed method how headers on aliases and mailbox screen are drawn and updated. - Removed inalias, last_current, last_header_page, headers_per_page and nucurr global variables. - One more mail is listed on mailbox screen. - Removed passing of header_page variable. - Changed method how screen is handled on 'after paging' commands (showmsg_c). - Removed/changed passing of redraw flag on file_browser(), gen_browser() folder_browser(), attach_save() - Changed passing of redraw data from name_copy_file(). - Changed handling of 'prompt area' on Mail Pre-Send Screen and on Message Header Edit Screen screen. - If several -f option is given (for combined view of given folders), starting of Elm ME+ do not fail if first folder is inaccessible. - Handle REDRAW_MARK on pgp_encrypt() - "If you had no aliases yet, and pushed j or k in the aliases menu (or the down or up arrows), you had a "bad item" "common menu panic". The reason was a missing "break" statement in alias_item.c, which was present in the approprite place in mailbox_item.c" From: Kovacs Baldvin ( Patch was agaist Elm ME+ 2.5 but applies also to Elm 2.4ME+ ) - Fix error message Path component "none" not absolute on key "internal-mailcaps" value "none" when on elmrc have line internal-mailcaps = none - Added elmrc option "pgp-encrypt-type", which take values "application/pgp", "text/plain" and "text/x-pgp" (without quotes). These are same values than for pgp-sign-type. Except that this is for encryption. Because encrypted data is ascii armored, also text -type can be used here. Requested by: Axel Reinhold NOTE: Note that using text/plain for excrypted data causes that charset=US-ASCII is used always (for type application/pgp charset paramater is not added). It is little guestionable is that correct. These encrypted types do not interact very well with charsets anyway. - "MIME structure Menu" was draw incorrectly when arrow cursor was used. - "MIME structure Menu" screen's layout now resembles more main mailbox screen. - Handle some ambiguous multipart boundary prefixes. - Ignore empty line before "begin " on uudecode. - "I am seeing two exit messages if I start elm and exit right away using ELM 2.4ME+ PL121" Problem noted by: Bruce Momjian - "On a Solaris 8 machine, if I enter ELM and don't make any changes it now says "Folder unchanged." twice. Not a big deal, but I thought I should report it. :-)" Problem noted by: James Corey > Make sure that first message is erased on exit (usually ti/te erases screen or changes buffers, but that apply to "elm -t" also.) - Added elmrc option "prompt-metamail". If set, also text Parsing MIME structure... metamail not needed is not printed after Parsing MIME structure... text, because opposite situation will be prompted! - Setting "prompt-metamail" (default) causes showing of "Metamail selection" screen. This is same screen than "Mailcap program selection" screen. Answering prompt with p)age command changes screen to "Mailcap program selection" screen. Answering proompt with m)etamail command calls metamail. - Allow canceling of Mailcap program selection with Ctrl-C (interrupt character) on systems which supports POSIX termios. - Canceling of Append to an existing file XXX ? Append to mail folder XXX ? Create a new file XXX ? Create a new mail folder XXX ? Some XXX are already tagged. Remove Tags? One XXX is already tagged. Remove Tags? Are you sure you want to remail this message ? prompts with Ctrl-C (interrupt character) is possible on systems which supports POSIX termios. - Added to Mailcap program selection screen same title than on pager (on case when elmrc option "titles" is set (default)). - "First I did not even understand what I am asked in the attach menu. I tried a .ps file, then I had a question "Use gnome-gv to..." blabla, yes or no. And down there I had "Answer questions, or m)etamail, or q)uit". Now "quit" did not quit from aliases, but instead it behaved as an "OK". Pushing 'm' worked, but I did not know wether it utilized the answer that I gave already, since it asked again (!) if I'd like to use gnome-gv. "F?ck, I do", I thought... Then I've realized what is going on: after I answered yes for the first question, I need to say quit, and then I get gnome-gv..." Problem noted by: Kovacs Baldvin > Changed q)uit command to d)one on Mailcap program selection screen. - Letters 'q' and 'i' leaves now Mailcap program selection without paging message. Note that this changes meaning of 'q' -command. - Added O)verride charset and Ctrl-K (Mail PGP public key) to 'after paging' (showmsg_c) commands. - Added redraw handling to following prompts: 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) by 0x8069EEE: attach_menu (attach_menu.c:2433) - 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) by 0x8163E41: malloc_string (string.c:116) 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) by 0x8133394: elm_vmessage (output.c:1281) 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) by 0x8164109: malloc_string (string.c:116) by 0x8164FDC: cat_strings (string.c:449) 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) by 0x816413D: malloc_string (string.c:116) by 0x81642B8: new_string (string.c:153) by 0x80885D9: enter_helper (in_utils.c:656) by 0x8089324: optionally_enter2 (in_utils.c:1115) by 0x808E52B: limit (limit.c:110) - 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) as flagged. - \Flagged is shown on place of '+' on screen as 'F'. - \Flagged can be modified with with new toggle F)lag command - Flag is saved as letter F on Status: -header for local mailbox - Giving argument "flagged" (without quotes) to l)imit command selects flagged messages. That is not mentioned "?" help of l)imit command, because it it does not fit to 80 characters. That is similar than "tagged" argument to l)imit command. - Command Ctrl-D accepts argument "flagged" (without quotes) which deletes all visible flagged messages. - Command Ctrl-D accepts argument "flagged" (without quotes) which tags all visible flagged messages. - Command Ctrl-U accepts argument "flagged" (without quotes) which undeletes all visible flagged messages. - Changed Ctrl-D command with argument "tagged" (without quotes) so that it deletes only all visible tagged messages (it was deleting also messages which was not on limited selection.) - Set close-on-exec flag for opened local mailbox. - "I am seeing two exit messages if I start elm and exit right away using ELM 2.4ME+ PL121" Problem noted by: Bruce Momjian - "On a Solaris 8 machine, if I enter ELM and don't make any changes it now says "Folder unchanged." twice. Not a big deal, but I thought I should report it. :-)" Problem noted by: James Corey > Make sure that first message is erased on exit (often ti/te erases screen or changes buffers, but that problem apply to "elm -t" also.) - Fix case whare ascii only mail was sent with headers Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=ISO-8859-1 instead of Content-Transfer-Encoding: 7bit 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 xterm. - Seems that mlterm do not handle return to ISO 2022 code ( ESC % @ ) or switch to UTF-8 code ( ESC % G ) ? - Also Elm ME+ do not handle double wide UTF-8 characters - Fixed case where switch to UTF-8 code ( ESC % G ) was given on several times. However after ESC % G only ESC % @ is valid. - 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 - Let ConfTool/LocaleMap also to use ConfTool/validcharset - Changed on lib/precompiled_sets.c: * Changed "ECMA-cyrillic" type from cs_unknown to cs_ascii and given mime name KOI8-E * Added ISO 2022 code for KOI8-E (ISO-IR-111) * Added ISO 2022 code for IRV (codeset "ISO_646.irv:1983") (ISO-IR-2) * Added ISO 2022 code for ISO646-GB (codeset "BS_4730") (ISO-IR-4) * Changed codeset "NATS-SEFI" (ISO-IR-8-1) type from cs_unknown to cs_iso646 * Added ISO 2022 code for codeset "NATS-SEFI" (ISO-IR-8-1) * Added ISO 2022 code for codeset "NATS-SEFI-ADD" (ISO-IR-8-2) (XX) * Added ISO 2022 code for codeset "NATS-DANO" (ISO-IR-9-1) * Added ISO 2022 code for codeset "NATS-DANO-ADD" (ISO-IR-9-2) (XX) * Added ISO 2022 code for ISO646-FI (codeset "SEN_850200_B") (ISO-IR-10) * Added ISO 2022 code for ISO646-SE2 (codeset "SEN_850200_C") (ISO-IR-11) * Added ISO 2022 code for codeset "KS_C_5601-1987" (ISO-IR-149) (XX) * Changed codeset "KS_C_5601-1987" type from cs_unknown to cs_iso2022 * Added ISO 2022 code for codeset "JIS_C6220-1969-jp" (ISO-IR-13) (XX) * Changed codeset "JIS_C6220-1969-jp" type from cs_unknown to cs_iso2022 * Added ISO 2022 code for ISO646-IT (codeset "IT") (ISO-IR-15) * Added ISO 2022 code for ISO646-PT (codeset "PT") (ISO-IR-16) * Added ISO 2022 code for ISO646-ES (codeset "ES") (ISO-IR-17) * Added ISO 2022 code for codeset "greek7-old" (ISO-IR-18) * Added ISO 2022 code for codeset "latin-greek" (ISO-IR-19) * Added ISO 2022 code for ISO646-DE (codeset "DIN_66003") (ISO-IR-21) * Added ISO 2022 code for ISO646-FR1 (codeset "NF_Z_62-010_(1973)") (ISO-IR-25) * Added ISO 2022 code for codeset "Latin-greek-1" (ISO-IR-27) * Added ISO 2022 code for codeset "ISO_5427" (ISO-IR-37) * Added ISO 2022 code for codeset "JIS_C6226-1978" (ISO-IR-42) (XX) * Changed codeset "JIS_C6226-1978" from type cs_unknown to cs_iso2022 * Added ISO 2022 code for codeset "BS_viewdata" (ISO-IR-47) * Added ISO 2022 code for codeset "INIS" (ISO-IR-49) * Added ISO 2022 code for codeset "INIS-8" (ISO-IR-50) * Added ISO 2022 code for codeset "INIS-cyrillic" (ISO-IR-51) * Added ISO 2022 code for codeset "ISO_5427:1981" (ISO-IR-54) (XX) * Added ISO 2022 code for codeset "ISO_5428:1980" (ISO-IR-55) * Added ISO 2022 code for codeset "ISO_5428:1980" (ISO-IR-55) * Added ISO 2022 code for ISO646-CN (codeset "GB_1988-80") (ISO-IR-57) * Added ISO 2022 code for codeset "GB_2312-80" (ISO-IR-58) (XX) * Changed codeset "GB_2312-80" type from cs_unknown to cs_iso2022 * Added ISO 2022 code for ISO646-NO (codeset "NS_4551-1") (ISO-IR-60) * Added ISO 2022 code for ISO646-NO2 (codeset "NS_4551-2") (ISO-IR-61) * Added ISO 2022 code for ISO646-FR (codeset "NF_Z_62-010") (ISO-IR-69) * Added ISO 2022 code for codeset "videotex-suppl" (ISO-IR-70) (XX) * Added ISO 2022 code for ISO646-PT2 (codeset "PT2") (ISO-IR-84) * Added ISO 2022 code for ISO646-ES2 (codeset "ES2") (ISO-IR-85) * Added ISO 2022 code for ISO646-HU (codeset "MSZ_7795.3") (ISO-IR-86) * Added ISO 2022 code for codeset "JIS_C6226-1983" (ISO-IR-87) (XX) * Changed codeset "JIS_C6226-1983" type from cs_unknown to cs_iso2022 * Added ISO 2022 code for codeset "ASMO_449" (ISO-IR-89) * Added ISO 2022 code for codeset "iso-ir-90" (XX) * Added ISO 2022 code for codeset "JIS_C6229-1984-a" (ISO-IR-91) * Added ISO 2022 code for ISO646-JP-OCR-B (codeset "JIS_C6229-1984-b") (ISO-IR-92) * Added ISO 2022 code for "JIS_C6229-1984-b-add" (ISO-IR-93) (XX) * Added ISO 2022 code for codeset "JIS_C6229-1984-hand" (ISO-IR-94) * Added ISO 2022 code for codeset "JIS_C6229-1984-hand-add" (ISO-IR-95) (XX) * Added ISO 2022 code for codeset "JIS_C6229-1984-kana" (ISO-IR-96) * Added ISO 2022 code for codeset "ISO_2033-1983" (ISO-IR-98) (XX) * Added ISO 2022 code for codeset "ANSI_X3.110-1983" (ISO-IR-99) (XX) * Added ISO 2022 code for codeset "T.61-7bit" (ISO-IR-102) * Added ISO 2022 code for codeset "T.61-8bit" (ISO-IR-103) * Added ISO 2022 code for ISO646-CA (codeset "CSA_Z243.4-1985-1") (ISO-IR-121) * Added ISO 2022 code for ISO646-CA2 (codeset "CSA_Z243.4-1985-2") (ISO-IR-122) * Added ISO 2022 code for codeset "CSA_Z243.4-1985-gr" (ISO-IR-123) (XX) * Added ISO 2022 code for codeset "T.101-G2" (ISO-IR-128) (XX) * Added ISO 2022 code for codeset "T.101-G2" (ISO-IR-128) (XX) * Added ISO 2022 code for codeset "CSN_369103" (ISO-IR-139) * Changed codeset "CSN_369103" type fom cs_unknown to cs_ascii * Added ISO 2022 code for ISO646-YU (codeset "JUS_I.B1.002") (ISO-IR-141) * Added to ISO646 sets that MIME-subset=INVARIANT * Added ISO 2022 code for codeset "ISO_6937-2-add" (ISO-IR-141) * Added ISO 2022 code for codeset "IEC_P27-1" (ISO-IR-143) * Changed codeset "IEC_P27-1" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "JUS_I.B1.003-serb" (ISO-IR-146) * Added ISO 2022 code for codeset "JUS_I.B1.003-mac" (ISO-IR-147) * Added ISO 2022 code for codeset "greek-ccitt" (ISO-IR-150) * Added ISO 2022 code for ISO646-CU (codeset "NC_NC00-10:81") (ISO-IR-151) * Added ISO 2022 code for codeset "ISO_6937-2-25" (ISO-IR-152) * Changed codeset "ISO_6937-2-25" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "GOST_19768-74" (ISO-IR-153) * Changed codeset "GOST_19768-74" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "GOST_19768-74" (ISO-IR-153) * Added ISO 2022 code for codeset "ISO_8859-supp" (ISO-IR-154) (XX) * Changed codeset "ISO_8859-supp" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "ISO_10367-box" (ISO-IR-155) (XX) * Changed codeset "ISO_10367-box" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "latin-lap" (ISO-IR-158) (XX) * Changed codeset "latin-lap" type from cs_unknown to cs_ascii * Added ISO 2022 code for codeset "JIS_X0212-1990" (ISO-IR-159) (XX) * Changed codeset "JIS_X0212-1990" type from cs_unknown to cs_iso2022 (XX) Actually it is unclear what that is supposed to mean on context of http://www.iana.org/assignments/character-sets Most of these are not standalone character sets on that sense what MIME use term 'charset' .... - Configure now tests if system support wchar_t type functions. - Moved code of unknown charset type (cs_unknown) 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 tested separately. - On some cases that may cause warning/error message "Unknown charsets are unsupported as keyboard input!" to be printed (specially if there is significant state used on keyboard input.) - If __STDC_ISO_10646__ is defined, then wchar_t is assumed to be Unicode (and 'fallback' mapping is not needed.) - 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() 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. - Keyword DW also may cause error/warning message Double wide characters are not supported to be printed. - On systems which have __STDC_ISO_10646__ defined, DW flag on terminal.info works like "locale-charsets" option, if charset and terminal matches. - Added UTF-8 for mlterm to terminal.info with DW flag. - pw_dir (home directory) and pw_shell is allowed to be NULL on struct passwd. - Added CP1251 as codeset for windows-1251. Seems that this is returned by nl_langinfo(CODESET). - Added CP1252 as codeset for windows-1252. Seems that this is returned by nl_langinfo(CODESET). - Added CP1255 as codeset for windows-1255. Seems that this is returned by nl_langinfo(CODESET). - Added CP1256 as codeset for windows-1256. Seems that this is returned by nl_langinfo(CODESET). - Added CP1257 as codeset for windows-1257. Seems that this is returned by nl_langinfo(CODESET). - Changed evaluation of elmrc option "text-charset". - Changed evaluation of elmrc option "display-charset". - Changed evaluation of elmrc option "local-fs-charset". - Changed evaluation of elmrc option "default-nomime-charset". - Changed evaluation of elmrc option "default-mime-text-charset". - Changed evaluation of elmrc option "imap-charset". - Removed function get_charset_map_info(). - Changed implementation of elmrc option "shell". - Changed implementation of elmrc option "tmpdir". - Changed implementation of elmrc option "maildir" (or "folders"). - Changed implementation of elmrc option "map-text-dir". - Changed implementation of elmrc option "map-bin-dir". - Fixed case where ISO-2022-JP subject was displayed on message list, but when reading mail, subject was replaced with question marks. - Handle better bad sequense of bytes on text (for example bad UTF-8 text). - 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 user='aaa@bbb', host='ccc' Problem noted by: admin - Remove duplicates from bin/elm.mimecharsets during Configure - Compare charset names in case insensitive way on ConfTool/GenCharmap - Added command "elmregister rpm-list", which generates files listing suitable from rpm %files -section. - Declared that Elm ME is "Elm Millenium Edition". Courtesy Vesa-Matti J Kari - get_type_flags() was called with NULL-pointer argument from start_body_helper() line 381. Problem noted by: Vesa-Matti J Kari > Return something 'intelligent' (instead of crashing) in functions of lib/mediatype.c, if them is called with NULL argument. - Do not give NULL pointer for Content-Type: *unknown*/MIXED In other words do not return NULL pointer if give_media_type() is asked to create major media type '*unknown*' ('*unknown*' matched MIME_TYPE_UNKNOWN signaling unknown media type.) - Added module (-M name) option and correspond environment variable $ELM_MODULE to elmregister. - elmregister -M all may be used to register file or command to all modules. - Added command "elmregister rpm-list", which generates files listing per -M option. - Fixed Makefile error on make package ROOT=/tmp/test-install case. - Sorting orders 'mailbox order' and 'reverse mailbox order' was giving same order. Fixed reverse sorting order. - Little change for sorting. - If "unstable-reverse-thread" is set, reverse thread sorting is based on lastest message on thread. Therefore thread moves to new location, when new message arrives to thread. - This variable is settable on o)ptions screen with S)orting criteria command. - Moved enumerate_list on save_opts to own elmrc type rc_DT_ENUM and new data type dt_enumerate_info - Make possible to record changes of elm.rc during installation. - Option -c on elmrc-write and elmlibregister commands gives file, which is used to record changes (old values) of elm.rc during installation. - During installation old values of failed elm.rc options are kept on elm.rc.old-values file. - Use malloc_gets() when reading elm.rc - Added elmrc option "verify-domain". If set mail domains are verified by gethostbyname(). Error HOST_NOT_FOUND is treated as nonexisting domain and error NO_ADDRESS is treated as valid mail domain. - Added elmrc option "verify-local-address". If set usernames of local addresses are verified. Using this option requires that on global elm.rc have "verify=yes" on mailer -option. - Replaced elmrc types DT_ASR and DT_SRT with one type rc_DT_SORT. - Added elmrc option "local-dir-sortby". This specifies sorting order for local files and folders on folder and file browser. Possible values are "none", "name" and "mtime" (and also "reverse-name" and "reverse-mtime"). Default value is "name". - Added elmrc option "imap-dir-sortby". This specfies sorting order for IMAP folders on folder browser. Possible values are "none" and "name" (also "reverse-name"). Default value is "none". - On 21 lines window browser help (Folder selection) was not fitting to screen. - Moved mailer related code from libelmme-base.so to libelmme-mailer.so. - Added elmrc type rc_DT_DELAY. - Moved elmrc option "mailer" to libelmme-mailer.so. It is 'proxied' with elmrc type rc_DT_DELAY. - Added elmrc option "use-mailer-library" to libelmme-mailer.so. It is 'proxied' with elmrc type rc_DT_DELAY. "smtp" (ie. libelmme-smtp.so) is now given on elmrc option "use-mailer-library" (was on "use-connect-library".) - Link libelmme-smtp.so with libelmme-mailer.so, so that loading of libelmme-smtp.so succeed when loader is not linked with libelmme-mailer.so. - If elm is not compiled with -rdynamic, link libelmme-smtp.so with libelmme-base.so, so that symbols can be resolved. - "I got http://www.elmme-mailer.org/elm-ME+2.5.alpha4.tar.gz and tried to compile it on a SuSE 9.2 box. Configure complained about missing termlibs and quit without even generating a makefile. Adding -lncurses in line 6333 of Configure (it now reads for A in '' '-ltermlib' '-lcurses' '-ltermcap ' '-lncurses'; do fixed this and elmme seems to work fine. Maybe you'd like to include this patch in the next release ..." From: Rainer Kaluscha - Code changes for "-Wstrict-prototypes". I hope that these do not broke something else. - Added some support for RFC 2231: MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations - struct string may now carry language indicator - Language specification is now accepted on encoded words. - When replying language specification is normally preserved on replied address (phrase). - [include -command now uses internally file browser for refering file. This should handle better (theoretical) situation where buffer charset is ddeferent than filesystem charset. - filename -arguments on mime -parameters use RFC 2231 encoding. Also non RFC 2231 ascii-only filename argument is produced. - Specially RFC 2231 encoded parameters are ignored for most of other cases. Specially boundary -parameter must not be RFC 2231 encoded. - Added elmrc option "mime-parameters". Possible values are "plain", "encoded" and "plain-and-encoded". If set to "plain", then RFC 2231 encoded parameters are not generated and not used when receiving mail (they still are parsed.) When set to "plain-and-encoded both RFC 2231 encoded value and plain ascii value are generated (specially for filename -parameter) when needed. - Elm option -z (zero) do not longer imply option -n (do not use ti/te). - " would like to have an option like: -z Zero - don't enter Elm if no mail is pending. but: -y Zero - don't enter Elm if no unread mail is pending." Suggested by: Axel Reinhold - Elm option -z now works correctly when several mailboxes (several -f options) are given. Now Elm is not entered when all given mailboxes are empty. - doc/tmac.n states "This package may be circulated freely with the news documentation; it may not be sold, but is to be distributed with the unformatted news documents." Removed, because Elm documentation is other documentation. - Removed documentatiion which depends doc/tmac.n. That documentation is more or less obsolete anyway: doc/Alias.guide doc/Config.guid doc/Elm.cover doc/Form.guide doc/Ref.guide doc/Users.guide - Removed question about formatter of documentation from Configure. - f)orget command on "Mail Pre-Send Screen" incorrectly sent mail when editor buffer was empty and on mail there was on attachment. - Both utils/elmrc-write.c and utils/elmlibregister.c include routine for writing (user or system) elmrc. Moved that to new file lib/write_rc.c. - Changed src/save_opts.c to use lib/write_rc.c. This means that elmrc option are saved on elmrc-info order also when saved from Elm. - Removed offset from struct rc_save_info_rec. It is no longer needed. - Changed default so that term.h is only included on Linux (and not curses.h) - "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. - utils/answer.c included some bogus aliases reading routines. Replaced it fetch_alias(). It still is broken, but that is little better... Problem noted by: From: Mikhail T. New elmrc options: mime-parameters imap-dir-sortby local-dir-sortby locale-charsets pgp-encrypt-type prompt-metamail unstable-reverse-thread verify-domain verify-local-address use-mailer-library New elm command line option: -y Don't enter Elm if no unread mail is pending. New elm command: F)lag New files: src/screen/subpage.c src/screen/wrapper.c src/screen/menu_param.c src/screen/def_scommon.h src/screen/scommon.c src/screen/header.c lib/cs_unknown.c lib/cs_wfallback.c charset/MAPPINGS/koi8-e.txt lib/mailer/Makefile.SH hdrs/mailerlib.h lib/mailer/def_mailer.h lib/mailer/outheaders.c lib/mailer/shared_mailer.c lib/mailer/init.c lib/rc_delay.c melib/mime_param.c lib/write_rc.c Moved files: lib/mailer.c => lib/mailer/mailer.c Removed files: lib/add_site.c lib/strtokq.c doc/tmac.n doc/Alias.guide doc/Config.guid doc/Elm.cover doc/Form.guide doc/Ref.guide doc/Users.guide Changes of Elm 2.4ME+ PL121h (25) compared with Elm 2.4ME+ PL121g (25) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - On 21 lines window browser help (Folder selection) was not fitting to screen. - f)orget command on "Mail Pre-Send Screen" incorrectly sent mail when editor buffer was empty and on mail there was on attachment. Changes of Elm 2.4ME+ PL121g (25) compared with Elm 2.4ME+ PL121f (25) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - get_type_flags() was called with NULL-pointer argument from start_body_helper() line 381. Problem noted by: Vesa-Matti J Kari > Return something 'intelligent' (instead of crashing) in functions of lib/mediatype.c, if them is called with NULL argument. - Do not give NULL pointer for Content-Type: *unknown*/MIXED In other words do not return NULL pointer if give_media_type() is asked to create major media type '*unknown*' ('*unknown*' matched MIME_TYPE_UNKNOWN signaling unknown media type.) - Fixed Makefile error on make package ROOT=/tmp/test-install case - Sorting orders 'mailbox order' and 'reverse mailbox order' was giving same order. Fixed reverse sorting order. - Little change for sorting. - Ignore command letter 'm' on elm.filelist (used on Elm 2.4ME+ PL122). Changes of Elm 2.4ME+ PL121f (25) compared with Elm 2.4ME+ PL121e (25) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix another "Append to mail folder " -question. - 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 user='aaa@bbb', host='ccc' Problem noted by: admin - Remove duplicates from bin/elm.mimecharsets during Configure - Compare charset names in case insensitive way on ConfTool/GenCharmap Changes of Elm 2.4ME+ PL121e (25) compared with Elm 2.4ME+ PL121d (25) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - Set close-on-exec flag for opened local mailbox. - Fix "Append to mail folder " -question. - "I am seeing two exit messages if I start elm and exit right away using ELM 2.4ME+ PL121" Problem noted by: Bruce Momjian - "On a Solaris 8 machine, if I enter ELM and don't make any changes it now says "Folder unchanged." twice. Not a big deal, but I thought I should report it. :-)" Problem noted by: James Corey > Make sure that first message is erased on exit (often ti/te erases screen or changes buffers, but that problem apply to "elm -t" also.) - Fix case whare ascii only mail was sent with headers Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=ISO-8859-1 instead of Content-Transfer-Encoding: 7bit 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 xterm. - Seems that mlterm do not handle return to ISO 2022 code ( ESC % @ ) or switch to UTF-8 code ( ESC % G ) ? - Also Elm ME+ do not handle double wide UTF-8 characters - Fixed case where switch to UTF-8 code ( ESC % G ) was given on several times. However after ESC % G only ESC % @ is valid. - 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) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - 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) by 0x8068ACA: attach_menu (attach_menu.c:2253) 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) by 0x8163E41: malloc_string (string.c:116) 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) by 0x8133394: elm_vmessage (output.c:1281) 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) by 0x8164109: malloc_string (string.c:116) by 0x8164FDC: cat_strings (string.c:449) 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) by 0x816413D: malloc_string (string.c:116) by 0x81642B8: new_string (string.c:153) by 0x80885D9: enter_helper (in_utils.c:656) by 0x8089324: optionally_enter2 (in_utils.c:1115) by 0x808E52B: limit (limit.c:110) 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) ---------------------------------------------------------------------- [ This patch is branch from the main line. ] - "If you had no aliases yet, and pushed j or k in the aliases menu (or the down or up arrows), you had a "bad item" "common menu panic". The reason was a missing "break" statement in alias_item.c, which was present in the approprite place in mailbox_item.c" From: Kovacs Baldvin ( Patch was agaist Elm ME+ 2.5 but applies also to Elm 2.4ME+ ) Changes of Elm 2.4ME+ PL121a (25) compared with Elm 2.4ME+ PL121 (25) --------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix error message Path component "none" not absolute on key "internal-mailcaps" value "none" when on elmrc have line internal-mailcaps = none Changes of Elm 2.4ME+ PL121 (25) compared with Elm 2.4ME+ PL120 (25) -------------------------------------------------------------------- SUMMARY: This release changes handling of shared libraries and includes some other minor changes or fixes. - Better rpath test on Configure - Better soname test on Configure - Some fixes about soname_include_path - Change soname_include_path values define/undef to y/n. It is not used for #define. - Allow setting soname_include_path=n always if rpath works - Add extra libraries needed by shared libraries (shared_libs/*/) to rpath of executable. - Effectively local-fast-lookup = ON is now always used when ASCII filenames are looked. - Removed Configure warning: "(I see you are using the Korn shell. Some ksh's blow up on Configure, especially on exotic machines. If yours does, try the Bourne shell instead.)" - Let builtin pager show also address and not only name of sender! - Fix error RC PANIC in rc_handle.c:1226:expand_dt_path >>>Bad state on end when incorrect elmrc is read weedout = *clear-weed-list*" Changes of Elm 2.4ME+ PL120 (25) compared with Elm 2.4ME+ PL119 (25) -------------------------------------------------------------------- SUMMARY: This release fixes handling of multiple To: headers, refines "showto" semantic and fixes envelope sender of "Canceled mail" -view. - Fix incorrect condition for deleting of messages marked for deletion (actually condition worked on Elm 2.4ME+ and did not worked on Elm ME+ 2.5 because different ison -macro) - Group reply did not worked correctly when on mail there was several To: -headers. - Refine "showto" semantic. If that elmrc variable is set and mail is not addressed to user, then To: address is shown. - Remove < > from address on real_from parsing. - Set envelope from address to username when reading Canceled mail special 'folder'. That way To: -address should be displayed when viewing that 'folder'. Changes of Elm 2.4ME+ PL119 (25) compared with Elm 2.4ME+ PL118 (25) -------------------------------------------------------------------- SUMMARY: This release includes various code changes, changes f)orget command and moves *.Canceled.mail to own directory. This release introduces elmrc option "dead-letter-dir". Any canceled mail can be picked with m)ail command. - Configure now locates system gencat command - Added file nls/Makefile.SH - File nls/Makefile is removed. Now it is generated by Configure - Made leave() to use give_next_open_mailbox() - Added free_all_mailboxes() to src/messages/messages.c - Made leave() to use free_all_mailboxes() - Made rm_temps_exit() to use free_all_mailboxes() - Made silently_exit() to use give_next_open_mailbox() - Made emergency_exit() to use give_next_open_mailbox() - Made leave_locked() to use give_next_open_mailbox() - Made usr1_signal() to use give_next_open_mailbox() - Made usr2_signal() to use give_next_open_mailbox() - Removed current_mailbox global variable - Added free_all_aliasviews() to src/aliases/aliases.c - Made leave() to use free_all_aliasviews() - Made silently_exit() to use free_all_aliasviews() - Made rm_temps_exit() to use free_all_aliasviews() - Made leave_locked() to use free_all_aliasviews() - Removed current_aliaslist global variable - Added menu_trigger_redraw() to src/screen/context.c - Changed resync() to use menu_trigger_redraw() - Changed help() to use menu_trigger_redraw() - Changed do_pipe() to use menu_trigger_redraw() - Changed change_file() to use menu_trigger_redraw() - Changed print_msg() to use menu_trigger_redraw() - Changed subshell() to use menu_trigger_redraw() - Changed pgp_extract_public_key() to use menu_trigger_redraw() - Changed forward() to use menu_trigger_redraw() - Changed reply_to_everyone() to use menu_trigger_redraw() - Changed pgp_mail_public_key() to use menu_trigger_redraw() - Changed send_msg_l() to use menu_trigger_redraw() - Changed print_text() to use menu_trigger_redraw() - Changed reply() to use menu_trigger_redraw() - Changed save() to use menu_trigger_redraw() - Changed pattern_match() to use menu_trigger_redraw() - Changed limit() to use menu_trigger_redraw() - Changed read_number to use menu_trigger_redraw() - Changed alias_help() to use menu_trigger_redraw() - Changed a_sendmsg() to use menu_trigger_redraw() - Changed mailbox_command() to use menu_trigger_redraw() - Changed motion() to use menu_trigger_redraw() - Changed new_mail_check() to use menu_trigger_redraw() - Changed mail() to use menu_trigger_redraw() - Changed send_msg_middle() to use menu_trigger_redraw() - Changed send_form() to use menu_trigger_redraw() - Added menu_trigger_redraw() to get_copies() - Added menu_trigger_redraw() to get_to() - Added menu_trigger_redraw() to copy_the_msg() - Added menu_trigger_redraw() to get_subject() - Changed send_msg_argv() to use menu_trigger_redraw() - Moved *.Canceled.mail to own directory Canceled.mail.dir - Editor buffer for f)orget messages is not kept. Instead cancele mails are picked from Canceled.mail.dir on m)ail -command ('/' on To: prompt gives menu of cancelled messages.) - Canceled.mail.dir is not available as folder (it can not given for c)hange folder commmand or -f option of Elm.) - When canceled mail is picked from re-sending, is is also deleted from Canceled.mail.dir (f)orget command will re-add it to Canceled.mail.dir.) - Name of Canceled.mail.dir can be changed with elmrc option dead-letter-dir. - Removed give_message_folder() - Added -g option to Configure New elmrc options: dead-letter-dir New file: src/messages/canceled_mail.c src/canceled.c nls/Makefile.SH Removed file: nls/Makefile (this is now generated by Configure) Changes of Elm 2.4ME+ PL118 (25) compared with Elm 2.4ME+ PL117 (25) -------------------------------------------------------------------- Undo Elm 2.4ME+ PL117a (25) and Elm 2.4ME+ PL117b (25) patches before applying this patch. SUMMARY: This release collects PL117a and PL117b patches, make possible to cancel some actions or prompts with interrupt character on POSIX systems, changes letter of 'invoke editor' command on header editing screen and makes some other changes or fixes. - Interrupt signal (Ctrl-C) was ignored only, if Elm ME+ was compiled with -DDEBUG option. Problem noted by: Laura Kataja - Fix bug where Elm2.4ME+ PL117 was acting always as dsn-success was set. - Message/check "signature" used in obsolete way in .elm/elmrc file. removed. - Moved get_term_chars() from src/init.c to src/screen/init.c - PL108 added 'invoke e)ditor' command to header editing screen. That conflicts with 'E)xpires' command. Changed command to 'invoke e(d)itor'. - Allow canceling of following prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: Set current XXX to : Description: (Attachment Configuration) Content-Type: (Attachment Configuration) Content-Disposition: (Attachment Configuration) Search: (builtin pager) From: (Message Header Edit Screen) To: (Message Header Edit Screen) Cc: (Message Header Edit Screen) Bcc: (Message Header Edit Screen) Subject: (Message Header Edit Screen) Reply-to: (Message Header Edit Screen) Action: (Message Header Edit Screen) Priority: (Message Header Edit Screen) Precedence: (Message Header Edit Screen) In-reply-to: (Message Header Edit Screen) user defined header on Message Header Edit Screen Enter criteria or '?' for help: Send the message to: (prompt of m)ail command) To: (prompt of m)ail command) Subject: (prompt of m)ail command) Copies to: (prompt of m)ail command) Return-path: (Mail Pre-Send Screen) E)ditor (primary) : (ELM Options Editor) D)isplay mail using : (ELM Options Editor) C)alendar file : (ELM Options Editor) O)utbound mail saved : (ELM Options Editor) P)rint mail using : (ELM Options Editor) Y)our full name : (ELM Options Editor) V)isual Editor (~v) : (ELM Options Editor) E)xpires: (ELM Options Editor) Precede(n)ce: (ELM Options Editor) Enter pattern: To: (when encrypting message (pgp)) From: (when signing message (pgp)) Enter userid of public key: (prompt of Ctrl-K command) Override charset: Shell command: Pipe to: Enter alias name: (Alias mode) Current message address aliased to: Enter address for XXX: (Alias mode) Fully expand alias: (Alias mode) Enter last name for XXX: Enter first name for XXX: Enter optional comment for XXX: Forward message as separate part? Copy message? (prompt of m)ail command) Edit outgoing message? (prompt of f)orward command) Enter encryption key: (on sending mail) Text part XX have control characters. Encode text with quoted-printable? (on sending mail) - Treate Ctrl-C (interrupt character) as No on following prompts (on systems which support POSIX termios): Abandon change to mailbox? Abandon changes to mailbox? - Handling interrupt (Ctrl-C) on builtin editor without signals on systems which support POSIX termios (that edit_interrupt signal handler is not safe!) - GetPGPKey() did not always re-enabled raw-mode - Allow canceling of following (folder browser) prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: Change to which folder: Save text of message to: Copy text of message to: Save text messages to: Copy text messages to: Save message to: Copy message to: Save messages to: Copy messages to: Save copy in (use '?' for help): - Allow canceling of following (file browser) prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: To file: (MIME structure Menu) Filename: (Attachment Configuration) - Allow canceling leaving of folder on following prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: Delete message? Delete messages? Move read message to \"received\" folder? Move read messages to \"received\" folder? Keep unread message in incoming mailbox? Keep unread messages in incoming mailbox? - Now on address prompts also works \ quotation of interrupt character (for example @, if set that way) on systems which supports POSIX termios. - Allow canceling of password prompt of IMAP/POP with Ctrl-C (interrupt character) on systems which supports POSIX termios: Password for XXX@YYY: - Allow canceling of IMAP/POP connection attempt with Ctrl-C (interrupt character) on systems which supports POSIX sigaction: Connecting to XXX - Allow canceling alias menu help prompt with Ctrl-C (interrupt character) on systems which supports POSIX termios - Allow canceling messages/mailbox menu help prompt with Ctrl-C (interrupt character) on systems which supports POSIX termios - Allow canceling options menu help prompt with Ctrl-C (interrupt character) on systems which supports POSIX termios - Add READCH_CURSOR to ReadCh options (on options screen and elsewhere) so that escape sequences from cursor keys do not cause misinterpration of selected option. - Allow folowing ON/OFF prompts to be canceled on options menu with Ctrl-C (interrupt character) on systems which supports POSIX termios: A)rrow cursor : M)enu display : - Allow options menu sorting criteria prompt to be canceled with Ctrl-C (interrupt character) on systems which supports POSIX termios: S)orting criteria : - Allow canceling DSN (Delivery Status Notification) Configuration menu with Ctrl-C (interrupt character) on systems which supports POSIX termios - Allow canceling DSN (Delivery Status Notification) Configuration menu prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: Return H)eaders only on FAILURE: Return DSN on F)AILURE : TRUE D)ELAY : TRUE S)UCCESS : TRUE U)se defaults (DSN off) : FALSE - Allow quiting Attachment Configuration menu with Ctrl-C (interrupt character) on systems which supports POSIX termios (this not necessary forget/undo made changes however.) - Allow canceling encoding prompt on Configuration menu with Ctrl-C (interrupt character) on systems which supports POSIX termios: Content-Transfer-Encoding: - Allow quiting Attachment Menu with Ctrl-C (interrupt character) on systems which supports POSIX termios (this not necessary forget/undo made changes however.) - Redraw Mail Pre-Send Screen when quiting Attachment Menu or DSN menu. - Allow quiting Message Header Edit Screen with Ctrl-C (interrupt character) on systems which supports POSIX termios (this not necessary forget/undo made changes however.) - Allow quiting help text viewer with Ctrl-C (interrupt character) on systems which supports POSIX termios: Press to continue, 'q' to return. - Allow quiting of builtin pager with Ctrl-C (interrupt character) on systems which supports POSIX termios - Treate message/disposition-notification as message/delivery-status (similar than text/plain). - Fix for valgrind reported error Conditional jump or move depends on uninitialised value(s) at 0x80E3654: mail_gets (mail_gets.c:37) - Fix for valgrind reported error Conditional jump or move depends on uninitialised value(s) at 0x80E73AC: give_media_type2 (mediatype.c:282) by 0x80E7260: give_media_type (mediatype.c:241) - Allow interrupting pgp/gpg message signing wint interrupt character (or SIGINT, Ctrl-C). - Allow canceling leaving of alias menu on following prompts with Ctrl-C (interrupt character) on systems which supports POSIX termios: Delete 1 alias? Delete XX aliases? New file: src/screen/init.c lib/cancel.c Changes of Elm2.4ME+ PL117b (25) compared with Elm2.4ME+ PL117a (25) -------------------------------------------------------------------- [ This patch is branch from the main line. ] - Interrupt signal (Ctrl-C) was ignored only, if Elm ME+ was compiled with -DDEBUG option. Problem noted by: Laura Kataja Changes of Elm2.4ME+ PL117a (25) compared with Elm2.4ME+ PL117 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix bug where Elm2.4ME+ PL117 was acting always as dsn-success was set. Changes of Elm2.4ME+ PL117 (25) compared with Elm2.4ME+ PL116 (25) ------------------------------------------------------------------- Undo Elm 2.4ME+ PL116a (25) patch before applying this patch. SUMMARY: This release collects patch Elm2.4ME+ PL116a, implements reconnection to mailer=submission, adds pgp-interactive and askmimeforward elmrc options and prompts about mimeforward on f)orward command. - Fix debug output of dump_expanded_address() - Implement reconnection for mailer=submission (however reconnection is not implemented for mailer=sendmail-bs). These mailer's open smtp (or submission) connection to server before editor is started. That is done for get capacity of mailer (for 8BITMIME). However sometime that times out if editing tooks too long and sending of mail fails. - Trying send encrypted messages with gpg was giving error message Couldn't find key matching 'xxx@yyy' Problem noted by: Olivier COLIN (and probably others) > Make GetPGPKey() retry reading of result on case of interrupt. - GetPGPKey() was not collect status of exted gpg and was left lot of defunct processes. Converted code to use start_run(). - Reprint last error on "Mail Pre-Send Screen" after clearing screen. - Added pgp-interactive option to elmrc. Setting that disables batch mode of pgp/gpg when encrypting/signing mail. - Alternatives and weedout and list was replaced with Q letters Problem noted by: Cyrille Lefevre - Do not quote addresses on alternatives. - Added elmrc variable type rc_DT_ESTR (aka kind of expanded string). - Reimplemented elmrc variable "pager" as rc_DT_ESTR - Reimplemented elmrc variable "editor" as rc_DT_ESTR - Reimplemented elmrc variable "calendar" as rc_DT_ESTR - Reimplemented elmrc variable "localsignature" as rc_DT_ESTR - Reimplemented elmrc variable "remotesignature" as rc_DT_ESTR - Reimplemented elmrc variable "receivedmail" as rc_DT_ESTR - Reimplemented elmrc variable "sentmail" as rc_DT_ESTR - Reimplemented elmrc variable "incoming-mailbox" as rc_DT_ESTR - Removed valid_rc_type() - Add package test to Configure (as it is done Elm ME+ 2.5) for case that wrong config.sh is used. - Added malloc_gets() to lib/mail_gets.c - Changed send_msg_l(), mail(), mail_form(), mail_filled_in_form(), forward(), reply_to_everyone(), and reply() to use index, mailbox instead of current_header, infile, mailbox. - 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 Forward message as separate part? default value of answer depends "mimeforward" elmrc option. Setting elmrc option "askmimeforward" to OFF disables that prompt. - Added expanded_address_from_items() to lib/outheaders.c - Removed class_charset() from melib/mime_parse.c New elmrc options: pgp-interactive askmimeforward Changes of Elm2.4ME+ PL116a (25) compared with Elm2.4ME+ PL116 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] - Alternatives and weedout and list was replaced with Q letters Problem noted by: Cyrille Lefevre - Reprint last error on "Mail Pre-Send Screen" after clearing screen. - Trying send encrypted messages with gpg was giving error message Couldn't find key matching 'xxx@yyy' Problem noted by: Olivier COLIN (and probably others) > Make GetPGPKey() retry reading of result on case of interrupt. - GetPGPKey() was not collect status of exted gpg and was left lot of defunct processes. Converted code to use start_run(). - Do not quote addresses on alternatives. Changes of Elm2.4ME+ PL116 (25) compared with Elm2.4ME+ PL115 (25) ------------------------------------------------------------------- SUMMARY: This patch fixes handling of unexpected return value of nl_langinfo(CODESET) on AIX, fixes value check of "internal-mailcaps" and "metamail-mailcaps" elmrc variables, fixes some prompts on situation where leaving of folder fails, reimplements "alternatives" and "weedout" elmrc variables, changes elm.filelist format (adds subcommand "copydoc" to elmregister), adds -s option to elmregister and adds RFC 2919 List-ID to list of known headers. WARNING: There is small change on elm.filelist format, so downgrading from Elm2.4ME+ PL116 (25) to Elm 2.4ME+ PL115 (25) or to Elm ME+ 2.5 PLalpha0 will not work (you need unistall or remove elm.filelist first.) - " When installing ELM (on AIX 5L), I get the following message: | Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset. | Codeset name ISO8859-1 was unknown. Treating ISO8859-1 as MIME name. | Check /usr/local/lib/elm/elm.mimecharsets or | noam/.elm/mime.charsets | WARNING: Locale en_US (charset ISO8859-1) is unsupported, will cause problems! | Problem with locale (system character set)! Elm ME+ will | behave erratically." Problem noted by: Noam G. Nudelman - dt_PATH_print_value() was not printing always empty values correctly. - fix test on expand_dt_path(). Specially non-file values on "internal-mailcaps" and "metamail-mailcaps" was not giving error message. - Prompt "Failed to leave folder: Try to change again ? [P]anic" did not worked. Added new routine prompt_letter() - Changed prompt "Failed to leave folder: Try to quit again ?" - Changed prompt ""received" folder not available, continue? (y/n) n" - Also changed default answer to be yes on that prompt (that is usefull only when received folder is remote, but that error may occur also is somebody is set receivedmail = /invalid ) - Fix some possible compilation problems with traditional C compilers (as opposed to ANSI C ompilers) - Reimplemeted elmrc "alternatives" as type PATH and removed special elmrc type for alternatives. - Reimplemeted elmrc "weedout" as type PATH and removed special elmrc type for weedout. If first element on list is "*clear-weed-list*", then builtin weedout list is not used. - Fix typo PROMTP_yesno (to PROMPT_yesno) on Elm2.4ME+ PL115a (25) - Added command "elmregister copydoc" which works like "elmregister copy", but marks file to be document. - Added option "-s {stage-subdir}" to command "elmregister {command}". - Added RFC 2919 List-ID -header to array on lib/headers.c - Fix missing space between pharse and < > on result of hdr_decode_from_phrase() on lib/headers.c - If on header editing screen incoked editor and address was on form '"a" (c)", and then edited it on header editing screen address become as '"a" (c('. Changed on '(' to ')' on make_surface_addr() on lib/outheaders.c Changes of Elm2.4ME+ PL115a (25) compared with Elm2.4ME+ PL115 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch fixes handling of unexpected return value of nl_langinfo(CODESET) on AIX, fixes value check of "internal-mailcaps" and "metamail-mailcaps" elmrc variables and fixes some prompts on situation where leaving of folder fails. - " When installing ELM (on AIX 5L), I get the following message: | Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset. | Codeset name ISO8859-1 was unknown. Treating ISO8859-1 as MIME name. | Check /usr/local/lib/elm/elm.mimecharsets or | noam/.elm/mime.charsets | WARNING: Locale en_US (charset ISO8859-1) is unsupported, will cause problems! | Problem with locale (system character set)! Elm ME+ will | behave erratically." Problem noted by: Noam G. Nudelman - dt_PATH_print_value() was not printing always empty values correctly. - fix test on expand_dt_path(). Specially non-file values on "internal-mailcaps" and "metamail-mailcaps" was not giving error message. - Prompt "Failed to leave folder: Try to change again ? [P]anic" did not worked. Added new routine prompt_letter() - Changed prompt "Failed to leave folder: Try to quit again ?" - Changed prompt ""received" folder not available, continue? (y/n) n" - Also changed default answer to be yes on that prompt (that is usefull only when received folder is remote, but that error may occur also is somebody is set receivedmail = /invalid ) - Fix some possible compilation problems with traditional C compilers (as opposed to ANSI C ompilers) Changes of Elm2.4ME+ PL115 (25) compared with Elm2.4ME+ PL114 (25) ------------------------------------------------------------------ SUMMARY: This release changes temporary folder location on some situations, fixes crash on c)hange command on alias menu, adds elmrc options "local-sessionlock-dir" and "local-sessionlock-use-home", and changes SIGWINCH handling when waiting for editor. - If opened local mailbox is on somewhere else than on spool directory, use "tmpdir" setting from elm.rc for location of temporary file "mbox.{mailbox}-{username}" instead default_temp. NOTE: "tmpdir" was already used for temporary file "mbox.{username}@{popserver}" when reading pop mailbox and for temporary file "mbox.{username}@{imapserver}:{folder}" when reading imap folder of mailbox. - If opened local mailbox is on spool directory, use (new) "local-sessionlock-dir" setting from elm.rc for location of temporary file "mbox.{mailbox}" instead default_temp. - Added new elmrc option "local-sessionlock-dir". - "There are two behaviors that I need changed. One is the location of the temporary mbox-USERNAME file. Because our homedirs are nfs mounted to whatever machine we sit down at, having the temporary mbox-USERNAME file located in /tmp (or anywhere else local to the machine we are currently using) is not adequate protection from launching two invocations of elm on two different workstations and having both try and update the same inbox. This usually results in an error message about the mailbox being corrupted when we return to our primary workstation. To solve this it works better for us if the mbox-USERNAME file resides in our homedirs. I found no way to set this using the Configure script (can't use $HOME), so I did it by modifying imap.c, localmbx.c, and remote_mbx.c. Also, we prefer that these files be dot files (.mbox-USERNAME) so I also modified sysdefs.SH." Problem noted by: J.C. Webber III > Added new elmrc option "local-sessionlock-use-home". Possible values are "never", "spool", "always" and "non-spool". If this is set to "always", local mailbox opened use home for temporary file. Temporary file is renamed to ".mbox.{mailbox}-{username}" or ".mbox.{mailbox}". If this is set to "spool", temporary file for local mailboxes opened from spool directory are put to home directory. If this is set to "non-spool", temporary file for local mailboxes opened from non-spool directory are put to home directory. Value "never" do not relocate temporary file. - Fix crash when changing alias... - set SIGWINCH to SIG_DFL only on child (on system_call()) so that Elm will call menu_context_resize() when it is waiting child to complete ... New elmrc options: local-sessionlock-dir local-sessionlock-use-home Changes of Elm2.4ME+ PL114 (25) compared with Elm2.4ME+ PL113 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL113a (25) patch before applying this patch. SUMMARY: This release collects PL113a patch, adds hack for hidding certain management mail used by some imap servers and splits elmrc option use-library to two variables. That should reduce loading of unnecessary libraries. New elmrc options "message-hide-hack", "use-base-library" and "use-connect-library" are added to this release. - "wouldn't it be nice to have an option to hide the management mail in imap-folders. This mail is in every mail-folder which is also accessed by imap. It always has: Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA I always use elm, but also access my mailbox remotely via imap. To access it locally with elm also by imap is slow, compared to direct access." Requested by: Axel Reinhold > Added elmrc option "message-hide-hack". Possible values are "none" and "FOLDER INTERNAL DATA". Hiding of that management mail do not affect to '-z' option -- that option still sees that mailbox is non-zero size. Also that option do not effect to any tools of elm. In other words 'frm' shows that management mail. - "I tried to compile elm2.4.ME+.113 on AIX 5.1 (maintenance level 05) or on AIX 5.2 (maintenance level 02) with gcc version 3.3.2 and got stuck with: gmake[1]: Entering directory `noam/elm2.4.ME+.113/src/screen' gcc -I../../hdrs -fpcc-struct-return -fPIC -O -c -o curses.o curses.c curses.c:282: error: parse error before '->' token" Problem reported by: Noam G. Nudelman > Fix again compilation problem fixed on PL106 but re-introduced on PL108. - "When running 'elm -c alias_name' with Elm 2.4ME+ PL113 on AIX, I get: ALIAS VIEW PANIC in aliases.c:340:update_aview >>>bad aliasview magic" Reported by: Noam G. Nudelman - On linux "elm -c xxx" crashes with: SIGNAL PANIC in signals.c:102:segv_signal >>> Segment Violation signal! > Moved initialization of aliasview to earlier. - Splited elmrc variable use-library = iconv smtp tls to two variables use-base-library = iconv use-connect-library = smtp tls - Content of variable use-library is automatically moved to variables use-base-library and use-connect-library. - This splitting tries avoid loading of unnecessary libraries. Note however that these libraries are loaded anyway if library specific options are used on elmrc or on mail.services. Also giving for example mailer = submission on global elm.rc load all libraries given on use-connect-library. New elmrc options: use-base-library use-connect-library message-hide-hack New files: lib/shared_all.c lib/shared_base.c lib/shared_connect.c Changes of Elm2.4ME+ PL113a (25) compared with Elm2.4ME+ PL113 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] - "I tried to compile elm2.4.ME+.113 on AIX 5.1 (maintenance level 05) or on AIX 5.2 (maintenance level 02) with gcc version 3.3.2 and got stuck with: gmake[1]: Entering directory `noam/elm2.4.ME+.113/src/screen' gcc -I../../hdrs -fpcc-struct-return -fPIC -O -c -o curses.o curses.c curses.c:282: error: parse error before '->' token" Problem reported by: Noam G. Nudelman > Fix again compilation problem fixed on PL106 but re-introduced on PL108. - "When running 'elm -c alias_name' with Elm 2.4ME+ PL113 on AIX, I get: ALIAS VIEW PANIC in aliases.c:340:update_aview >>>bad aliasview magic" Reported by: Noam G. Nudelman - On linux "elm -c xxx" crashes with: SIGNAL PANIC in signals.c:102:segv_signal >>> Segment Violation signal! > Moved initialization of aliasview to earlier. Changes of Elm2.4ME+ PL113 (25) compared with Elm2.4ME+ PL112 (25) ------------------------------------------------------------------ SUMMARY: This release changes base64 decode algorithm, adds decoder from X-uuencoded content-transfer-encoding and adds handling of resizing to many screen. - Reimplemented base64_decode() from routine of kehlist (first occured on kehlist 1.1.2 9 Jun 1999 Author: Kari E. Hurtta ) [ Well, basically same decoding routine is on cs_add_streambyte_to_s_utf7() on lib/cs_utf.c And also found from kehpager (UTF7_convert() on charset.c, kehpager 1.2 1994 Author: Kari Hurtta ] - Added uudecode() routine, used for decoding nonstandard X-uuencoded content-transfer-encoding - Resizing of terminal is handled now also on following screens: - ELM Options Editor - Alias mode - Mail Pre-Send Screen - Message Header Edit Screen - Message Edit Screen (builtin editor) (perhaps) - Attachment Menu - MIME structure Menu - builtin pager - Folder selection (folder browser) - File selection (directory browser) - Attachment Configuratio (not an a filename or other prompts) - Multiple keys match (pgp key selection) - DSN (Delivery Status Notification) Configuration Resizing is not handled when some data is prompted on these screens. Generally that causes redraw event, which not repage / resize text but instead just redraws prompt. - Fixed compilation problem on case where REMOTE_MBX is not defined. - optionally_enter2 was not prompting text correctly when OE_APPEND_CURRENT was set. New files: src/screen/context.c Changes of Elm2.4ME+ PL112 (25) compared with Elm2.4ME+ PL111 (25) ------------------------------------------------------------------ Note: You must create directory src/menu_common before applying this patch! WARNING: Unified code between aliases and mailbox menu. Speciall there is changes of l)imit command. So please report new bugs which you observe... SUMMARY: This release collects patches PL111a and PL111b, unifies common routines of aliases and messages and changes handling of obsolete elmrc options. Now some more commands, which work on mailbox menu, works also on aliases menu. - Unified common routines for aliases and messages to struct menu_common. - 'ifmain' macro removed. - Giving argument 'tagged' to Ctrl-D works now also on aliases menu. - Argument 'all' on Ctrl-T now works also on aliases menu. - And ('&') and or ('|') on l)imit command are now available also on aliases menu. - Condition 'tagged' on l)imit command is available now also on aliases menu. - Fix crash on parse failure on command "View digest as mailbox". - Fix for src/Makefile - Fix crash if 'U' is pressed on aliases menu: SIGNAL PANIC in signals.c:102:segv_signal - Changed bug reporting address to elm@elmme-mailer.org (that is directed to hurtta+elm@posti.FMI.FI) - "I think they should be Warnings only. Like say Elmrc variable "bounceback" is obsolete and should be removed. and come up anyway." Requested by: James Corey > Added type rc_DT_OBS > Now warning Elmrc variable "XXX" is obsolete and should be removed from line YYY in "ZZZ" file is printed, but that is not very visible, because it was requested that Elm should be started on interactive mode anyway. > If iso646-charsets or compatcharsets is used, print also warning Setting "XXXX" on line YYY in "XXX" file is suboptimal. Use file .... or .elm/mime.charsets instead. - Do not drop privileges if -X (transcript file) option is given. Re-added elmrc options as obsolete: bounce bounceback hpkeypad hpsoftkeys keypad mailbox (was originally synonym of receivedmail) softkeys textencoding New files: src/menu_common/def_mcommon.h src/menu_common/Makefile.SH src/menu_common/mcommon.c src/menu_common/alias.c src/menu_common/mailbox.c src/menu_common/alias_limit.c src/menu_common/message_limit.c src/menu_common/alias_pattern.c src/menu_common/message_pattern.c src/menu_common/alias_screen.c src/menu_common/message_screen.c src/menu_common/mailbox_item.c src/menu_common/alias_item.c Changes of Elm2.4ME+ PL111b (25) compared with Elm2.4ME+ PL111a (25) -------------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix crash on parse failure on command "View digest as mailbox". Changes of Elm2.4ME+ PL111a (25) compared with Elm2.4ME+ PL111 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch fixes crash caused by 'U' command on aliases menu. - Fix for src/Makefile - Fix crash if 'U' is pressed on aliases menu: SIGNAL PANIC in signals.c:102:segv_signal - Changed bug reporting address to elm@elmme-mailer.org (that is directed to hurtta+elm@posti.FMI.FI) Changes of Elm2.4ME+ PL111 (25) compared with Elm2.4ME+ PL110 (25) ------------------------------------------------------------------ Note: You must create directory src/aliases before applying this patch! WARNING: Quite many changes specially on aliases. So please report new bugs which you observe... SUMMARY: This release collects patch PL110a, changes pub report address and makes some other changes. NOTE: Seems that anonymous ftp (and ftp.ozone.fmi.fi) will be removed. Then ftp://ftp.ozone.fmi.fi/KEH/ is not available ( http://www.ozone.fmi.fi/KEH/ probably remain. ) Also ozone.fmi.fi will retire. - Fix incorrect test on copy_pgp() -- length test should be applied to original data -- not a output of pgp (or gpg). - Add similar handling of interrupted read to copy_pgp() than is on pgp_decode() - Handle raw mode of terminal and status pg pgp/gpg on copy_pgp() wame way than on pgp_decode() - Make O)verride charset also be effective, when viewing attachment via MIME structure Menu -menu. - Elm was not displaying To: -address on some situations when showto was set, but acted instead as recipient was sender (or as mail was directed to user.) Possibly reported by: Sivasankar Chander ( Perhaps showto should ignore case where sender is recipient? ) - Changed alias routines. ( Why hash database is used for aliases, when aliases are searched linearly? -- see src/aliases/find_alias.c (originally src/find_alias.c)) - Avoid message [ Charset US-ASCII converted... ] as special case when using displaycharset=UTF-8. ( Also setting charset-convert-ok=Yes disables this message. ) - Changed bug report address Kari Hurtta to Kari Hurtta New files: src/aliases/Makefile.SH src/aliases/def_aliases.h src/aliases/aliases.c src/aliases/alias_alloc.c src/aliases/astorage.c src/aliases/astorage_hash.c Renamed files: src/find_alias.c => src/aliases/find_alias.c Changes of Elm2.4ME+ PL110a (25) compared with Elm2.4ME+ PL110 (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] SUMMARY: This patch fixes case, where output of pgp/gpg was not shown sometimes (on non-MIME messages), case where O)verride charset was ignored when displaying attachment (via MIME structure Menu -menu), and case where To: address was not shown on message list when showto elmrc option was set. - Fix incorrect test on copy_pgp() -- length test should be applied to original data -- not a output of pgp (or gpg). - Add similar handling of interrupted read to copy_pgp() than is on pgp_decode() - Handle raw mode of terminal and status pg pgp/gpg on copy_pgp() wame way than on pgp_decode() - Make O)verride charset also be effective, when viewing attachment via MIME structure Menu -menu. - Elm was not displaying To: -address on some situations when showto was set, but acted instead as recipient was sender (or as mail was directed to user.) Possibly reported by: Sivasankar Chander ( Perhaps showto should ignore case where sender is recipient? ) Changes of Elm2.4ME+ PL110 (25) compared with Elm2.4ME+ PL109 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL109S (25) patch before applying this patch. Undo Elm2.4ME+ PL109a (25) and Elm2.4ME+ PL109b (25) patches before applying this patch. SUMMARY: This release collects patches PL109a and PL109b. Security fixes introduced in PL109S are included. Bogus charset initialization error caused by missing global elm.mimecharsets file is fixed. Some enchancements to l)imit command are introduced. This release also fixes extra "[Keeping all messages.]" messages introduced on PL109a fix. File MIME.txt compares Elm ME+ to MIME conformace criteria. - This file states "But anyway, Elm will never be MIME Conformant." Added file MIME.txt which enumerates RFC 2049 requirements and look which reuirements are not followed and on what conditions. - Change some Raw(OFF) to Raw_OFF() on leaving routines of src/utils.c > Also clear "[Keeping all messages.]" messages after leaving folder so that these are not printed because of Raw_OFF(); - Try fix MBX PANIC in imap.c:2578:end_imap_command when IMAP / TLS connection is closed by server. - Initialization of internal-mailcaps and metamail-mailcaps did not worked correctly. Moved initialization before reading of global elm.rc. Problem noted by: Xavi Serrano - On def_prompt_handler() final newline should be printed to terminal as prompt is printed (instead of stderr.) - Fix segmentation violation on l)mit command "header subject" (ie. without ':'). This is now interpreted to be all mails which have given header name. - l)imit command "aabbc: yyy" work now as "header aabbc: yyy" - User alias file was not opened, if system alias file existed. Fix potential security problems on systems where Elm ME+ is setgid mail and system do not support Posix saved IDs. Check output of 'elm -vvv' if your system have problems: Have Posix saved IDs: Yes (egid 12) If this is 'No' and egid is other than your gid, there is possibility that Elm ME+ can read or write some files which are readable or writable by group mail, when it should not access them. Note that these fixes can not be complete. There is race condition at least. Closing that race condition requires that Elm ME+ drop privileges temporary. For that Elm ME+ uses Posix saved IDs. - SECURITY: Add can_open() test to load_locale_map() - SECURITY: Add can_open() test to copy1() - SECURITY: Add can_open() test to parse_iso2022_map() - SECURITY: Add can_open() test to do_newalias() - SECURITY: Add can_open() test to dbz_fresh() - SECURITY: Add can_open() test to dbz_again() - SECURITY: Add can_open() test to dbz_open() - SECURITY: Add can_open() test to latebase() - SECURITY: Add can_open() test to read_rc_file() - SECURITY: Add can_open() test to parse_service_entries() - SECURITY: Add can_open() test to load_terminal_map() - SECURITY: Add can_open() test to read_mailcaps() - SECURITY: Add can_open() test to add_to_alias_text() - SECURITY: Add can_open() test to delete_from_alias_text() - SECURITY: Add can_open() test to mime_guess_content_type() - SECURITY: Add can_open() test to edit_the_message() - SECURITY: Add can_open() test to read_editor() - SECURITY: Add can_open() test to append() - SECURITY: Add can_open() test to check_form_file() - SECURITY: Add can_open() test to format_form() - SECURITY: Add can_open() test to edit_headers_on_editor() - SECURITY: Add can_open() test to mail() - SECURITY: Add can_open() test to save_options() - Add can_open() test to load_folder_state_file() - Add can_open() test to read_unidata_text() - Add can_open() test to display_file() - Avoid error message like following Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset. Codeset name ISO-8859-15 was unknown. Treating ISO-8859-15 as MIME name. Check /usr/local/test/lib/elm.mimecharsets or .../.elm/mime.charsets Problem with locale (system character set)! Elm ME+ will behave erratically. on case where elm.mimecharsets is not installed. Codeset match was not used if either file elm.mimecharsets or mime.charsets existed. New files: MIME.txt Changes of Elm2.4ME+ PL109b (25) compared with Elm2.4ME+ PL109a (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch fixes segmentation violation on l)imit command and problem where user alias was not opened, if system alias file existed. - Fix segmentation violation on l)mit command "header subject" (ie. without ':'). - User alias file was not opened, if system alias file existed. Fixed short circuit evalution. Changes of Elm2.4ME+ PL109a (25) compared with Elm2.4ME+ PL109 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] Undo Elm2.4ME+ PL109S (25) patch before applying this patch. SUMMARY: This patch address panic when imap server disconnects during password prompt, fixes initialization of internal-mailcaps and metamail-mailcaps elmrc options and fixes some cases where error message was not visible because of exiting of Elm ME+. Also security fixes of Elm2.4ME+ PL109S (25) are included to this patch (it is agaist Elm2.4ME+ PL109 (25)) - Changed some Raw(OFF) to Raw_OFF() on leaving routines of src/utils.c - Try fix MBX PANIC in imap.c:2578:end_imap_command when IMAP / TLS connection is closed by server. - Initialization of internal-mailcaps and metamail-mailcaps did not worked correctly. Moved initialization before reading of global elm.rc. Problem noted by: Xavi Serrano - On def_prompt_handler() final newline should be printed to terminal as prompt is printed (instead of stderr.) Fix potential security problems on systems where Elm ME+ is setgid mail and system do not support Posix saved IDs. Check output of 'elm -vvv' if your system have problems: Have Posix saved IDs: Yes (egid 12) If this is 'No' and egid is other than your gid, there is possibility that Elm ME+ can read or write some files which are readable or writable by group mail, when it should not access them. Note that these fixes can not be complete. There is race condition at least. Closing that race condition requires that Elm ME+ drop privileges temporary. For that Elm ME+ uses Posix saved IDs. - SECURITY: Add can_open() test to load_locale_map() - SECURITY: Add can_open() test to copy1() - SECURITY: Add can_open() test to parse_iso2022_map() - SECURITY: Add can_open() test to do_newalias() - SECURITY: Add can_open() test to dbz_fresh() - SECURITY: Add can_open() test to dbz_again() - SECURITY: Add can_open() test to dbz_open() - SECURITY: Add can_open() test to latebase() - SECURITY: Add can_open() test to read_rc_file() - SECURITY: Add can_open() test to parse_service_entries() - SECURITY: Add can_open() test to load_terminal_map() - SECURITY: Add can_open() test to read_mailcaps() - SECURITY: Add can_open() test to add_to_alias_text() - SECURITY: Add can_open() test to delete_from_alias_text() - SECURITY: Add can_open() test to mime_guess_content_type() - SECURITY: Add can_open() test to edit_the_message() - SECURITY: Add can_open() test to read_editor() - SECURITY: Add can_open() test to append() - SECURITY: Add can_open() test to check_form_file() - SECURITY: Add can_open() test to format_form() - SECURITY: Add can_open() test to edit_headers_on_editor() - SECURITY: Add can_open() test to mail() - SECURITY: Add can_open() test to save_options() - Add can_open() test to load_folder_state_file() - Add can_open() test to read_unidata_text() - Add can_open() test to display_file() Changes of Elm2.4ME+ PL109S (25) compared with Elm2.4ME+ PL109 (25) ------------------------------------------------------------------ Fix potential security problem on systems where Elm ME+ is setgid mail and system do not support Posix saved IDs. Check output of 'elm -vvv' if your system have problems: Have Posix saved IDs: Yes (egid 12) If this is 'No' and egid is other than your gid, there is possibility that Elm ME+ can read or write some files which are readable or writable by group mail, when it should not access them. Note that these fixes can not be complete. There is race condition at least. Closing that race condition requires that Elm ME+ drop privileges temporary. For that Elm ME+ uses Posix saved IDs. - SECURITY: Add can_open() test to load_locale_map() - SECURITY: Add can_open() test to copy1() - SECURITY: Add can_open() test to parse_iso2022_map() - SECURITY: Add can_open() test to do_newalias() - SECURITY: Add can_open() test to dbz_fresh() - SECURITY: Add can_open() test to dbz_again() - SECURITY: Add can_open() test to dbz_open() - SECURITY: Add can_open() test to latebase() - SECURITY: Add can_open() test to read_rc_file() - SECURITY: Add can_open() test to parse_service_entries() - SECURITY: Add can_open() test to load_terminal_map() - SECURITY: Add can_open() test to read_mailcaps() - SECURITY: Add can_open() test to add_to_alias_text() - SECURITY: Add can_open() test to delete_from_alias_text() - SECURITY: Add can_open() test to mime_guess_content_type() - SECURITY: Add can_open() test to edit_the_message() - SECURITY: Add can_open() test to read_editor() - SECURITY: Add can_open() test to append() - SECURITY: Add can_open() test to check_form_file() - SECURITY: Add can_open() test to format_form() - SECURITY: Add can_open() test to edit_headers_on_editor() - SECURITY: Add can_open() test to mail() - SECURITY: Add can_open() test to save_options() - Add can_open() test to load_folder_state_file() - Add can_open() test to read_unidata_text() - Add can_open() test to display_file() Changes of Elm2.4ME+ PL109 (25) compared with Elm2.4ME+ PL108 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL108a (25) patch before applying this patch. SUMMARY: This release collects Elm2.4ME+ PL108a (25) patch, adds elmrc variable "prompt-after-metamail", changes iconv:auto-charset elmrc option to also apply to defined but unknown charsets, makes some changes to elm tools, adds binary mmappable file for charset tables for types ascii and one-byte-map and adds O)verride charset command. On elm tools there is new command "elmbindata". - "I would like to suggest a small change in elm. I use lynx as a HTML browser. When I exit from the lynx, I get the message: Press any key to return to index. and the only possible action is returning to the list of mail messages. This message seems to be unnecessary." Requested by: Witold Witkowski - Renamed "promptafter" elmrc variable to "prompt-after-pager". Added elmrc variable "prompt-after-metamail" Elmrc variable "promptafter" effects now both "prompt-after-pager" and "prompt-after-metamail". - elmregister was not fixing protections on replay phase - 'sh Configure -cfile' was not working, only 'sh Configure -c file' read 'file'. - "I type in the same text string to search again, it goes to the next matched line, but the surrounding lines are from the original match hit (the screen is not being updated)." ( about / -command) Problem noted by: From: Bruce Momjian - "The pgp message "[End of raw data]" is confused as a file inclusion when it appears in a reply. The following patch changes the message to "[ End of raw data]", which doesn't get confused." From: Bruce Momjian [ Patch little modified. ] - "With older elm versions, using '/', it remembered the old search string, so I could do '/', to find the next occurance of a single string. The new code doesn't do that." Reported by: Bruce Momjian > Returned variables to static (and avoiding freeing them on end of function) - Moved most of informative messages of elmregister from stderr to stdout. - 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 change to be effective, use iconv:auto-charset = ON on elm.rc. This makes unknow charset to be type "iconv" if iconv() is able to handle it. WARNING: Some care should be taken so that system or display charset does not result to have type "iconv". Look shared_libs/iconv/READ.ME+ - Use post_init_check() even when -G (global) flag is given on tools of elm. - Text form map files for charset types ascii and one-byte-map from elm.map.txt directory (and elsewhere) are stored to binary file elm.map.bin/unidata.bin. File is then readed or mmapped (similar than elm.map.bin/bindata.bin). File is generated with new tool elmbindata. - Added O)verride charset command to override charset= parameter of current or tagged mails. New elmrc options: prompt-after-pager prompt-after-metamail bindata New tools: elmbindata New files: lib/bindata.c lib/mmaputil.c hdrs/mmaputil.h hdrs/bindata.h utils/elmbindata.c utils/charmapcopy.c utils/charmapcopy.h doc/elmbindata.1 Changes of Elm2.4ME+ PL108a (25) compared with Elm2.4ME+ PL108 (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] SUMMARY: This patch makes some fixes for elmregister, and elm's search command ('/'). - elmregister was not fixing protections on replay phase - 'sh Configure -cfile' was not working, only 'sh Configure -c file' read 'file'. - "I type in the same text string to search again, it goes to the next matched line, but the surrounding lines are from the original match hit (the screen is not being updated)." ( about / -command) Problem noted by: From: Bruce Momjian - "The pgp message "[End of raw data]" is confused as a file inclusion when it appears in a reply. The following patch changes the message to "[ End of raw data]", which doesn't get confused." From: Bruce Momjian [ Patch little modified. ] - "With older elm versions, using '/', it remembered the old search string, so I could do '/', to find the next occurance of a single string. The new code doesn't do that." Reported by: Bruce Momjian > Returned variables to static (and avoiding freeing them on end of function) - Moved most of informative messages of elmregister from stderr to stdout. Changes of Elm2.4ME+ PL108 (25) compared with Elm2.4ME+ PL107 (25) ------------------------------------------------------------------ Note: You must create directory src/screen before applying this patch! Undo Elm2.4ME+ PL107a (25) patch before applying this patch. SUMMARY: This release collects PL107a patch, adds invoke e)ditor command to header editing screen, enhances internal mailcap parser and fixes some bugs. New elmrc options internal-mailcap-trusted-programs and internal-mailcap-prompt-trusted are added. - Return correct page after returning from o)ptions screen when sorting order is changed. Problem noted by: Ike Stoddard - Possible fix for error STREAMSCHED PANIC in streamsched.c:1127:ss_noaction_routine when IMAP / TLS connection is closed by server. - Handle better "skipped " counter, when there is lot of skipped mails. - Cursor movement is changed little - Added invoke e)ditor command to header editing screen. Following headers are supported: From: To: CC: Bcc: Reply-To: Subject: - Added elmrc variable internal-mailcap-trusted-programs which lists programs for which Mailcap program selection -screen answers 'Yes' by default. In all questions are answered 'Yes' by default, Mailcap program selection -screen is only set if new elmrc variable internal-mailcap-prompt-trusted is set. If program is on internal mailcap is with full path, it should be listed on internal-mailcap-trusted-programs also with full path. Note however that programs given on test= clause on mailcap are executed always without prompting. - Internal mailcap parser now support wildcarding of subtype, for example image/*. However these wildcarded entries are treated with lower priority than normal entries. So they normally do not match if there is more specific entry. - Avoid division be zero when opening non existing (or empty?) mailbox. From: Darren Reed ( Division by zero seems not be visible on all systems. ) New elmrc options: internal-mailcap-trusted-programs internal-mailcap-prompt-trusted New files: src/screen/def_screen.h src/screen/Makefile.SH src/screen/screen.c src/screen/curs_input.c src/screen/termbuffer.c src/screen/termtitle.c src/screen/termcharset.c src/screen/cur_process.c Removed files: src/curses.c hdrs/elm_curses.h Changes of Elm2.4ME+ PL107a (25) compared with Elm2.4ME+ PL107 (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] SUMMARY: This patch corrects page when returning from o)ptions screen and fixes some other minor bugs. - Return correct page after returning from o)ptions screen when sorting order is changed. Problem noted by: Ike Stoddard - Possible fix for error STREAMSCHED PANIC in streamsched.c:1127:ss_noaction_routine when IMAP / TLS connection is closed by server. - Handle better "skipped " counter, when there is lot of skipped mails. Changes of Elm2.4ME+ PL107 (25) compared with Elm2.4ME+ PL106 (25) ------------------------------------------------------------------ Note: You must create directory 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. - Marked TIS-620 to be ISO-8859-11 on lib/precompiled_sets.c - Added some ISO-2022 codes. - changed codeset=VISCII to charset=VISCII on lib/precompiled_sets.c - changed codeset=DEC-MCS to charset=DEC-MCS on lib/precompiled_sets.c - Marked that windows-1250, windows-1253, windows-1254, windows-1256 and windows-1258 are superset of US-ASCII on lib/precompiled_sets.c - Marked that windows-1255 is superset of US-ASCII on lib/precompiled_sets.c (it is not superset of ISO-8859-8). - Marked that windows-1257 is superset of US-ASCII on lib/precompiled_sets.c (it is not superset of ISO-8859-13). - Map 0x80 - 0x9f to unicode 0x0080 - 0x009F on ISO-8859-1 map (function map_init_latin) on lib/cs_binary.c. On that range there is no characters, but this way is mapping done on http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT - Added some files for ConfTool/mapfiles NOTE: Answer 'y' to following Configure question Should Configure ignore existing elm.mimecharsets? [s] otherwise generated elm.mimecharsets do not include fixes from ConfTool/mapfiles. - Added ISO-2022-LIKE paramater to terminal.info - Accept 0x30..0x3F as final byte of ISO 2022 identification (these are on private use) - Added new l)imit keyword: header {header_name}: {header_value} Note that this is SLOW! Currently this limit keyword do not do MIME decoding for headers. New files: charset/MAPPINGS/viscii.txt charset/MAPPINGS/dec-mcs.txt charset/MAPPINGS/ISO8859/8859-11.TXT charset/MAPPINGS/hp-roman8.txt charset/MAPPINGS/MICSFT/CP437.TXT charset/MAPPINGS/MICSFT/CP1250.TXT charset/MAPPINGS/MICSFT/CP1253.TXT charset/MAPPINGS/MICSFT/CP1254.TXT charset/MAPPINGS/MICSFT/CP1255.TXT charset/MAPPINGS/MICSFT/CP1256.TXT charset/MAPPINGS/MICSFT/CP1257.TXT charset/MAPPINGS/MICSFT/CP1258.TXT Changes of Elm2.4ME+ PL106 (25) compared with Elm2.4ME+ PL105 (25) ------------------------------------------------------------------ SUMMARY: This release fixes some compilation and installation problems on AIX, some bugs on folder leaving/syncing, current pointer handling when new mail was arriving, and saving error (introduced on PL105) of assembled message. Builtin pager now by default overrides $PAGER environment variable. - Fix compilation error on AIX: curses.c:556: error: parse error before '->' token curses.c: In function `ScreenSize': Problem noted by: Noam G. Nudelman ( It still do not work on AIX ?) - Fix installation error gmake[2]: *** No rule to make target `libreg', needed by `install_s'. Stop. on case where shared libraries are not used. Problem noted by: Noam G. Nudelman - On leaving of folder action message was cleared immediately. - Current pointer location was not preserved when new mail arrived. - On syncing mailbox elm did not asked should messages to be deleted, if several mailbox was open and on last was no messages marked for deletion. - Saving of assembled message failed, because content_length was miscalculated (PL105 copied also Received: -headers from part 1 and these was not calculated.) - If builtin++ is selected as default pager, Configure now provides option that builtin pager is used even when environment variable $PAGER is set. That is now also default. Changes of Elm2.4ME+ PL105 (25) compared with Elm2.4ME+ PL104 (25) ------------------------------------------------------------------ SUMMARY: This release fixes various bugs, refines message/partial handling (command 'A') and refines searching of message bodies (command '//'.) - Elm2.4ME+ PL104 was giving BROWSER PANIC in savefolder.c:3690:folder_from_dir_item >>>No selection if prompt Select folder: . was cleared (on 'elm -f .'). - Generate $ELMSTATE state information also for assembed messages on on message assembly mode (command 'A'). - Don't print [ Command 'A' assembles fragmented messages. ] when replying (only when viewing message fragment) so that this message is similar than [ Use 'v' to view or save this part. ] message. - Copy Received: -headers from part 1 (from initial enclosing message) to assembled message. NOTE: MIME (RFC 2046) requires that all headers except Content-*, Subject, MIME-Version, Message-ID and Encrypted are copied to assembled message. It also requires that headers except Content-*, Subject, MIME-Version, Message-ID and Encrypted are ignored and dropped from enclosed message. Dropping extra headers from enclosed message makes assembly more complicated (and dropping of Received: -headers from enclosed message do not make sense) so it is not now done. - Change on handle_reply_to() - When l)imiting list of shown messages, current pointer was not updated to point to first visible message on Elm2.4ME+ PL104. - On '//' command seach also top level mail headers. They are MIME decoded before searching. - Command 'v' on process_showmsg_cmd() was using wrong mailbox data. - Added '|' -command to message assembly mode (uses readmsg and therefore requires that folder state information $ELMSTATE is available.) That command naturally do not work if message assembly mode is started from view digest as mailbox -mode (on that mode there is no usefull folder state information.) Changes of Elm2.4ME+ PL104 (25) compared with Elm2.4ME+ PL103 (25) ------------------------------------------------------------------ - Fix segmentation violation when sending mail from command line: 8 get_storage_count(mailbox = (nil)) [src/messages/messages.c:266] 9 save_copy(headers = 0x7fff2c98, cf = 0x7fff1f18, form = 0, mime_info = 0x7fff1f20, conv_file = 0xfb56fe8, mailbox = (nil)) [src/savecopy.c":217] Changes of Elm2.4ME+ PL103 (25) compared with Elm2.4ME+ PL102 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL102a (25) patch before applying this patch. Note: You must create directory src/messages before applying this patch! WARNING: Quite many changes. So please report new bugs which you observe... SUMMARY: This release collects patch 102a, makes possible to view digets as mailbox (command 'V'), makes possible to view fragmented (message/partial) messages without help of metamail (command 'A') and accepts several -f (folder) command line options (and therefore makes possible to view several folders as one folder.) Searching of body of messages (command '//') now decodes mime encoding. New elmrc option fragment-handling is added. - Raw() was not masking NO_CHARSET from value (but actually Raw is not called with NO_CHARSET flag) - Removed unused function newmbox() from src/newmbox.c - '!' (subshell) command added to attach viewer - Now it is possible to give '-f folder' option several times to Elm 2.4ME+. On that case combined view of given folders is shown. - Added sync_write_folder() - If several folders is given with -f options, then --mailbox-title=name can be used to give name for combined view. - New command 'V' (uppercase v) is added to Subject (main) menu. This is "view digest as mailbox" -command. This shows included messages of current mail (digest) or tagged mails. That command can also be used to access original message on bounced mail. See chapter "View digest as mailbox" for details. - New command 'A' (uppercase a) is added to Subject (main) menu and to digest menu. - New elmrc option fragment-handling. Tells how fragmented (message/partial) should be handled. If "none", call metamail (if available) for these. If "manual", let user to give command 'A' to enter message assembly mode. If "auto", go automatically to message assembly mode. See chapter "Message assembly mode" for details. - pagemultipart was not handled correctly if subtype of multipart was unknown. - If .elm/mail.services was giving port for service (for example POP), and there was several IP addresses for name, wrong port was attempt for other than first address. - "Elm leaves a /tmp/elmfwd.xxx file behind when you forward a message" Reported by: Konstantinos Konstantinides - Stream > That happened when mimeforward = YES. Changed mime_t_clear() to take attention to unlink flag. - If given '^' command (toggle delete flag), go to next command regadles is next command marked for deletion or not on resolve mode. In other works same way than u)undelete command works. ( Well, '^' command is not very usefull when ^ on keyboard is 'dead' (ie. prefix or modifier) key. ) - Added string_matches_ascii() - '//' -command (seach message bodies) now decodes MIME content transfer encoding before searching data. Also charset is taken to account. - '//' command now takes accoount only selected messages (ie. works same way than '/' -command). Warning: Changes on redrawing of screen. Complain if redrawing do not work as usual on some situation. Impementation of current message "pointer" is changed. Complain if it shows to "wrong" message. Handling of Subject (main) menu is changed. Now '//' command mostly ignores mail (and MIME) headers when looking match. Message assembly do not have much testing, because generally MIME's message fragmentation -mechanism (message/partial) is not used. New elmrc option: fragment-handling New files: src/messages/Makefile.SH src/messages/def_messages.h src/messages/messages.c src/messages/header_alloc.c src/messages/storage.c src/messages/digest.c src/digest.c src/def_elm.h melib/def_melib.h melib/mimewalk.c src/messages/partial.c melib/partial.c src/partial.c Changes of Elm2.4ME+ PL102a (25) compared with Elm2.4ME+ PL102 (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] SUMMARY: This patch fixes temp file leak when forwarding with mimeforward = YES and connection to wrong port when name have several IP addresses and file .elm/mail.services was used. - Raw() was not masking NO_CHARSET from value (but actually Raw is not called with NO_CHARSET flag) - pagemultipart option was not handled correctly if subtype of multipart was unknown. - If .elm/mail.services was giving port for service (for example POP), and there was several IP addresses for name, wrong port was attempt on connection for other than first address. - "Elm leaves a /tmp/elmfwd.xxx file behind when you forward a message" Reported by: Konstantinos Konstantinides - Stream > That happened when mimeforward = YES. Changed mime_t_clear() to take attention to unlink flag. Changes of Elm2.4ME+ PL102 (25) compared with Elm2.4ME+ PL101 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL101a (25), Elm2.4ME+ PL101b (25) and Elm2.4ME+ PL101c (25) patches before applying this patch. SUMMARY: This release collects patches 101a - 101c, adds support for environment variables (on some cases) to internal mailcap parser, changes folder handling of nfrm, adds new tool elmlibregister and fixes some bugs. Now dynamic libraries (iconv, smtp, tls) are registered on (post-)install time to global elm.rc, if wanted. - Fix (harmless) error message bin/elmregister: [on_current] Bad command letter: s (occurs when upgrading version.) - Fix elmregister message Keeping link .../elmuninstall.1 from old version (was (null)) - Running of test= on internal mailcap parser was causing segmentation violation - Added to support for environment variables ($xxxx) inside of " on internal mailcap parser (only environment variables formed from letters are supported). Environment variables outside of quotes are not supported by internal mailcap parser. - Fix crash on header editing screen - "We're setting up Elm 2.4ME+ PL99b (25) for use as an IMAP client to our mailserver, and I ran into a problem when configuring the main elm.rc file. I wanted to be able to set the incoming-mailbox variable to be $USER@engmail, so that by default users would be prompted for a password, and mail would be retrieved from their engmail account. However, when I set "incoming-mailbox = $USER@engmail" and ran elm, I got: Cannot initialize "incoming-mailbox" - error expanding "$USER@engmail". I traced the problem to the expand_path() routine in the lib/expand.c file. The environment variable expansion was using '/' as its only delimiter, so that the $USER portion wasn't being split off from the remainder of the path, and the environment variable lookup failed. By adding '@' to the possible delimiters, the problem goes away." From: Paul D. McKone - Adding X-ELM-OSV, X-Mailer or Content-Name headers to .elm/elmheaders was causing crash (now they are ignored.) - Add fclose() to mailcap.c - Do not ignore reply-to header on .elm/elmheaders. Problem noted by: Rui Aguiar - Fix crash ISO2022 PANIC in cs_iso2022.c:836:state_add_raw >>>Value not in range 0-255 - Fix Segmentation fault when viewing attachments when attachment have a corrupted header Content-Type: type=application/msword - Print enconding on MIME structure Menu also when it fits only partially to column - Reprint error message after turning Raw off when locking of mailbox fails. - Changed error messages of "frm". - If "frm -s new" or "nfrm" is given for folder instead of mailbox, show 'new' messages. But also print error message: WARNING: %s is folder, not mailbox! Delivery of new mail to folder when it is open may corrupt it. Setting default-folder-status = New disables warning. - Fix for valgrind reported error Conditional jump or move depends on uninitialised value(s) at 0x80E9136: expand_dt_path (rc_handle.c:1130) (actually loop condition did not depend uninitialized value although one subexpresions value was uninitialized on that situation.) - Fix for valgrind reported error/warning 1310 bytes in 177 blocks are definitely lost in loss record 19 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x80AE3B8: dequote_opt (charset.c:787) by 0x80AE985: load_charset_map_info (charset.c:948) - Fix for valgrind reported error/warning 552 bytes in 68 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x80F4F29: set_dir_selection (savefolder.c:2141) by 0x80F23A5: real_select_local (savefolder.c:747) - Fix for valgrind reported error/warning 528 bytes in 66 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x8105638: malloc_string (string.c:116) by 0x8105873: new_string2 (string.c:180) by 0x80C506A: hdr_text (hdrdecode.c:412) - Fix for valgrind reported error/warning 280 bytes in 35 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0827: safe_malloc (safemalloc.c:46) by 0x8105644: malloc_string (string.c:116) by 0x810587F: new_string2 (string.c:180) by 0x80C4D7B: hdr_comment (hdrdecode.c:272) - Fix for valgrind reported error/warning 96 bytes in 12 blocks are definitely lost in loss record 11 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0833: safe_malloc (safemalloc.c:46) by 0x8105650: malloc_string (string.c:116) by 0x810588B: new_string2 (string.c:180) by 0x80C4F1F: hdr_phrase (hdrdecode.c:348) - Fix for valgrind reported error/warning 224 bytes in 11 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0847: safe_malloc (safemalloc.c:46) by 0x81056D2: malloc_string (string.c:130) by 0x8106B98: dup_string (string.c:678) by 0x80DAD85: add_expanded_addr_ (outheaders.c:134) - Fix for valgrind reported error/warning 24 bytes in 1 blocks are definitely lost in loss record 1 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F083B: safe_malloc (safemalloc.c:46) by 0x80C6887: update_header_list (headers.c:575) by 0x809C8BB: state_read_headers (parse_util.c:137) by 0x809C7C8: file_read_headers (parse_util.c:104) by 0x8076770: copy_message_2 (fileio.c:1048) - Fix for valgrind reported error/warning 52 bytes in 5 blocks are definitely lost in loss record 6 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F087B: safe_malloc (safemalloc.c:46) by 0x8105706: malloc_string (string.c:130) by 0x81057CC: new_string (string.c:153) by 0x80DB167: make_surface_addr (outheaders.c:235) by 0x8059485: build_address_l (addr_util.c:452) - Fix for valgrind reported error/warning 32 bytes in 4 blocks are definitely lost in loss record 5 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F089F: safe_malloc (safemalloc.c:46) by 0x81056BC: malloc_string (string.c:116) by 0x810627F: cat_strings (string.c:434) by 0x80C510B: hdr_text (hdrdecode.c:419) by 0x80C51E6: hdr_to_string (hdrdecode.c:462) by 0x80C5CC3: hdr_decode_from_text (headers.c:36) by 0x80C71C4: give_decoded_header (headers.c:816) by 0x809CB02: state_write_header (parse_util.c:197) - Fix for valgrind reported error/warning 32 bytes in 4 blocks are definitely lost in loss record 5 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08B3: safe_malloc (safemalloc.c:46) by 0x8104DD1: alloc_simple (streamsched.c:1047) - Fix for valgrind reported error/warning 16 bytes in 2 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08B3: safe_malloc (safemalloc.c:46) by 0x81056F8: malloc_string (string.c:116) by 0x810582C: new_string (string.c:153) by 0x807B350: enter_helper (in_utils.c:432) by 0x807BECE: optionally_enter2 (in_utils.c:863) by 0x807C01E: optionally_enter (in_utils.c:898) - Fix for valgrind reported error/warning 16 bytes in 2 blocks are definitely lost in loss record 1 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08CB: safe_malloc (safemalloc.c:46) by 0x80B33D7: cs_stream_from_ascii (cs_binary.c:1508) by 0x8107089: stream_from_string (string.c:799) by 0x807C049: optionally_enter (in_utils.c:909) - Fix for valgrind reported error/warning 140 bytes in 1 blocks are definitely lost in loss record 13 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0996: safe_realloc (safemalloc.c:62) by 0x80E509D: mbx_prepare_read_pop (pop.c:1592) - Fix for valgrind reported error/warning 15 bytes in 1 blocks are definitely lost in loss record 1 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F09A2: safe_realloc (safemalloc.c:62) by 0x80A1357: make_mailcap_arg (mailcap.c:918) by 0x80A1EF8: mailcap_view_command (mailcap.c:1319) by 0x80973A6: prompt_programs_1 (showmsg.c:131) by 0x8097587: prompt_programs_1 (showmsg.c:188) by 0x80975F1: prompt_programs (showmsg.c:211) - Fix for valgrind reported error/warning 32 bytes in 2 blocks are definitely lost in loss record 5 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0933: safe_malloc (safemalloc.c:46) by 0x80C6973: update_header_list (headers.c:575) by 0x80C6D3F: read_folder_headers (headers.c:700) by 0x80D5771: prepare_message_access (mbox.c:1351) - Fix for valgrind reported error/warning 8 bytes in 1 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F094F: safe_malloc (safemalloc.c:46) by 0x8105794: malloc_string (string.c:116) by 0x8106CC8: dup_string (string.c:678) by 0x812FEB5: sb_get_line_from_mem (sb_mem.c:69) by 0x8109A89: get_line_from_stringbuffer (stringbuffer.c:177) by 0x8067162: builtinplusplus (builtin++.c:176) - Fix for valgrind reported error/warning 55 bytes in 2 blocks are definitely lost in loss record 6 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F099F: safe_malloc (safemalloc.c:46) by 0x80FDE2A: malloc_service_entry (service_list.c:198) - Fix for valgrind reported error/warning 3 bytes in 1 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F099F: safe_malloc (safemalloc.c:46) by 0x81221FC: imap_got_header_line (imap.c:5794) by 0x8122863: mbx_copy_header_imap (imap.c:5991) - Fix for valgrind reported error/warning 4050 bytes in 67 blocks are definitely lost in loss record 21 of 24 at 0x4015E8A3: realloc (vg_clientfuncs.c:276) by 0x80F0A6E: safe_realloc (safemalloc.c:62) by 0x80E0025: elm_vmessage (output.c:1229) by 0x80E0881: elm_message (output.c:1460) by 0x8121F12: mbx_copy_envelope_imap (imap.c:5687) - Fix for valgrind reported error/warning 9 bytes in 1 blocks are definitely lost in loss record 2 of 30 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0B37: safe_strdup (safemalloc.c:78) by 0x80FB31A: probe_imap_capa_lib (shared.c:1010) - Fix for valgrind reported error/warning 40 bytes in 1 blocks are definitely lost in loss record 6 of 29 at 0x4015E8A3: realloc (vg_clientfuncs.c:276) by 0x80F0A6E: safe_realloc (safemalloc.c:62) by 0x80E0209: elm_vmessage (output.c:1281) by 0x80E0881: elm_message (output.c:1460) by 0x4146ED0A: smtp_common_mailer_backend (smtp.c:1026) - Fix for valgrind reported error Invalid read of size 4 at 0x80C0994: debug_level_check (debug.c:256) by 0x80F0B22: safe_realloc (safemalloc.c:69) by 0x80C08B1: set_debugging (debug.c:214) - Added "install_libs" target for testing top level Makefile - Due on error on Makefile on doc/, elmrc-info (and possible other files) was not installed. - Added new tool elmlibregister, which check is libraries given on use-library on elm.rc (or on .elm/elmrc) loadable. Now Configure asks which libraries should be registered on on (post-)install time. elmlibregister command is used to add these libraries to use-library line on global elm.rc. - Quotes was handled incorrectly on internal mailcap parser. New tools: elmlibregister New files: utils/elmlibregister.c doc/elmlibregister.1 Changes of Elm2.4ME+ PL101c (25) compared with Elm2.4ME+ PL101b (25) -------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch fixes segmentation fault, when when viewing attachment with unxepected Content-Type, and fixes some memory leaks and other errors found by memory checker tools. Also other small changes are included to this patch. - Fix Segmentation fault when viewing attachments when attachment have a corrupted header Content-Type: type=application/msword - Print enconding on MIME structure Menu also when it fits only partially to column - Reprint error message after turning Raw off when locking of mailbox fails. - Fix for valgrind reported error Conditional jump or move depends on uninitialised value(s) at 0x80E9136: expand_dt_path (rc_handle.c:1130) (actually loop condition did not depend uninitialized value although one subexpresions value was uninitialized on that situation.) - Fix for valgrind reported error/warning 1310 bytes in 177 blocks are definitely lost in loss record 19 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x80AE3B8: dequote_opt (charset.c:787) by 0x80AE985: load_charset_map_info (charset.c:948) - Fix for valgrind reported error/warning 552 bytes in 68 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x80F4F29: set_dir_selection (savefolder.c:2141) by 0x80F23A5: real_select_local (savefolder.c:747) - Fix for valgrind reported error/warning 528 bytes in 66 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F081B: safe_malloc (safemalloc.c:46) by 0x8105638: malloc_string (string.c:116) by 0x8105873: new_string2 (string.c:180) by 0x80C506A: hdr_text (hdrdecode.c:412) - Fix for valgrind reported error/warning 280 bytes in 35 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0827: safe_malloc (safemalloc.c:46) by 0x8105644: malloc_string (string.c:116) by 0x810587F: new_string2 (string.c:180) by 0x80C4D7B: hdr_comment (hdrdecode.c:272) - Fix for valgrind reported error/warning 96 bytes in 12 blocks are definitely lost in loss record 11 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0833: safe_malloc (safemalloc.c:46) by 0x8105650: malloc_string (string.c:116) by 0x810588B: new_string2 (string.c:180) by 0x80C4F1F: hdr_phrase (hdrdecode.c:348) - Fix for valgrind reported error/warning 224 bytes in 11 blocks are definitely lost in loss record 16 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0847: safe_malloc (safemalloc.c:46) by 0x81056D2: malloc_string (string.c:130) by 0x8106B98: dup_string (string.c:678) by 0x80DAD85: add_expanded_addr_ (outheaders.c:134) - Fix for valgrind reported error/warning 24 bytes in 1 blocks are definitely lost in loss record 1 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F083B: safe_malloc (safemalloc.c:46) by 0x80C6887: update_header_list (headers.c:575) by 0x809C8BB: state_read_headers (parse_util.c:137) by 0x809C7C8: file_read_headers (parse_util.c:104) by 0x8076770: copy_message_2 (fileio.c:1048) - Fix for valgrind reported error/warning 52 bytes in 5 blocks are definitely lost in loss record 6 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F087B: safe_malloc (safemalloc.c:46) by 0x8105706: malloc_string (string.c:130) by 0x81057CC: new_string (string.c:153) by 0x80DB167: make_surface_addr (outheaders.c:235) by 0x8059485: build_address_l (addr_util.c:452) - Fix for valgrind reported error/warning 32 bytes in 4 blocks are definitely lost in loss record 5 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F089F: safe_malloc (safemalloc.c:46) by 0x81056BC: malloc_string (string.c:116) by 0x810627F: cat_strings (string.c:434) by 0x80C510B: hdr_text (hdrdecode.c:419) by 0x80C51E6: hdr_to_string (hdrdecode.c:462) by 0x80C5CC3: hdr_decode_from_text (headers.c:36) by 0x80C71C4: give_decoded_header (headers.c:816) by 0x809CB02: state_write_header (parse_util.c:197) - Fix for valgrind reported error/warning 32 bytes in 4 blocks are definitely lost in loss record 5 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08B3: safe_malloc (safemalloc.c:46) by 0x8104DD1: alloc_simple (streamsched.c:1047) - Fix for valgrind reported error/warning 16 bytes in 2 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08B3: safe_malloc (safemalloc.c:46) by 0x81056F8: malloc_string (string.c:116) by 0x810582C: new_string (string.c:153) by 0x807B350: enter_helper (in_utils.c:432) by 0x807BECE: optionally_enter2 (in_utils.c:863) by 0x807C01E: optionally_enter (in_utils.c:898) - Fix for valgrind reported error/warning 16 bytes in 2 blocks are definitely lost in loss record 1 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F08CB: safe_malloc (safemalloc.c:46) by 0x80B33D7: cs_stream_from_ascii (cs_binary.c:1508) by 0x8107089: stream_from_string (string.c:799) by 0x807C049: optionally_enter (in_utils.c:909) - Fix for valgrind reported error/warning 140 bytes in 1 blocks are definitely lost in loss record 13 of 24 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0996: safe_realloc (safemalloc.c:62) by 0x80E509D: mbx_prepare_read_pop (pop.c:1592) - Fix for valgrind reported error/warning 15 bytes in 1 blocks are definitely lost in loss record 1 of 26 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F09A2: safe_realloc (safemalloc.c:62) by 0x80A1357: make_mailcap_arg (mailcap.c:918) by 0x80A1EF8: mailcap_view_command (mailcap.c:1319) by 0x80973A6: prompt_programs_1 (showmsg.c:131) by 0x8097587: prompt_programs_1 (showmsg.c:188) by 0x80975F1: prompt_programs (showmsg.c:211) - Fix for valgrind reported error/warning 32 bytes in 2 blocks are definitely lost in loss record 5 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0933: safe_malloc (safemalloc.c:46) by 0x80C6973: update_header_list (headers.c:575) by 0x80C6D3F: read_folder_headers (headers.c:700) by 0x80D5771: prepare_message_access (mbox.c:1351) - Fix for valgrind reported error/warning 8 bytes in 1 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F094F: safe_malloc (safemalloc.c:46) by 0x8105794: malloc_string (string.c:116) by 0x8106CC8: dup_string (string.c:678) by 0x812FEB5: sb_get_line_from_mem (sb_mem.c:69) by 0x8109A89: get_line_from_stringbuffer (stringbuffer.c:177) by 0x8067162: builtinplusplus (builtin++.c:176) - Fix for valgrind reported error/warning 55 bytes in 2 blocks are definitely lost in loss record 6 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F099F: safe_malloc (safemalloc.c:46) by 0x80FDE2A: malloc_service_entry (service_list.c:198) - Fix for valgrind reported error/warning 3 bytes in 1 blocks are definitely lost in loss record 1 of 25 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F099F: safe_malloc (safemalloc.c:46) by 0x81221FC: imap_got_header_line (imap.c:5794) by 0x8122863: mbx_copy_header_imap (imap.c:5991) - Fix for valgrind reported error/warning 4050 bytes in 67 blocks are definitely lost in loss record 21 of 24 at 0x4015E8A3: realloc (vg_clientfuncs.c:276) by 0x80F0A6E: safe_realloc (safemalloc.c:62) by 0x80E0025: elm_vmessage (output.c:1229) by 0x80E0881: elm_message (output.c:1460) by 0x8121F12: mbx_copy_envelope_imap (imap.c:5687) - Fix for valgrind reported error/warning 9 bytes in 1 blocks are definitely lost in loss record 2 of 30 at 0x4015E30F: malloc (vg_clientfuncs.c:103) by 0x80F0B37: safe_strdup (safemalloc.c:78) by 0x80FB31A: probe_imap_capa_lib (shared.c:1010) - Fix for valgrind reported error/warning 40 bytes in 1 blocks are definitely lost in loss record 6 of 29 at 0x4015E8A3: realloc (vg_clientfuncs.c:276) by 0x80F0A6E: safe_realloc (safemalloc.c:62) by 0x80E0209: elm_vmessage (output.c:1281) by 0x80E0881: elm_message (output.c:1460) by 0x4146ED0A: smtp_common_mailer_backend (smtp.c:1026) - Fix for valgrind reported error Invalid read of size 4 at 0x80C0994: debug_level_check (debug.c:256) by 0x80F0B22: safe_realloc (safemalloc.c:69) by 0x80C08B1: set_debugging (debug.c:214) Changes of Elm2.4ME+ PL101b (25) compared with Elm2.4ME+ PL101a (25) -------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch makes possible to set incoming-mailbox = $USER@imap-sever on elm.rc, fixes crash caused by certain headers on .elm/elmheaders and fixes another crash when displaying EUC mail. Reply-To header on .elm/elmheaders is no longer ignored. - "We're setting up Elm 2.4ME+ PL99b (25) for use as an IMAP client to our mailserver, and I ran into a problem when configuring the main elm.rc file. I wanted to be able to set the incoming-mailbox variable to be $USER@engmail, so that by default users would be prompted for a password, and mail would be retrieved from their engmail account. However, when I set "incoming-mailbox = $USER@engmail" and ran elm, I got: Cannot initialize "incoming-mailbox" - error expanding "$USER@engmail". I traced the problem to the expand_path() routine in the lib/expand.c file. The environment variable expansion was using '/' as its only delimiter, so that the $USER portion wasn't being split off from the remainder of the path, and the environment variable lookup failed. By adding '@' to the possible delimiters, the problem goes away." From: Paul D. McKone - Adding X-ELM-OSV, X-Mailer or Content-Name headers to .elm/elmheaders was causing crash (now they are ignored.) - Do not ignore reply-to header on .elm/elmheaders. Problem noted by: Rui Aguiar - Fix crash ISO2022 PANIC in cs_iso2022.c:836:state_add_raw >>>Value not in range 0-255 Changes of Elm2.4ME+ PL101a (25) compared with Elm2.4ME+ PL101 (25) ------------------------------------------------------------------- [ This patch is branch from the main line. ] SUMMARY: This patch fixes crash on internal mailcap parser and on header editing screen. - Fix (harmless) error message bin/elmregister: [on_current] Bad command letter: s (occurs when upgrading version.) - Fix elmregister message Keeping link .../elmuninstall.1 from old version (was (null)) - Running of test= on internal mailcap parser was causing segmentation violation - Fix crash on header editing screen Changes of Elm2.4ME+ PL101 (25) compared with Elm2.4ME+ PL100 (25) ------------------------------------------------------------------ Undo Elm2.4ME+ PL100a (25) patch before applying this patch. SUMMARY: This release collects patch 100a, adds support for changing title of xterm, changes installation method (installed files are tracked during installation and elmuninstall command is added) and enhances internal mailcap parser. - Configure did not generated mapping for iso_8859_1 locale (on SunOS). Problem noted by: Tommi Nieminen - Do not use tempnam() on lib/mailer.c so that linker do not produce warnings (actual checks for attacks are done safeopen_rdwr() -- this does not effect to that.) - Now elm supports changing title (and icon name) of xterm window. Method to changing title must be specified on ~/elm/terminal.info or on global elm.terminalinfo like following: xterm FLAG xterm-title iris-ansi FLAG xwsh-title NOTE: Code currently assumes that title (and icon) are US-ASCII only. It is unclear how charsets are handled with xterm title (and icon) name. - New elmrc option set-window-title (default: OFF) enables automatic changing of title (and icon) name when folder is changed. - Command line options --title-name and --icon-name can set xterm's window title and icon name. These options override automatic title/icon name updating specified with elmrc option set-window-title . - Command line option --with-title sets initial title for Elm. After changing folder title (and icon) name is updated same way as elmrc option set-window-title is sit. Giving just option --with-title without title it is possible to enable title updating without setting elmrc option set-window-title. - Added attachment-dir elmrc variable, which can be used as {doc}/ prefix on filename prompts. - {doc}/ is offered on attachment filename prompts as default if attachment-dir directory exists. > Meta expand provides: +filename == file on mail folder directory =filename == file on mail folder directory %filename == file on mail folder directory {rc}/filename == file on .elm subdirectory of home {lib}/filename == file on Elm's global library directory {etc}/filename == file on Elm's global configure directory {doc}/filename == file on attachment-dir directory And also same epansions than expand_env(): ~/filename == file on home directory Environment variable components - If attachment-dir is not set and ~/Documents exists, then attachment-dir is set to ~/Documents. - {doc}/ is also added to file browser's default directory - "When I choose "f)orget" instead of "s)end" I abandon writing/sending the current piece of email and get the message: Message kept. Can be restored at next f)orward, m)ail or r)eply. Well, when I choose "f" or "m" the saved text of the message doesn't pop up." Problem noted by: Andrzej Marecki > Don't unlink temporary editor's work file if mail is abandon. - Fix case where file was "attached" when filename was not given. - Installed files are now tracked during installation. List of files is keep on $etc/elm.filelist. That is done with program elmregister. - Added tool $lib/elmuninstall which can used to uninstall elm (without that source tree is available -- so that "make uninstall" can be used.) - Commands elmterminal, elmrc-write, elmunidata, elmcharset are now executed after installation. These commands are recorded to $etc/elm.filelist during installation. Source data for these commands are stored to stage directory (../var/stage-elm2.4me+) during installation. These recorded post-install commands are executed with "elmregister replay" ("make install" does that automatically.) - Configure now asks that should it create "package" target to Makefile. Command make package ROOT=/directory can be used to install elm to directory /directory WITHOUT executing post-install command. Post installation commands are assumed to be executed with $lib/elmregister replay (if /directory is moved to / ie. final destination) Command /directory/$lib/elmregister replay -R /directory can be used to move files from /directory to / and execute post-install commands. That command is recorded to file /directory/README.PACKAGE.sh (if you move files from /directory to / you may want remove README.PACKAGE.sh first!) > If 'package' target is enabled, Configure assumes that Elm 2.4ME+ is compiled for binary package distributes, and do not store domainname as default domain. * In that case 'elm -v' says: Compiled for binary distribution. Send bug reports to packager of binary distribution. ( otherwise 'elm -v' says: Send bug reports to Kari Hurtta WARNING: Elm is not intended to be distributed in binary form. ) - Command $lib/elmregister unstage may be used to uninstall temporary files from stage directory (../var/stage-elm2.4me+). After that command "elmregister replay" do not have effect. - "make install" does "elmregister unstage" after "elmregister replay" - Fix case where elmunidata fails install unidata.bin when it does not exists. - Added to support to " and ' characters on internal mailcap parser (so these shell meta characters are supported on mailcap entries). - Added support for nametemplate on internal mailcap parser. Only templates what specify filename extension are supported. New command line options: --title-name=XXXXX --icon-name=XXXX --with-title=XXX --with-title New elmrc options: set-window-title attachment-dir New files: utils/elmregister.c hdrs/defs_major.h doc/prlong.1 Makefile-1.SH utils/reghelper.c hdrs/reghelper.h doc/elmregister.1 Changes of Elm2.4ME+ PL100a (25) compared with Elm2.4ME+ PL100 (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Configure did not generated mapping for iso_8859_1 locale (on SunOS). Problem noted by: Tommi Nieminen - Do not use tempnam() on lib/mailer.c so that linker do not produce warnings (actual checks for attacks are done safeopen_rdwr() -- this does not effect to that.) - "When I choose "f)orget" instead of "s)end" I abandon writing/sending the current piece of email and get the message: Message kept. Can be restored at next f)orward, m)ail or r)eply. Well, when I choose "f" or "m" the saved text of the message doesn't pop up." Problem noted by: Andrzej Marecki > Don't unlink temporary editor's work file if mail is abandon. Changes of Elm2.4ME+ PL100 (25) compared with Elm2.4ME+ PL99 (25) ---------------------------------------------------------------- Undo Elm2.4ME+ PL99a (25), Elm2.4ME+ PL99b (25) Elm2.4ME+ PL99c (25), Elm2.4ME+ PL99d (25), Elm2.4ME+ PL99e (25) and Elm2.4ME+ PL99f (25) patches before applying this patch. WARNING: Changes on MIME handling. So please report new bugs which you observe... SUMMARY: This release collects patches 99a - 99f. This release also adds (some) support for EUC charsets and for mailcaps without using metamail. Mailcap support uses new elmrc option internal-mailcaps. This release also includes various other changes. - There should not be Return-Path header visible on Pre-Send screen on Beginner user level. - For charset types utf-7, utf-8 and imap allow only "other-set" iso2022 bank specification. - Fix Segmentation fault with elm -D ISO-2022-JP when printing subject. - Handling of multipart/signed and multipart/encrypted was broken Elm2.4ME+ PL98 (25) > Problem noted by: Bruce Momjian - 'Configure -c FILE' reads FILE instead of config.sh (config.sh is written) - From (or To) name was not correctly clipped when used double width characters (ie. elm -D ISO-2022-JP) - Subject was incorrectly truncated when it included double wide characters (and was not highlighted) - Turns out that kterm suuports ISO-8859-1 -- actually builtin fontlist works. Added "kterm ISO-2022 ISO-8859-1" line to doc/terminal.info > Also note that initially kterm does NOT default to ISO-8859-1 -- therefore ISO-8859-1 works only when elm explicity switch to ISO-8859-1 (for example with 'elm -D ISO-8859-1') > To get best result give fontlist -fl option to kterm (example kterm -fl '-*-fixed-medium-r-normal--16-*-iso8859-*,\ -*-*-medium-r-normal--16-*-c-*-iso8859-*,\ -*-*-bold-r-normal--16-*-c-*-*.*-0' But that one line, removing \ and spaces.) - ConfTool/GenTerminalinfo is now able to add new charsets to existing terminal entries on bin/elm.terminalinfo - sh Configure -S and sh Configure -M now updates bin/elm.terminalinfo (and not only bin/elm.mimecharsets) - Whitespaces on end of lines of bin/elm.terminalinfo was causing parsing problems. Fixed similar problem on several parsing routine. - Fix panic with ISO-2022-JP text with message STRING PANIC in cs_iso2022.c:1757:add_char_stream >>>Bad control character caused by mishandling of corrupted or unexpected input - Fixed some compilation warnings. - If metamail is called when using 'h' command (show headers), add KEYHEADS=* and KEYIGNHEADS= to environment (causing metamail to print all headers) - Allow Unicode Format A maps to be space seperated (although they should be tab sebarated) - Inital bank settings was done incorrectly - Added support for EUC charsets (lib/cs_iso2022.c). - Terminal is now initialized to used charset even when switching of display charset is not asked. - "I'm working on updating the Debian elm-me+ package; a number of patches have accumulated over the years, and the first step seems to be integrating them with the upstream release." From: Matej Vela > Only very small part from that patch/patches is included on here: * shared_libs/iconv/config: Some typos fixed. * shared_libs/iconv/iconv.c: GNU libc 2.2 no longer uses const for iconv(3) args. * melib/pgp_decode.c: Default to GnuPG rather than PGP 5 have_pgp() will return PGP 5 if PGP 5 and GnuPG is not installed (when GnuPG is used as default). When PGP 5 is used as default have_pgp() do not check GnuPG at all. * "Configure: Linux standards (FSSTND, FHS) consider /usr/lib/sendmail obsolete and recommend /usr/sbin/sendmail: the former still exists as a symlink, so it's important to check for the latter first. " Also Sendmail Installation and Operation Guide says that binary is installed to /usr/sbin. * Fixed some typos. * "Changed Makefiles to use $(MFLAGS) rather than $(MAKEFLAGS) for compatibility with older makes (e.g. 4.2BSD). Modern makes which support $(MAKEFLAGS) pass it through the environment anyway; passing it explicitly will double the variable assignments on each level." * "Debian keeps the configuration files in /etc, so I've added support for a separate $etc directory. It still defaults to $lib." > Meta expand provides: +filename == file on mail folder directory =filename == file on mail folder directory %filename == file on mail folder directory {rc}/filename == file on .elm subdirectory of home {lib}/filename == file on Elm's global library directory {etc}/filename == file on Elm's global configure directory And also same epansions than expand_env(): ~/filename == file on home direccory Environment variable components - Do not remove $sendmail (SENDMAIL_MAILER_PATH) on Configure, if $mailer is some other. - Do not allow using /etc (or /etc/mail) as configuration directory $etc. That may cause conflict with file $etc/aliases (with sendmail's file of same name.) - melib/pgp_decode.c: If reading of pgp/gpg result is interrupted, retry reading of it. - shared_libs/tls/config: Try locate libssl from system directory Problem noted by: Matej Vela - shared_libs/iconv: Try locate libiconv from system library - Testing sendmail options with -bv is not posisible on sendmail 8.12 (if sendmail is installed as setgid and mqueue is not accessible by user). Threfore do testing of options by sending mail to user instead! - Fixed some file descriptor leaks Problem noted by: Darren Reed > Close file descriptor on load_locale_map() after reading elm.mimecharsets (.elm/mime.charsets). > Close file descriptor on load_terminal_map() after reading elm.terminalinfo (.elm/terminal.info) > Close file descriptor on get_unidata() after reading elm.map.bin/unidata.bin - "I don't believe it is closing the temporary file in /tmp when it is no longer being used after sending an email." Problem noted by: Darren Reed > Add mailer close function which closes descriptor (out_state_destroy() do not close it) - mailer info was not correctly deleted/closed -- therefore submission mailer did not closed socket to smtp server - Configure: On Linux no additional libraries (for example -lintl) are not needed - "But I have a little problem with imap: When elm connects to an IMAP server it first reads the list of messages and then the list of headers (read_headers, copy_envelope_folder ...). This takes a very long time: It starts with the UID=1 and increases the UID until it finds the message." "With these UIDs the search for the first message runs a loop from 1 to 337934011 which takes long! (imap.c line 5462-5477, elm2.4ME+PL99c)" Problem noted by: Rainer Bawidamann > Added fix to imap code - Trying send pgp2 (signed or encrypted) message was causing crash. - If terminal was (mis?)using ti (enter_ca_mode) / te (exit_ca_mode) to change screen, error message from "elm -f bad-folder" was not visible. - Reduce sleep after "You seem to have ELM already reading this mail" because now message is visible also after elm is exited. - (function hdr_decode_from_phrase) Printing of headers (which include phrases) was adding extra space between tokens -- adding of spaces between tokens is not needed because separating spaces (and comments) are not removed during parsing. This is visible on headers like In-reply-to: "Kari E. Hurtta's" message of "10 Nov 2002 12:04:00 +0200" - Added one missing unlink() to error handling on mime_decode.c - Removed space from end of some lines from MANIFEST Problem noted by: Matej Vela - Fix panic on header editing screen on In-Reply-To: STRING PANIC in cs_binary.c:1043:cs_give_unicode_from_ascii >>>Index out of array - Header editing screen was not regognizing In-reply-to if it only includes phrase (without message-id). In-reply-to header should include only message-id, but if but if only phrase is entered accept it (with warning as usual.) - "Now I have another problem: The IMAP RFC says that for a read-only folder the answer to the SELECT command MUST contain the READ-ONLY flag while for a read-write folder the response SHOULD contain the READ-WRITE flag. So the default (if no flag is given) is read-write (elm has read-only as default)." Problem noted by: Rainer Bawidamann > Assume folder to be writable just before calling SELECT - Free parser data on failure of mime_parser_parse() - Wait after error before calling exit() on init so that error messages are visible - Removed in_state_FILE() - Added some support mailcap support (without metmail). That uses elmrc variable "internal-mailcaps". List may be space or ':' seperated. Separate values may be quoted. Set value to "none" to disable internal mailcap support. NOTE: RFC 1343 (A User Agent Configuration Mechanism for Multimedia Mail Format Information) is NOT followed. RFC 1343 says: Because of differences in shells and the implementation and behavior of the same shell from one system to another, it is specified that the command line be intended as input to the Bourne shell, i.e. that it is implicitly preceded by "/bin/sh -c " on the command line. This is NOT done. Using of that may case that sender of mail may execute command by using shells special characters. Avoiding of that requires carefull quotation of mailcap entries. And correct quotation requires carefull parsing of Bourne shell syntax. And we do not really know if /bin/sh following Bourne shell syntax or have on it some extensions. Only view command and test command is supported. And only if there is not any meta character of shell on there so it can executed directly. - For internal mailcap processing, output of entries marked are with "copiousoutput" are piped back to Elm ME+. This may cause problems if output includes termianl escape sequences. - Terminal is given for processing if entry is marked with "needsterminal". - Also "textualnewlines" should have processed. It is not. NOTE: You need metamail yet at least for handling of fragmented messages (ie. message/partial). (Metamail's showpartial command is required and showpartial calls metamail.) Following character sets are redefined on lib/precompiled_sets.c: EUC-KR type=euc EUC-JP type=euc GB2312 type=euc (ASCII + GB 2312-80, really EUC-CN) 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. Removed empty files: (not in MANIFEST) hdrs/filter.h hdrs/s_filter.h lib/addrmchusr.c lib/iprintf.c lib/parsarpwho.c lib/tail_of.c nls/C/C/C/s_filter.m src/parse_util.c src/pmalloc.c src/remailer.c New files: OBSOLETE melib/mailcap.c melib/mime_selector.c New elmrc options: internal-mailcaps Changes of Elm2.4ME+ PL99f (25) compared with Elm2.4ME+ PL99e (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Fix panic on header editing screen on In-Reply-To: STRING PANIC in cs_binary.c:1043:cs_give_unicode_from_ascii >>>Index out of array - Header editing screen was not regognizing In-reply-to if it only includes phrase (without message-id). In-reply-to header should include only message-id, but if but if only phrase is entered accept it (with warning as usual.) - "Now I have another problem: The IMAP RFC says that for a read-only folder the answer to the SELECT command MUST contain the READ-ONLY flag while for a read-write folder the response SHOULD contain the READ-WRITE flag. So the default (if no flag is given) is read-write (elm has read-only as default)." Problem noted by: Rainer Bawidamann > Assume folder to be writable just before calling SELECT - Free parser data on failure of mime_parser_parse() Changes of Elm2.4ME+ PL99e (25) compared with Elm2.4ME+ PL99d (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Trying send pgp2 (signed or encrypted) message was causing crash. - If terminal was (mis?)using ti (enter_ca_mode) / te (exit_ca_mode) to change screen, error message from "elm -f bad-folder" was not visible. - (function hdr_decode_from_phrase) Printing of headers (which include phrases) was adding extra space between tokens -- adding of spaces between tokens is not needed because separating spaces (and comments) are not removed during parsing. This is visible on headers like In-reply-to: "Kari E. Hurtta's" message of "10 Nov 2002 12:04:00 +0200" - Added one missing unlink() to error handling on mime_decode.c - Removed space from end of some lines from MANIFEST Problem noted by: Matej Vela Changes of Elm2.4ME+ PL99d (25) compared with Elm2.4ME+ PL99c (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - "I'm working on updating the Debian elm-me+ package; a number of patches have accumulated over the years, and the first step seems to be integrating them with the upstream release." From: Matej Vela > Only very small part from that patch/patches is included on here: * shared_libs/iconv/config: Some typos fixed. * shared_libs/iconv/iconv.c: GNU libc 2.2 no longer uses const for iconv(3) args. * melib/pgp_decode.c: Default to GnuPG rather than PGP 5 have_pgp() will return PGP 5 if PGP 5 and GnuPG is not installed (when GnuPG is used as default). When PGP 5 is used as default have_pgp() do not check GnuPG at all. - melib/pgp_decode.c: If reading of pgp/gpg result is interrupted, retry reading of it. - shared_libs/tls/config: Try locate libssl from system directory Problem noted by: Matej Vela - shared_libs/iconv: Try locate libiconv from system library - Testing sendmail options with -bv is not posisible on sendmail 8.12 (if sendmail is installed as setgid and mqueue is not accessible by user). Threfore do testing of options by sending mail to user instead! - Fixed some file descriptor leaks Problem noted by: Darren Reed > Close file descriptor on load_locale_map() after reading elm.mimecharsets (.elm/mime.charsets). > Close file descriptor on load_terminal_map() after reading elm.terminalinfo (.elm/terminal.info) > Close file descriptor on get_unidata() after reading elm.map.bin/unidata.bin - "I don't believe it is closing the temporary file in /tmp when it is no longer being used after sending an email." Problem noted by: Darren Reed > Add mailer close function which closes descriptor (out_state_destroy() do not close it) - mailer info was not correctly deleted/closed -- therefore submission mailer did not closed socket to smtp server - Configure: On Linux no additional libraries (for example -lintl) are not needed - "But I have a little problem with imap: When elm connects to an IMAP server it first reads the list of messages and then the list of headers (read_headers, copy_envelope_folder ...). This takes a very long time: It starts with the UID=1 and increases the UID until it finds the message." "With these UIDs the search for the first message runs a loop from 1 to 337934011 which takes long! (imap.c line 5462-5477, elm2.4ME+PL99c)" Problem noted by: Rainer Bawidamann > Added possible fix (not tested) to imap code Removed empty files: (not in MANIFEST) hdrs/filter.h hdrs/s_filter.h lib/addrmchusr.c lib/iprintf.c lib/parsarpwho.c lib/tail_of.c nls/C/C/C/s_filter.m src/parse_util.c src/pmalloc.c src/remailer.c New files: OBSOLETE Changes of Elm2.4ME+ PL99c (25) compared with Elm2.4ME+ PL99b (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - Handling of multipart/signed and multipart/encrypted was broken Elm2.4ME+ PL98 (25) > Problem noted by: Bruce Momjian Changes of Elm2.4ME+ PL99b (25) compared with Elm2.4ME+ PL99a (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix panic with ISO-2022-JP text with message STRING PANIC in cs_iso2022.c:1757:add_char_stream >>>Bad control character caused by mishandling of corrupted or unexpected input - Fixed some compilation warnings. Changes of Elm2.4ME+ PL99a (25) compared with Elm2.4ME+ PL99 (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - There should not be Return-Path header visible on Pre-Send screen on Beginner user level. - Fix Segmentation fault with elm -D ISO-2022-JP when printing subject. - From (or To) name was not correctly clipped when used double width characters (ie. elm -D ISO-2022-JP) - Subject was incorrectly truncated when it included double wide characters (and was not higlighted) - Turns out that kterm supports ISO-8859-1 -- actually builtin fontlist works. Added "kterm ISO-2022 ISO-8859-1" line to doc/terminal.info > Also note that initially kterm does NOT default to ISO-8859-1 -- therefore ISO-8859-1 works only when elm explicity switch to ISO-8859-1 (for example with 'elm -D ISO-8859-1') > To get best result give fontlist -fl option to kterm (example kterm -fl '-*-fixed-medium-r-normal--16-*-iso8859-*,\ -*-*-medium-r-normal--16-*-c-*-iso8859-*,\ -*-*-bold-r-normal--16-*-c-*-*.*-0' But that one line, removing \ and spaces.) - ConfTool/GenTerminalinfo is now able to add new charsets to exitings terminal entries on bin/elm.terminalinfo - sh Configure -S and sh Configure -M now updates bin/elm.terminalinfo (and not only bin/elm.mimecharsets) - Whitespaces on end of lines of bin/elm.terminalinfo was causing parsing problems. Fixed similar problem on several parsing routine. Changes of Elm2.4ME+ PL99 (25) compared with Elm2.4ME+ PL98 (25) ---------------------------------------------------------------- Undo Elm2.4ME+ PL98a (25), Elm2.4ME+ PL98b (25) Elm2.4ME+ PL98c (25) patches before applying this patch. WARNING: Changes on address and terminal MIME handling. So please report new bugs which you observe... SUMMARY: This release adds users to possibility to specify envelope sender address (aka Return-Path). There is suboption allow-set-sender=yes on global elm.rc's mailer option for that. Envelope sender address can be given on .elm/elmheaders file as Return-Path header. Another new elmrc option is convert-utf-header. This release also adds (some) support for ISO 2022 as MIME charsets. This includes multibyte and double wide ISO 2022 chracters. This release fixs also some bugs. - On elm.rc mailer variable option allow-set-sender=yes for mailer type 'sendmail' allows user to set envelope sender address (aka Return Path). This is passed to sendmail via -f command line option. - On elm.rc mailer variable option allow-set-sender=yes for mailer types 'sendmail-bs' and 'submission' allows user to change envelope sender address (aka Return-Path). These mailers use envelope sender address on MAIL FROM: smtp command. - pre-send menu have now title "Mail Pre-Send Screen". Also screen is cleared before showing menu. - To header is now visible on "Mail Pre-Send Screen" - Envelope sender (aka MAIL FROM) is visible on "Mail Pre-Send Screen" as Return-path. Return-path is shown is envelope sender is changeable. - If mailer (for example 'submission' and 'sendmail-bs') passes MAIL FROM always it is printed (as Return-path) on "Mail Pre-Send Screen" anyway. - Envelope sender is written as Return-path: -header to saved copy of mail (and also to "From " separator of mails). - Envelope sender address can be given on .elm/elmheaders as Return-path: -header. - If global elm.rc option add-sender is set (default), Elm adds Sender: -header if user changes envelope sender address (aka Return-Path). - For b)ounce command .elm/elmheaders is now read to get envelope sender address (aka Return-Path). Note however that content of .elm/elmheaders is NOT put to b)ounced mail. NOTE: Is is not possible currently to use elm aliases to Return-Path: query on Mail Pre-Send Screen (altough elm aliases work on To: query on same screen) - fastmail command now reads .elm/elmheaders and append these headers to mail. Also envelope sender address (aka Return-Path) is updated. - Configure -DDEBUG -S can now used to enable debugging (in other words reconfiguration is not needed) - Moved from_addr_literal() from src/addr_util.c to lib/outheaders.c - Moved make_from_addr() from src/addr_util.c to lib/outheaders.c - Moved write_addr_header() and write_text_header() from src/addr_util.c to lib/write_hdr.c - Moved print_EOLN() from src/mime_encode.c to lib/write_hdr.c - Moved write_id_phrase_header() and write_string_header() from src/id_phrace.c to lib/id_phrace.c - Moved dump_expanded_address() from src/addr_util.c to lib/outheaders.c - Moved argv_from_headers() from src/addr_util.c to lib/mailer.c - Moved eval_backquote() from src/mkhdrs.c to lib/outheaders.c - Moved read_header_line() and state_read_hdr_line() from melib/parse_util.c to lib/headers. - fastmail also recognices $BCC environment variable - fastmail now does mime encoding for some headers (but otherwise fastmail still does not support MIME) - "since a number of releases frm doesn't detect status new correctly for me (Linux 2.4.18, elm2.4.ME+.98)." Problem noted by: Jan Willamowius > Changed utils/from.c logic same than src/newbox.c NOTE: Fastmail is still broken. - Be consistent and use everywhere #ifndef ANSI_C around of extern int errno; - Added walk parameter to mime_parse_content_opts() - Our non-standard headers was ignored: * X-ELM-OSV: hdr-charset=xxxx was ignored * Content-Length: xxxx was ignored - fastmail did not read standard input when - was specified as filename. - Elm ME+ failed to read IMAP mail when Return-Path included (unquoted) space on address. Problem noted by: graham@cplane.com - copy_message_2() lost header name when folding happeded immediately after header name (that specially was visible on copy of sent message when phrase was long.) - optionally_enter() was using wrong charset on some situation (ie. 'keyboard charset' instead of display charset) - Do not split UTF-8 to mime encoded words on middle of multi-byte UTF-8 character - Textual form ('surfcase form') of entered address is now "struct string" instead of "char *" -- that implies quite much changed on header editing screen and elsewhere. NOTE: Now if addressess are edited, phrases and comments on addresses to text-charset (if mapping of text-charset is known) If there is non-ascii parts on addresses (which is illegal) they may be presendted with UTF-8 charset. - open_mapname(), set_charmap_copy_callback() moved from lib/cs_binary.c to lib/iso2022_map.c - parser for Unicode Format A maps is moved to lib/iso2022_map.c - Added support for ISO-2022 charsets (lib/cs_iso2022.c). - Added support for new config files {lib}/elm.iso2022sets and ~/.elm/iso2022.sets. See chapter "ISO2022 maps information" for details. - New elmrc option convert-utf-header specifies if set (default) that UTF-7 charset should be favored instead of UTF-8 on headers. That avoid ridiculous per character expansion of encoding when UTF-8 is used on MIME encoded words. - Do not =xx encode + character on MIME encoded words. - Clear screen before calling external pager - 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 situation where flags are needed. - Directory browser was using / on end of directory names and therefore did not found names from listing - effectely local-fast-lookup = OFF was not working. Following character sets are redefined on lib/precompiled_sets.c: ISO-2022-KR type=iso2022 ISO-2022-JP type=iso2022 ISO646-JP type=iso646 ISO-2022-JP-2 type=iso2022 ISO-2022-CN type=iso2022 (1) ISO-2022-CN-EXT type=iso2022 (1) (2) (1) NOTE: Does not use single shifts! (2) NOTE: ISO-2022-CN-EXT includes several sets which final designation byte is unknown GB 12345, GB 7589, GB 13131, GB 7590, GB 13132 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. WARNING: There is no support for input of these scripts. Seems that locales use EUC charsets. These are not supported. New elmrc options: convert-utf-header New tools: elmstringconvert New files: lib/write_hdr.c lib/cs_iso2022.c lib/iso2022_map.c hdrs/cs_terminal.h lib/stringtok.c utils/elmstringconvert.c doc/elmstringconvert.1 ConfTool/GenTerminalinfo Removed files: src/id_phrase.c Changes of Elm2.4ME+ PL98c (25) compared with Elm2.4ME+ PL98b (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - copy_message_2() lost header name when folding happeded immediately after header name (that specially was visible on copy of sent message when phrase was long.) - Elm ME+ failed to read IMAP mail when Return-Path included (unquoted) space on address. Problem noted by: graham@cplane.com - fastmail did not read standard input when - was specified as filename. - optionally_enter() was using wrong charset on some siutation (ie. 'keyboard charset' instead of display charset) -- this specially effects -Dutf-8 option. - Do not split UTF-8 to mime encoded words on middle of multi-byte UTF-8 character Changes of Elm2.4ME+ PL98b (25) compared with Elm2.4ME+ PL98a (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Our non-standard headers was ignored: * X-ELM-OSV: hdr-charset=xxxx was ignored * Content-Length: xxxx was ignored Changes of Elm2.4ME+ PL98a (25) compared with Elm2.4ME+ PL98 (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - "since a number of releases frm doesn't detect status new correctly for me (Linux 2.4.18, elm2.4.ME+.98)." Problem noted by: Jan Willamowius > Changed utils/from.c logic same than on src/newbox.c Changes of Elm2.4ME+ PL98 (25) compared with Elm2.4ME+ PL97 (25) ---------------------------------------------------------------- Undo Elm2.4ME+ PL97a (25), Elm2.4ME+ PL97b (25) Elm2.4ME+ PL97c (25) and Elm2.4ME+ PL97d (25) patches before applying this patch. WARNING: Quite lot of changes on MIME handling. So please report new bugs which you observe... * "What would be practical is that elmrc would set the usual address, but the user could override it by setting a user defined header when ie. posting to a mailing list." Requested by: Jernej Zajc - now .elm/mailheaders is read before mail is composed! .mailheaders now supports only X- headers and From: -header. X- header is shown on header editing screen as user defined header (and if you change it, it replaces headers given on .elm/mailheaders.) - If user gives From: -header on .mailheaders (or on header editing screen), Elm does not add it's own From: -header - 8-bit X- headers on .elm/mailheaders is now mime encoded. - Mime encoding on .elm/mailheaders is also regognized - If nohdrencoding is set on elmrc, MIME encoding is not done and not regognized on .elm/mailheaders. Also X-ELM-OSV: no-hdr-encoding=1 is added to mail. - Added global elm.rc option add-sender. If set (default), Elm adds Sender: -header if user specifies From: -header. If there is more than one address on From: -header, Sender: -header is always added. - With 'f' command it is possible to change or set From: header on header editing screen. However header editing screen shows From -header only when it is set. - Moved some routines from src/id_phrase.c to lib/id_phrase.c - Moved some routines from src/addr_util.c to lib/outheaders.c - binary flag was incorrectly set true (result on change on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers was always encoded with CRLF (and not LF) when mail was saved (or C)opied.) - Truncate long folder names on Reading ... message so that there is space left for "skipped" text. ( Small potential fix for "Reading in ..., message: xxx" counter. ) - Configure now ask option for position independent code. Decision is half automatic. - Added elmrc variable type rc_DT_PATH. - Added elmrc variable metamail-mailcaps. List of mailcaps for metamail. List may be space or ':' seperated. Separate values may be quoted. When metamail is called values are put to variable $MAILCAPS (as ':' -separated list). metamail-mailcaps may include variables (for example $MAILCAPS). Value of variables is splitted only from ':' (quotes and spaces are not treated specially.) - binary flag was incorrectly set true (result on change on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers was always encoded with CRLF (ant not LF) when mail was saved (or C)opied.) - Truncate long folder names on Reading ... message so that there is space left for "skipped" text. - "I cannot get PL97 to compile on OpenBSD. " "service_list.o: Undefined symbol `_get_option_type' referenced from text segment" Reported by: Jernej Zajc - "the new release of elm2.4.ME+.97 has a compilation problem on AIX 4.3.3" "ld: 0711-317 ERROR: Undefined symbol: .get_option_type" Reported by: Noam G. Nudelman > Make sure that get_option_type is inside of #ifdef USE_DLOPEN - Wrong answer to question "Any additional libraries" causes failure on "Trying locate terminfo routines" part. Problem noted by: "Noam G. Nudelman" > Detect failure with libraries earlier. - Wrong default was used for question "Both and found. Which one I should include for prototypes of tgetent() like functions when using $termlib." on IRIX 64. "To determine 'uname_os' you use 'uname -s' and on my host, the value returned is 'IRIX64' and not 'IRIX'. Accordingly, I get the default, [t] !!!!" Problem noted by: "Noam G. Nudelman" > Use IRIX* instead of IRIX on case switch - In IRIX Configure pics non-existing or unworking additional libraries. Problem noted by: "Noam G. Nudelman" > Use compilation on test -- hopefully this does not break on some OSes because interdepency of libs. - RPATH was not set for answer, elmalias, fastmail, frm, newalias, newmail, readmsg, prlong, elmcharset, elmrc-write, elmterminal, elmunidata. (Normally that that did not caused problem because to soname was compiled full path of shared library.) Problem noted by: "Noam G. Nudelman" - "As indicated in my mail from the 11th of February, when both and are included for "prototypes of tgetent() like functions when using -ltermlib", I receive an error. When selecting option 'c' (Include only ), it compiles without error." Reported by: "Noam G. Nudelman" > Changed default from b)oth to c)urses.h only for IRIX. - Allow "none" as value of roff - Possible shared library generation fix for OpenBSD. This is not tested, so quite probably it does not work. Problem noted by: Jernej Zajc - If there libintl.so (from GNU gettext) installed to /usr/local/lib on IRIX 6.5, Elm tries link agaist that. That causes problems. Problem noted by: "Noam G. Nudelman" > Set libswanted list to empty for IRIX 6.x (Configure later adds -lc_s to list but hopefully that does not matter.) - "Oh, yeah, the install program ask about if a call to the 'GNU' ispell spelling checker should be added, but the ispell program is not GNU, even though they do make it available for FTP as well as other sites." Problem noted by: Brian Waters - "Ah.. ok.. great, would it make any sense to make the p)rint be the same as P)rint for now as a build option. The users here are used to just hitting 'p', and almost always do not mean to print the mime as text. " Requested by: Brian Waters > Disable p)rint command (try P)rint text instead.) p)rint command does something like "readmsg | {print-command}". readmsg is quite broken. - readmsg didn't handle folders with CRLF as EOLN (Notice that readmsg is still several ways broken.) Problem noted by: Konstantinides, Konstantinos - Added lib/mediatype.c - Support for message/X-delivery-status-* type dropped (use message/delivery-status instead.) - Added melib/mparser.c, melib/mpar_rfc822.c, melib/mpar_multipart.c, melib/mpar_leaf.c, hdrs/mpar_imp.h - "Parsing MIME structure..." is now printed for all mail -- not only for multipart (and message/rfc822) mails. - Attachment Menu now show structure of mail when viewing mail -- It's title is now: MIME structure Menu - When sending mail do not use 7bit/8bit to determine is type text orienteed - Added warning "7bit/8bit is allowed only for line orienteed types -- check encoding" to attachment modifying New elmrc options: add-sender metamail-mailcaps New files: lib/outheaders.c lib/id_phrase.c lib/mediatype.c melib/mparser.c melib/mpar_rfc822.c melib/mpar_multipart.c melib/mpar_leaf.c hdrs/mpar_imp.h Changes of Elm2.4ME+ PL97d (25) compared with Elm2.4ME+ PL97c (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - If there libintl.so (from GNU gettext) installed to /usr/local/lib on IRIX 6.5, Elm tries link agaist that. That causes problems. Problem noted by: "Noam G. Nudelman" > Set libswanted list to empty for IRIX 6.x (Configure later adds -lc_s to list but hopefully that does not matter.) - "Oh, yeah, the install program ask about if a call to the 'GNU' ispell spelling checker should be added, but the ispell program is not GNU, even though they do make it available for FTP as well as other sites." Problem noted by: Brian Waters - "Ah.. ok.. great, would it make any sense to make the p)rint be the same as P)rint for now as a build option. The users here are used to just hitting 'p', and almost always do not mean to print the mime as text. " Requested by: Brian Waters > Disable p)rint command (try P)rint text instead.) p)rint command does something like "readmsg | {print-command}". readmsg is quite broken. - readmsg didn't handle folders with CRLF as EOLN (Notice that readmsg is still several ways broken.) Problem noted by: Konstantinides, Konstantinos Changes of Elm2.4ME+ PL97c (25) compared with Elm2.4ME+ PL97b (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - Wrong answer to question "Any additional libraries" causes failure on "Trying locate terminfo routines" part. Problem noted by: "Noam G. Nudelman" > Detect failure with libraries earlier. - Wrong default was used for question "Both and found. Which one I should include for prototypes of tgetent() like functions when using $termlib." on IRIX 64. "To determine 'uname_os' you use 'uname -s' and on my host, the value returned is 'IRIX64' and not 'IRIX'. Accordingly, I get the default, [t] !!!!" Problem noted by: "Noam G. Nudelman" > Use IRIX* instead of IRIX on case switch - In IRIX Configure pics non-existing or unworking additional libraries. Problem noted by: "Noam G. Nudelman" > Use compilation on test -- hopefully this does not break on some OSes because interdepency of libs. - RPATH was not set for answer, elmalias, fastmail, frm, newalias, newmail, readmsg, prlong, elmcharset, elmrc-write, elmterminal, elmunidata. (Normally that that did not caused problem because to soname was compiled full path of shared library.) Problem noted by: "Noam G. Nudelman" - "As indicated in my mail from the 11th of February, when both and are included for "prototypes of tgetent() like functions when using -ltermlib", I receive an error. When selecting option 'c' (Include only ), it compiles without error." Reported by: "Noam G. Nudelman" > Changed default from b)oth to c)urses.h only for IRIX. - Allow "none" as value of roff - Possible shared library generation fix for OpenBSD. This is not tested, so quite probably it does not work. Problem noted by: Jernej Zajc Changes of Elm2.4ME+ PL97b (25) compared with Elm2.4ME+ PL97a (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - binary flag was incorrectly set true (result on change on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers was always encoded with CRLF (ant not LF) when mail was saved (or C)opied.) - Truncate long folder names on Reading ... message so that there is space left for "skipped" text. Changes of Elm2.4ME+ PL97a (25) compared with Elm2.4ME+ PL97 (25) ---------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix state_printf panic "Embedded newlines are not supported" on case when there is on ~/.elm/elmheaders `backticked` command which produces output which does not fit to 80 characters. - "I cannot get PL97 to compile on OpenBSD. " "service_list.o: Undefined symbol `_get_option_type' referenced from text segment" Reported by: Jernej Zajc - "the new release of elm2.4.ME+.97 has a compilation problem on AIX 4.3.3" "ld: 0711-317 ERROR: Undefined symbol: .get_option_type" Reported by: Noam G. Nudelman > Make sure that get_option_type is inside of #ifdef USE_DLOPEN - Error on X-ELM-OSV: header output. Changes of Elm2.4ME+ PL97 (25) compared with Elm2.4ME+ PL96 (25) ---------------------------------------------------------------- Undo Elm2.4ME+ PL96a (25) and Elm2.4ME+ PL96b (25) patches before applying this patch. - If several entries on .elm/mail.services or on elm.mailservices matches for connection request, merge them (before use). If conflicting connection types are specified, then only later entry on file is used. For example on cyrus IMAP port=143 cyrus POP only POP entry is used (ie. connection to server "cyrus" is done with POP). - Split show_status() to two routine: show_message_status() and show_alias_status(); - Added prepare_message_access() routine - Added elmrc option imap-max-download-size (default 4 KB). IMAP messages bigger than this are not downloaded when mailbox is read. Value -1 for imap-max-download-size causes that all messages are downloaded. - Added elmrc option pop-max-download-size (default 4 KB). POP messages bigger than this are not downloaded when mailbox is read. This requires that POP server supports TOP command. Value -1 for pop-max-download-size causes that all messages are downloaded. - ! character as second letter on message status indicates that message is not downloaded. - Note that for readmsg only tagged messages and current message is downloaded before starting program. - Test whatever make sets $(MAKE) - If elm's shared library directory is on /etc/ld.so.conf file ldconfig prints warnings like "ldconfig: warning: can't link /usr/local/elmtest/lib//usr/local/elmtest/lib/libelmme-iconv.so.1.0.96x.Test to libelmme-iconv.so.1.0.96x.Test (No such file or directory)" > Now Configure prints following kind warning on that situation: "WARNING: Directory /usr/local/elmtest/lib is listed on file /etc/ld.so.conf Linux ldconfig gives errors when soname include pathnames. Select c) Change elm2.4me+ shared library location o) Omit pathname from soname i) ignore ldconfig warnings and include path on soname Your selection? [i]" - Install (link) manual page for nfrm - Set default attachment type to application/octet-stream instead of text/plain, if file looks like binary. Requested by: Volker Englisch > Move adding of charset to same function (attach_info). - m)odify command on attachment menu allowed to set content-transfer-encoding to bad values. - Metamail can not cope with CRLF Problem noted by: Konstantinos Konstantinides - When using b)ounce command, mailer = submission did not issued EHLO/HELO command to server. - Do not use state_printf to print prefix on src/fileio.c (instead use state_puts). - C)opy command failed copy Subject: header which included 8-bit characters when display charset was UTF-8 > Also use state_nlputs (and not state_printf) to print end of header so that conversions via display charset does not occur... - Some places use state_nlputs so that potential LF -> CRLF conversions occur - Fix typo on "elm -vv" output when SYSCALL_LOCKING is not defined: "in" => "is" - Added elmrc variable default-mime-text-charset, which specifies default charset for text/plain if charset parameter is not specified. Default is "US-ASCII". Prompted by: Tommi Nieminen - "I wonder is there a command like in mutt that would make current next unread message? "n" only changes to next message, regardless whether it has been read or not. If I have missed it and is indeed not available, would you consider adding such a feature? It would really have been awfully nice." Prompted by: Jernej Zajc > Added Ctrl-N as next unread message - CHARTYPE_Sk was incorrect on hdrs/unidata.h (should be 0x4003, was 0x3003). Regeneration of {lib}/elm.map.bin/unidata.bin is required. This caused (for example) that ^ was not treated as valid character. - If Configure does not figure how to resolve mail program (ie. main) symbols from dynamic library, do not compile libelmme-smtp.so New elmrc options: imap-max-download-size pop-max-download-size default-mime-text-charset Changes of Elm2.4ME+ PL96b (25) compared with Elm2.4ME+ PL96a (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Test whatever make sets $(MAKE) - If elm's shared library directory is on /etc/ld.so.conf file ldconfig prints warnings like "ldconfig: warning: can't link /usr/local/elmtest/lib//usr/local/elmtest/lib/libelmme-iconv.so.1.0.96x.Test to libelmme-iconv.so.1.0.96x.Test (No such file or directory)" > Now Configure print following kind warning on that situation: "WARNING: Directory /usr/local/elmtest/lib is listed on file /etc/ld.so.conf Linux ldconfig gives errors when soname include pathnames. Select c) Change elm2.4me+ shared library location o) Omit pathname from soname i) ignore ldconfig warnings and include path on soname Your selection? [i]" - Install (link) manual page for nfrm - Set default attachment type to application/octet-stream instead of text/plain, if file looks like binary. Requested by: Volker Englisch > Move adding of charset to same function (attach_info). - m)odify command on attachment menu allowed to set content-transfer-encoding to bad values. Changes of Elm2.4ME+ PL96a (25) compared with Elm2.4ME+ PL96 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - Metamail can not cope with CRLF Problem noted by: Konstantinos Konstantinides - When using b)ounce command, mailer = submission did not issued EHLO/HELO command to server. - Do not use state_printf to print prefix on src/fileio.c (instead use state_puts). - C)opy command failed copy Subject: header which included 8-bit characters when display charset was UTF-8 > Also use state_nlputs (and not state_printf) to print end of header so that conversions via display charset does not occur... - Some places use state_nlputs so that potential LF -> CRLF conversions occur - Fix typo on "elm -vv" output when SYSCALL_LOCKING is not defined: "in" => "is" Changes of Elm2.4ME+ PL96 (25) compared with Elm2.4ME+ PL95 (25) ---------------------------------------------------------------- You need create directories charset/MAPPINGS charset/MAPPINGS/ISO8859 shared_libs/smtp befre applying this patch. Undo Elm2.4ME+ PL95a (25), Elm2.4ME+ PL95b (25) and Elm2.4ME+ PL95c (25) patches before applying this patch. - Do not use commands "mail" or "mailx" as mailer. - Allow specify "none" as mailer on configuration time (that requires that mailer is given on global elm.rc on run time.) - Configure failed to locate terminfo routines (ie. termlib) on Linux Mandrake 7.2. Test rewritten. - Added -b (batchmode) option to Configure -- avoids all prompting of user - "Using PL95 with the two patches you send me, I encountered the following problem when searching for a string in a mail message: Search: Noam Couldn't malloc 0 bytes!!" Reported by: Noam G. Nudelman > Avoid mallocing 0 legth buffer on find_pattern_from_string() - Some documentation fixes. - Remove d_savegrpmboxid variable from Configure (is is not set and is not used) - "Following please find the error when trying to compile elm2.4.ME+.95 on AIX 4.3.3 (maintenance level 09): <...> ld: 0711-317 ERROR: Undefined symbol: .cs_auto_charset" Reported by: Noam G. Nudelman > Protect call of cs_auto_charset() on lib/charset.c with #ifdef USE_DLOPEN - Elm dies with Out of memory -messae on AIX. Reported by: Noam G. Nudelman > Avoid mallocing 0 length string on convert_string() - P)rint Text command did not correctly print non-ascii header data. > Reimplement fix on Elm2.4ME+ PL95 (25) / Elm2.4ME+ PL94a (25): When sending mail, saving copy of mail to folder failed when displaycharset = UTF-8 text-charset = ISO-8859-1 > Also set buffer.filter for state_write_header() on copy_message_2() ( similar than on metapager() ) > Do conversion on state_printf if buffers displayed charset (displaycharset) is different than (apparent) real one - Detect on Configure if nl_langinfo(CODESET) is supported - By default Configure does not generate locale charset mappings to elm.mimecharsets file if nl_langinfo(CODESET) is supported. That is because value given by nl_langinfo(CODESET) is more likely to be correct than guess given by Configure (specially if user does not manually fix these guesses) - Generating of elm.mimecharsets is moved to end of Configure - Option -N to Configure tells that it can generate elm.mimecharsets from scratch - Added builtin mapping for ISO-8859-15 character set. - Added value ISO-8859-15 for map parameter for type ascii-set. - 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 -- actually directory given on map-text-dir elm.rc option.) - Added -S ../charset/MAPPINGS/ISO8859 option to elmcharset invocation so misisng map files are copied. - Added codeset and MIBenum fields to struct charcode_info - Added chararacter sets from http://www.iana.org/assignments/character-sets to precompiled_sets[] on lib/charset.c. Most of them are added as cs_unknown indicating that Elm ME+ knows nothing about them. - Moved precompiled_sets[] to lib/precompiled_sets.c - elmcharset -M lists character sets on MIBenum order - "When you quit or when you change folders, there are usually questions like "Move read messages to "received" folder? (y/n)". Pressing y or n would generate "Yes" or "No" strings at the "answer" spot. Since there is usually some delay after that you may want to press some key again expecting those Yes/No strings and causing Elm behave unexpectedly (you would expect that Yes/No show up and then do what you asked it to)." Reported by: Peter > Added FlushBuffer() to want_to() - Now "make installs" installs also elm.terminalinfo file to elm's library directory. During Configure file goes to bin/elm.terminalinfo. As on Elm2.4ME+ PL79 (25) file elm.terminalinfo specifes instructions to Elm ME+ how to change charset of terminal. For more information see chapter "Additional terminal information". > For now just file doc/terminal.info is used (without processing). That may cause some error messages because of unkown character sets, but you should abel to ignore them. > Installation of elm.terminalinfo means that Elm ME+ will try change terminal character set during operation. If that does bad thing to you, please check correctness of elm.terminalinfo file. - To really take advantege of that add following to global elm.rc allow-charset-switching = ON - connection for mailbox server failed when thre was several IP addresses for server. - Debugging (of POP) caused crash. - When IMAP server returns mail where last line is incomplete, Elm ME+ goes to infinite loop. Problem noted by: Werner Guenther > Changed *_got_*_line() routines. Also made similar change on POP code (although probably this can not occur on POP code.) - Added support to specify conditions (for environment variables) on .elm/terminal.info or on elm.terminalinfo. That allows lines like linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15 on terminal.info (that line does not actually work because $SYSFONTACM is not exported.) > Added these to doc/terminal.info so they are also copied to to elm.terminalinfo - Output routine on panic() was inccorect - ~/elm/mail.services was not overriding global elm.mailservices - Moved kludge_addr() from src/addr_util.c to lib/mailer.c - Added shared library libelmme-smtp.so (shared_libs/smtp/) which implements message submission protocol (RFC 2476). To use that library add smtp to use-library -elmrc variable, for example use-library = iconv And specify mailer type with mailer -elmrc variable, for example mailer = submission See also: shared_libs/smtp/README.ME+ New files: charset/MAPPINGS/ISO8859/8859-2.TXT charset/MAPPINGS/ISO8859/8859-3.TXT charset/MAPPINGS/ISO8859/8859-4.TXT charset/MAPPINGS/ISO8859/8859-5.TXT charset/MAPPINGS/ISO8859/8859-6.TXT charset/MAPPINGS/ISO8859/8859-7.TXT charset/MAPPINGS/ISO8859/8859-8.TXT charset/MAPPINGS/ISO8859/8859-9.TXT charset/MAPPINGS/ISO8859/8859-10.TXT charset/MAPPINGS/ISO8859/8859-13.TXT charset/MAPPINGS/ISO8859/8859-14.TXT charset/MAPPINGS/ISO8859/8859-16.TXT ConfTool/validcharset.c ConfTool/Makefile lib/precompiled_sets.c shared_libs/smtp/Makefile.SH shared_libs/smtp/config shared_libs/smtp/elmsmtp.h shared_libs/smtp/smtp.c shared_libs/smtp/README.ME+ Changes of Elm2.4ME+ PL95c (25) compared with Elm2.4ME+ PL95b (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - Do not use commands "mail" or "mailx" as mailer. - Allow specify "none" as mailer on configuration time (that requires that mailer is given on global elm.rc on run time.) - Configure failed to locate terminfo routines (ie. termlib) on Linux Mandrake 7.2. Test rewritten. - Added -b (batchmode) option to Configure -- avoids all prompting of user Changes of Elm2.4ME+ PL95b (25) compared with Elm2.4ME+ PL95a (25) ------------------------------------------------------------------ [ This patch is branch from the main line. ] - "Using PL95 with the two patches you send me, I encountered the following problem when searching for a string in a mail message: Search: Noam Couldn't malloc 0 bytes!!" Reported by: Noam G. Nudelman > Avoid mallocing 0 legth buffer on find_pattern_from_string() - Some documentation fixes. - Remove d_savegrpmboxid variable from Configure (is is not set and is not used) Changes of Elm2.4ME+ PL95a (25) compared with Elm2.4ME+ PL95 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - "Following please find the error when trying to compile elm2.4.ME+.95 on AIX 4.3.3 (maintenance level 09): <...> ld: 0711-317 ERROR: Undefined symbol: .cs_auto_charset" Reported by: Noam G. Nudelman > Protect call of cs_auto_charset() on lib/charset.c with #ifdef USE_DLOPEN - Elm dies with Out of memory -messae on AIX. Reported by: Noam G. Nudelman > Avoid mallocing 0 length string on convert_string() - P)rint Text command did not correctly print non-ascii header data. > Reimplement fix on Elm2.4ME+ PL95 (25) / Elm2.4ME+ PL94a (25): When sending mail, saving copy of mail to folder failed when displaycharset = UTF-8 text-charset = ISO-8859-1 > Also set buffer.filter for state_write_header() on copy_message_2() ( similar than on metapager() ) > Do conversion on state_printf if buffers displayed charset (displaycharset) is different than (apparent) real one Changes of Elm2.4ME+ PL95 (25) compared with Elm2.4ME+ PL94 (25) ---------------------------------------------------------------- - When sending mail, saving copy of mail to folder failed when displaycharset = UTF-8 text-charset = ISO-8859-1 - Segmentation fault on probe_imap_capa_lib() caused by unloading of libelmme-tls.so. - Segmentation fault on probe_pop_capa_lib() caused by unloading of libelmme-tls.so. - Guess multipart boundary if boundary parameter is missing. - Set status_chgd = TRUE on undelete_msg() and on unread_msg() so that flags are updated on exit. Specially on IMAP. - Also set status_chgd = TRUE tag_message() so that \Flagged on IMAP is updated on exit. (Tag flag '+' is only saved on IMAP so perhaps '+' should not be mapped to IMAP's \Flagged ?) - Remove IMAP \flags from imap_flags bitmask which do not have corresponding Elm status flags set or unset so that 'U' (unread) and 't' (tag / untag) commands work correctly. > Side effect is that \flags changes made by other IMAP clients (on same time) are undone. - If there was set \Deleted on IMAP beforehand, and user answered 'n' delete messages questions, that message was still deleted on 'mailbox unchanged." > Do not set IMAP_can_CLOSE on mbx_sessionlock_imap() (set only on mbx_end_keep_imap()) -- this can effect connection caching. - Cyrus imapd 2.0.14 fails [*] to parse command nnnn STORE xxx FLAGS () Example from log (got via -X log option): 3600 [9] 21:53:20 >>> [len 27] "A00928 STORE 306 FLAGS ()" 0D 0A 3600 [9] 21:53:20 <<< [len 48] "A00928 BAD Invalid flag name in Store command" 0D 0A > Therefore if flags was empty, calculate negative delta (if that is empty do not issue STORE command.) [*] That is Bug #941, see http://bugzilla.andrew.cmu.edu/show_bug.cgi?id=941 fixed on 31 Aug 2001 - remove unused charset_ok() from melib/mime.c - Split MIME_name_to_charset's create flag to bit mask: CHARSET_create and CHARSET_noautodef > That should allow using iconv: auto-charset = ON on global elm.rc without that it conflicts with existing alias definitions on global elm.mimecharsets file. - Fix generation of nls/gencat and remove dependency from libutil.a (aka libelme-base) - Elm 2.4 treated messages without status headers on folders as Read; From Elm 2.4 PL24ME8a to Elm2.4ME+ PL66 (25) treated messages without status headers as New; From Elm2.4ME+ PL67 (25) messages without status headers are treated as Old. * "As there are clearly different opinions on how to treat such messages in folders, what about having a configuration option (and/or elmrc option) to specify this? For example: In folders, should messages without Status header be marked (O)ld, (N)ew, or (R)ead? The former would then correspond to Elm2.4ME+ PL94, the second to Elm2.4ME+ PL66 (and what I prefer), the latter to Elm 2.4." Suggested by: Dirk Craeynest > Only elmrc option default-folder-status implemented. - Add missing declaration of process_expiration_date() hdrs/elmlib.h - lib/read_rc.c needs include unidata.h so that default_unidata()) is declared - shared_libs/tls/elmtls.h needs include RAND_file_name() and so on is declared - Add missing declaration of str_opt_nam() to hdrs/me.h - Moved syscall.c from melib/ to lib/ - Moved state.c from melib/ to lib/ - Changed WS_magic - Added lib/MAGIC which lists magic defines. That file is checked during compilation. - Mailer specific code moved to lib/mailer.c - src/mailmsg2.c and src/remail.c calls now lib/mailer.c routines - utils/fastmail.c calls now lib/mailer.c routines (WARNING: fastmail is currently broken in many ways) - Added new elmrc option mailer which specifies type and path and other properties of mailer (during compile time only default is given) Option "mailer" is available only on global elm.rc Possible mailer types are: unknown, sendmail, submitmail, execmail (NOTE: only type sendmail tested) Macros are changed in the following way: Configure old macro parameter for new default variable mailer option macro ============= ============== ========================= ===================== $mailer mailer path= DEFAULT_MAILER_PATH $sendmail sendmail SENDMAIL_MAILER_PATH $submit submitmail SUBMITMAIL_MAILER_PATH $execmail execmail EXECMAIL_MAILER_PATH $d_noaddfrom DONT_ADD_FROM add-from="dont" DEFAULT_DONT_ADD_FROM $d_usedomain USE_DOMAIN use-domain="yes" DEFAULT_USE_DOMAIN $d_8bitmime USE_8BITMIME supported-bodytype="8bit" DEFAULT_8BITMIME $d_binarymime USE_BINARYMIME supported-bodytype="binary" DEFAULT_BINARYMIME $d_dsn USE_DSN supports-dsn = "yes" DEFAULT_DSN See chapter "Mailer definition" below in this file. - sendmail -bv address can be used for elm's internal verification. However that is not activated by default (advantages from this is quite little.) To enable this use mailer = sendmail; verify=yes - Changed shared library interface: provides_shared_RCT_f provides_shared_SEOT_f provides_shared_ST_f provides_shared_FT_f provides_shared_CT_f - Removed struct IMAP_CON from inside of struct connection_cache (on union). Instead there is pointer to struct IMAP_CON (mbx_imp.h). Moved struct IMAP_CON from mbx_imp.h to imap.c - Added utility (elmrc-write) to write (or create) global elm.rc file (utility can be used also to write user's .elm/rlmrc file). - Global elm.rc is now rewritten during installation - Added elmrc option "auto-attachment", possible values are: "none", "application" (default) and "non-text". This affect how mime-parts, which have not Content-Disposition header, are treated. * If auto-attachment is none, missing Content-Disposition is treated as "Content-Disposition: inline". That is what MIME requires. * If auto-attachment is application, type is subtype of application and Elm can not handle type without calling of metamail, missing Content-Disposition is treated as "Content-Disposition: attachment". * If auto-attachment is non-text, type is not subtype of text or multipart, type is not message/rfc822 and Elm can not handle type without calling of metamail, missing Content-Disposition is treated as "Content-Disposition: attachment". * However is Content-Disposition is missing on top level that is treated as "Content-Disposition: inline". * If Elm can handle type, missing Content-Disposition is treated as "Content-Disposition: inline". - That changes Elm's behaviour so that in some situations when Elm normally calls metamail, it does not but instead the bodypart of the message is treated as an attachment. If you have have some type of mailcap and therefore you want metamail handle these types, set auto-attachment = none * NOTE: On many situations similar treatment than with option auto-attachment = non-text can reached with combination of options auto-attachment = none pagemultipart = on In other words there is situations where setting of option pagemultipart is sufficient (without new treatment which is implemented with option auto-attachment by default.) New elmrc options: auto-attachment default-folder-status mailer New tools: elmrc-write New files: lib/mailer.c lib/MAGIC hdrs/mailer_imp.h utils/elmrc-write.c doc/elmrc-write.1 Moved files: melib/syscall.c => lib/syscall.c melib/state.c => lib/state.c Removed files: lib/in_list.c lib/validname.c doc/Filter.guid lib/getrealname.c lib/remfirstwd.c Changes of Elm2.4ME+ PL94c (25) compared with Elm2.4ME+ PL94b (25) ------------------------------------------------------------------ - STORE FLAGS changes on Elm2.4ME+ PL94b (25) was always clearing \Seen flags -- It did always mark all messages as unread! (Cyrus imapd bug #941 is fixed on 31 Aug 2001, see http://bugzilla.andrew.cmu.edu/show_bug.cgi?id=941 ) Changes of Elm2.4ME+ PL94b (25) compared with Elm2.4ME+ PL94a (25) ------------------------------------------------------------------ - Segmentation fault on probe_imap_capa_lib() caused by unloading of libelmme-tls.so. - Segmentation fault on probe_pop_capa_lib() caused by unloading of libelmme-tls.so. - Guess multipart boundary if boundary parameter is missing. - Set status_chgd = TRUE on undelete_msg() and on unread_msg() so that flags are updated on exit. Specially on IMAP. - Also set status_chgd = TRUE tag_message() so that \Flagged on IMAP is updated on exit. (Tag flag '+' is only saved on IMAP so perhaps '+' should not be mapped to IMAP's \Flagged ?) - Remove IMAP \flags from imap_flags bitmask which do not have correspond Elm status flags set or unset so that 'U' (unread) and 't' (tag / untag) commands works correctly. > Side effect is that \flags changes made by other IMAP clients (on same time) are undone. - If there was set \Deleted on IMAP beforehand, and user answered 'n' delete messages questions, that message was still deleted on 'mailbox unchanged." > Do not set IMAP_can_CLOSE on mbx_sessionlock_imap() (set only on mbx_end_keep_imap()) -- this can effect connection caching. - Cyrus imapd 2.0.14 fails to parse command nnnn STORE xxx FLAGS () Example from log (got via -X log option): 3600 [9] 21:53:20 >>> [len 27] "A00928 STORE 306 FLAGS ()" 0D 0A 3600 [9] 21:53:20 <<< [len 48] "A00928 BAD Invalid flag name in Store command" 0D 0A > Therefore if flags was empty, calculate negative delta (if that is empty do not issue STORE command.) - remove unused charset_ok() from melib/mime.c - Split MIME_name_to_charset's create flag to bit mask: CHARSET_create and CHARSET_noautodef > That should allow using iconv: auto-charset = ON on global elm.rc without that it conflicts with existing alias definitions on global elm.mimecharsets file. Changes of Elm2.4ME+ PL94a (25) compared with Elm2.4ME+ PL94 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - When sending mail, saving copy of mail to folder failed when displaycharset = UTF-8 text-charset = ISO-8859-1 Changes of Elm2.4ME+ PL94 (25) compared with Elm2.4ME+ PL93 (25) ---------------------------------------------------------------- Note: You must create directory shared_libs/iconv before applying this patch! - As per RFC 2046, autocreate ISO-8859-X charset as superset of US-ASCII (where X is posititive integer) if not defined. This can be turned off with setting elmrc variable auto-iso-8859 to false. - Elmrc option auto-iso-8859 overrides compatcharsets (ie. removing ISO-8859-X charsets from compatcharsets effectively reappear to list.) - Unicode (UTF-7 or UTF-8) strings are now compressed / canonified. - Fix incorrect clip on cs_utf.c code. - Added shared library libelmme-iconv.so (shared_libs/iconv/) which provides interface to GNU LIBICONV (character set conversion library) or to correspond fuctions on system library. To use that library add iconv to use-library -elmrc variable, for example use-library = iconv See also: shared_libs/iconv/README.ME+ - Do not call MoveCursor() if interrupt that uses tgoto() which may malloc memory. Instead use ClearScreen() which hopefully is safer. - Make terminal_switch_to() safe to called from signal handler (was mallocing results). Signal handlers call Raw(), which call switch_display_charset() which calls terminal_switch_to(). Following routines made more safe to called from signal handler (is using static storage instead of malloc): terminal_switch_to() [lib/terminal.c] helper_1 [lib/terminal.c] debug_charset_sets() [lib/terminal.c] lock_shift() [lib/iso2022.c] iso2022_setid_stream() [lib/iso2022.c] - Do not use display_charset on terminal_switch_to() -- instead use *terminal_info data... - stream_from_string(), streamclip_from_string() was catenating terminal initialization strings in wrong order ? - When using -D utf-8 command line option of elm message to be replied was not copied to edit buffer with correct charset. - Fix 'Value of "xx" ' error message on dt_FUNC_parse_line() on lib/rc_parse.c (elmrc parsing). - Added (new) flag CS_universal_set to UTF-8 (and UTF-7) so that messages like "[ Charset US-ASCII unsupported, converting... ]" are avoided when replying message with -D utf-8 is effect (utf-8 is not on compatcharsets.) (instead message "[ Charset US-ASCII converted... ]" is given.) Setting charset-convert-ok avoids that message. WARNING: If external editor (ie. default) is used editing buffer is converted from display charset to system charset (locale charset) silently (ie. that does not cause 'unsupported' warning although that conversion may lose characters). After editing text is converted back from system charset to display charset. That is quite non-optimal. If external editor is used, editor buffer should be stored with system charset (instead of display charset) so that conversions are avoided. New elmrc options: auto-iso-8859 charset-convert-ok New files: shared_libs/iconv/config shared_libs/iconv/Makefile.SH shared_libs/iconv/elmiconv.h shared_libs/iconv/iconv.c shared_libs/iconv/README.ME+ Changes of Elm2.4ME+ PL93 (25) compared with Elm2.4ME+ PL92 (25) ---------------------------------------------------------------- Undo Elm2.4ME+ PL92a (25) and Elm2.4ME+ PL92b (25) patches before applying this patch. - state_nlputs was not printing whole string of it was not ending to \n - Added global flag wait_can_signal indication that signal handler is called from middle of wait (which is safe). Earlier flag InGetPrompt was not accurate. - Remove catgets calls from signal handlers on src/signal.c - parse_format_args() to lib/output.c - state_printable() was not using unicode information (uses now unicode_ch()) - Changed debug output routines. General format of debug option is -d {class}={debugfile}:{level} Option can be given several times. - Now debug output is not printed to stderr on startup. Instead debug output is spooled until debug files are opened. - Also utilities print debug to debug files instead of stderr. See chapter "Debug output" below in this file. - It is no longer possible to enable debugging code by just uncommenting line #DEBUG = -DDEBUG on Makefiles. Instead Configure must be re-run. It is now also possible to specify -DDEBUG to command line of Configure. - Updated some manual pages. - unicode_ch on lib/unicode.c interpreted unidata information wrongly. - "I got a mail that completely crashes elms parser. I'll append a folder that elm PL 90 can't open. Maybe you can use it to find a bug in elm." Reported by: Jan Willamowius > Discard map definition of charset if compactcharsets or iso646-charsets redefine charset (to be incompatible with map definition of charset) NOTE: elmrc options compactcharsets or iso646-charsets should never be set explicit. If you need to redefine some charset, give definition on file .elm/mime.charsets. - Quoted username if it contains some special characters. - "Until I did this I could not get it to build correctly on solaris 8 (even if I didn't want to use the sharedlibs -- it will not build now without them, which is probably a larger problem but I could not figure out how to remove the dependency)." Reported by: Christopher Gori > Make code compile when USE_DLOPEN is not defined - elm -vv now reports is USE_DLOPEN defined. - unicode_ch on lib/unicode.c did lowercasing using unidata data wrongly. Therefore (l)imit with "thread" failed to remove "Re: " prefix from subject. - Do some pseudo random generator seeding based on schedule.c events and keyboard input. - Warn if EGD socket socket given with tls: rand-egd does not work. - Reduce minimal amout of bytes read from egd to 10 New files: lib/debug.c Removed files: doc/wnewmail.1 Changes of Elm2.4ME+ PL92b (25) compared with Elm2.4ME+ PL92a (25) ------------------------------------------------------------------ - unicode_ch on lib/unicode.c interpreted unidata information wrongly. - "I got a mail that completely crashes elms parser. I'll append a folder that elm PL 90 can't open. Maybe you can use it to find a bug in elm." Reported by: Jan Willamowius > Discard map definition of charset if compactcharsets or iso646-charsets redefine charset (to be incompatible with map definition of charset) NOTE: elmrc options compactcharsets or iso646-charsets should never be set explicit. If you need redefine some charset, give definition on file .elm/mime.charsets. - Quoted username if it contains some special characters. Changes of Elm2.4ME+ PL92a (25) compared with Elm2.4ME+ PL92 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - "Until I did this I could not get it to build correctly on solaris 8 (even if I didn't want to use the sharedlibs -- it will not build now without them, which is probably a larger problem but I could not figure out how to remove the dependency)." Reported by: Christopher Gori > Make code compile when USE_DLOPEN is not defined Changes of Elm2.4ME+ PL92 (25) compared with Elm2.4ME+ PL91 (25) ---------------------------------------------------------------- - Do some CRLF -> LF or LF -> CRLF conversions so that IMAP gets end of lines as CRLF - However when mail is binary there must not be CRLF <-> LF conversions!! (however binary messages have CRLF ended lines in first place) Now when APPENDing message to IMAP folder, message lines are CRLF terminated. When using 'S' (save text) message is not CR stripped (as normally) if target file is IMAP folder. These changes should fix error "Message contains bare newlines" from Curys Imapd when copying mail from local mailbox to Cyrus IMAP folder or when S)aving text of message to Cyrus IMAP folder. - Do not add phrase to In-Reply-To -header. RFC 2822 (obsoletes RFC 822) does not allow phrase to be added to In-Reply-To -header. Added add-in-reply-to-phrase elmrc option. Set this if you want phrase to be added. - "I noticed that "frm user" doesn't work anymore. (Last version I tried was PL60 - that worked fine). On my Linux box it always tries to read a folder." Reported by: Jan Willamowius > Assignment of no_files was rewrited to wrong way on some day. - Gives error message ../hdrs/rc_imp.h:53: warning: `DT_CHR' redefined /usr/include/dirent.h:105: warning: this is the location of the previous definition on certain linux systems. > Removed DT_CHR define. - Fix for Solaris 8 compilation. "I think the patch keeps -shared when it is necessary for the build. The problem was that the Configure script was assuming _all_ platforms would need -shared, but Solaris (for example) does not, in fact compiling fails if it is present. I just moved -shared into the $soname_opt when it was necessary." From: Christopher Gori > Made correspond change also to shared_libs/tls/Makefile.SH - (as Elm 2.4ME+ PL91) Does not compile on AIX 4.3.3. Reported by: Noam G. Nudelman > Guessed fix (completely untested) New elmrc options: add-in-reply-to-phrase Changes of Elm2.4ME+ PL91 (25) compared with Elm2.4ME+ PL90 (25) ---------------------------------------------------------------- Note: You must create directories charset charset/UNIDATA shared_libs shared_libs/include shared_libs/tls before applying this patch! Undo Elm2.4ME+ PL90a (25) patch before applying this patch. WARNING: Quite lot of changes in many areas. So please report new bugs which you observe... See also: shared_libs/tls/README.ME+ charset/UNIDATA/README.TXT - Added support for unicode database (UNIDATA2.TXT). That is compiled to binary form (unidata.bin) which is mmaped or read. Name of file is given with elmrc option "unidata" -- default directory is given on elmrc option "map-bin-dir". - Binary form can be generated ("make install" does) with elmunidata -tool. - Elmrc option "unidata" value is checked (and data preloaded) only when it is likely that it is needed. That happens usually if elmrc options "allow-charset-switching" or "displaycharset" is used. - MMAP code currently does not compile on Digital Unix 4.0F. That is detected by Configure. - If unicode database is not available, then printable, lower and uppercase characters are known only from Latin/1 part (0000-00FF) of Unicode. - Note that still neither Unicode didirectional algorithm nor Right-Left scripts are supported (although unicode database includes directionality information.) - Also character composition / decomposition information is not currently used. - Implemented POP and IMAP connection as stack of streams. So there can be different layers of connection. (files lib/streamsched.c and hdrs/ss_imp.h) - Now POP client code issues CAPA command to server. - Default shared library localtion for IRIX is changed (now lib32 is used for n32 ABI instead of lib). - "Running Elm 2.4ME+86, if I displayed the first 80% of a message using the built-in text browser, pressing -D to display the remaining part of the message results in tildes ("~") replacing the first (leftmost) character of the newly-displayed lines. " Problem noted by: Andrew Piziali > Make sure that lines text is cleared from previous text when printing. > Scroll screen when printing ~ characters (ie. print newlines also) - " I had to fix config.h, which had: #define I_LOCALE /**/ I_NL_TYPES /**/ /*#undef MSGCAT */ The second line was in error." Reported by: Bruce Momjian - "If you look at lib/Makefile.SH, you will see: *) msgcatsrc= msgcat.c msgcatobj= msgcat.o This is a problem. Try this: X= ls and notice that X is not assigned 'ls', but the ls command is run." Reported by: Bruce Momjian - Added config files $HOME/.elm/mail.services and {lib}/elm.mailservices. These can be used specify should IMAP or POP used to given mailbox (folder browser however uses IMAP, because POP does not provide several folders). It also can be used to give some connection parameters. See chapter "Mail services config" below in this file. - Added ability to load shared libraries on run time. Libraries are given with tags on use-library -elmrc option. Note that curretly necessary hooks are missing from data structures and routines so in general these shared libraries can not (yet?) be used to extend capability of Elm ME+ (except on some rare cases.) See chapter "Dynamic libraries" below in this file. - Config file (elm.rc, ~/.elm/elmrc) parsing and saving implementation is changed. Hopefully functionality is still same. - Removed alwaysleave -> alwaysstore kludge (now negations are possible.) - Config files (elm.rc, ~/.elm/elmrc) can now include shared library specifix sections (on end of config file). See chapter "Dynamic libraries" below in this file. - Added shared library libelmme-tls.so (shared_libs/tls/) which provides POP's STLS and IMAPs STARTTLS command. To use that library add tls to use-library -elmrc variable, for example use-library = tls Source of shared library libelmme-tls.so does not contain any cryptography itself. Compiling that library requires that OpenSSL 0.9.6 is installed. Do not expect libelmme-tls.so library to provide any security. It does not fulfill requirements of RFC 2595 (Using TLS with IMAP, POP3 and ACAP.) See file shared_libs/tls/README.ME+ for details. Remember to setup EGD (entropy gathering daemon), if on your system does not provide /dev/urandom device (see warning on shared_libs/tls/README.ME+ file.) New elmrc options: map-bin-dir unidata New files: lib/unidata.c charset/UNIDATA/README.TXT charset/UNIDATA/UNIDATA2.TXT utils/elmunidata.c doc/elmunidata.1 hdrs/unidata.h shared_libs/Makefile.SH lib/shared.c shared_libs/include/shared.h hdrs/shared_imp.h shared_libs/tls/config shared_libs/tls/Makefile.SH hdrs/ss_imp.h lib/streamsched.c shared_libs/tls/pop.c shared_libs/include/elmshared.h shared_libs/tls/tls.c shared_libs/tls/elmtls.h shared_libs/tls/imap.c lib/service_list.c hdrs/rc_imp.h lib/rc_handle.c shared_libs/tls/README.ME+ New tools: elmunidata Changes of Elm2.4ME+ PL90a (25) compared with Elm2.4ME+ PL90 ------------------------------------------------------------ [ This patch is branch from the main line. ] - "Running Elm 2.4ME+86, if I displayed the first 80% of a message using the built-in text browser, pressing -D to display the remaining part of the message results in tildes ("~") replacing the first (leftmost) character of the newly-displayed lines. " Problem noted by: Andrew Piziali > Make sure that lines from the previous texts are cleared when printing. > Scroll screen when printing ~ characters (ie. print newlines also) - " I had to fix config.h, which had: #define I_LOCALE /**/ I_NL_TYPES /**/ /*#undef MSGCAT */ The second line was in error." Reported by: Bruce Momjian - "If you look at lib/Makefile.SH, you will see: *) msgcatsrc= msgcat.c msgcatobj= msgcat.o This is a problem. Try this: X= ls and notice that X is not assigned 'ls', but the ls command is run." Reported by: Bruce Momjian Changes of Elm2.4ME+ PL90 (25) compared with Elm2.4ME+ PL89 (25) ---------------------------------------------------------------- - "I found another locking problem which did not occur for me in ELM 2.4ME+ PL79. Assume that there is at least one message in =received. If you read a new message from the regular incoming mailbox (not POP), and then c)hange to ">", you get a message that =received is temporarily unavailable. Then elm switches to =received but without saving the message from the incoming mailbox. It acts like elm is opening and locking =received before trying to save the new incoming message. Again, this is Linux (Slackware-7.1) with a 2.4.1 kernel. " Reported by: Jay Rouman [ That propably happens with USE_FLOCK_LOCKING -- with USE_FCNTL_LOCKING problems are different. ] > Close just opened new folder (=received) before trying to open it for storing mails and afterwards reopen that new folder. That helps if closing it causes the locks to it to be lost (as folder). - "Assume that you have changed to the mailbox of someone from whom you have already gotten messages. While you are in this mailbox, you send a new message to this person. With PL79, elm would save a copy back to this mailbox and do a screen refresh to show that the new copy had landed in the mailbox. With PL89, elm complains that it can't lock the mailbox and then saves to =sent instead of dropping it. Then you have to change to =sent and manually save back to the mailbox of the person you sent to." [ That propably happens with USE_FLOCK_LOCKING -- with USE_FCNTL_LOCKING problems are different. ] Reported by: Jay Rouman > Close current folder temporary during copy and reopen after that. - Remove question "Can your system use setgid() to switch between the real and effective gid values?" from Configure. That question was asked only if there was "yes" answered to question "Am I going to be running as a setgid program?". Also macro SAVE_GROUP_MAILBOX_ID is removed. Instead now Elm ME+ uses sysconf(_SC_SAVED_IDS) on run time (use "elm -vvv" to determine result.) That way binaries of setgid Elm ME+ and non-setgid Elm ME+ are identical. - "I can't make elm (a few last versions) on HP-UX 10.20 and 11.0. I tried with cc and gcc and the result is the same: /usr/ccs/bin/ld: Unsatisfied symbols: setlinebuf (code)" Reported by: Witold Witkowski > Added test for setlinebuf() to Configure - Added support for shared libraries. Now libutil.a is compiled as shared library (with name libelmme-base.so) if possible. Changes of Elm2.4ME+ PL89 (25) compared with Elm2.4ME+ PL88 (25) ---------------------------------------------------------------- - "Being perfectly happy with the wildcard filename selection feature as of last elm me+ PL 87, my wish would be now that the same wildcard expansion could take place also for attached file names." Requested by: Emmanuel BIGLER > Modified gb_filebrowser() -- now elmrc option browser-wildcard-matching apply also when browsing files (instead of mailboxes / folders). - header_charset was not set on attach_menu.c, or newmail.c and from.c utilities. - "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest (88) version of Elm I got the following error: imap.c: In function `cache_open_imap': imap.c:2541: `h_errno' undeclared (first use in this function)" "There is no: #ifndef h_errno extern int h_errno; declaration in imap.c and this may cause the error." Reported by: Witold Witkowski - "If you retrieve mail from a POP server and then q)uit, you always get "OOPS! Storing of mail failed!" from leavembox.c. This appears to have started in elm-2.4ME+83." Reported by: Jay Rouman > pop.c code added extra \n after mailbox separator (one \n was already added by ctime()) Changes of Elm2.4ME+ PL88b (25) compared with Elm2.4ME+ PL88a (25) ------------------------------------------------------------------ - In attach_menu.c header_charset was not set. Changes of Elm2.4ME+ PL88a (25) compared with Elm2.4ME+ PL88 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - In newmail.c and from.c utilities header_charset was not set. - "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest (88) version of Elm I got the following error: imap.c: In function `cache_open_imap': imap.c:2541: `h_errno' undeclared (first use in this function)" "There is no: #ifndef h_errno extern int h_errno; declaration in imap.c and this may cause the error." Reported by: Witold Witkowski - Fix some Tru64 (aka Digital Unix, aka OSF1) compilation warnings. Changes of Elm2.4ME+ PL88 (25) compared with Elm2.4ME+ PL87 (25) ---------------------------------------------------------------- Warning: Changes on header processing of copy_message_2() routine. Report if there are problems in mailbox update. - Accept Mime-Version: -headers like Mime-Version: 1.0 (NeXT Mail 4.2mach_patches v148.2) - USE_DOMAIN did not added domain to address when recipient was not not 'valid' local recipeint (ie. recipient was something other than user from passwd.) Problem noted by: Andrew Piziali - 'Simplify' metapager() -- use state_write_headers() - Added MIME header decoding routine give_decoded_header() to lib/headers.c - Use give_decoded_header() on state_write_headers() (actually on new routine state_write_header()) > Now displaying of =?...?= and "..." quotation is consistent on pager -- in both case quotation is undone (not just =?...?= case). > WARNING: Comments (ie. (...)) on addresses when paging mail no longer show in the original place - Added header_charset -field to 'struct header_rec' (that is passed as defcharset for MIME routines.) - Rewritten copy_message_2 to use give_decoded_header() (via state_write_header()) when decoding > Headers copied via copy_message*() routine when docode set is similarly processed as when paging paging mail. - Use give_decoded_header() on rfc822_decode() - Removed rfc822_header_converter(), rfc1522_decode_structured(), rfc1522_decode_comment(), rfc1522_decode(), rfc1522_decode_real(), decode_encoded_atom(), rfc1522_decode_word() from melib/mime_decode.c - "The domain name expansion code works for addresses such as: ltanner However, if I use the address: ltanner (Larry Tanner) the domain name is not appended to the username so the message bounces." Reported by: Andrew Piziali - Added new elmrc variable header-phrase-display-mode. Value "plain" tells that phrases should be showd as is and value "quoted" tells that phrases should be shown in quoted mode. This effects phrases on paged message headers and on message editing screen. Phrases on address headers and others (such as in-reply-to) are affected. - "The attached patch adds the KOI8-U charset support to elm+ME." From: Mikhail Teterin > Done some modifications to patch (original ptach did not initialized reverse mapping correctly.) New charsets listed: KOI8-U From RFC2319 (b) (b) On builtin charset list of ELM-ME+ New elmrc options: header-phrase-display-mode Changes of Elm2.4ME+ PL87 (25) compared with Elm2.4ME+ PL86 (25) ---------------------------------------------------------------- - src/aliaslib.c didn't compile when USE_DOMAIN was defined. - Allow user always select on Configure is noaddfrom and usedomain set or unset. - " Running Elm 2.4ME+82 with mailbox editing enabled, if I press "e" to edit my default mailbox, /var/spool/mail/andy, which contains a single PGP-encrypted and signed message, change something in a message header or body using my editor (vi), save the editing buffer, and exit the editor, Elm displays: Resynchronizing with new version of folder... and then redisplays the folder index screen with the folder reverted to its pre-edit state." Problem noted by: Andrew Piziali > mbx_end_edit_spool() was not really returning changes to default mailbox. Changes of Elm2.4ME+ PL86 (25) compared with Elm2.4ME+ PL85 (25) ---------------------------------------------------------------- - Handle exceptions case on select() as errors case on poll() - Converted folder parsing on utils/from.c to use read_folder_headers() - Converted folder parsing on utils/newmail.c to use read_folder_headers() - Undo change (done on PL84) of default answer of question "Should included also when using $termlib and ?" for AIX. - " In addition to the problem mentioned above, no matter what I answer to the question in Configure: Termlib routines in '-ltermcap' from prior Configure run found Should included also when using -ltermcap and ? like 35 in src/curses.c, there appears "#include ". This produces the error included as an attachment. When commenting this line out, elm2.4.ME+.85 compiles well." Reported by: Noam G. Nudelman > Added possibility to add only curses.h. That is default for AIX. - Both and are included by default on Linux and IRIX. - " I would like to ask/suggest that just as /usr/local is used as the path for the "public executables" directory and "public libraries", why not by default use /usr/local as the prefix path for the man pages (/usr/local/man/mann and /usr/local/man/catn) ?" Requested by: Noam G. Nudelman > Use directory which is "near" to given bin directory as first candinate for manual pages location. - Now it is possible to give installation prefix directory to Configure. By giving installation prefix directory Configure selects directories as following: PREFIX/bin for public executables PREFIX/man/man1 for unformatted manual pages PREFIX/man/cat1 for formatted manual pages PREFIX/lib for public config files Is is also possible to asnwer "none" to question about installation prefix directory. In that case directories are prompted separately. - Installation prefix directory can be given also with -P option to Configure - "I am seeing the follwing compile errors with elm2.4.ME+.85. I can't find the definition of catgets()." "I am on BSD/OS 4.01." Reported by: Bruce Momjian > Include msgcat.c to library if msgcat is not available. [ Was dropped from compilation on Elm2.4ME+ PL83 ] - Added elmrc option default-nomime-charset to specify charset of non-MIME messages. Default is "SYSTEM". In other words non-MIME messages are assumed to use system charset. Note that old implicit default was that non-MIME messages uses display charset. Note that using of display charset for non-MIME messages does not work well, when display charset is switched to some other than system charset. - Call FlushBuffer() after writing of "Quick quit" so that the user gets immediately feedback. Moved files: src/expires.c => lib/expires.c New elmrc options: default-nomime-charset Changes of Elm2.4ME+ PL85 (25) compared with Elm2.4ME+ PL84 (25) ---------------------------------------------------------------- - Moved find_header(), classify_header() and locate_header() from melib/parse_util.c to lib/headers.c - moved delete_headers from melib/parse_util.c to lib/headers.c and changed calling convention. - moved headers structure building from state_read_headers() (melib/parse_util.c) to update_header_list() (lib/headers.c). - Added read_folder_headers() to lib/headers.c (using update_header_list()) and implemented folder parsing on src/newmbox.c with it. - Parsing of top level MIME headers uses now the same routine than parsing other MIME headers. - Added elmrc option show-header-errors. Setting this to false disables some error messages about duplicate (MIME) headers. - Changed description field to struct string * on mime structure. - 'struct string * ret' was incorrectly static on browser_descend_imap(). That caused Elm to crash, when login to the IMAP server failed. - IMAP flags given in LIST response were no correctly processed. - "I have a user wish for developers : I appreciate the new file selection feature with the "TAB" key however I am missing the wildcard selection feature (may be I do not use the new interface properly?) . In my "mail" directory I have several hundreds of files. So browsing page after page to find the one I need is much slower than before with the wildcard selection feature. They do not seem to be listed alphabetically either." Requested by: Emmanuel BIGLER > Implemented a subset of the old wildcard feature for folder browser. Characters '*' and '?' are treated as wildcards. Typing name with wildcard and pressing ENTER or TAB gives directory listing limited with that wildcard specification. That is limited to one directory -- directory paths can not include wildcards. Note also that it prevents selecting folder names that include '?' or '*' characters. - Added elmrc variable browser-wildcard-matching. Setting this variable OFF disables wildcard feature and therefore allows selecting filenames that include '?' or '*' characters. New files: lib/headers.c hdrs/hdr_imp.h Removed files: src/wildcards.c New elmrc options: show-header-errors browser-wildcard-matching [ Undo Elm2.4ME+ PL84a patch before installing this patch. ] Changes of Elm2.4ME+ PL84a (25) compared with Elm2.4ME+ PL84 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - 'struct string * ret' was incorrectly static on browser_descend_imap(). That caused Elm to crash, when login to IMAP server failed. - IMAP flags given in LIST response were no correctly processed. Changes of Elm2.4ME+ PL84 (25) compared with Elm2.4ME+ PL83 (25) ---------------------------------------------------------------- - Elm does not detect that the user is trying to move to the same folder that she is on already. Problem noted by: Laura Kataja > Use selection_is_folder() instead of comparing current selection's name against folder name with strcmp() - Configure was using $i_stdlib on test for return type of malloc(). Hovever $i_stdlib is not longer set. - Delay the reading of local directory when needed - Added undocument "-X transcript_file" option to elm, newmail and frm (from.c). Note that transcript file will include passwords! - Change default answer of question "Should be included also when using $termlib and ?" to 'y' for AIX (just a guess). [ Change dropped on PL86 ] - Drop gethostname() routine from opt_utils. Instead call uname() on lib/read_rc.c if needed. This means that /etc/systemid is no longer read. - elm -vv gives now information of gethostname() or uname() in use - Call FlushBuffer() after writing of "Send" so that the user gets immediately feedback (it may take time to encode big attachments) Changes of Elm2.4ME+ PL83 (25) compared with Elm2.4ME+ PL82 (25) ---------------------------------------------------------------- [ WARNING: There are quite large changes on file and folder I/O. Especially saving mail to folders has changed much. There are also quite many changes in the remote mailbox (especially IMAP) code. So please report new bugs which you observe... ] - Moved local mailbox handling routines from lib/mbox.c to lib/localmbx.c. - Implemented some kind of connection caching for imap connections. This can be disabled by setting elmrc option imap-connection-cache to false. - These cached (unused) connections are closed when Elm checks new mail after "timeout" (elmrc value). - Cached connections are also closed with Ctrl-F (Forget passphrase) - By default Elm ME+ shows IMAP server greeting. Also other untagged OK messages, which do not have machine readable response codes, are shown. This can be turned off with setting elmrc variable imap-show-greeting to false. - By default Elm ME+ shows IMAP server's untagged NO messages. This can be turned of by setting elmrc variable imap-show-warning to false. - By default Elm ME+ shows IMAP server's untagged BAD messages. This can be turned of by setting elmrc variable imap-show-error to false. - By default POP server greeting is shown. This can be turned off with setting elmrc variable pop-show-greeting to false. - Show pop server closing message (however this is not show when resyncronizing ($)) - "Due to increased Micro$oft occupation some Russian messages tends to have Windows standard Russian encoding CP1251 and not KOI8-R as before. This patch required to view "windows-1251" marked messages on KOI8-R Unix display (via charset converting)." From: Andrey A. Chernov > Map name is changed to be CP1251 for consistency of others. * SIDE NOTE: This patch just adds internal conversion table. Actually you can do same also by using elm.mimecharsets file and external conversion table. - #include on headers.h (instead of individual files) - When saving tagged messages now default filename is based on first tagged message (as was old behauviour; in some point that behauviour was lost). - Initialization of screen now happens a little earlier than before. - Remove copy_write_error_exit() from fileio.c - remove #ifdef SITE_HIDING code -- (not used and assumes UUCP world.) - Generation of "From ... remote from site" removed (assumes UUCP world.) - ">From " extra mailbox separator lines are no longer copied. - Old $HOME/dead.letter will be renamed before new is mail is written to $HOME/dead.letter. $HOME/dead.letter is used on some failures. Renaming is not not if there are enough old dead.letter files. In that case dead.letter is lost. But it may be that writing to $HOME/dead.letter never occurs! - Add '%p' support to elm_smessage() and elm_vmessage() - Use timezone offset of given time not current time (get_tz_mins()) - Implemented new folder browser. Hit TAB when the folder name is asked to get directory listing. - Added elmrc options local-fast-lookup (default: false) and local-fs-charset (default: SYSTEM) to control local folder and file browsing. - If there are problems to expand name given with -f option folder browser is started. Specially 'elm -f ""' or 'elm -f .' can be used for starting of yhe browser. - Browsing of IMAP folders is also possible - Saving to Imap folder ('s', 'S', 'C' commands) is also possible - When copying message, additional ">From " mailbox separator lines after "From " separator line are no longer copied. (This ">From " may indicate old UUCP.) - Elmrc variable "imap-charset" (default: SYSTEM) specifies charset used with IMAP - Supports IMAP's international naming convention. This can be disabled by setting elmrc variable imap-naming-convention to false. If imap folder name does not match IMAP's international naming convention, imap-charset is used instead. Note however that mixing of components of IMAP's international naming convention and components with imap-charset in same directory path does not work. - Added elmrc options imap-fast-lookup (default: false) to control IMAP folder browsing. Variable is similar than local-fast-lookup. If both imap-fast-lookup and imap-naming-convention are set, most of folders using imap-charset (and not imap naming convention) are NOT accessible! * WARNING: If creating new folder and imap-naming-convention is set, folder (including path) is created with imap naming convention, even if original directory was using imap-charset ! Net result is that you have two directories with same name (one with using imap naming convention and another using imap-charset). That may cause strange things! NOTE: When appending message to folder, lines would probably be CRLF terminated -- currently that is not done. - Default "copy = ON" Requested by : Laura Kataja [ internal variable name changed from auto_cc to auto_copy_sent, original variable name and it's comment were misleading ] - mime_decode.c was losing some file descriptors. - Added some messages to the message catalog. - Implemented new file browser. Hit TAB when file name is asked to get directory listing. Normally system charset is assumed for filename, but that can be changed with local-fs-charset elmrc option. - Attachment saving now asks permission to overwrite a file. See chapter "Folder and file browser" below in this file. - Added prototypes for some functions - #include on src/curses.c (and perhaps ) - " I discovered Elm 2.4ME+ PL82 (25) forgets an attachment if the body of the message is PGP-signed. " Reported by: Andrew Piziali > Note that only main body will be PGP signed or encrypted. - Make selection of PGP little better when decoding PGP signed application/pgp messages and when decoding PGP signed non-MIME messages. - Terminal IO on src/curses.c is done via /dev/tty (not stdin and stdout) - Do not use stdio when printing from signal handlers (sig_user_stop and sig_return_from_user_stop on src/curses.c) - Avoid passing of message catalog texts (catgets) as format strings for printf like functions. Instead use CATGETS macro and lib/output.c routines. These routines (via CATGETS macro) does not use message catalog data for determining of parameter types or arguments. - If end of lines on quoted-printable text are encoded with CRLF instead of LF, quoted-printable decoding was not removing CR from end of lines when replying. That happened specially with POP and IMAP, because POP and IMAP mails are stored by Elm ME+ just using CRLF as end of line. - If on IMAP folder both \Recent (= NEW) and \Seen (= not UNREAD) are set, ignore \Recent (NEW), because mail is already read. That happens when IMAP folder is resyncronized ($) (ie. mail arrives during that IMAP session). - Renamed some charsets CPxxxx -> Windows-xxxx (they are registered with that name in IANA). Added file ConfTool/killsets which lists these charsets. Old definitions are removed during Configure. Also added option -I to utils/elmcharset.c. This gives charsets which should be ignored when reading global charset charset definition. - Added support for UTF-7 charset (lib/cs_utf.c). Note that it is not useful as display or system charset. It should be used only as mail charset. See also chapter "Charset definition". - However UTF-16 Surrogate pairs (D800-DFFF) are not supported on UTF-7. - Elmrc option utf7-encode-optional control should 'optional direct characters' utf-7 encoded (default: yes). These characters are (from RFC 2152): Character ASCII & Unicode Value (decimal) ! 33 " 34 # 35 $ 36 % 37 & 38 * 42 ; 59 < 60 = 61 > 62 @ 64 [ 91 ] 93 ^ 94 _ 95 ' 96 { 123 | 124 } 125 - Added builtin table for CP1252 (windows-1252 charset), so that users don't need to download CP1252.TXT from Unicode.org. Builtin map name is "CP1252" and charset name is "windows-1252". - Does not require MIME-headers (especially charset information) for forwarded non-MIME message which is inside of message/rfc822. In other words assume current display charset. - For Tru64 (aka Digital Unix, aka OSF1) prefer strings.h over string.h - On Tru64 (aka Digital Unix, aka OSF1) full name is first thing in GCOS field - Added "Copyright 1996-2000 Kari Hurtta" texts to elm/args.c, doc/elm.1 and hdrs/elm.h - Read charset value for locale from LOCALE_DIR/LOCALE/charset file on ConfTool/GenCharmap, if possible. - Added ISO-8859-13, ISO-8859-14 and ISO-8859-4 to ConfTool/GenCharmap - Use doc/mime.charsets also for locales in form *.* on ConfTool/GenCharmap New charsets listed: (*) UTF-7 Builtin support (U) (b) Big5-HKSCS "Big5-HKSCS" is registered IBM00858 "IBM00858" is registered IBM00924 "IBM00924" is registered (!) IBM01140 "IBM01140" is registered (!) IBM01141 "IBM01141" is registered (!) IBM01142 "IBM01142" is registered (!) IBM01143 "IBM01143" is registered (!) IBM01144 "IBM01144" is registered (!) IBM01145 "IBM01145" is registered (!) IBM01146 "IBM01146" is registered (!) IBM01147 "IBM01147" is registered (!) IBM01148 "IBM01148" is registered (!) IBM01149 "IBM01149" is registered (!) SCSU "SCSU" is registered (!) (U) UTF-16 "UTF-16" is registered (!) (U) UTF-16BE "UTF-16BE" is registered (!) (U) UTF-16LE "UTF-16LE" is registered (!) (U) IBM775 "IBM775" is registered IBM866 "IBM866" is registered ISO-8859-13 "iso-8859-13" is registered (b) TIS-620 "TIS-620" is registered Renamed charsets: Windows-1250 "Windows-1250" is registered Windows-1251 "Windows-1251" is registered (b) windows-1252 "windows-1252" is registered (b) Windows-1253 "Windows-1253" is registered Windows-1254 "Windows-1254" is registered Windows-1255 "Windows-1255" is registered Windows-1256 "Windows-1256" is registered Windows-1257 "Windows-1257" is registered Windows-1258 "Windows-1258" is registered Charsets aliases modified: ISO-8859-14 "iso-8859-14" is registered (b) (!) Not suitable as Mime charset (*) Notice that these charsets may be unsupported by Elm ME+ (U) Encoding of Unicode (b) On builtin charset list of ELM-ME+ New files: lib/savefolder.c lib/localmbx.c src/browser.c ConfTool/killsets Renamed files: hdrs/curses.h => hdrs/elm_curses.h Removed files: hdrs/mcprt.h hdrs/mcprtlib.h lib/mcprt.c lib/mcprtlib.c New elmrc options: utf7-encode-optional local-fs-charset imap-fast-lookup imap-charset pop-show-greeting imap-show-error imap-show-warning imap-show-greeting imap-connection-cache Changes of Elm2.4ME+ PL82 (25) compared with Elm2.4ME+ PL81 (25) ---------------------------------------------------------------- - Do not incorrectly detect [ in the middle of long lines. * "In attempting to add additional recipients to the CC: line of an outgoing message (using Elm 2.4ME+ PL81 (25)), Elm keeps adding commas when it should not." Reported by: Andrew Piziali - Don't autoadd comma (',') if there is already space or comma (',') on header editing screen. - Delay adding of comma (',') to the point where we see that the next character is '(' or '<' on header editing screen. - Autoadd comma (',') after '>' and ')' - Only autoadd comma (',') on beginning of editing (ie when we start typing new address to buffer when there is already address on buffer). - '\' escaping was broken on header editing screen Changes of Elm2.4ME+ PL81 (25) compared with Elm2.4ME+ PL80 (25) ---------------------------------------------------------------- [ WARNING: IMAP code is little tested and has a quite limited functiolnality -- only a little more functionality than POP code. ] - Avoid sequence /* ... /**/ on config.h - Define NEED_REOPEN_AFTER_FAILED_CONNECT if socket needs to be closed and reopend after failed connect() before retrying. Notice that if connect() returns EINVAL Elm ME+ automatically closes and reopens socket and then retries same connect(). - New elmrc variable "menu-display-host" - Center ELm version string to second line if first line has no space left. - lib/imap.c provides IMAp type folders (but only about same functionality that POP folders -- currently saving or copying of mail to IMAp folders is not implemented.) - lib/remote_mbx.c includes common routines for POP and IMPA code. - IMAP mailboxes can be accessed by giving username@hostname as folder name (tries first IMAP and then POP if connection to IMAP port gives Connection refused.) - IMAP folder can be accessed by giving username@hostname:folder as folder name. > Note however that: - Temporary file is used same way than is used in case of unix mailbox. - It is not possible to e)dit IMAP mailbox - It is not possible to s)ave or C)opy to to IMAP mailbox (NOT IMPLEMENTED YET) - It is not possible to browse folder list from IMAP server (NOT IMPLEMENTED YET) - Messages are kept on IMAP mailbox until you D)elete them and then resync ($) or quit. However note that some other mail client may may same time access IMAP mailbox and mark messages to be deleted and actually delete (EXPUNGE) them. - If some other mail clients change status of messages at the same time when ELM had IMAP mailbox open, those changes are not displayed on Elm mailbox/message display (even when messages are EXPUNGEd). - However Elm should survive when messages are EXPUNGEd when mailbox is open (that is not tested.) - Sending of mail still happens via calling of local mailer -- SMTP or Message Submission protocol is not supported. - IMAP code uses TCP port 143 (IMAP4rev1) - Messages from IMAP mailboxes are saved to folders with IMAP's (= Internet's) EOLN convention. That is CRLF. In other wordsthey are not converted to the unix's EOLN convention which is LF only. Elm should able to handle that (and that is more 'binary' mail friendly.) If you need mail text without extra CRes, use 'S' (save text) command. - IMAP international mailbox name convention is not supported - util/newmail.c doesn't close non-local folders when waiting new mail - util/newmail.c writes now debug output to file $HOME/NEWMAIL:debug.info - New elmrc variable "imap-use-examine". When this is set "frm" and "newmail" opens IMAP mailbox read-only (with "EXAMINE") -- this causes that mails do not lose \Recent flag -- however seems that (some?) IMAP servers does not report new mail when mailbox is opened read-only. - Replaced %X with %p on debug format strings - Some OSF1/Dunix/Tru64 fixes - "Environment: Digital UNIX V4.0E, cc Problem: Elm dumps core after reading the folder, before displaying messages. Debug session: tru64> bin/elm -f test/test.mail Read-only folder is 'test/test.mail' with 8 messages [ELM 2.4ME+ PL79 (25)] SIGNAL PANIC in signals.c:99:segv_signal" Reported by: Bernhard Simon > Fix erronous sizeof on elm_smessage (lib/output.c) - "The keywords "encode", "clear", etc. are useful, but some users don't like the feature (they think the message body should be only scanned on request). Attached to this message there is a patch that allows to disable the feature using the configuration parameter "mimebodykeywords"." From: Jose A. Rodriguez > Default of "mimebodykeywords" is TRUE (ie. parse keywords) New files: lib/remote_mbx.c lib/imap.c New elmrc options: imap-use-examine menu-display-host Changes of Elm2.4ME+ PL80 (25) compared with Elm2.4ME+ PL79 (25) ---------------------------------------------------------------- - "Problem: There is no strdup on old ULTRIX" Reported by: Bernhard Simon > There should be not any strdup call on ELM ME+. Replaced one strdup() call on src/mbox.c with safe_strdup() call. - "Problem0: After asking whether to create directory .elm, messages are written beginning at the top of the screen without clearing it before. This problem semms to be platform independent." Reported by: Bernhard Simon > Be sure that the messages are written to the end of the screen. - "I am using ELM 2.4ME+ PL77 (25) on HP-UX 10.20 and from time to time I get the following error when calling frm: Couldn't seek 1604 bytes into folder. ** Error 0. ** You have no mail. I have tracked down the problem to lib/mbox.c:3007, where fseek is called with folder->p->fh_temp being NULL." Reported by: Lutz Jaenicke > Don't call fseek() if folder->p->fh_temp is NULL. - "Problem1: In Configure line 1836 (cat libc.tmp |egrep ...) produces empty libc.list, so Configure gets confused about existing functions (e.g. gethostname)" (on AIX 3) From: Bernhard Simon - "Problem3: Undeclared identifier fd_set in schedule.c Solution: edit lib/schedule.c and add #include (line 11)" (on AIX 3) Reported by: Bernhard Simon > Detect sys/select.h on Configure on and include it on hdrs/defs.h - "AIX Problemz: If the file for incoming mail does not exist, v79 exits with Can't open folder '/usr/spool/mail/root' for reading! On v60 it displays (as expected?) a screen with no messages. This problem semms to be platform independent." Reported by: Bernhard Simon > Do do treate ENOENT error from can_open() on mbx_sessionlock_filehandle() as error (case SESSIONLOCK_CHECK). Changes of Elm2.4ME+ PL79 (25) compared with Elm2.4ME+ PL78 (25) ---------------------------------------------------------------- [ WARNING: There are quite large changes on character set handling of terminal, and changes in the builtin editor. Specially builtin editor has changed almost totally. Also keyboard input routines have changed much. So please report new bugs which you observe... Elmrc option displaycharset has changed meaning, so if you have set that, you need to remove setting and use elm.mimecharsets or .elm/mime.charsets file instead. ] - Implemented support for multibyte characters as keyboard input (lib/charset_input.c). And reimplemnted Reach (as ReadCh2) and optionally_enter (as optionally_enter2) with that support. - Menus are still using one byte characters and it is assumed that input character set is equivalent of code character set (practically equivalent of US-ASCII). - Added ability to specify on mime.charsets and elm.mimecharsets on ISO2022 codes for terminal character set change. New keywords are: other-set, bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96, bank-G0-94, bank-G0-94x94, bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96, bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96, bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96 Value of these kaywords 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. NOTE: These *94x94 and *96x96 keywords are useful only with "type=iso2022" character sets. - Added files libdir/elm.terminalinfo and ~/.elm/terminal.info for storing additional terminal information. Specially information about charset switching. See chapter "Additional terminal information". - Now elm -w saves also ~/.elm/terminal.info file. - Added option -D charset to elm. That specifies the display charset used. For external programs (including pager and editor) however system charset (is locale charset) is used however, because -D does now change locale and programs get charset information from locale. Therefore -D option is in practice effective only for the internal pager. Files libdir/elm.terminalinfo and ~/.elm/terminal.info tell the switching method for terminal (and that is effective only for output charset.) For (external) editor buffers content is converted between display charset and system charset. - Added elmrec option allow-charset-switching (defualt unset). When this is set, Elm ME+ may use any charset that the terminal supports when needed (for example paging of message which uses some other charset which is given in libdir/elm.terminalinfo or ~/.elm/terminal.info). Note that this also is effective only with internal pager (and possible on some other space where Elm ME+ itself may display text with foreign charset.) [ NOTICE that Elm ME+ needs information for printable characters of display charsets. Currently there is no such information (except for characters which maps to UNICODE range 0-256, which Elm ME+ know). For system charset (locale charset) Elm ME+ gets information about printable characters from system. ] - Elm option -D 'charset' also turns on allow-charset-switching. - Elm option -D NOSWITCH turns off allow-charset-switching. - To change display charset and allow switching only between system charset (locale charset) and given system charset use option -D =charset - elmrc option displaycharset now specifies charset to which elm should switch terminal. Default charset (system charset) may be specied with elm.mimecharsets or .elm/mime.charsets file instead. - builtin editor is someway rewritten (it is now perhaps little more 'full screen'). Most of old ~ commands should still work. Does NOT handle well lines which are longer that screen width. Also you can not add lines between text even that you can edit (someway) existing lines of text. Builtin editor keeps message on memory when editing it. - Now when is asked optionally new value (cursor on beginning of old value) - cursor rigth key accepts old value and moves cursor end of value for editing - enter accepts old value - typing of value erases old value (so that only typed characters are preserved) In other words on header editing screen when editing Subject pressing cursor rigth key causes that subject can be preserved and new text added to end of it. - Added support for UTF-8 charset (lib/cs_utf.c). Note that it is not very useful, because currently Elm only knows printable characters from Latin/1 range. See also chapter "Charset definition". - Removed Configure question about Default Text Charset for outgoing messages. Result of that question was not actually used by Elm ME+. Elmrc option text-charset should be used instead. - Generate elm.mimecharsets file also for systems, which does not support locale. - Option "alteditor" was broken (not used actually). - Changed option "alteditor" that it have always used when when replied mail (with including text). - Special value EDITOR means that use current (primary) editor. This is new default. - Header editing screen was not displaying address when fullname of address was with unknown character set - Header editing screen was potentially using wrong character set when printing address - Support gpg on viewing of multipart/signed messages. Requested by: Steven Pritchard - Default of "page-known-charsets" elm.rc variable changed to ON. - Be consistent on definition of macros P_ and ANSI_C Problem noted by: Mariah Geiger - Charset type "ascii-set" now read same maps than charset type "one-byte-map", excepts that ASCII range on maps needs not be defined (and if is defined must be identity mapping.) - Check return value of setuid/setgid calls. New files: lib/charset_input.c lib/iso2022.c lib/terminal.c lib/unicode.c lib/cs_utf.c doc/terminal.info doc/elmterminal.1 utils/elmterminal.c Removed files: src/wordwrap.c src/softkeys.c New tools: elmterminal Changes of Elm2.4ME+ PL78 (25) compared with Elm2.4ME+ PL77 (25) ---------------------------------------------------------------- - " The executable 'newmail' that comes with Elm 2.4ME+ PL77, occasionally reports the following error message: STRING PANIC in string.c:484:convert_string >>Bad magic number (string type)" Reported by: Noam G. Nudelman > elm_fprintf was called with wrong arguments on newmail.c - Fix incorrect *_clip_* on lib/cs_binary() Changes of Elm2.4ME+ PL77 (25) compared with Elm2.4ME+ PL76 (25) ---------------------------------------------------------------- - On PL73 [encode] was producing (by mistake) text/X-ELM-encode instead of application/X-ELM-encode as earlier versions. Return old behauviour. - Generation of "encoded" data (application/X-ELM-encode) was broken on PL73. - "It has for quite some time now bugged me that Elm expands "&" in the passwd GCOS field to all uppercase. This is not the correct expansion. The string should merely be capitalized. Both the BSD finger and sendmail capitalize rather than uppercase. Just consider entries like this: kim:*:10167:20:&mo Suominen:/u/kim:/bin/tcsh This should *NOT* be displayed as "KIMmo Suominen". I'm attaching a patch for lib/gcos_name.c that fixes this. I have also committed this into the NetBSD pkgsrc system for third-party software." From: Kimmo Suominen - "version elm2.4.ME+.76a has a little memory bug: when reading a mbox, and if a line has less than 5 characters, the program reads out of bounds. Attached to this message there is a patch that fixes the problem." From: Jose A. Rodriguez [ Undo Elm2.4ME+ PL76a patch before installing this patch. ] Changes of Elm2.4ME+ PL76a (25) compared with Elm2.4ME+ PL76 (25) ----------------------------------------------------------------- [ This patch is branch from the main line. ] - On PL73 [encode] was producing (by mistake) text/X-ELM-encode instead of application/X-ELM-encode as earlier versions. Return old behauviour. - Generation of "encoded" data (application/X-ELM-encode) was broken on PL73. Change on Elm2.4ME+ PL76 (25) or Elm2.4ME+ PL73 (25) ---------------------------------------------------- - Elm no longer assume that address is user's address if fullname matchess to fulllname of address. Give alternative addresses on alternatives elmrc option. Changes of Elm2.4ME+ PL76 (25) compared with Elm2.4ME+ PL75 (25) ---------------------------------------------------------------- - Always generate subject string to header structure to avoid crash. - Added elmrc variable env-from-source. It tells which information to use for envelope from address. Possible values include: forward-from (0) Use: "From " separator line ">From " forwarded indicator "Return-Path:" header from (1) Use: "From " separator line "Return-Path:" header return-path (2) Use: "Return-Path:" header Setting this to value return-path requires that on every mail have Return-Path: -header. - "Please update the source of http://www.ozone.fmi.fi/KEH/elm-2.4ME+.README to also rflect the URL for filter, not just the email address: http://www.bolthole.com/filter/" Requested by: Philip Brown - "When replying to, in the last elm me pl75, this "name" is suggested : ð?(ù?" Reported by: Emmanuel BIGLER > Changed one %s to %S on mailmsg1.c - Elm no longer assume that mail is from user, if username part (only) on envelope address matches. Addresses from elmrc option alternatives is now matches also agaist envelope address. Use elmrc option alternatives to specify your address if Elm now shows your name instead of To on list. - "Actually, no version of FreeBSD comes with intl libraries, at least none that would make 'intl' be a valid library on the compiler command line. Please change the Configure script to omit intl from libswanted for any version of FreeBSD, not just 3.2." From: Mike Brown Removed files: lib/tail_of.c lib/addrmchusr.c New elmrc options: env-from-source Changes of Elm2.4ME+ PL75 (25) compared with Elm2.4ME+ PL74 (25) ---------------------------------------------------------------- - Metapager generated sender address for top line incorrectly if From: header did not existed. - Don't put builtin definitions to elm.mimecharsets (doc/mime.chatsets). - Add charset type iso646-set and elmrc option iso646-charsets. - Configure -M updates bin/elm.mimecharsets only. - Make output of ConfTool/GenCharmap (ie. Configure -M) prettier. - " I just tried to compile elm2.4.ME+.74, and I see that you fixed the 'h_errno' problem in the 'lib/pop.c' file but didn't in the 'lib/read_rc.c' file. When I fixed it also in the 'lib/read_rc.c' it compiles with no problems." Reported by: Noam G. Nudelman - "This is a strange error message I get when I try to read my mail: STATE PANIC in state.c:770:state_printf >>Embedded newlines are not supported Emergency exit taken! All temp files intact! I have no idea what's the problem. Ih the attachment is the mail massage that causes it to crash. " Reported by: Bojan Bistrovic > Fixed format string of state_printf call. - " It just seems to be my month for bugfinding. ;-) My "options => sort => Subject" no longer sorts by message subject, as far as I can tell. " Reported by: Isaac Stoddard > Fixed incorrect condition on subject_compare() - Giving "something>" as address on header editing screen caused infinite loop on Elm ME+. - frm was giving odd error messages if mailfile pointed by MAIL environment variable does not exists. - Missing of subject was causing segmentation fault on frm. - Update percent of loaded mails when updating counter of loaded mails. In other words now both readdatapercentinc and readmsginc elmrc options causes update of both numbers (counter and percent). - Make difference on return of string_cmp() [lib/string.c] on cases 'values equal' and 'values not comparable'. - 'elm -w' now writes also .elm/mime.charsets file. - Some parse errors on .elm/mime.charsets are now considered fatal same way than errors on .elm/elmrc file. - "This is what happens: when I try to read the mail defined as MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" it seems to work fine (first screen displays properly) but when elm reaches the part which is supposed to be in Windows-1252 charset and tries to convert it to ascii, it crashes producing the error: STRINGBUFFER PANIC in sb_file.c:200:sb_get_line_from_file >>Bad charset readed from file" Reported by: Bojan Bistrovic > Ignore charset alias when charset alias points to stale definition of charset. That charset definition may be undefined ("removed") by setting explicit compatcharsets on user's .elm/elmrc. - Warn if charset alias is tried to redefine as charset. - Refresh updating counter line if it is overwritten by error message. - Update frm.1 manual page and generate actual patchnames for files to FILES section. New files: ConfTool/iso646maps Changes of Elm2.4ME+ PL74 (25) compared with Elm2.4ME+ PL73 (25) ---------------------------------------------------------------- - If end of lines on quoted-printable text is encoded with CRLF instead of LF, quote-printable decoding was adding CR before every character. That happened specially with POP, because POP mails is stored by Elm ME+ just using CRLF as end of line. Reported by: Laura Kataja - " I patched my PL72 tree to PL73, and reconfigured to my previous config as default. When I typed "make", I got: cd lib; /bin/make - all cc -I../hdrs -O -c charset.c cfe: Error: charset.c, line 614: Unacceptable operand of relational operator. if (val < 0 && ------------^ *** Error code 1 (bu21) make: *** [all] Error 1" Reported by: Isaac Stoddard > Wrong variable was used. - Don't call metamail, if top level type disposition is attachment (metamail ignores disposition). That kind messages are marked with 'a' on mailbox menu. - Complain about unsupported locales (locale is unsupported if not mapping information for correspond charset exist). - Locales marked with (unsupported) are added now with nameless charset. - If display character set's type is unknown (ie. locale is unsupported), then assume that display character set's invariant part is on same position than on character set used by code (ie compiler). Note however that invariant part does not include '@' character! - Replace (unsupported) with character set name on tables, if mime name for locale charset is known. Unsupported status is now indicated by missing of mapping information. Message will be WARNING: Locale xx_XX (charset XXXXXX) is unsupported, will cause problems! - " When compiling Elm 2.4.ME+ PL73 (or any version above PL67), on AIX 4.3.2 (with gcc version 2.95.2) I receive the following error message: cd lib; /bin/make - all gcc -I../hdrs -fpcc-struct-return -O -c pop.c pop.c:15: parse error before `int'" Reported by: Noam G. Nudelman > Seems that h_errno is macro on AIX. New files: lib/cs_fallback.c Changes of Elm2.4ME+ PL73 (25) compared with Elm2.4ME+ PL72 (25) ---------------------------------------------------------------- [ WARNING: There are quite large changes on character set set handling, on builtin pager and sending messages. So please report new bugs which you observe... Also there is several fixes, which are just guess (for foreign platforms: vaxult4, hpix 9.05). They of course are totally untested. So it is possible that they do not even compile... This is so much changes (and some are incomplete) so this this quite sure more buggy than PL72. ] - "Last known compile on our vaxult4 machine was 2.4.ME+.38. I tried compiling 2.4.ME+.72, but then I got this error: 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 messages to display character set. - Added facility to convert character set of new message to outgoing character set (text-charset) when sending mail. - Changed semantic of charset -option. Now just not give charset -label for outgoing messages to Content-Type -line. Now character set is converted to that character set (if message is pgp signed conversion is not done and charset label is not changed either.) - charset option is renamed to text-charset (old name is alias). * Use text-charset=DISPLAY if conversion is not wanted. - If after conversion text is 7-bit only and text-charset is superset of US-ASCII (as given on compatcharset or MIME-subset -parameter on mime.charsets -file), US-ASCII used as charset -labeled on Content-Type -line instead. > So if mapping information of text-charset is incomplete and it is only konw that text-charset (or displaycharset) is superset of US-ASCII, then conversion produces only US-ASCII characters and that causes also that mail is labeled to be US-ASCII > That also mean that on compatcharset or via MIME-subset -parameter on mime.charsets should not specify character sets to be supersets of US-ASCII if it is not compatible with ascii on byte-to-byte level. ( In other words for example utf7 is NOT superset of US-ASCII on that sense. ) Read chapter "Charset definition" from later of that file. [ In practice there is no any builting charset mappings which are useful (make sense) with text-charset, so use text-charset=DISPLAY if you do not use external mapping files. Currently there is NO support for utf7 or any other multibyte character set (low level routines are missed). In other words there is no charset types (paramater type) for multibyte character sets. ] - From: -header for outgoing mail is now printed same way than other address headers (ie. To, CC, Reply-To and Bcc) - Builtin pager now always use temporary file (or memory buffer). For simplify it does not longer read directly from folder. - Builtin pager now enligth matching line when searching with / (TABulators are not enligthed) - Parsed headers (fullname and comments) now carry character-set information (they are not always just filtered to Display Character set during parsing -- also this includes facility to character set conversion. ] - Same basically also apply for outgoing mail headers > On outgoing mail on in-reply-to -header is handled only if it is on beginning of header. [ Note however missing low-level routines... ] - Added generic panic routine to elmlib. - Added elmrc option page-known-charsets. If it is TRUE, do not call metamail to charset for which we have some information (even that we can't show all characters with displaycharset). Default is FALSE (old behauviour). - Flag as error if user gives something like [keyword on beginning of line and keyword is not detected. That is that user does not send mail where keyword accidentally mistyped (and does not work as intended). For example [inlcude some.file text/plain 7bit] on beginning of line. If user wants enter that kind line to mail which really start with [, then [ can be doubled as [[ on beginning of line. That produces one [ character to outgoing mail. Elm's own messages now start [ followed by space. That is not flagged as error. - Do not longer produce empty bodypart (or part with length of -1 as seen on Elm) if there is [include ...] directive on last line. - "Can we add this patch to the Configure script? This should help detect Solaris systems which need -lsocket -lnsl." From: Hon-Yin Kok [ I little modified that patch, I hope that this did not broken it. ] - "FreeBSD 3.2 cannot have library intl in the libswanted list. It gets included in the final compile sentence for elm even though there is no such library." From: Geir Johannessen - Move expand_env() to lib/expand.c from lib/read_rc.c - Let expand() to expand only if string start with metachar (so that it is not needed to check is string starting with metachar, before calling expand().) - Added expand_meta() to lib/expand.c. > Meta expand provides: +filename == file on mail folder directory =filename == file on mail folder directory %filename == file on mail folder directory {rc}/filename == file on .elm subdirectory of home {lib}/filename == file on Elm's global library directory And also same epansions than expand_env(): ~/filename == file on home direccory Environment variable components - do_expand_path() to lib/read_rc.c, strnfcpy() to lib/strfcpy.c - Elm no longer assume that mail is from user, if fullname matches to sender's name. Now only addresses are used to determine if To address should be displayed instead of From address. Addresses from elmrc option alternatives is now matches also agaist From: -header. Use elmrc option alternatives to specify your address if Elm now shows your name instead of To on list. - "Now it compiles under hpix 9.05 + gcc 2.7.2. There is just a single warning left: gcc -I../hdrs -fpcc-struct-return -O \ -c schedule.c -o schedule.o schedule.c: In function `real_wait': schedule.c:195: warning: passing arg 2 of `select' from incompatible pointer type schedule.c:195: warning: passing arg 3 of `select' from incompatible pointer type" Reported by: Emmanuel BIGLER > Guess the fix for HPUX [ perhaps it does not work and is definately untested... ] - Add support read-only folders (but not mailboxes -- they can not be opened read-only). If lock_folders is set, lock them with shared (or read lock) and not with exclusive lock. Promted by: Gertjan van Oosten , Hon-Yin Kok * "Please find attached a patch that makes ELM work with read-only mail folders (archived mail folders are read-only in our environment)." From: Gertjan van Oosten [ Actually that patch is not used... ] - "We are using elm on (the rather old platform) SunOS4.1.3_U1. I tried the latest two versions -71 and -72, which do not compile with gcc-2.8.1 (and -2.7.2) due to some (for this platform) strange definition in hdrs/mbx_imp.h. There "FILE" is used as a struct name, but this is (on this platform) a define in stdio.h "#define FILE struct _iobuf" and therefore crashes the compile." From: Jan Weerts - "This is not really an elm bug, but it helps; under Linux with libc version glibc-2.1 (RedHat 6.1 for example) elm fails to compile since some header files have been changed. Older versions exist in the directory /usr/i386-glibc20-linux/include so it's necesary to add the '-I' flags to the compiler. There's a patch in attachment to the Configure script that checks if the directory exists and if it does adds it to the list of c-flags." From: Bojan Bistrovic [ I heavy modified that patch, I hope that I did not broke it... ] - Generate actual patchnames for files to FILES section of elm.1 and elmcharset.1 manual pages (instead of using /usr/local/lib always.) - Let Configure script automatically suggest -woff 1009 to cflags on IRIX 6.5 - If Configure does not be able to generate mapping from locale to MIME charset, mark locale as '(unknow)' on elm.mimecharsets instead of defaulting to display charset. - Fix ConfTool/LocaleMap - Configure -S now updates bin/elm.mimecharsets also. - Mark EBCDIC as '(unsupported)' - Fix unfolding of header on src/newmbox.c, add unfold_header() to lib/mbox.c - New elmrc option extra-mailbox-dir, which gives directory on where folders are considered to be mailboxes (ie. to they can arrive new mail when they are open.) Prompted by: Geir Johannessen New files: hdrs/cs_imp.h lib/string.c lib/cs_binary.c lib/panic.c lib/hdrdecode.c lib/hdrencode.c src/id_phrase.c lib/stringbuffer.c hdrs/sb_imp.h lib/sb_mem.c lib/sb_file.c ConfTool/charaliases.map ConfTool/mapfiles ConfTool/GenCharmap Removed files: lib/parsarpwho.c src/returnadd.c New elmrc options: page-known-charsets extra-mailbox-dir Changes of Elm2.4ME+ PL72 (25) compared with Elm2.4ME+ PL71 (25) ---------------------------------------------------------------- - Elm dies (exits) after sending mail sometimes. Reported by: Laura Kataja - "We've had some trouble with the pgp5 support with regards to signing messages using elm-2.4ME+70. When trying to sign messages the error message Pgp returned error status 7 appears and the message isn't signed. This appears to be because a couple of pgp2 flags have made their way into the pgp5 support. The following patch fixes things (for me at least):" Reported by: Greg Lewis [ patch not used ] "Ok, I see what you're saying (I didn't understand which PGP executable was being called in the first case obviously :). pgps, which does only signing, doesn't have the -s flag though and neither pgpe nor pgps take a -w flag." Reported by: Greg Lewis > Dropped ws -flags from PGP_SIGNED_MESSAGE case. [ rename() will wipe the original file (that what -w flag did.) ] - Dropped RENAME and rename() from lib/opt_utils.c In other words rename() is now required to be provided by system. - "There's a bizzare bug in last four versions of elm (ELM 2.4ME+ PL67 - 70). It's related to the ispell: when you use ispell, every other character I type gets "swallowed" somehow, meaning that the ispell doesn't see it but elm does. The effect is that you have to type every letter twice while running ispell, and then after you're finished all those letters get feeded to elm's menu: Please choose one of the following options by parenthesized letter: s e)dit message, edit h)eaders, s)end it, or f)orget it. This isn't usually a problem since most of the time you use space-character to skip word so it doesn't produce any erros, but it's still a waste of time. " Reported by: Bojan Bistrovic > Added Raw(OFF), Raw(ON) -pair around ispell. - Reset buffer of background_read() on curses.c when turning raw mode OFF. Changes of Elm2.4ME+ PL71 (25) compared with Elm2.4ME+ PL70 (25) ---------------------------------------------------------------- - Seems that is is not allowed try another connect() after unsuccesfully one with same socket. > If error was EINVAL, close and reopen socket. - Autoadd comma (',') after old addresses when adding new address on header editing screen. Promted by: Tom Haynes , Siegfried Schmitt - Use on util/newmail.c same kind utime usage on lib/mbox.c - Filter was dropped from installation and compilation on Elm 2.4ME+ PL0 (25). Drop sources also from distribution. Filter is maintained separately by Philip Brown Changes of Elm2.4ME+ PL70 (25) compared with Elm2.4ME+ PL69 (25) ---------------------------------------------------------------- - Header was not properly terminated on newmbox.c after unfolding resulting duplicate last character of header. - add OpenBSD to a couple checks (utils/newmail.c) - correct a time_t cast that was missed (src/mailmsg2.c) - check for fork returning -1 in the one fork() that doesn't do that yet - pipes should be closed if the fork() fails (src/syscall.c) This isn't tested, but it makes sense to me. From: Paul Janzen - "Under HP-UX 10.20, read_rc.c needs: extern int h_errno;" Reported by: Zube - "Please find attached a patch to make newmail.c compile on Solaris 2.x." From: Gertjan van Oosten - "Please find attached a patch to fix an external pager bug; if a folder has for example an incorrect Content-Length header, ELM would screw up." From: Gertjan van Oosten > [ Actually patch was not used. ] - "Also, under Solaris 2.6/7, HP-UX 10.20 and FreeBSD 3.1, if the mailbox does not exist (i.e. /var/mail/user), elm will dump core. If the file exists but is zero length, there is no problem. This problem does not occur on linux (Redhat 6.0 in my tests)." Reported by: Zube - Also happened on IRIX Changes of Elm2.4ME+ PL69 (25) compared with Elm2.4ME+ PL68 (25) ---------------------------------------------------------------- - bin/from.c and bin/newmail.c was trying to create dotlock file $MAIL.lock > Changed prepare_read_folder second argument to be enum prepare_mode { PREPARE_NORMAL = 0, PREPARE_NEW_ONLY = 1, PREPARE_NOLOCK = 2, PREPARE_NEW_ONLY_NOLOCK = 3 }; - POP code now uses UIDL and remembers which messages are really read. UIDL's of read messages together which status is stored files with name .username@hostname to folder (usually ~/Mail) directory. - "Further testing also reveals that excluding (changing to 'undef') dotlock in the pre-configure script breaks the build: cc -I../hdrs -c mbox.c mbox.c: In function `mbx_free_spool': mbox.c:972: structure has no member named `lockfile' Since the lockfile member is excluded from the struct in mbx_imp.h based on the define for USE_DOTLOCK_LOCKING, and the mbox.c file does not use ifdefs around the various code where the lockfile member is used." Reported by: Keith Ward Changes of Elm2.4ME+ PL68 (25) compared with Elm2.4ME+ PL67 (25) -------------------------------------------------------------- - Fix "Would you like the domain name appended?" query. [Broken on PL46] - Dropped HOSTCOMPILED - Dropped xenix special case from Configure (about uuname) - If gethostname() and uuname() are not supported on system, hostname must be given on system elm.rc file. - On some systems try also use gethostbyname() to get hostfullname and hostdomain from hostname. If that succees, getdomainname() is not used anyway. * Note that host's domain name is still compiled in. -> These changes make it closer that some time in future it is possible to do binary distributions of elm. Notice however that there is still too much compiled in configuration for binary distribution. - Try use dnsdomainname (that is on Linux) to get domainname on Configure. "Third, I don't know if this is supposed to work this way, but the default domain name offered is always .UUCP ; it would be nice if the Configure shell could get the domain name correctly (via 'dnsdomainname' for example)." Suggested by: Bojan Bistrovic - "I've had some problems when trying to compile ELM 2.4ME+ PL66 (25) under Linux (RedHat 6.0, egcs-2.91.66, with "-fpcc-struct-return"). in read_rc.c, the compilation would fail with the error: read_rc.c:79: initializer element is not constant" Patch from: Bojan Bistrovic > Added init_debugfile() also to utils/answer.c, utils/elmalias.c, utils/fastmail.c, utils/from.c, utils/newalias.c, utils/newmail.c, utils/prlong.c, utils/readmsg.c, utils/elmcharset.c * Also reported: "I have the following compilation error in elm-me pl66 platform : linux redhat 6.1 This bug did not sho up in pl 62 used routinely. read_rc.c:79: initializer element is not constant" Reported by: Emmanuel BIGLER "I've had this bit of a problem compiling elm-2.4+ME62. Actually, the error has been around since the elm-2.4+ME57 stage, and probably even before then. The error involves anyone using GNU libc 2.0 or higher. I'm using glibc-2.1.2 on my linux box, kernel 2.1.12 and 2.3.18. Compilation and error follow: cc -I../hdrs -O -c read_rc.c -o read_rc.o read_rc.c:78: initializer element is not constant line 78 in read_rc.c, has: FILE *debugfile = stderr; /* file for debug output */ According to the Glibc FAQ, at http://sourceware.cygnus.com/glibc, 3.9. I get compiler messages "Initializer element not constant" with stdin/stdout/stderr. Why? {RM,AJ} Constructs like: static FILE *InPtr = stdin; lead to this message. This is correct behaviour with glibc since stdin is not a constant expression. Please note that a strict reading of ISO C does not allow above constructs. One of the advantages of this is that you can assign to stdin, stdout, and stderr just like any other global variable (e.g. `stdout =my_stream;'), which can be very useful with custom streams that you can write with libio (but beware this is not necessarily portable). The reason to implement it this way were versioning problems with the size of the FILE structure. To fix those programs you've got to initialize the variable at run time. This can be done, e.g. in main, like: static FILE *InPtr; int main(void) { InPtr = stdin; } or by constructors (beware this is gcc specific): static FILE *InPtr; static void inPtr_construct (void) __attribute__((constructor)); static void inPtr_construct (void) { InPtr = stdin; } I've tried a number of changes like this, in the read_rc.c program, which all gave me errors. I'm open to trying to find the right place to make the correction, but seeing that just about every file in the src directory uses debugfile, I'm a bit baffled on where to add this in. If you have any ideas on how to resolve this, I'd love to know how. Thanks in advance!" Reported by: Brad Littlejohn - Added information to output of 'elm -vv' about compiled in host's domain name and is domain part (@hostname) added to address of From: -header (and other). - SECURITY: print_msg() on src/syscall.c was using popen() (without resetting egid). - Added to start_run() (melib/src/syscall.c) ability to make output (and error) pipe. > Converted print_msg() on src/syscall.c to use start_run() - Let print command to print output to screen (do not redirect to /dev/bull -- was broken on some earlier version) - Added new command Print text -command (P). This prints decoded content of message. - SECURITY: read_in_messages() on src/editmsg.c was using popen() (without resetting egid). > Converted read_in_messages() in src/editmsg.c to use start_run() [ If SAVE_GROUP_MAILBOX_ID is defined, these popen's most likely do not cause any problem. In that situation Elm run's on most of time with resetted egid. ] Changes of Elm2.4ME+ PL67 (25) compared with Elm2.4ME+ PL66 (25) -------------------------------------------------------------- [ Warning: This have quite much changes on folder handling, so please report new bugs which you observe. Also POP code is little tested. ] > Moved most of code from bytes() on src/file_util.c to lib/file_util.c > Moved save_file_stats() from src/fileio.c to lib/file_util.c > Moved open_or_create() from src/file_util.c to lib/file_util.c > Moved copy_to_folder() from src/file_util.c to lib/file_util.c > Moved copy1() from src/file_util.c to lib/file_util.c > Moved elm_chown() from src/util.c to lib/file_util.c > Side effect is that incoming mailbox is keep locked during reading of mails -- not just looking new size of it - Added lib_prompt() and lib_transient() to lib/output.c - lib/schedule.c does I/O multiplexing with select() or poll(). > NOTE: Code using poll() is NOT TESTED - lib/mbox.c provides access routines for folders. Also it provodes SPOOL (mailbox) and NON_SPOOL (normal folders) type folders. - lib/pop.c provides POP type folders. - POP mailboxes can be accessed by giving username@hostname as folder name. Note however that: - Offline reading is not supported. In other words this code does not follow 'download and delete' -method. However temporary file is used same way than is used in case of unix mailbox. - It is not possible to e)dir POP mailbox - Automatic notification of new mails seems not work. You need resync ($) folder instead. - It is not possible to s)ave or C)opy to to POP mailbox (POP does not have STORe command.) - Elm does not remember which messages are read and which are new (UIDL command should be used.) However POP server may perhaps provide artifcial Status: -header -- on some situations information of that may be misleading (for example in resyncing ($)). - Messages are keep on POP mailbox until you D)elete them and then resync ($) or quit. - On resync ($) POP connection is closed and reopened. Because password is not stored to memory, it will be reasked. - POP code is very little tested and quite sure there may be some bugs... - Sending of mail still happens via calling of local mailer -- SMTP or Message Submission protocol is not supported. - POP code uses TCP port 110 (POP3) - Messages from POP mailboxes are saved to folders with POP's (= Internet's) EOLN convention. That is CRLF. In other words thet are not converted unix's EOLN convention which is LF only. Elm should able to handle that (and that is more 'binary' mail firendly.) If you need mail text without extra CRes, use 'S' (save text) command. - Note that it is currently explicite disallowed $MAIL variable to be interpreted as POP mailbox even if you put it to form username@hostname. Also saving to '!' may end to file name username@hostname if you have put that to elmrc variable incoming-mailbox. - Note that elmrc variable 'mailbox' was synonym for variable 'receivedmail' which teels to which folder to store receiced mails (normally =received) Now elmrc variable 'mailbox' is removed. - New elmrc variable 'incoming-mailbox' can be used to tell location of POP mailbox - If you c)hange folder, opening of new folder is done before old is leaved (so do not change from local mailbox ($MAIL) from POP mailbox $USER@localhost -- bad things may happen.) - C)opy and s)ave does not use lib/mbox.c routines, so if you try save to user@hostname, you ended to save to file with that name! - Lock file (.dot) is removed is removed if if it more that 10 minutes old (and mailbox is not accessed). That test is done after when lock is tried to create to X times, where X is given on Configure -time. > In other words question "Should it REMOVE the lock file after X checks? " is removed from Configure. - Converted utils/from.c to use lib/mbox.c. - Converted utils/newmail.c to use lib/mbox.c - Note that utils/readmsg.c still does not use mailbox (lib/mbox.c) routines! - error() on src/out_utils.c auto sleeps if needed (sleep is skipped if there is keyboard input (on some OSes)) -- transient() (via lib_transient()) may be used if wait is not wanted. - "I have always felt a need for an unread function in Elm. Specifically, sometimes I want to mark a message as unread even though I have read it in order to make it stand out the next time I open the folder. So when I finally had some time free I decided to make an unread function tied to the 'U' key. The work is based on a similare solution by bruceb@locus.com (Bruce M. Binder) way back in 1995 for the last official version of Elm. I would be happy if you could apply the patch to elm-2.4ME+PL67. The patch is enclosed at the end of the mail." From: Geir Johannessen - Removed unused (and broken) leapyear macro from src/date.c - Removed extra extern char *strpbrk(); utils/answer.c -- already defined on header files. - Added new command Save text -command (S). This saves or copies decoded content of message to file or folder. [ Undo Elm2.4ME+ PL66s patch before installing this patch. Security fix of PL66s is included on PL68. ] New files: lib/mbox.c lib/file_util.c lib/pop.c hdrs/mbx_imp.h lib/schedule.c New elmrc options: incoming-mailbox Changes of Elm2.4ME+ PL66s (25) compared with Elm2.4ME+ PL66 (25) --------------------------------------------------------------- - SECURITY: print_msg() on src/syscall.c was using popen() (without resetting egid). - Added to start_run() (melib/src/syscall.c) ability to make output (and error) pipe. > Converted print_msg() on src/syscall.c to use start_run() - Let print command to print output to screen (do not redirect to /dev/null -- was broken on some earlier version) - SECURITY: read_in_messages() on src/editmsg.c was using popen() (without resetting egid). > Converted read_in_messages() in src/editmsg.c to use start_run() [ If SAVE_GROUP_MAILBOX_ID is defined, these popen's most likely do not cause any problem. In that situation Elm run's on most of time with resetted egid. ] Changes of Elm2.4ME+ PL66 (25) compared with Elm2.4ME+ PL65 (25) -------------------------------------------------------------- - Extra NotKnowPrint (875) and MailNotSaved (876) removed from nls/C/C/C/s_elm.m. Problem boted by: Oota Toshiya - Added utils/elmcharset.c lib/charset.c doc/elmcharset.1 > MIME character set (and others) can be now presented with pointer of type charset_t. Changed charset and display_charset to be type charset_t. > Moved get_charset_map_info() to lib/charset.c from lib/read_rc.c [ Added load_charset_map_info() and implemented get_charset_map_info() with load_charset_map_info() ] * load_charset_map_info() now parses additional information > Moved mime_parse_content_opts() to lib/charset.c from melib/mime_parse.c - On .elm/mime.charsets and {lib}/elm.mimecharsets there may be lines like - ISO-8859-1;MIME-subset=US-ASCII That kind definition may be used instead of compatcharsets elmrc option. - Added new elmrc -variable type DT_FUNC (call function for value). Now compatcharsets -option is that kind (function charset_compatfunc). - Removed rmt-install target from Makefiles New tools: elmcharset Changes of Elm2.4ME+ PL65 (25) compared with Elm2.4ME+ PL64 (25) -------------------------------------------------------------- - Result of have_pgp() was not checked on copy_pgp (on fileio.c) Changes of Elm2.4ME+ PL64 (25) compared with Elm2.4ME+ PL63 (25) -------------------------------------------------------------- - Default to PGP 5 only if pgp5-dir is given. Otherwise use pgp-version when reading PGP 5 mail. Changes of Elm2.4ME+ PL63 (25) compared with Elm2.4ME+ PL62 (25) -------------------------------------------------------------- - Some support for different PGP versions. New elmrc options: pgp2 (Gives path of PGP 2 binary) pgp5-dir (Gives path of directory for PGP 5 bianries) gpg (Gives path og Gnu PG binary) pgp-version Gives what program to use when signing or encrypting mail. One of 'pgp2', 'pgp5' or 'gpg'. Elmrc option pgp is now obsolete. - Default action for messages which includes PGP keys is now extract keys - Ctrl-E still extract keys. Difference is that uses version which is given on pgp-version elmrc option and do not take account MIME. - When sending encrypted mail and PGP key not found for recipient, menu e)dit recipient list, s)kip recipient, q)uit is provided. - Also if you visit pgp menu and do nothing (or fail). Default is changed to 'p' (go again pgp menu). > That try prevents sending mail accidentally without encrypted if you tried to send it on encrypted form > Added DT_LONG for elm_timeout (DT_NUM was wrong) > Added DT_PGPVER - Some support for multipart/encrypted on reading side. - Support for application/pgp-encrypted protocol. > Attachments on application/pgp-encrypted are not supported. Changes of Elm2.4ME+ PL62 (25) compared with Elm2.4ME+ PL61 (25) -------------------------------------------------------------- - If compiled with REMOVE_AT_LAST defined, there is error 'lock.c:286: `lockfile' undeclared' error. Reported by: bigler@jsbach.univ-fcomte.fr - Some code moved from src/syscall.c to hdrs/syscall.c - Some support for multipart/signed on reading side. - Added elmrc variable "pagesigned". If set parts with unknown protocolls are paged. - Support for application/pgp-signature protocol. - Use %Q on add_parameter() New elmrc options: pagesigned Changes of Elm2.4ME+ PL61 (25) compared with Elm2.4ME+ PL60 (25) -------------------------------------------------------------- - "Elm fails to remove the /tmp/print.xxxx file after sending a message to the print spooler. After a "print " command, a copy of the message is left in /tmp as /tmp/print.xxx" Problem noted by: Konstantinos Konstantinides - Some fixes so that this compiles more cleanly on IRIX 6.5. You still want use -woff 1009 however. - Add support for ISO-8859-15 locales (*.ISO8859-15) of IRIX 6.5 - Added special conversion type 'Q' (mean to quoted string) to elm_vmessage() [lib/output.c] - "In Configure, when testing for the sendmail version, something (even an empty string) should be supplied on STDIN to the $mailer. Otherwise, if $mailer is actually a wrapper script that expects something on STDIN, it could wait forever for input." From: mike@hyperreal.org > Redirected $mailer's input to /dev/null on test. Changes of Elm2.4ME+ PL60 (25) compared with Elm2.4ME+ PL59 (25) -------------------------------------------------------------- - "elm_vmessage()" wasn't correctly converting numbers with "%d", "%x", or "%X" - there was an extra "6" in all the format strings, so the digits 7, 8, and 9 got converted to 6, 7, and 8. One of the few places where software would work *better* in 2000.... :-)" From: Guy Harris - "Use "$echo" rather than "echo" in the "Configure" script, so if it had to explicitly use "/bin/echo", it does so in all places where it is echoing a string that's not supposed to have an NL at the end (otherwise, you may end up with [Type carriage return to continue] \c with the extra "\c" at the end)." From: Guy Harris Changes of Elm2.4ME+ PL59 (25) compared with Elm2.4ME+ PL58 (25) -------------------------------------------------------------- - Undo AFS patch of PL58 -- it seems cause crash... Changes of Elm2.4ME+ PL58 (25) compared with Elm2.4ME+ PL57 (25) -------------------------------------------------------------- - Added %x and %X formats to elm_vmessage (lib/output.c) - Although doc/mime.charsets is based on IRIX 6.2, added to it following locales from GNU locales (Linux): cs_CZ, eu_ES, ga_IE, no@nynorsk, sr_YU (eu_ES, ga_IE, no@nynorsk, sr_YU marked as unsupported) - Added ConfTool/LocaleMap, ConfTool/GrepValue - Little more intelligent generation of elm.mimecharsets - "We are using the "fastmail" program to send mass mailings on our internal network. For some reasons I was looking for the possibility to set the "Precedence:"-header. But I did not find any. Therefore I have added another option to the fastmail program to aspecify a "Precedence:"-header." From: Norbert Gruener - Removed I_STDLIB now if ANSI_C is defined stdlib.h is used, otherwise not - Changed const keywords to CONST macros - Close mailbox after in is read -- keeping it open prevents mail from arriving when AFS is used. Patch from: Norbert Gruener [ Undone in PL59 ] - Put forward structure definitions inside of #ifdef ANSI_C - HP-UX gives warning "../hdrs/elmlib.h", line 123: warning 617: Redeclaration of tag "tm" ignored. Problem noted by: oota toshiya > Removed definition and changed replaced #include "elmlib.h" with #include "headers.h" (to avoid opposite error) on: lib/atonum.h, lib/expand.c, lib/get_tz.c, lib/getword.c, lib/ldstate.h, lib/len_next.c, lib/mail_gets.c, lib/msgcat.c, lib/qstrings.h, lib/safemalloc.h, lib/headers.h, lib/strmcpy.c, lib/validname.h Changes of Elm2.4ME+ PL57 (25) compared with Elm2.4ME+ PL56 (25) -------------------------------------------------------------- - Add missing 'return 0' to buffer_to_text() on src/hdrconfig.c - Certain aliases expansions was causing Elm ME+ to crash on aliaslib.c Problem noted by: Bruce Momjian Changes of Elm2.4ME+ PL56 (25) compared with Elm2.4ME+ PL55 (25) -------------------------------------------------------------- - Add elmrc option "convert-comment-to-fullname". When this is set address address (comment) is parsed as address (fullname) instead. That is for compatibility to older versions of Elm. Option "convert-comment-to-fullname" is set by default. - Fix compile time error if USE_DOMAIN is defined - Fix compile time error if MMDF is defined - Some MMDF fixes from Bob Broughton for PL37. They are little modified (and untested). * MMDF sure still do not work New elmrc options: convert-comment-to-fullname Changes of Elm2.4ME+ PL55 (25) compared with Elm2.4ME+ PL54 (25) -------------------------------------------------------------- WARNING: That patch is biggest so far, so there is much changes. So expect bugs. Specially address handling and aliases expansions are rewritten. NOTE: Check locale setting by running: elm -vvvvv - Drop translate_return() from src/addr_util.c (not longer used) - Drop fix_arpa_address() from src/addr_util.c (not longer used) - handle_reply_to() on src/reply.c was not decoding MIME -encoding (decode_who_none was used instead of rfc1522_decode_structured) - Add get_alias_address_l(), do_expand_group_l(), do_get_alias_() (and helper function _add()) to src/aliaslib.c - Implement get_alias_address() (*) in terms of get_alias_address_l() in src/aliaslib.c - Drop do_expand_group(), add_name_to_list(), do_get_alias() from src/aliaslib.c - Moved expand_list() (*) to aliaslib.c (only used on aliaslib.c now) from mailmsg1.c and simplified - (*) Actually get_alias_address(), expand_list() on aliaslib.c and build_address() on src/addr_util.c is not used any more -- them are put inside of #if 0 ... #endif [ get_alias_address, expand_list and build_address is removed on PL67 ] - Don't ask First and Last names for group aliases. - Add build_address_l(), argv_to_expanded(), expanded_to_edit_buffer() and update_expanded_from_edit_buffer() to src/addr_util.c - Add add_expanded_(), add_textual_(), zero_expanded_address() make_surface(), free_expanded_address() helper functions to src/addr_util.c - Add struct mailing_headers and zero_mailing_headers() and free_mailing_headers() functions to src/mailmsg1.c [hdrs/me.h] - Dropped remove_hostbang() from src/mailmsg2.c - src/hdrcnfg.c uses now struct mailing_headers. > Added inpval_to, expval_to, hdrproc_to, inpval_cc, expval_cc, hdrproc_cc, inpval_bcc, expval_bcc, hdrproc_bcc, inpval_subject, expval_subject, hdrproc_subject, inpval_reply_to, expval_reply_to, hdrproc_reply_to, inpval_action, expval_action, hdrproc_action, inpval_expires, expval_expires, inpval_priority, expval_priority, hdrproc_priority, inpval_precedence, expval_precedence, inpval_in_reply_to, expval_in_reply_to, hdrproc_in_reply_to, inpval_userhdr, expval_userhdr > Modified hdrproc_expires, hdrproc_precedence, hdrproc_userhdr > Added hdr_to_buffer, hdr_to_expval, buffer_to_header, text_to_buffer, text_to_expval, buffer_to_text, * NOTE: Now addresses are show as fullname
- address (comment) kind usage is preserved if it is used. - editmsg.c uses now struct mailing_headers. > get_with_expansion() replaced with get_addr_with_expansion() and get_text() > Common part of these moved to new procedure get_it() - Added have_editor() to editmsg.c - edit_the_message() takes now arguments editor and headers (struct mailing_headers) - send_msg_middle() and send_msg_argv() to src/mailmsg1.c. - Dropped send_msg() from src/mailmsg1.c - Common part of mail() (src/mailmsg2.c) and remail() (src/remail.c) moved to new mail_backend() (mailmsg2.c). - Added comment field to struct addr_item. Now addresses are parsed (lib/getaddr.c) as: fullname
(comment) - Although doc/mime.charsets is based on IRIX 6.2, added to it following locales from GNU localdb (Linux): de_BE, de_CH, de_LU, en_DK, en_GB, en_IE, et_EE, fo_FO, fr_LU, gr_GR, kl_GL, nl_NO, bt-br, ru_RU, sl_SI, lt_LT, lv_LV (I think that bt-br is typo on GNU localdb -- should be bt_BR I suppose. lt_LT and lv_LV I marked as unsupported because it is uncertaing what is charset associated to them.) - Now configure tries to do 'locale -m' for list of mapping tables (GNU locale/localdef) and put result to elm.mimecharsets with key like *.tablename. I hope I have understand that 'locale -m' correctly. - Now is possible to generate $lib/elm.mimecharsets from scratch even when it exists already. - If I_LOCALE is defined (Elm will call setlocale()) and message catalog routines are found, then Elm will use system's message catalog routines without asking. - If I_LOCALE is defined (Elm will call setlocale()), assume that isprint() is not ASCII only (do not ask from user if isprint() is broken). - If I_LOCALE is defined (Elm will call setlocale()), assume that tolower() and toupper() works without testing, because ELm's replacement routines are ASCII only. - Elm -vv now prints dedination of I_LOCALE, ASCII_CTYPE and BROKE_CTYPE also. - If ctype routines are ASCII only, set MIME charsets to US-ASCII without asking from user. - Checking that isprint(), toupper(), tolower(), [isupper(), islower()] are called with unsigned char -values. - Added elmrc -variable sort-thread-max-time. This controls how long can be time (on days) between mails with can be considered to be same thread when using threaded sort. - Dropped remailer stuff (and USE_REMAILER), src/remailer.c - Dropped src/returnadd.c, removed kludge() - Added have_printout() to src/syscall.c - Added test to Configure to see if shared libc.so is actually is GNU ld script (for Debian Linux 2.1). - Added test to Configure to look look EWOULDBLOCK from /usr/include/asm/errno.h on Linux - Added test to Configure to look look F_SETLK from /usr/include/asm/fcntl.h on Linux - Changed texts and defualts about locking on Configure - Now Configure defaults Linux 2.0 with flock locking. On Linux 2.1 and 2.2 both flock anf fcntl locking. On Linux 1.* Configure defaults fcntl locking. - On sysv systems (or non-BSD systems) Configure defaults no flock locking. - Change default of COnfigure to not use getdomainname() for mail domain. It gives NIS domain. - Accept none as printer spooler name on Configure. Note that on this case printing command must be set on global elm.rc - Search /var/spool/mail one candinate for mail spool directory on Configure (for Debian Linux 2.1) - Removed memory models question form Configure. It is not used. - Removed PDP11 from Configure. New elmrc options: sort-thread-max-time Changes of Elm2.4ME+ PL54 (25) compared with Elm2.4ME+ PL53 (25) -------------------------------------------------------------- [ Before applying this patch, undo Elm2.4ME+ PL53Y -patch. ] * "Kari, the following headers, cause with 'g'roup reply two instances of the same adress the reply is sent to." Problem noted by: Roeland Th. Jansen - Added okay_address_l() to lib/okay_addr.c - Added current_header argument to send_msg(). - Changed handle_reply_to() and get_and_expand_everyone() to return struct addr_item array. - Changed optimize_and_add to process struct addr_item array. - Added current_header argument to src/send_msg() - Added send_msg_l() and expand_list() to src/mailmsg1.c - Dropped get_return() call from src/alias.c - Dropped get_return() call from src/file.c - Dropped '%' command (get_return() call) from src/elm.c - Dropped '%' command (get_return() call) from src/showmsg_c.c - Removed get_return() function from src/returnadd.c - Use okay_address_l() in lib/displaddr.c - Removed figure_out_addressee() and lib/figadrssee.c - Removed okay_address() from lib/okay_addr.c -Remove uneeded initialization from utils/from.c (frm). Already done on inet_defaults(). - Call abort() if emergency_exit() is called with interrupt -set (for helping of debugging) - Test that year >= 0 instead of year > 0 on cvt_yearstr_to_yearnum(). That affects if year 2000 is given as 00. Year 2000 fix from: Ed Symanzik - Interpret years 100 - 199 as year + 1900 (that is 2000 - 2099) in cvt_yearstr_to_yearnum(). - Closing folder twise causes error message: Sorry, can't unlink the temp file /usr/tmp/mbox.$USER [No such file or directory]! Problem noted by: Jussi Kaurola - Add one more buffer bounding check for gcos_name(). - Fix incorrect match on map_display_charset() (lib/read_rc.c). May causes that display_charset is mapped to "" string. - Allow -A (Attach) option to work on batch mode. - "I've put together a patch which implements a threaded sort order for elm2.4.ME+43, which I'd like to see get committed to the main distribution. The sort is very similar to the existing SUBJECT sort except that the threads appear in chronological order based on the time sent of the first message of the thread." From: Brian Dean > Sorting of REVERSE THREAD was completely broken on given patch. I hope that I managed to fix it. - If =received is treated as mailbox (for example because of protection mask of folder), user if promted for "Move read messages to "received" folder? (y/n)" altough user is already on =received -folder. Hitting of 'y' can cause lost of folder. Problem noted by: Isaac Stoddard - Added same_file() to me.h and maked it non-static on newmbox.c Changes of Elm2.4ME+ PL53Y (25) compared with Elm2.4ME+ PL53 (25) --------------------------------------------------------------- [ This patch is branch from the main line. ] - Test that year >= 0 instead of year > 0 on cvt_yearstr_to_yearnum(). That affects if year 2000 is given as 00. Year 2000 fix from: Ed Symanzik - Interpret years 100 - 199 as year + 1900 (that is 2000 - 2099) in cvt_yearstr_to_yearnum(). - Closing folder twise causes error message: Sorry, can't unlink the temp file /usr/tmp/mbox.$USER [No such file or directory]! Problem noted by: Jussi Kaurola Changes of Elm2.4ME+ PL53 (25) compared with Elm2.4ME+ PL52 (25) -------------------------------------------------------------- - "I used to get 'emergency' errors when syncing a mail folder (via shortcut '$') and sometimes when quitting. The function file_util.c: copy_to_fh did not have a 'return(0);' at the end to catch the case when nothing went wrong. It was returning a random value instead. This random return value was passed back up as a fatal error. Adding a return at the end seems to have solved the problem." From: Marc Pawliger - "I am still experiencing a crash when composing a message using Elm and I hit the '~p' shortcut to print out the message in progress. There is a NULL dereference happening and elm crashes." Problem noted by: Marc Pawliger > Missing format string for Write_to_screen on editmsg.c. - Removed MIME configuartion option. Now MIME support is always compiled in. - Added elmrc option send-mime-plain-text. When this is not set, text/plain US-ASCII messages with encoding 7bit are sent without MIME headers. Default is that send-mime-plain-text set. - Add print_EOLN(filedesc,mime_info->encoding_top) to some places. - Do append_sig() before needs_encoding() on mailmsg.c (case editor == builtin) - Move writing of Content-Length -value to copy_message_across() - cl_start, cl_end and cl_offsett moved to mime_send_t (not a mime informatuion actually) and no longer global information. - Only write content-length to copy of mail (do not send it) New elmrc options: send-mime-plain-text Changes of Elm2.4ME+ PL52 (25) compared with Elm2.4ME+ PL51 (25) -------------------------------------------------------------- [ There is reported some problems on folder handling on PL51. It is unclear if this fixes them. ] - Add possibility to specify on Configure what directory check first for programs. Prompted by: Marc G. Fournier - Look /usr/share/locale also from locale directory (not only /usr/lib/locale) Prompted by: Mike Brown - Use more, if available (and only if Configure is not run with -d option), to page bin/elm.mimecharsets - MMDF support patch From: Konstantin Kuznetsov - map_display_charset: use best match from file instead of first match - Reopen folder after unlink so that copy does not go nowhere! Problem noted by: Jacek Uminski - If folder locking is used, do not unlink and link folder, instead copy to it on leavembox. - skip_space was uninitialized on rfc1522_decode_structured Changes of Elm2.4ME+ PL51 (25) compared with Elm2.4ME+ PL50 (25) -------------------------------------------------------------- [ Warning: This have quite much changes on folder handling and locking, so please report new bugs which you observe. Before applying this patch, undo Elm2.4ME+ PL50s -patch. ] - Added struct folder_info and moved some variables to it (cur_folder, cur_tempfolder, folder_type, equivalent of mailfile, mailfile_size, lock_state, lockfile, create_fd) > Now copy of mailbox to /tmp is created little earlier. > Mailbox is not opened second time for syscal locking. - Added pgp-sign-type elmrc -variable. Possible values are application/pgp, text/plain and text/x-pgp. Inspired by: Will Day - Added elmrc option readdatapercentinc (default 5). This tells how owten show percentage of read mailbox in "Reading message" -text. > Changed readmsginc elmrc options default to 100. > Notice that actual update frequence is determined by combination of both of these (readdatapercentinc and readmsginc) - Fix incorrect bound checking on putc_so_string() (state.c) - base64_decode was passing wrong buffer size to state_getl Problem noted by: Yury Yaroshevsky - Move definition of SYSCALL_LOCKING to defs.h from lock.c - Add indication of SYSCALL_LOCKING to elm -vv output - Remove lock-in-copy option if SYSCALL_LOCKING is not compiled (so that elmrc is not filled with irrelevant options) - Added lock-folder elmrc option (available if SYSCALL_LOCKING is compiled). Default: on - For forward compatibility: strip text after ; on charset= and display= -charset lines and on mime.charsets -file (function get_charset_map_info). - attach_save (on src/attach.c) was saving one byte too less data when saving of attachment which do not require decoding. - Generation of elm.mimecharsets was not very smart. Problem noted by: Mike Brown New elmrc options: pgp-sign-type readdatapercentinc lock-folder Changes of Elm2.4ME+ PL50s (25) compared with Elm2.4ME+ PL50 (25) -------------------------------------------------------------- [ This patch is branch from the main line. ] - Fix incorrect bound checking on putc_so_string() (state.c) - SECURITY: base64_decode was passing wrong buffer size to state_getl Problem noted by: Yury Yaroshevsky Changes of Elm2.4ME+ PL50 (25) compared with Elm2.4ME+ PL49 (25) -------------------------------------------------------------- - elm -vvvv now print names of some configuration files - elm -vvvvv prints some configuration data (mainly locale dependent data) - "When I use the keys '+' or '-' in an empty attachment list elm exits with a segmentation violation. This seems to occur because the variable 'ptrs' points to NULL (and 'ptr_max' is equal to 0) which is not checked. The following patch fixes this bug." From: Henrik Pletat - Added locale_init() to lib/read_rc.c and moved to catopen and setlocale to it. - Added mapping from LC_CTYPE locale to display_charset. Mapping is done on file $lib/elm.mimecharsets or on .elm/mime.charsets - Special value DISPLAY on elmrc variable charset means that use display_charset. - Moved variable substitution from Configure to ConfTool/Substitute (called automatically) - Ctrl-U and Ctrl-D on builtin++ pager was working inconsistently. Problem reported by: Andrew J. Piziali Changes of Elm2.4ME+ PL49 (25) compared with Elm2.4ME+ PL48 (25) -------------------------------------------------------------- - Put ME+ to under of CVS. Because revision numbers changed there was need of changing header text of files. - "It fixes a small problem with the date representation in the upper right corner. Currently, times like "09:08:02" are displayed as " 9: 8: 2". This is because src/date.c uses the format "%2.2d:%2.2d:%2.2d" which is not supported by elm_vmessage() (gets interpreted as "%2d:%2d:%2d"). The patch changes this to "%02d:%02d:%02d" (this is used everywhere else anyway), which fixes the problem." From: Gertjan van Oosten - If To: is empty and I have sender, show sender of mail (DisplayAddrress (lib/dispaddr.c) was not correctly detectection empty To: -header.) Changes of Elm2.4ME+ PL48 (25) compared with Elm2.4ME+ PL47 (25) -------------------------------------------------------------- - Changed to and cc field on header_rec to include result of break_down_address - Added to_matches and cc_matches to pattern.c - moved and reimplemented forwarded from utils/newmail.c and src/addr_util.c to lib/forwarded.c - shift_lower needs const for argument - Add buffer overflow check to stip_parens() and get_parens() (lib/striparens.c) - Moved main part of parse_arpa_date() to new routine parse_date_time (lib_/parsarpdat.c) and let parse_arpa_date() to call that routine. - Reimplemented process_expiration_date() (src/expires.c). Original code did not handled 4 number years and was broken on year 2000. New code uses just parse_date_time() -- However it accepts expiration times where date part is only given from RFC 822 date-time format. - Now real_from() (lib/realfrom.c) assumes local timezone, if timezone is not given, because From mailbox separator is normally inserted locally. - There was "multi-character character constant" -warning coming from src/mkhdrs.c Reported by: Witold Witkowski - "If you switch to the option editor screen, change "O)utbound mail saved" from "=sent" to "=sent" (i.e. enter the displayed character sequence), return to the index, and then mail a message, the outgoing message will be saved in a file named ~/=sent rather than in ~/Mail/sent. The equal sign is not getting expanded to the user's mail folder directory." Reported by: Andrew J. Piziali - "I suggest checking and accepting (extending) existing PATH" From: Witold Witkowski > Moved $PATH to beginning of initial PATH of Configure Changes of Elm2.4ME+ PL47 (25) compared with Elm2.4ME+ PL46 (25) -------------------------------------------------------------- - Do not treate characters > 127 as controls (allow they on words of phrases) - Fix name of "Forwarded message from" -text Changes of Elm2.4ME+ PL46 (25) compared with Elm2.4ME+ PL45 (25) -------------------------------------------------------------- - Split break_down_address to look_special_tokens(), scanned_to_phrase(), scanned_to_str() routines and reimplement break_down_address as state machine (4 states, 6 terminals). > Now phrase from group -syntax is ignored and route from address is dropped. - strtok(), strpbrk(), strstr() was declared in both of elmlib.h and defs.h (remove later declaration). Noted by: John Goerzen , Emmanuel Bigler - Changed from field on header_rec to include result of break_down_address (instead of just fullname). - "From " address is stored to new env_from field > Sorting based on sender uses first "From " address and then parsed From: -header (fullname and then address) > Limit with 'from' now works both of full name and address and it uses now MIME-decoded full name. Also "From " address is considered. - get_return (on returnaddr.c) is simplified. Now it uses stored (and parsed) From: -header from from field of header_rec - Assume INTERNET (style addresses). Remove question from Configure and all ifdefs. - Assume USE_EMBEDDED_ADDRESS (From: and Reply-Top:). Remove question from Configure and all ifdefs. - Call user_init(), init_defaults() and read_rc_file() on newmail. Changes of Elm2.4ME+ PL45 (25) compared with Elm2.4ME+ PL44 (25) -------------------------------------------------------------- - skip_envelope on melib/parse_util.c was not skipping ">From " -lines. - Save composition filename to global variable (so it does not need to be genrated in signal handler for removal) Changes of Elm2.4ME+ PL44 (25) compared with Elm2.4ME+ PL43 (25) -------------------------------------------------------------- - Added lib/getaddr.c (break_down_address, free_addr_list) - Moved rfc822_tokenize, remove_space_tokenized, free_rfc822tokenized from melib/parse_util.c to lib/getaddr.c - Reimplemented parse_arpa_who (lib/parsarpwho.c) and get_address_from (lib/getaddrfrm.c) with break_down_address - Added size argument to (get_address_from) - replace break_down_to_list (src/reply.c) with break_down_address - "patch-hmo-1 extends the '#' debug menu, showing all defined message flags, in the order present in hdrs/defs.h." From: Helge Oldach Changes of Elm2.4ME+ PL43 (25) compared with Elm2.4ME+ PL42 (25) -------------------------------------------------------------- - print attachment instead of just printing [skipping...] message when printing from atttachment -menu - Changes calling sequence of Write_to_screen - Added some messages to message catalog - Added PutLineX to curses.c - Dropped Putline1, PutLine2, PutLine3 to favor PutLineX - Remove hostname initialization from fastmail, fastmail now calls read_rc -routines Changes of Elm2.4ME+ PL42 (25) compared with Elm2.4ME+ PL41 (25) -------------------------------------------------------------- - Tweak little (add missing space) to build_header_line - "When I'm in the attach menu before sending a mail and I use the delete function on the LAST attachment, the cursor diappears. Trying then to move up the cursor elm exits with a sigmentation violation. This error appears in several versions of elm." From: Henrik Pletat - Fix call of parse_arpa_who in figure_out_addressee, which caused that To -address in 'frm' was truncated. - Change days_ahead to return year in 4 numbers and simplify it. - Some year 2000 fixes for src/date.c - Make elm_date_str to return year in 4 numbers [ Undo Elm2.4ME+ PL41h patch before installing this patch. ] Changes of Elm2.4ME+ PL41h (25) compared with Elm2.4ME+ PL41 (25) -------------------------------------------------------------- - Tweak little (add missing space) to build_header_line Changes of Elm2.4ME+ PL41 (25) compared with Elm2.4ME+ PL40 (25) -------------------------------------------------------------- [ Warning: This is so much changes (and some are incomplete) so this this quite sure more buggy than PL40. ] - "it's not "a X-Windows" but rather "an X-Windows"; and BTW, it's not "X-Windows" at all cause that term simply does not exist (cf. man X). Simply replay "an X-Windows" by "an X11". Thanks." From: (sender's name lost) ( I managed to delete hurtta+elm Mailbox, so resend your mails if they are sent between 1998-03-04 and 1998-04-04. ) - Added some messages to message catalog - iprintf.c dropped (so far) -- it is not used (at least yet) - elm_sfprintf, elm_message > Global change: Most of sprintf calls replaced with elm_sfrpintf - Do not longer test existence of mkdir() - "this is another very simple fix that repairs this: posixsig.c:89: warning: preprocessing directive not recognized within macro arg" From: Helge Oldach - Dropped error1, error2, error3 to favor lib_error - Changed how menu2.c works (and therefore changed DSN and remailer menus.) - Tweak parsearpawho > Now From: is not assument to be part of buffer > from in header struct is now mime decoded > That is now mime encoded when generating comment to reply address. - Handles now phrases on From: -header which uses continuation lines - Dropped get_real_name -- it is it is at least equal broken than parse_arpa_who - ' added to set of characters which need quotation because sendmail otherwise will quote words which includes ' on phrases -- even that ' is not special character -- and that way destroy MIME encoding. - MIME decoding is now done when showing values in header menu (for address headers) - MIME encoding also full name got from gecos field of passwd - MIME encode also name entered to comments in header edit screen (for address headers) Changes of Elm2.4ME+ PL40 (25) compared with Elm2.4ME+ PL39 (25) -------------------------------------------------------------- - Enumerated options userlevel: beginner intermediate expert noencoding: pass-7bit pass-8bit pass-binary - Move reading of elmrc to elmlib and put elm tools to read elmrc. This may make to some time in future to possible to do binary distributions of elm. > pmalloc.c moved from src/ to lib/ - Added option elm -vvv - Add routine lib_error (lib/output.c) - Added some messages to message catalog - "I have a nice patch to elm-me+-2.4pl25ME+39: If you press (l)imit and then type "thread", all messages with the same subject are shown. A leading "Re: " is stripped. That is usefull for (large) mailing lists, where you don't read all messages. (It's like the thread command in most net news readers)" From: Christian Hammers - "I have determined what the problem is. When you `bounce' a message elm fails to strip the `From ' line from the top of the message. This causes Smail to think that the message is an incoming UUCP transmission. Smail uses the `From ' line to build the new return path using a !, getting a wrong answer. Elm should strip the `From ' from bounced messages." From: Ian Jackson > Added CM_REMOVE_ENVELOPE flag to call of copy_message in remail.c in case of INTERNET is defined (From comments it looks that passing of "From " is done by purpose: "For those cases when you want to have a message continue along to another person in such a way as they end up receiving it with the return address the person YOU received the mail from") - Elm -v now prints warning "Elm is not intended to be distributed in binary form. If that is done, then it is very likely that compile time configuration does not match to your system." Changes of Elm2.4ME+ PL39 (25) compared with Elm2.4ME+ PL38 (25) -------------------------------------------------------------- - "The filter included in elm-2.4ME+37 also appears to be vulnerable to the "save_embedded_address()" attack, but not to the "get_filter_rules()" attack." From: KSR[T] > I didn't used supplied patch. Instead I added bound check to one loop in save_embedded_address (I was added it to one loop but was missed other loop. ) > Note that Makefile will not compile ot install filter -- that is intentionally (it was dropped because of security problems) - "here is another small fix relative to elm-2.4ME+37. This is relevant for empty folders with keepempty=OFF. Previously an empty folder was deleted *only* when this folder was left with all (and >= 1) messages marked 'deleted'. Now an already empty folder is also deleted upon quit or change to another folder." From: Helge Oldach > I didn't used supplied patch. Instead I modified leave_mbox. - Added elmrc -option "dsn-success" - "it looks like that the help function in change folders of this used version (2.4me+38) doesn't work." Reported by: Roeland Th. Jansen > init_helpmsg was called with wrong number of parameters. New elmrc options: dsn-success Changes of Elm2.4ME+ PL38 (25) compared with Elm2.4ME+ PL37 (25) -------------------------------------------------------------- - getarpdate generated date wrongly in year 2000 - "Here's another small fix which allows elm to deal more reasonably with empty last name/first name/comment fields in the alias file. This is intended for situations where people use mail addresses which already include the full name (like: Helge.Oldach@sep.hamburg.com), so that duplicating the last name and first name on the alias list seems not reasonable. If one just leaves the last name/first name/comment fields empty like in: hmo = = Helge.Oldach@sep.hamburg.com then the alias screen will display nothing but the alias, which doesn't tell anything. This patch makes elm display the actual mail address instead of an empty last name/first name/comment field. It also fixes the display of such empty fields when displaying the actual address while sending a mail ("Message addressed as: Helge.Oldach@sep.hamburg.com ()") - the empty brackets won't appear in this case." From: Helge Oldach - "background_wait_time should be background-wait-time in doc/elmrc-info, otherwise the elmrc update function (elm -w) won't copy the comment." From: Helge Oldach - "It wasn't properly truncating the subject line if the rest of the header was longer than 44 characters" From: Guy Harris - If msgcat.c will be compiled, don't include In that situation always include "elm_nl_types.h" - rfc822_tokenize, remove_space_tokenized, free_rfc822tokenized, strmcat Changes of Elm2.4ME+ PL37 (25) compared with Elm2.4ME+ PL36 (25) -------------------------------------------------------------- - include in defs.h - include in lib/posixsig.c on Ultrix V4.4 From: Bernhard Simon - "The latest elm.me has a nl_types.h include which on Digital UNIX is conflicting with a system include having the same name, which is of course needed for proper compilation :(." From: Christophe Wolfhugel > Rename nl_types.h to elm_nl_types.h > There was wrong number of argument in catgets call in iprintf.c [ not currently used ] From: Christophe Wolfhugel - Changes for configure to run in Dec Unix (OSF1) "- cc -std (to have prototypes) - nm_opts='' for DEC Unix or it gives wrong output with -p and Configure won't see some functions (like strspn) - signal hardcoded, because cc -E or cpp or DEC Unix does not pass the standard defines (the ones put by cc -std) and we will miss the signal prototype anyway :(." From: Christophe Wolfhugel - Some changes that Elm compiles cleanly on Digital Unix (OSF1) [ It was not defining __STDC__, but was complaining if char * argument was given to unsigned char * argument of function (and opposite) ] - Digital Unix (OSF1) was defineing macto BSD (sig!) Renamed BSD macro to BSD_TYPE Changes of Elm2.4ME+ PL36 (25) compared with Elm2.4ME+ PL35 (25) -------------------------------------------------------------- - "If the mail transport agent (MTA) is missing, elm silently fails. No message is delivered and no warning or error message is displayed." From: Jan Prikryl , Andrew J. Piziali > Return status of process was decoded incorrectly. > Also errno status was written to wrong end of report -pipe. - Redraw screen also if old position was on screen when new mail arrives. - Dropped return_value_of from curses.c - Support arrow cursor on attachment menu - "I recently tried to run the Configure script on AIXv4.2.1 which failed trying to extract the function names out of libc.a. I updated the script so it will work on AIX." From: Will Fiveash - "Also, I am including my file locking patch so that elm will lock a folder when trying to save or copy to it." From: Will Fiveash > Added elmrc option lock-in-copy, that locking is done if this option is TRUE (default). * NOTICE: This does not work with dot-locking * NOTICE: This is useful only with folders which elm treats as mailboxes, because folder are not locked (when visited). - Changed can_open to use my_wait and prepared for EINTR - Dropped move_old_files_to_new() New elmrc options: lock-in-copy Changes of Elm2.4ME+ PL35 (25) compared with Elm2.4ME+ PL34 (25) -------------------------------------------------------------- - "I've built elm-2.4.ME+3[34] under SunOS 4.1.2 using libc 1.1.7 and gcc-2.7.2 and can't actually open a mail file with them. " From: Dave Rynne - wait in can_access was not prepared for EINTR - can_access was not using my_wait [ And why can_access just not use access system call? -- it used real uid and gid anyway!!!! ] - "The run_state structure declared in me.h has a member called "errno". However, it is unsafe to use errno as an identifier under some Unices, e.g. when errno is a macro. Here is a patch against PL34 which renames the struct member." From: Jesse Thilo [ It turns out that culprit is Linux libc 6 ] - Add support for multipart/alternative. Elmrc variable pagealternative is added. If that is TRUE (default), and at least one subpart of multipart/alternative is displayable metamail is not called. If that is FALSE, metamail is not called if all subparts of multipart/alternative are displayable. New elmrc options: pagealternative Changes of Elm2.4ME+ PL34 (25) compared with Elm2.4ME+ PL33 (25) --------------------------------------------------------------- - Print "Elm: Unsupported locale (check $LANG)" if setlocale fails. Suggested by: Michael Rudolf - "I've found a bug in the Configure script for elm2.4.ME+.33: when Configure asks for the metamail path and the path doesn't exist elm asks you: "File ... doesn't exist. Use that name anyway?", if you answer 'y' then metamail_path is set to 'y'. I think that's not the desired action... :)" From: Jose A. Rodriguez - Add elmrc -varaible pgp. This gives path to PGP. If "none", pgp is not called. Also checked that pgp is executable with given path. Suggested by: John Goerzen - check with can_open that debug file can be opened. - -A (attach) option didn't used "~/.elm/mime.types" file. Reported by: Andrew J. Piziali New elmrc options: pgp Changes of Elm2.4ME+ PL33 (25) compared with Elm2.4ME+ PL32 (25) -------------------------------------------------------------- - Content-Disposition: inline; filename = "filename" was not parsed correctly. Reported by: Jussi Kaurola - Remove NIS tests from Configure. $passcat was not used ( Next section "set up shell script to do ~ expansion" may perhaps need it, but actually it does not use it. ) Hint from: Jerzy Sobczyk > Now sun is always added to from of $libswanted - Added elmrc option background-wait-time (default 2 seconds) If = 0 wait mailer to completion > 0 wait background-wait-time seconds for completion if not completed in this time, let it go to background (completion of mailing is still reported if user have not exited from elm in that time when mailer have completed) Suggested by: Heiko W.Rupp Daniel C. Sobral * THIS option is supported only in POSIX systems > Added my_wait to lib/posigsig.c - Added VOLATILE to defs.h > to resize_screen, redraw_screen (elm.h, headers.h) - "When I tried to compile elm2.4.ME+.32 for Digital Unix 4.0 I got a few compiler errors. The problem is that ANSIC/not ANSIC headers are not in sync... They are fixed with this patch (for lib/iprintf.c file)" From: Jose A. Rodriguez * Actually this (ELMCHAR, iprintf) code isn't yet in use - "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 of it is commented out from Makefile in all ME+) New elmrc options: background-wait-time Changes of Elm2.4ME+ PL32 (25) compared with Elm2.4ME+ PL31 (25) --------------------------------------------------------------- - Incorrect Content-length: -header was causing corruption of folders. From: Guy Harris - argv_from_to was not handled ',' in comments correctly. Detected from report of Gary Casterline > Use rfc822_toklen instead of len_next_part - SECURITY: strcpy -> strfcpy changes of Elm2.4ME+ PL29 (25) was not done for curses.c in this source tree. Bug report on List . From: John Goerzen - Some changes on curses.c (bl -- bell) - Change output of option -v - "If you use 'answer -u', then every user name is truncated to three letters." ... "Change line 232 to: " ... From: Jean-Pierre Radley [ Suggested fix was incorrect. ] - "Configure always has had a problem on Linux systems, extracting names in a usuable format (from /usr/lib/libc.so). The following small change fixes this." From: Bauke Jan Douma - "In Solaris enviroment NIS+ is now used instead of Yellow Pages so I have modified Configure to reflect this and allow to use niscat in the same fashion as ypcat was." From: Jerzy Sobczyk [ Undone in PL33 ] - Compilation of filter (actions.c) fail. Reported by: Arnout Boer - Typo mismatch in lib/strftime.c From: Yuval Shamir - [wordwrap.c, bultin editor] "Wordwrap and delete at the beginning of the line does not work in PL31. Fix is below." From: "Zoltan T. Hidvegi" [ I didn't used supplied patch. ] - [builtin editor] There was 'sizeof buffer' instead of 'buffer_size' in get_with_expansion() - Add same fflush -fix to remail.c which is in mailmsg2.c Changes of Elm2.4ME+ PL31H (25) compared with Elm2.4ME+ PL31 (25) --------------------------------------------------------------- [ This patch is branch from the main line. ] - Incorrect Content-length: -header was causing corruption of folders. From: Guy Harris - argv_from_to was not handled ',' in comments correctly. Detected from report of Gary Casterline > Use rfc822_toklen instead of len_next_part Changes of Elm2.4ME+ PL31 (25) compared with Elm2.4ME+ PL30 (25) -------------------------------------------------------------- - Print "Warning: BINARY data? Check Content-Type!" when trying send binary (*) data as text in attachment menu. (*) binary = not fill requirements of "7bit" and "8bit". - Convert some system_call() to use start_run() ... wait_end() instead. - optionally_enter() in pgp_decode.c was called without size -argument - "The problem appears to be that when a "FILE *" is rewound, the underlying file is not, causing mail messages to be empty. " Reported by: Jon Harder [ Now input file descriptor is fflush'ed -- this should synzronize it. ] - "I often mail PGP-encrypted attachments to people with the appropriate content type. If I want to review the attachment before sending it, I go the to a)ttachments screen, select the attachment of interest, and press . Elm prompts me for a pass phrase because I always encrypt using my public key along with the recipient's. If I mistype my pass phrase, I cannot use control-F (^F) to cause Elm to forget the cached pass phrase from either the attachments screen or the send screen. I wish ^F were recognized on those two screen also." Suggested by: Andrew J. Piziali * Added ^F to verify_transmission, attachment menu, and to showmsg_c.c Changes of Elm2.4ME+ PL30 (25) compared with Elm2.4ME+ PL29 (25) -------------------------------------------------------------- - mailerflags -array (argument vector) was not NULL terminated in remail.c. - Elm was not recognized SortBy (and aliassortby) keywords [ strfcpy was got size of pointer instead of array size in read_rc.c ] Reported by: "Ralf S. Engelschall" - Fixed some error messages in read_rc.c - "The problem is that 'case:' statement use int range, so 0xFC02 expanded to 0x0000FC02, not to 0xFFFFFC02, but xxx->magic value is short and expanded to 0xFFFFxxxx, so comparation is unsuccessful. Fix is simple: direct cast to short." From: "Andrey A. Chernov" [ I don't actually used that fix. Instead I changed magic values to 'unsigned short' in elmlib.h. Now they are used same way as in melib.h. ] * Actually this (ELMCHAR) code isn't yet in use Changes of Elm2.4ME+ PL29 (25) compared with Elm2.4ME+ PL28 (25) -------------------------------------------------------------- [ Warning: This is so much changes (and some are incomplete) so this this quite sure more buggy than PL28. ] - SECURITY: Elm was passing `shell command` without quotation to shell when invoking sendmail. Reported by: Wolfgang Ley from: "Computer Emergency Response Team, Germany" (Originally from: Dirk Nimmich ) > Don't use shell when calling sendmail (or other mailers) - quote_args() dropped from strings.c - now elm waits until sendmail returns (and simple not put it background without checking if mailing succees) > Now -V option of Elm works better - Small change in displaying of multipart messages - (mime_decode.c) Use in_state_seekable instead of testing magic agaist STATE_in_file - Move state.c from src/ to melib/ - New header files melib.h and elmlib.h - Add routine strfcat to strfcpy.c - get_folder_type is litle more smarter to detect files in mail directory - d)omainze removed from header config -menu - Don't ask shell in configure -- take shell from passwd If passwd is used, default value for elmrc is null string If $SHELL env variable is used, defaualt value for elmrc is $SHELL string - If $EDITOR env varaible is used, default value for elmrc is $EDITOR string - Default to p)gp if replying to pgp encoded message (in verify_transmission -menu) - Remove bounceback variable and bouncebk.c - [defs.h] In IRIX define 'int32' by using 'int32_t' Warning: If you have compiled Elm with ABI=-64 (default on IRIX64), this changes on disk format of aliases database * Actual use inttypes.h (does not work if -cckr is used, (also can't be used in IRIX 5.3 because of conflicts with sys/types.h -- ARGH!) - Removed references to VMS and EUNICE from Configure - Removed I_STDARG -- now if ANSI_C is defined stdarg.h is used, otherwise varargs.h is used - Add do { .... } while(0) to dprint -macro - Global change: Use strfcpy instead of strcpy and: Use strfcat (new routine) instead of strcat (but sprintf -calls are still untouched!) [ Undo Elm2.4ME+ PL28s patch before installing this patch. ] Changes of Elm2.4ME+ PL28s (25) compared with Elm2.4ME+ PL28 (25) -------------------------------------------------------------- - SECURITY: Elm was passing `shell command` without quotation to shell when invoking sendmail. Reported by: Wolfgang Ley from: "Computer Emergency Response Team, Germany" (Originally from: Dirk Nimmich ) > Quote ` -character Changes of Elm2.4ME+ PL28 (25) compared with Elm2.4ME+ PL27 (25) -------------------------------------------------------------- - mailerflags was too short for DSN flags Changes of Elm2.4ME+ PL27 (25) compared with Elm2.4ME+ PL26 (25) -------------------------------------------------------------- - 'hdr -> magic = NULL;' should be 'hdr -> magic = 0;' in parse_util.c Noted by: "Andrew J. Piziali" - "Change Elm to exit after printing the error message, rather than continuing and erasing the screen message and all, if it encounters an error when reading your "elmrc" file." From: Guy Harris * But do not do this if in batch mode! * Don't exit if there is errors in global elmrc! * Let user save new .elm/elmrc with option -w - state_read_headers was building next_header chain incorrectly (and possible other chains also). - add_paramater_t routine (wrapper for add_parameter) to mime_encode.c - Let user attach files with option -A To get this work correctly, user needs to have mapping file extension -> mime/type in his .elm/elmrc - Added field magic to mime_t and routine mime_panic. Now it is possible to get error message MIME_PANIC if in mime structure in memory is something wrong (analogy to STATE PANIC and HEADER PANIC). - Size of forwarded mail in message/rfc822 was not set correctly in Elm2.4ME+ PL23. - Added DSN (Delivery Status Notification) Configure menu to verify_tranmission. You need sendmail 8.8 to get this. - In menu of verify_transmission, show a)attachments option also in user level = 0, if there is attachments. - In menu of verify_transmission, show p)gp option also in user level = 0, if original message was pgp -encoded (when replying). - In menu of verify_transmission, show D)SN option also in user level = 0 if there is dsn settings (does not apply now). Changes of Elm2.4ME+ PL26 (25) compared with Elm2.4ME+ PL25 (25) -------------------------------------------------------------- - Adding final \n\n was badly broken in copy_message() Reported by: Eilon Gishri - Try fixing handling of null bodys in read_headers() { newmbox.c } in some cases. Perhaps this brokes nothing? - rfc1522_encode_text failed to \0 terminate Subject From: Claus Assmann - PGP fails to check signature if KEEPBINARY=ON From: Heiko W. Rupp - Created new directory melib and made archive libme.a. Some code is moved to that directory. You need to create that directory before applying path! Changes of Elm2.4ME+ PL25 (25) compared with Elm2.4ME+ PL24 (25) -------------------------------------------------------------- - Problem with screen size (elm_LINES and elm_COLUMNS are inconsistent). [ I was commented out line what was comment /* kludge for HP Window system? ... */ in PL23. VERY misleading........................ I HATE this. - K E H ] - Fix release month Changes of Elm2.4ME+ PL24 (25) compared with Elm2.4ME+ PL23 (25) -------------------------------------------------------------- - ks/ke capabilities are optional. They are not present in ANSI -terminal. From: "Andrey A. Chernov" - X-ELM-OSV was not correctly parsed Changes of Elm2.4ME+ PL23 (25) compared with Elm2.4ME+ PL22 (25) -------------------------------------------------------------- - Add a new config variable, called askpgpsig. When set to ON, Elm will ask for a username to sign pgp messages with. From: Guido van Rooij - menu2.c: ch must be int, or comparations with -1 (EOF) and 257 (REDRAW_MARK) produce wrong results. From: Andrey A. Chernov From: Guy Harris - In "do_pipe()", "redraw" was both a variable and a label. From: Guy Harris - If you've set characters such as the word-erase or reprint character to non-standard values, use your values, not the standard ones. From: Guy Harris [ Added also !escaped test, because now these characters can be printable. ] - Moved processing of cursor keys to ReadCh (old cursor key handling was buggy). > HP's shoftkeys are not supported: No options: -k -K No elmrc variables: softkeys keypad > Recognized keys are: Key tercap name terminfo name ----- ----------- ------------- UP arrow ku kcuu1 DOWN arrow kd kcud1 LEFT arrow kl kcub1 RIGHT arrow kr kcuf1 PAGE UP kP kpp PAGE DOWN kN knp HOME kh khome HELP %1 khlp FIND @0 kfnd > To get keys to use, your $TERM variable must point termcap/terminfo definition what includes these keys. Notice that 'vt100' does not include other than cursor keys. You must perhaps make new definition, for example terminal type 'vt100-plus' :-) For terminfo use 'tic' and 'infocmp' -commands. - state operations are moved outside of #ifdef MIME ... #endif - Added new routines state_write_headers, state_read_headers, delete_headers, locate_header and find_header to parse_util.c. read_header_line is now implemented with routine state_read_hdr_line. file_read_headers is implemented with routine state_read_headers. > Now included RFC 822 parts have printed text -- Start of included mail From: xxxxx instead of -- Start of included mail. - Rewritten read_mime_header to use file_read_headers, mainly by dividing it to new routine parse_mime_headers > Rewritten rfc822_parse. Now non-mime messages inside of message/rfc822 should be handled more correctly. - Setting elmrc variable require-mime-version-for-body-encoding to FALSE causes that almost all messages are treated as MIME -messages and MIME-Version is not required for these (in top level or inside of message/rfc822). - Add flag CM_REMOVE_ENVELOPE for copy_message > make message/RFC822 attachment when forwarding with copy_message - Make wait() in matapager restart in case of EINTR error - Do MIME Part 2 (RFC 1522) decoding even when not MIME even when not Mime-Version -header is present (If you want olf behauviour, set elmrc variable require-mime-version-for-hdr-encoding to TRUE). Header decoding is not done if sending elm was disabled to do MIME Part 2 (RFC 1522) encoding (as set in elmrc variable nohdrencoding). That information is carried in header X-ELM-OSV: (Our standard violations). - quoted-printable-decode was not decoding zero length part correctly. > Indicate with length == -1 as not set instead of length == 0 - Added symbolics values RHL_MARK_FOLDING and RHL_CHECK_HEADER for flags of read_header_line. Now read_header_line check header for carefully. Side effect: If there is spaces before ':' in header, them are deleted (assuming RHL_CHECK_HEADER). - Add to mime_types[] following non-standard main content types: x-world, model New elmrc options: require-mime-version-for-body-encoding require-mime-version-for-hdr-encoding Removed elmrc options: softkeys keypad Changes of Elm2.4ME+ PL22 (25) compared with Elm2.4ME+ PL21 (25) -------------------------------------------------------------- [ Warning: There is quite much changes in user interface, so perhaps there is bugs. ] > Changes in Makefile.SH -- remember to run 'Configure' or 'Configure -d' or 'Configure -S' - 'ch' need to be 'int' in alias() - 'cmd' need to be 'int' in MenuLoop() - 'ch' need to be 'int' in generic_menu() Problem noted by: Claus Assmann - There was unwanted trigraph in run_decoder() Problem noted by: Claus Assmann - There was missing 'default:' in state_put() Problem noted by: Claus Assmann Problem noted by: Guy Harris - rename 'timeout' to 'elm_timeout' to get rid out linker warning - rename 'filter' to 'elm_filter' to get rid out linker warning - rename 'LINES' to 'elm_LINES' to get rid out linker warning (These are defined also in libtermlib.so) - rename 'COLUMNS' to 'elm_COLUMNS' to match 'elm_LINES' - If there is Raw(ON) in parent in metapager(), then also Raw(OFF) must be in parent Noted by (?): Jurgen Fluk - Replace some getchar()s with ReadCh(REDRAW_MARK) in syscall.c - Replace some getchar()s with ReadCh(REDRAW_MARK) in read_rc.c - Replace some getchar()s with ReadCh(REDRAW_MARK) in alias.c - Replace some getchar() with ReadCh(REDRAW_MARK) in utils.c - Use type application/X-ELM-encode with [enclode] ... [clear] if message is multipart (Elm 2.4ME+ PL6 should know this type, but there was error is some versions of ME+ in mime_notplain). - mime_notplain was returning TRUE (should be FALSE) for application/X-ELM-encode. - The builtin++ pager clears the screen before displaying the first screen of the message; however, the metapager wasn't clearing the screen before running the external pager, which left some junk on the screen. From: Guy Harris - Convert optionally_enter to use flag bits and now it returns REDRAW_MARK in most places when redraw is needed - LOCK_DIR removed from Configure / config.h.SH - Rememmber if last Configure run there was answer 'none' for additional librariers - Some new checks in Makefile (or actually in Makefile.SH), Configure is run lately (that confih.sh or Makefile or config.h are not stale) Changes of Elm2.4ME+ PL21 (25) compared with Elm2.4ME+ PL20 (25) -------------------------------------------------------------- - More Configure fixes for IRIX 6.2 - PGP signed messages (with type text/plain) was not handled correctly. Noted by: Volker Paulsen - Just a short one-liner to fix the display: When you leave the key selection menu in pgp_mail_public_key() with `q' (i.e., don't mail a key), this routine currently returns 0. This means that the main list won't be redrawn and seems to be a bug. From: Thomas Roessler - read_number should create buffer of size SLEN, not NLEN since it uses optionally_enter() which assumes that the buffer has length SLEN From: Thomas Roessler - Additionally, one might want to have the pgp functions in the help menu. From: Thomas Roessler Changes of Elm2.4ME+ PL20 (25) compared with Elm2.4ME+ PL19 (25) -------------------------------------------------------------- [ There is changes of error handling of leave_mbox -- so report, if you lost mail... ] - Look also termlib.so and curses.so in Configure - Remove PGP test from need_meta in showmsg.c (It was causing that metamail was not called for multipart/signed what isn't supported.) - Move metamail flags before PGP flags in show_message in screen.c - lib/safeopen.c need to be added to MANIFEST Noted by: Keith Manley - Elm as acting quite oddly if ending boundary of multipart structure was missing. Detected from report of: Rolf Larsson - Add sleep_message() to out_utils.c - Detect if there is read error in newmbox! - Check read errors also in some other places.... - Changes in leave_mbox -- now it returns with value -2 if it fails to leave folder - SIGUSR1 and SIGUSR2 is anly handled when in prompt (because otherwise we can be in wrong state -- for example in middle in resync.) - Check in ReadCh if it was called from GetPrompt (GetPrompt want to see EINTR error!) - ReadCh takes now redraw flag: Either 0 or REDRAW_MARK. Now elm is able in many places automatically redraw screen when elm resumes after suspending. - skip_envelope() to parse_util.c - Use skip_envelope() in get_and_expand_everybody() and handle_reply_to() -- now elm should not be confused with MMDF envelope of mail Reported by: { Unknown -- mail lost } Changes of Elm2.4ME+ PL19 (25) compared with Elm2.4ME+ PL18 (25) -------------------------------------------------------------- - Fix SIGSEGV (with application/pgp; format=mime) - With application/pgp; format=mime in included mime type nested structures was not parsed (actually that was causing SIGSEGV) - recognize application/pgp; x-action=signclear - Add "-- Start of included mail." and "-- End of included mail." texts. Changes of Elm2.4ME+ PL18 (25) compared with Elm2.4ME+ PL17 (25) -------------------------------------------------------------- [ This patch includes very many changes, so perhaps there are bugs ... ] - Clean up some of the questions in the "Configure" script. From: Guy Harris - Added a '-S' option to the Configure script to just redo the "variable substitutions on .SH files" that the script performs at the end. "I found this extremely useful, as I often made changes to the config.sh (for instance, the 'optimize' flags), and I wanted to re-create the Makefiles without running the entire Configure script all over again." - Also added '-h' option to report usage and available options to Configure script. From: Will Day - Add support for a "mailpermissions" variable in your "elmrc" file that can be set to specify the permissions to be used when creating a new mail folder. The syntax to use when specifying the permissions is *not* numeric, it's an "ls"-style string such as "rw-rw----", and the default is "rw-------". From: Guy Harris - (Elm)HelpViewAttach was missing from s_elm.m - Have the NLS stuff make "s_elmalias.h" from "s_elmalias.m". From: Guy Harris - Fix up "gencat" to compile on systems that don't do ANSI C (e.g., SunOS 4.1[.x] when using the bundled C compiler). From: Guy Harris - Some additions to help text of Elm - Reconstruct mime_send_t. There was wrong type when multipart message was sent and pgp was used. Noted by: J. Porter Clark - Added elmrc option: "quoteforward", which will let the user restore the behavior of original elm when forwarding messages - that is, to quote them like replies. "I wanted this available, because usually when I forward a message, I will comment various lines, and if it's not quoted like a reply, my comments can be confused with the forwarded message (and I didn't want to have to manually comment the message every time)." From: Will Day - convert mail() and send_msg() to use binary flags. Get rid of global variable "forwarding". - Added safeopen_rdwr() call yet some places. "While browsing through elm me+ xyz kh's source code, I stumbled across an invocation of tempnam() in a somewhat insecure environment: In mailmsg2.c, it's output is used as argument to fopen(...,"w+"). This is dangerous, since it may allow other users to access those temporary files." From: Thomas Roessler > Also use open_end_update() call, then code is cleaner [ In suplied patch there was possibility that elm destroyes =sent folder... ] - Modification for Configure: On a Linux system which uses ELF-format shared libaries, the library symbols do not have an underscore prepended to them. "I simply removed the [._] part from the sed expression. This makes everything compile and run happily on my machine, but if you want to correct this problem in your distribution, you would probably want to keep the old rule as well, to keep it from breaking elsewhere." Noted by: Matthew Hunt - "The second patch (re-)enables the use of the `T' key in the menu at the end of a message (tag + next). This used to work in earlier releases of elm." From: J Wunsch - "I think there is a small bug in metapager.c which has the consequence that the pager menu is sometimes displayed on the wrong screen page. The patch below fixes this behaviour." From: Thomas Roessler [ This patch little questionable -- 'ti' is "string to begin brograms that use cup" (cursor addressing) and 'te' is "string to end programs rhat use cup" -- problem is that xterm uses ti/te to swap screen page... ] - "Additionally, there is still an ugly timezone bug in elm-me+; the old patch for elm 2.4 applies cleanly to the current me+ version." Noted by: Thomas Roessler > Fix timezone: "OK...here is the fix for the wierd timezone shifting. Besides the botched month parameter, the year also was wrong. This patch better documents the input parameters to the lib/date_util.c procedures, and fixes get_tz_mins() to avoid a wierd offset shifting problem. Thanks to Thomas Roessler for chasing down the cause of the problem." From: Chip Rosenthal - Fix dangling pointer bug in attach_viewer! - Recognize text/x-pgp. From: Guido van Rooij [ + #ifdef USE_PGP added ] > If type was text/x-pgp, don't consider case that PGP file is binary - Don't convert application/x-pgp* to application/pgp in newmbox.c -- instead recognize it in mime_decode. - Don't reset type_opts when converting text/plain to application/pgp. [ That change was buggy -- fixed in PL21 ] - Move "Decrypting message..." and "Checking signature..." messages to another place. New elmrc options: mailpermissions quoteforward Changes of Elm2.4ME+ PL17 (25) compared with Elm2.4ME+ PL16 (25) -------------------------------------------------------------- - Some systems use OXTABS bit instead of TABDLY [ Various paches for *BSD ] From: Ollivier Robert From: Jeff Thieleke From: Andrey A. Chernov - Undone HP-UX change for ANSI_C "This is mostly incorrect. We figured out that the problem was the -traditional flag that was included by default when compiling with gcc." Noted by: Jeff Thieleke - Removed -traditional from gcc flags in Configure "The real fix would be to remove the default CFLAGS when compiling with gcc, since they probably aren't needed any more." Suggested by: Jeff Thieleke - Don't allow change a filename of forwarded mail in attachment menu. - If content-transfer-encoding is unknown when saving attachment, treate it as binary. - Don't allow change filename in attachment menu to non-existent Changes of Elm2.4ME+ PL16 (25) compared with Elm2.4ME+ PL15 (25) -------------------------------------------------------------- [ Warning: state routines are rewritten -- so look below what to do if you get STATE PANIC message ... ] - Add #include "headers.h" to safeopen.c to get rid out one stupid compiler warning Urged by: Andrew J. Piziali - struct state is divided to two structs: struct in_state and struct out_state. Large modifications to state routines (state.c). If you get message STATE PANIC: Bad magic number compile elm with debugging -g and -DDEBUG and run elm with -d11 and try get it repeated. Now STATE PANIC should cause producing of core file. Look with debugger where that STACE PANIC accured (ask stack trace from debugger) and look also file ~/ELM:debug.info - If terminal driver is expanding tabs, do not print them -- instead jump to correct location - "HP-UX apparently doesn't declare __STDC__ (like AIX), so compiling with cc or gcc fails in src/init.c at the getgid(), getuid() prototypes." From: Jeff Thieleke [ Undone in ME+ PL17 ] - If you sign 8-bit mail, it will be later encoded with quoted-printable or base64 (by elm or by sendmail). Thus 'invalidating' because pgp_decode does not undo contet- transfer encoding before calling PGP. Noted by: Zoltan Hidvegi Noted by: Hans-Christoph Wirth * Now content-transfer-encoding is decoded before bodypart is passed to pgp (it also now work, when *.pgp file is encoded with base64). > That decoding is done via temporary file -- perhaps I some time stack state routines so temporary file is not needed and decoding of content-ttransfer-encodings are done during reading. > If I some day get implemented MIME/PGP then 8-bit mail is always encoded with quoted printable and then passed to PGP for signing. - Display text before PGP armor if elmrc variable showpgppreamble is set (default). Binary PGP files are detected by looking first byte (after decoding content-transfer-encoding). - Fix to PL15 fix: "Elm fail in resyncing if mailfile is created after initial entering to mailbox." -- previous fix can cuase elm exiting with message "What's this? The temp folder already exists??" and then "Ahhhh... I give up." Perhaps noted by: Andrew J. Piziali - SECURITY: Elm was running PGP as setgid mail (by using popen) when searching matching keys -- converting to use pipe - fork - setgid (groupid) - execl - Need pass +language=en to PGP when searching matching keys Noted by: Boris Staeblow - Initialize last (extra) element also to NULL in DynamicArray so that DestroyDynamicArray works (lib/dynarray.c) -- was causing SIGSEGV in GetPGPKey New elmrc options: showpgppreamble [ Undo Elm2.4ME+ PL15s patch before installing this patch. ] Changes of Elm2.4ME+ PL15s (25) compared with Elm2.4ME+ PL15 (25) --------------------------------------------------------------- - SECURITY: Elm was running PGP as setgid mail (by using popen) when searching matching keys -- converting to use pipe - fork - setgid (groupid) - execl Changes of Elm2.4ME+ PL15 (25) compared with Elm2.4ME+ PL14 (25) -------------------------------------------------------------- [ Warning: This is perhaps more buggy than PL14. ] - Some changes in Makefiles, Configure - Change of temporary mbox name, put temporary mbox to back to temp directory (from home directory) - can_open(filename,"sw") checks if creating of _new_ file is possible (O_EXCL) -- and use that in leavembox.c Side-effect: New file is created - use isprint((unsigned char)ch) in src/curses.c - "I removed all fopen(file, "w") where file was a filename in /tmp and replaced these with a safeopen(file) call. These changes should be also applied to the vanilla elm source." - "Also there are some minor bugfixes for PL11. Elm did not asked my PGP password when I wanted to read a PGP encrypted mail since it wrongly thought that the mail is only signed but not encrypted. That's the most serious bug." - "I add a ClearScreen() before the fork in pgp_decrypt_init() to make the screen look clearer." From: Zoltan Hidvegi - Routine safeopen_rdwr added to safeopen.c - Test agaist special modes was WRONG in leavembox.c (it was 0x7000 and it should be 07000) - Treate files with special modes as SPOOL files (newmbox.c) - Handle 'intelligent' way also SPOOL files what haven't in mailhome - Restore also special modes of file if file is not executable - Don't chown file if owner is already correct -- it resets special modes * With these changes it is possible to redirect sendmail aliases to files (mode 04600) and cause that elm does not reset setgid bit (what is required to be set, before sendmail accepts forwarding to no world writable files). - Multiple To: -headers was cauisng of trashing of memory and SIGSEGV Noted by: Richard Allen - Elm fail in resyncing if mailfile is created after initial entering to mailbox. Noted by: Miroslav Ruda { I didn't used suplied patch. } - Elm fails to create received -folder Noted by: Jussi Kaurola - Added function open_end_update to file_util.c - Replace iscntrl((unsigned char)*pending) with !isprint((unsigned char)*pending) in builtin++.c because Configure asks that is isprint working with 8-bit values, but it does not ask about iscntrl * Notice: Seems that someones does not agreed with interpretation of ASCII_CTYPE definition. My interpretation is: ASCII_CTYPE defined: isprint works only with arguments 0-127 Conclusion: We can't test that is characters in range 128-255 printable or not, so don't print them ASCII_CTYPE is defined when you answer "no" to following question: "Should Elm assume that isprint() won't break on non-ASCII characters?" To get 8-bit characters to work you need: 1) 8-bit clean ctype functions and macros 2) ASCII_CTYPE is not defined 3) setlocale exists (Configure have found locale.h; that is: I_LOCALE is defined) 4) Correct locale definition (environment variable $LANG or $LC_CTYPE usually) Look manual page of setlocale - If you are not using builtin(++) pager in Elm, thinks can go more complicated -- all pagers does not use locale definitions - Use kill(getpid(), SIGSTOP) instead of kill(0, SIGSTOP) so that delivering of mail does not stop when user suspends Elm. Reported by: Richard J. Auletta New files: lib/safeopen.c Changes of Elm2.4ME+ PL14 (25) compared with Elm2.4ME+ PL13 (25) -------------------------------------------------------------- - PGP signed (or encrypted) MIME mail was not quoted when replying. Quick fix for pgp_decode in pgp.c. It still perhaps have broken... Changes of Elm2.4ME+ PL13 (25) compared with Elm2.4ME+ PL12 (25) -------------------------------------------------------------- - Compiler was giving warning that 'char *' and 'unsigned char *' are not assignment-compatible (for code in mime_encode.c) Noted by: Arkady Altman - Include headers of forwarded message to editor buffer even when you have noheader = ON (that is in situation mimeforward = OFF). That is now controlled with elmrc variable "noheaderfwd" (default: OFF) - Elm was getting SIGSEGV in remailer_parse_opts in remailer.c Noted by: V Menayang [ Notice that this REMAILER code is still broken! ] - remailer.c was calling finger without resetting egid! - FreeBSD changes to utils/newmail.c also pertain to NetBSD From: Jeff Thieleke New elmrc options: noheaderfwd Changes of Elm2.4ME+ PL12 (25) compared with Elm2.4ME+ PL11 (25) -------------------------------------------------------------- Warning: This version is probably much more buggy than PL11 !! - The blank line between two messages in a folder was missing. Noted by: Juergen Obermann - If nohdrencoding = TRUE and there is 8bit characters in subject, treat as there was 8bit characters in body. From: Andrey A. Chernov [ This does not work very well... ie. It works only when Content-Type is Text/plain. ] " Before RFC 1522 issued, too many users (f.e. Russian users) use 8bit chars in Subject: header field. There is a lots of 8bit capable MUA & MTA exists now, much more then RFC1522 compatible ones. In existent variant when you enter 8bit subject with ASCII body result content charset stays as ASCII, it makes impossible to recognize Subject: charset. I UNDERSTAND that my method violates MIME slightly (no 8bit characters must be in header field) but it is adoptation of real life practic." - Add /usr/sbin to default path, there is sendmail on FreeBSD - Disable national extensions of 'date' - Add FreeBSD lock directory - Add KOI8-R charset to user prompt, it is officially registered, RFC1700 - Fix utime_buffer declaration for FreeBSD - Allow mailbox editing for Expert user level only. Total disabling of this option makes life harder for experienced users and total enabling cause accidental 'e' hitting damage novice users mailboxes. It seems that enabling it for Expert user leve is the best solution. From: Andrey A. Chernov - "I also discovered another small 'bug'... Michael Elkins changed someday in pgp.c a get_address_from() call to a simple strcpy() which caused my pgp not to find my secret key because of a leading blank: " Volker Paulsen " ^ After I changed it back to get_address_from() the leading blank becomes removed and pgp matches the key correctly against its key ring ." From: Volker Paulsen - Add binary -flag for header_rec. No longer hack for remail.c. - Make more clear what part of message was PGP signed or encrypted. (Why pgp returns exit status 0 even when signature doesn not match???) - Some massive rewriting of copy_message. Now should decoding of RFC 1522 encoding work correctly when replying (and forwarding). Side effects: - Headers which have longer than 32 KB after unfolding are truncated - Exact folding is not preserved Changes of Elm2.4ME+ PL11 (25) compared with Elm2.4ME+ PL10 (25) -------------------------------------------------------------- - Elm wrote incorrect Content-Length: -header when updating Status: -header Noted by: Juergen Obermann [ That content-length is lightly too big and is not fixed if it is last mail in folder (it is not big enough that newmbox.c notices) also incorrent Content-Length: -header causes in other situations that it is ignored. This causes problems when "From ":s are not escaped. ] Changes of Elm2.4ME+ PL10 (25) compared with Elm2.4ME+ PL9 (25) ------------------------------------------------------------- - CM_DISPLAYING was wrong value in hdrs/defs.h - Elm was corrupting folder by adding number to end of mail... And therefore causes that next mail does not start with "From " in folder. Noted by: Volker Paulsen - REMAILER code does not compile. From: Andrey A. Chernov From: Arkady Altman Changes of Elm2.4ME+ PL9 (25) compared with Elm2.4ME+ PL8 (25) ------------------------------------------------------------ - Attach viewer does not completely fill header_rec so "lines" was uninitiazed, which may cause "metapager()" to choose randomly whether to use the built-in pager or not, if you haven't set "pager" to "builtin" or "internal". Now structure is pre-initialized completely. "lines" is set to number of bytes / 60 (not saticfactory, but actually metapager should use number of lines in decoded message -- not in original anyway.) Prompted by: Guy Harris Changes of Elm2.4ME+ PL8 (25) compared with Elm2.4ME+ PL7 (25) ------------------------------------------------------------ - In syscall.c, around line 180, the space for p was allocated but the actual string was never built. From: Mark Johnson - At the end of a message with the builtin pager I sometimes get the prompt "MORE (you've seen 101%):" and I can not read the next message with pressing the space bar. From: Juergen Obermann - "rfc822_reap_comments()" wasn't properly handling Content-Type: headers like Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Feb_14_09:54:49_1996)--" because it didn't realize that the ")" in the boundary was inside a quote, and therefore should be copied rather than being stripped out. From: Guy Harris - It wasn't RFC 1522-decoding the name in the "From:" header when it put in the "Forwarded message from" and "End of forwarded message from" lines. From: Guy Harris - Put defualt disposition for attachment to be 'attachment' when sending. - Check that attachment is not deleted before mail is sent. - Because copy_message is now called from metapager, it needs two more arguments (mailfile and current_header). I hope that this change breaks nothing! Detected from report of: Mark Johnson Changes of Elm2.4ME+ PL7 (25) compared with Elm2.4ME+ PL6 (25) ------------------------------------------------------------ - Incorrect subject Changes of Elm2.4ME+ PL6 (25) compared with Elm2.4ME+ PL5 (25) ------------------------------------------------------------ - Sometimes extra newline was added when message or body of it was copied. > copy_message in fileio.c was gone too hairy. Tried to reorganize it. I hope that nothing breaks. > Semantic of flag CM_DECODE is now changed. > Now message is decoded before replying and forwarding (excpet when mime_forward is true -- forwarded message as attachment is not decoded). > Well, now [encode] [clear] does not work when metamail is called. > [encode] ... [clear] is now internally handled as application/X-ELM-encode (in MIME -message) - Do RFC 1522 decoding only in MIME messages. - builtin++ code in metapager was broken [encode] ... [clear] > I simplified metapager. I hope that nothing breaks. > Notice that [encode] ... [clear] is broken when sending multipart messages. - Now also headers of message/rfc822 are prefixed when replying - Nicer printing of folded headers (in metapager and rfc822_decode) - Letter 'e' (= uses Elm's [encode] ... [clear]) added to status letter of mailbox menu. Changes of Elm2.4ME+ PL5 (25) compared with Elm2.4ME+ PL4 (25) ------------------------------------------------------------ - "nohdrencoding" was in wrong place in list - To instead of From in headers was always displayed: From: Petr Lampa - There was some confusion in (char *) versus (unsigned char *) in rfc1522_encode_text. Pointed by: Petr Lampa - Replaced check of R_OK with ECCESS_EXISTS in can_save in attach_menu.c - Reordering of attach_viewer so metamail is not called when it isn't needed (new definition of 'pagemultipart' was broken it.) - Message "Parsing MIME structure..." is printed - Added to some unlink and elm_chown calls to attach_menu.c - Now prints "Executing metamail..." if metamail is called for display message. - Tried fix MIME decoding of headers in copy_message (well, it still can't work correctly.) - MIME (RFC 1522) encoding of In-Reply-To -header > Address headers and headers from .elm/elmheaders are still not encoded. - Don't try print To: address in menu if it does not exists. Changes of Elm2.4ME+ PL4 (25) compared with Elm2.4ME+ PL3 (25) ------------------------------------------------------------ [ Warning: This is perhaps more buggy than PL 3 (25). ] * Sending of simple Text/Plain messages with quoted-printable encoding was broken when remailer -code was added. Noted by: Petr Lampa - In the index screen Tag all, Delete all and Undelete all didn't show the new status of the messages. From: Juergen Obermann - In readmsg the Cc-header line is always shown. From: Juergen Obermann [ This should be also posted to Elm Development Cordinator ] - Add a "Status: RO" line to all outgoing messages (when the "copy" option is turned on), so that they do not show up as "New" when you look at a folder. From: Pete Wenzel - The macro X_OK is undefined in some systems. Use EXECUTE_ACCESS instead. From: Gunnar Ekolin > Failing to include . Test agaist I_UNISTD instead of ANSI_C. Noted by: Petr Lampa > Now EXECUTE_ACCESS, WRITE_ACCESS, READ_ACCESS, ACCESS_EXISTS, EDIT_ACCESS is defined in terms of X_OK, W_OK, R_OK, F_OK from unistd.h (if available) - Fix definition in hdrs/mcprt.h to match with lib/mcprt.c From: Claus Assmann - DisplayAddress not work (well, I really not used that patch). That needs still reconsideration. From: Claus Assmann - Mime (RFC 1522) encoding of following headers: - From (fullname) - Subject - Content-Description Encoding of In-Reply-To, To, CC or headers in .elm/elmheaders is NOT done. - New elmrc variable "nohdrencoding". If this variable is TRUE, then MIME encoding of headers isn't done. - Wrong tests with allow_no_encoding in src/mailmsg2.c. Noted by: Petr Lampa - Use strincmp for lib/strincmp.c instead of strcasecmp. Noted by: Petr Lampa - Added check for write errors in mime_encode.c New elmrc options: nohdrencoding Changes of Elm2.4ME+ PL3 (25) compared with Elm2.4ME+ PL2 (25) ------------------------------------------------------------ - Fix to builtin++.c SIGSEGV fix Changes of Elm2.4ME+ PL2 (25) compared with Elm2.4ME+ PL1 (25) ------------------------------------------------------------ - Really fix In-Reply-To -header [ This is also posted to Elm Development Cordinator ] Changes of Elm2.4ME+ PL1 (25) compared with Elm2.4ME+ PL0 (25) ------------------------------------------------------------ - SIGSEGV in builtin++.c when looking full headers of mail and Ctrl-L was hit. - Typo in remailer.c (causes that it don't link) From: Ollivier Robert - Ultrix patch from comp.mail.elm From: John Simonson , Sydney Weinstein , Bill Gianopoulos - Now Elm's Configure search for metamail -program - DisplayAddress: Don't munge sender with get_real_name - Elm was generating syntactically incorrect In-Reply-To -headers - Because some peoples seems have trashed src/state.c that patch includes file src/state.c.PL1. If src/state.c.PL1 and src/state.c don't have identical, use command: mv src/state.c.PL1 src/state.c otherwise: rm src/state.c.PL1 - SIGSEGV when hitting 'G' in builtin++.c Changes of Elm2.4ME+ PL0 (25) compared with version Elm2.4 PL24 ME8b+ ------------------------------------------------------------------- - Added (security) patch PL24 -> PL25 and added same kind (security) fixes for MIME code - Version number is now formed with new style :-) - elmrc -variable 'displaycharset' is propgated to environment variable $MM_CHARSET when calling metamail. Environment variable $MM_CHARSET overwrides default value of 'displaycharset'. - New elmrc -variable 'metamail'. So now you not need define environment variable $NOMETAMAIL, if you want compile Elm with MIME support, and you don't have metamail. Special values: none Don't call metamail metamail Call metamail, if environment variable $NOMETAMAIL is not defined /path Call this, if this is executable - Meaning of elmrc -variable 'pagemultipart' is changed. If this is FALSE (default), then call metamail if elm can't handle all subpart of multipart -type or if type is other than multipart/mixed, multipart/digest or multipart/report. If 'pagemultipart' is TRUE, then always handle multipart type without metamail (and treat unknown subtypes as multipart/mixed). Decision can Elm handle that type, is done when message is displayed. So there is now 'M' -letter (= metamail needed) in multipart mails until message is displayed even when Elm can show it (that is because that definition is recursive and requires parsing of structure of message.) - Multipart/digest now works correctly when viewing attachment what we have sending and we have put type for it to be Multipart/mixed. - Configure now tries test if sendmail supports -B8BITMIME and -BBINARYMIME (unlikely). - Makefile now don't compile or install 'filter' because security problems in it. New elmrc options: metamail Changes of Elm2.4 PL24 ME8b+ compared with version Elm2.4 PL24 ME8b ----------------------------------------------------------------- - New version of my Reply-To patch included [ Old version of that patch is posted to Elm Development Cordinator ] - Made MIME part 2 (RFC 1522) decoding more accoriding of RFC. - Some bugfixes View digest as mailbox ---------------------- V)iew digest as mailbox -command (uppercase 'v') shows embbed mails from current message or from tagged messages. Command is available on Subject (main) menu. These messages must be on mime format. Only messages under top level multiprat/digest and multipart/* are shows. Also message is shows is top level type is message/rfc822. On Subject menu created by V)iew digest as mailbox -command is following commands available: Q,q,i,x,X Return to main (or previous) index (to previus Subjetc menu) Following commands are shared with main Subject menu (are availble on both menus): ! Run subshell (shell escape) [1] < Scan current message for calendar information a Go to alias menu b Bounce message Ctrl-E Extract PGP public key from current message Ctrl-F Forget passphrase and close cached connections. f Forward current message g Group reply to current message h View current message with headers Ctrl-K Mail PGP public key m Mail a message space, Ctrl-J, Ctrl-M View current message [3] n View current message and go to next message Ctrl-N View current message if unread and then go to next message P Print text of current message r Reply to current message >, s Save current message or tagged messages to folder C Copy current message or tagged messages to folder S Save (copy) text of current message to file or folder v View (MIME) parts of current message V View embbedded messages from current message (digest) or form tagged messages @ View debug screen # "Check message" (view debug screen) Also following "motion" commands (shared with alias menu) are available: FIND, / Scan mailbox or aliases for string PAGE DOWN, RIGHT, + Go to next page PAGE UP, LEFT, - Go to previous page HOME, = Go to first message or alias * Go to last message or alias Ctrl-D Delete messages or aliases which match to pattern [2] ^ Toggle deleted status of current message or alias [2] d Delete current message or alias [2] J Go to next message or alias DOWN, j go to next undeleted message or alias K Go to previous message or alias UP, k Go to previous undeleted message or alias l Limit displayes messages or aliases Ctrl-T Tag messages or aliases which match to pattern T Tag current message or alias and go to next message or alias t Tag current message or alias U Unread current message or alias [3] u Undelete current message or alias [2] Ctrl-U Undetete messages or aliases which match to pattern [2] Ctrl-L Redraw Go to given message or alias [1] Folder state is no available so readmsg command do not work. [2] Delete status do not have effect. It is actually no possible to delete messages from digest. [3] Read/Unread status of messages on digest are not preserved. Message assembly mode --------------------- A)ssembly messages command shows mailbox where messages fragments are removed from display and assembled messages are shows instead. Command is available on Subject (main) menu and on menu of V)iew digest as mailbox -command. Commands availabe are basically same than on menu menu of V)iew digest as mailbox -command (execpt that you can not use command 'A' here.) If elmrc option fragment-handling is set to "auto", then to message assembly mode is enetered automatically. Use command 'i' to leave message assembly mode. For incomplete messages, text <--- message not collected ---> is shown on menu until part number 1 is arrived. It is assumes that part 1 includes all mail headers of message (ie. mail headers is not fragmented.) Charset definition ------------------ Files libdir/elm.mimecharsets and ~/.elm/mime.charsets handling mapping from current locale (LC_CTYPE) from MIME charset value. On file there may be three kind lines: - charset-definition locale charset-name 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 *.encoding these mappings are only used if nl_langinfo(CODESET) is not supported. Exact matching (ie. when locale matches to LC_CTYPE) can be used to override mapping given by nl_langinfo(CODESET). Mapping order is 1) LC_CTYPE charset exact matching 2) value of nl_langinfo(CODESET) If LC_CTYPE is form LL_cc.encoding (and nl_langinfo(CODESET) is not supported) then also 3) LL_cc charset matching 4) *.encoding charset matching params on charset definition have forms param param=value param="quoted value" params are separated by ; character. Possible paramas are following MIME-subset gives byte-to-byte subset type gives type of charset map gives mapping from charset to unicode -- exact meaning 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 character sets which do not use escaping technology. Possible types of charsets include unknown-charset this is default type ascii-set specifies that bytes 0-127 map to unicode values 0-127. This is default for charsets which have MIME-subset=US-ASCII given. 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. This is default for charsets which have MIME-subset=INVARIANT given. utf-8 Specifies that charset uses UTF-8 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. utf-7 Specifies that charset uses UTF-7 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. imap Specifies that charset uses IMAP variation of UTF-7 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. iso2022 Species that charset uses ISO 2022 codes. euc Species that charset uses EUC encoding. Possible map values for type ascii-set include following builtin maps US-ASCII ISO-8859-1 ISO-8859-15 KOI8-R KOI8-U CP1251 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 (normally $lib/elm.map.txt) {rc}/filename File is read from .elm subdirectory of user's home ~/filename File is read from user's home directory Possible map values for types iso2022 and euc include following kind names US-ASCII Defines mapping for ascii bank ISO-8859-1 Defines mapping for ascii and latin1 bank iso 2022 map list Refers to maps given on libdir/elm.iso2022sets and ~/.elm/iso2022sets files. Maps on list are separated by ; character. One map name can be like iso2022 specification bank-G0-94 1/4 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 re-distribute this file directly to third parties or other organizations whether for profit or not. Now that is changed and on these map files there are stated that Unicode, Inc. hereby grants the right to freely use the information supplied in this file in the creation of products supporting the Unicode Standard, and to make copies of this file in any form for internal or external distribution as long as this notice remains attached. These map files are on charset/MAPPINGS/ISO8859 directory on Elm ME+ distribution. These map files are parsed and read to memory when first time referenced on elm.mimecharsets or mime.charsets. If you use these mappings file, you need also setting page-known-charsets = ON 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) XXXX XXXX XXXX XXXX XXXX (12 hex values) gives unicode character for following positions 0x23, 0x24, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x60, 0x7B, 0x7C, 0x7D, 0x7E Possible iso-2022 params are following other-set bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96, bank-G0-94, bank-G0-94x94, bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96, 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. Charset type=iso2022 accepts also following iso-2022 params. initial-bank-G0-94, initial-bank-G0-94x94, initial-bank-G1-94, initial-bank-G1-96, initial-bank-G1-94x94, initial-bank-G1-96x96, initial-bank-G2-94, initial-bank-G2-96, initial-bank-G2-94x94, initial-bank-G2-96x96, initial-bank-G3-94, initial-bank-G3-96, initial-bank-G3-94x94, initial-bank-G3-96x96 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 and 0xF900 - 0xFFFF (*). filename File is read from directory given on map-text-dir directory (normally $lib/elm.map.txt) {rc}/filename File is read from .elm subdirectory of user's home ~/filename File is read from user's home directory 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. (*) Mapping of ascii range (0000-007F) is determined by charset type utf-8, utf-7 and imap. Surrogates Area (D800-DFFF) and Private Use Area (E000-F8FF) are excluded from mapping. alias-definition have following forms "charset name"; alias="name"... 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 for given charset is given after alias definition, alias definition does NOT follow new definition of charset. ISO2022 maps information ------------------------ Files libdir/elm.iso2022sets and ~/.elm/iso2022.sets may give lists of ISO 2022 sets and correspondig maps. Lines on these files are form banktype "bytes" filename flags For example bank-G0-94 4/10 {rc}/JIS0201.TXT one-byte-map=lower bank-G0-94x94 4/2 {rc}/JIS0208.TXT 3col=2 bank-G0-94x94 4/4 {rc}/JIS0212.TXT Then these maps need to be referenced on ~/.elm/mime.charsets file: - ISO-2022-JP;type=iso2022;MIBenum=39;initial-bank-G0-94=4/2; 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: kterm ISO-2022/DW ISO-2022-JP Possible flag values on iso2022.sets file are ascii=lower Treats maps as charset type=ascii, uses range 32-127 (*) ascii=upper Treats maps as charset type=ascii, uses range 160-255 one-byte-map=lower Treats maps as charset type=one-byte-map, uses range 32-127 one-byte-map=upper Treats maps as charset type=one-byte-map, uses range 160-255 range=lower Uses range 32-127 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 given on map-text-dir directory (normally $lib/elm.map.txt) {rc}/filename File is read from .elm subdirectory of user's home ~/filename File is read from user's home directory Map files should be "Format A" files from unicode.org. Note that "Format A" maps for EASTASIA are on OBSOLETE directory on unicode.org. ( http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/ ) Current data is on Unihan.txt file on UNIDATA directory. That format is not supported. ( http://www.unicode.org/Public/UNIDATA/Unihan.txt ) (*) That is used to define ascii part (bank-G0-94=4/2) One Eastasian recipe -------------------- Lines are splitted to several lines for readibility. \ indicates place where line is splitted. 1) .elm/mime.charset file: - EUC-JP;codeset="Extended_UNIX_Code_Packed_Format_for_Japanese";type=euc;\ map="bank-G0-94 4/2;bank-94x94 4/2;bank-94 4/10;bank-94x94 4/4";MIBenum=18;\ left=bank-G0;right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/2;\ initial-bank-G2-94=4/10;initial-bank-G3-94x94=4/4 - ISO-2022-KR;type=iso2022;map="bank-G0-94 4/2;bank-94x94 4/3";MIBenum=37;\ left=bank-G0;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/3 - EUC-KR;type=euc;map="bank-G0-94 4/2;bank-94x94 4/3";MIBenum=38;\ left=bank-G0;right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/3 - ISO-2022-JP;type=iso2022;map="bank-G0-94 4/2;bank-94 4/10;bank-94x94 4/2";\ MIBenum=39;left=bank-G0;initial-bank-G0-94=4/2;bank-G0-94=4/10;bank-G0-94x94=4/0;\ bank-G0-94x94=4/2 - ISO-2022-JP-2;type=iso2022;map="bank-G0-94 4/2;bank-94 4/10;bank-94x94 4/2;bank-94x94 4/4";\ MIBenum=40;left=bank-G0;right=bank-G2;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 - ISO-2022-CN-EXT;type=iso2022;map="bank-G0-94 4/2;bank-94x94 4/1";\ MIBenum=105;left=bank-G0;initial-bank-G0-94=4/2;bank-G1-94x94=4/1;bank-G1-94x94=4/7;\ bank-G1-94x94=4/5;bank-G2-94x94=4/8;bank-G3-94x94=4/9;bank-G3-94x94=4/10;\ bank-G3-94x94=4/11;bank-G3-94x94=4/12;bank-G3-94x94=4/13 - GB2312;type=euc;map="bank-G0-94 4/2;bank-94x94 4/1";MIBenum=2025;left=bank-G0;\ right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/1 2) .elm/iso2022.sets file: bank-94 4/10 {rc}/JIS0201.TXT one-byte-map=lower bank-94x94 4/2 {rc}/JIS0208.TXT 3col=2 bank-94x94 4/4 {rc}/JIS0212.TXT bank-94x94 4/3 {rc}/KSX1001.TXT bank-94x94 4/1 {rc}/GB2312.TXT {rc} refers files on .elm directory! 3) .elm/terminal.info kterm ISO-2022/DW ISO-2022-KR kterm ISO-2022/DW EUC-KR kterm ISO-2022/DW ISO-2022-JP kterm ISO-2022/DW EUC-JP kterm ISO-2022/DW ISO-2022-JP-2 kterm ISO-2022 US-ASCII kterm ISO-2022 ISO-8859-1 kterm ISO-2022/DW GB2312 kterm ISO-2022/DW ISO-2022-CN kterm ISO-2022/DW ISO-2022-CN-EXT 4) And then files JIS0201.TXT JIS0208.TXT JIS0212.TXT KSX1001.TXT GB2312.TXT If these files are on map-text-dir direcory (as specified on elm.rc), then elm.iso2022sets should include (instead of .elm/iso2022.sets): bank-94 4/10 JIS0201.TXT one-byte-map=lower bank-94x94 4/2 JIS0208.TXT 3col=2 bank-94x94 4/4 JIS0212.TXT bank-94x94 4/3 KSX1001.TXT bank-94x94 4/1 GB2312.TXT Additional terminal information ------------------------------- 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 term ISO-2022/DW charset-name term ISO-2022/DW charset-definition term ISO-2022-LIKE charset-name bank-specification term PRIVATE charset-name d/d d/d d/d term PRIVATE charset-name [ condition ] d/d d/d d/d term flag flag-keyword term DW charset-name where term is type of terminal (ie value of $TERM). ISO-2022 is literal, which indicates that 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 same attributes than on case ISO2022 literal. Additionally that says that 94x94 and 96x96 sets consume two character positions on display with that 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 ----------------------- Hit TAB to get folder or file browser when file or folder name is asked. Characters '*' and '?' are treated as wildcards on folder and file browser if option browser-wildcard-matching is ON (default). Typing name with wildcard and pressing ENTER or TAB gives directory listing limited with that wildcard specification. That is limited to one directory -- directory paths can not include wildcards. Note also that it prevents selecting file or folder names that include '?' or '*' characters. Folder and file browser understands following special keys: TAB Gives directory listing for that directory name which is written to file or folder name question prompt. UP Moves selection up on folder listing DOWN Moves selection down om folder listing LEFT Removes selection from file or folder name question prompt, or Gives directory listing for previous directory. RIGTH Adds selection from file or folder name question prompt, or Gives directory listing of current selection (ie. selects that directory). Enter Answers to file or folder name question. IMAP directory can be accessed by giving username@hostname or username@hostname:folder or username@hostname/directory to prompt and pressing TAB key. Note that username@hostname has three meanings: 1) Default directory (folder listing) for username on hostname. 2) IMAP INBOX folder for username on hostname. 3) POP mailbox username on hostname. If username@hostname is given (as itself or as prefix) on file browser, that gives error message that remote directories or files are not available. Following table shows which elmrc options can refer to remote mailboxes and prefixes which folder browser supports. Elmrc Remote Browser variable (3) possible prefix (1) Meaning ---------------- ---------- -------- --------- incoming-mailbox YES ! Current incoming mailbox sentmail YES < "sent" folder receivedmail YES (2) > "received" folder maildir NO = "Mail" directory maildir NO + "Mail" directory maildir NO % "Mail" directory extra-mailbox-dir NO (none) Extra mailbox directory (none) NO $ Environment variable (4) (none) NO ~/ User's home directory (none) NO ./ Current directory (1) If '!', '<' or '>' is used as prefix, current directory (or subfolder) separator is added automatically after incoming, sent or received folder. That usage is useful only with IMAP servers, which at the same time have folders (mailboxes) and directories (if folders which include subfolders or mailboxes). (2) If you put "received" folder to remote IMAP server, you are forced to log in to IMAP server every time when you leave folder or mailbox! (3) Environment variables in these elmrc variables are expanded before use. (4) Environment variables are supported only with local mailboxes or folders. Mail services config -------------------- Files libdir/elm.mailservices and ~/.elm/mail.services specify data for remote services. Lines on these files are following kind: name imap parameters name pop parameters name submission parameters name smtp parameters name * parameters where name is canonical name for host; 'imap' specify that IMAP protocol should be used for mailbox access, 'pop' specify that POP protocol should be used for mailbox access and '*' can be used to specify parameters without specifying type of mailbox access; parameters are in general following form parameter=value; parameter=value; ... paramater; parameter; ... Following parameter names are recognized alias gives alias for host (value can be quoted) addr gives ip-address (or hostname) for service port gives port for service (must be decimal form) {tag}:{paramater} Valid {tag} are these which are given with use-library -elmrc option or use-*-library -elmrc options. Following forms for specify of "addr" can be used: addr=hostname addr="hostname" addr=ip:A.B.C.D addr=ip:"A.B.C.D" addr=ip:A.B.C.D/port addr=ip:"A.B.C.D"/port hostname is name of that host which corresponding ip-address (or addresses) should be used, A.B.C.D is literal ip-address, port is port number in decimal. Dynamic libraries ----------------- Elmrc option use-library can be used load libraries on run time. For example use-library = tag1 tag2 tag3 uses libelmme-tag1.so, libelmme-tag2.so and libelmme-tag3.so from same directory than where is libelmme-base.so. If there is version suffix on libelmme-base.so then also for these dynamically loaded libraries version suffix is required. Currently elmrc option use-library is splitted to several options use-base-library use-connect-library Using of use-library causes that library is loeded on startup and tried to relocate to these other use-*-library -options. Libraries given on different use-*-library elmrc options are loaded on different times, this splitting tries avoid loading of unnecessary libraries. Elmrc options use-*-library can be used both user elmrc and system elm.rc file -- user specification overrides system specification as usual. Tags can use characters abcdefghijklmnopqrstuvwxyz0123456789- and first 3 character must be letters. On ~/.elm/elmrc (or on global elm.rc) there can be shared library specific configuration. After line "tag:" config variables refers to shared library corresponding to 'tag'. Also "tag:variable = value" syntax is possible. For example tls:rand-file = /home/hurtta/.rnd is equivalent of tls: rand-file = /home/hurtta/.rnd (except that "tls:rand-file" changes current section to "tls" only temporary.) Also on ~/.elm/mail.services (or global elm.mailservices) there can be shared library specific configuration. See chapter "Mail services config" for details. For example cgate.host * tls:starttls-version=ssl Debug output ------------- Debug output can be requested with option -d (if Elm compiled with -DDEBUG). General form of option is -d {class}={debugfile}:{level} Also following forms are possible -d {class}:{level} -d {class} -d {level} -d ={debugfile}:{level} -d option may be given several times (to specify different output for different classes). Also same {debugfile} can be given on different -d options. This case {debugfile} is not opened several times. {debugfile} is file to which (on home directory) debug output os written. Default is {progname}:debug.info, ie. ANSWER:debug.info, ELMALIAS:debug.info, ELMCHARSET:debug.info, ELMTERMINAL:debug.info, FASTMAIL:debug.info, FRM:debug.info, NEWALIAS:debug.info, NEWMAIL:debug.info, PRLONG:debug.info, READMSG:debug.info, ELMUNIDATA:debug.info or ELM:debug.info. If {debugfile} name is {something}:debug.info, existing {something}:debug.info is renamed to {progname}:debug.last. Otherwise debug output is appended to {debugfile}. If {class} is not given, it defaults to all classes. Posible classes are printed to {debugfile}. Value 0 for {level} can be used to get just possible values of {class}. Currently possible values of {class} are: ELM addr alias charset config dl file header imap mail mbox mem mime misc ndbz net pgp pop signal ui util stateio mailer Mailer definition ----------------- elm.rc option "mailer" can be used to define mailer type and path, which should be used. This can be specified only on global elm.rc (not user's .elm/elmrc). Option have form mailer = type; params... type can be one from following unknown sendmail submitmail execmail NOTE: Only type sendmail is tested! When type is "unknown" mailer is called as path recipient1 recipient2 recipient3 ... Following option params have accepted for type unknown mailer path=... add-from=... use-domain=... Note that mailer which type unknown must NOT terminate mail when line with period (.) alone is detected. When type is "sendmail" mailer is called as path -oi -oem sender other-options -- recipient1 recipient2 ... where sender may be -f address if allow-set-sender=yes is set (and user sets return-path) where other options can include following options -v -om -B8BITMIME -BBINARYMIME -R full -R hdrs -N never -N xxx where xxx is one or more from success,failure,delay When type is "sendmail" mailer is called for address verify as path -bv -- address (you need set verify=yes, otherwise sendmail is not called for verify) Sendmail is also called for verify (of envelope sender address) if allow-set-sender=yes is set. Following option params have accepted for type sendmail mailer path= add-from= use-domain= supported-bodytype= supports-dsn= verify= When type is "submitmail" mailer is called as path -mlrnv Recipients are passed via standard input (one recipient per line.) Following option params have accepted for type submitmail mailer path= add-from= use-domain= When type is "execmail" mailer is called as path options recipient1 recipient2 recipient3... Where options can include -d -m Following option params have accepted for type execmail mailer path= add-from= use-domain= Posssible parameter values are following add-from=yes Add From: -header add-from=dont Let mailer to add From: -header use-domain=no Do not add @hostname to address use-domain=yes Add @hostname to local address supported-bodytype=7bit supported-bodytype=8bit Mailer accepts -B8BI7MIME option supported-bodytype=binary Mailer accepts -BBINARYMIME option supports-dsn=no supports-dsn=yes Mailer accepts -R and -N options verify=no Use default verify for address verify=yes Call mailer for address verify Elm mailbox menu's status letters --------------------------------- - First letter: D Deleted E Expired N New O Unread r replied - Second letter: ! Message not downloaded C Confidental U Urgent P Private (or ...) A Action F Form letter e Uses Elm's [encode] ... [clear] P PGP message (or ...) S PGP signed message K PGP public key ? MIME message with unknown MIME version a MIME message is attachment M MIME message wich requires metamail external programs (ie. may use mailcap) or isn't yet parsed m Pre-MIME message wich requires metamail or external programs s signed message (may require metamail or external programs) p private (encrypted) message f Includes message fragment (message/partial) o Charset of message is overrided New commands for Elm 2.4ME+ (compared with Elm 2.4) --------------------------------------------------- Subject (main) menu: A Assembe fragmented (message/partial) mails -- enter message assembly mode ^E Extract PGP public keys from current message ^F Forget PGP passphrase ^K Mail PGP public key(s) P Print text of current message or tagged messages S Save (copy) text of current message to file or text of tagged messages to a folder U Unread message (change status from read to unread) v View attachments in current message. V View digest as mailbox. Altered elmrc variables for Elm 2.4ME+ -------------------------------------- pagemultipart PL0 If FALSE, call metamail if elm can't handle all subpart of multipart -type or if type is other than multipart/mixed, multipart/digest or multipart/report. If TRUE then always handle multipart type without metamail (and treat unknown subtypes as multipart/mixed). readmsginc PL51 Changed default to 100 displaycharset PL78 Character set to which switch terminal charset (text-charset) PL73 Character set to which convert outgoing mail text alteditor PL78 Now used even when "editor" is not builtin. page-known-charsets PL79 Changed default to ON copy PL82 Changed default to ON promptafter PL109 Renamed to prompt-after-pager. promptafter effects now both prompt-after-pager and prompt-after-metamail. New elmrc variables for Elm 2.4ME+ (compared with Elm 2.4) -------------------------------------------------------- add-in-reply-to-phrase - add-sender - allow-charset-switching (MIME) askpgpsig PGP auto-attachment MIME auto-iso-8859 MIME background-wait-time - bindata - browser-wildcard-matching MIME / SYSTEM charset-convert-ok MIME convert-comment-to-fullname - convert-utf-header (MIME) default-folder-status - default-mime-text-charset MIME default-nomime-charset - dsn-success MIME / DSN env-from-source - extra-mailbox-dir - fragment-handling MIME header-phrase-display-mode - imap-charset IMAP imap-connection-cache IMAP imap-dir-sortby IMAP imap-fast-lookup IMAP imap-max-download-size IMAP imap-naming-convention IMAP imap-show-error IMAP imap-show-greeting IMAP imap-show-warning IMAP imap-use-examine IMAP incoming-mailbox (POP, IMAP) internal-mailcaps MIME internal-mailcap-trusted-programs MIME internal-mailcap-prompt-trusted MIME iso646-charsets MIME keeppassfor PGP (new on Elm 2.4 PL24ME) local-dir-sortby - local-fast-lookup SYSTEM local-fs-charset SYSTEM local-sessionlock-dir - local-sessionlock-use-home - locale-charsets SYSTEM lock-in-copy - lock-folder - mailer - map-bin-dir MIME / SYSTEM map-text-dir MIME / SYSTEM message-hide-hack - metamail MIME metamail-mailcaps MIME menu-display-host - mime-parameters MIME mimebodykeywords MIME mimeforward MIME (new on Elm 2.4 PL24ME) noencoding MIME (new on Elm 2.4 PL24ME) nohdrencoding MIME noheaderfwd - pagealternative MIME page-known-charsets MIME pagemultipart MIME (new on Elm 2.4 PL24ME) pagesigned MIME pgp2 PGP pgp5 PGP gpg PGP pgp-encrypt-type PGP / MIME pgp-sign-type PGP / MIME pgp-version PGP pop-max-download-size POP pop-show-greeting POP prompt-after-metamail MIME prompt-after-pager - (was: promptafter) prompt-metamail MIME quoteforward - readdatapercentinc - require-mime-version-for-body-encoding MIME require-mime-version-for-hdr-encoding MIME show-header-errors (MIME) showpgppreamble PGP showto - (new on Elm 2.4 PL24ME) sort-thread-max-time - text-charset MIME unidata MIME / SYSTEM unstable-reverse-thread - use-library - use-base-library - use-connect-library - usepgppass PGP (new on Elm 2.4 PL24ME) utf7-encode-optional MIME verify-domain - verify-local-address - Obsolete elmrc variables ------------------------- charset (alias to text-charset) hpkeypad (alias to keypad) hpsoftkeys (alias to softkeys) keypad - softkeys - textencoding MIME bounce (alias to bounceback) bounceback UUCP pgp PGP (alias to pgp2) mailbox (alias to receivedmail) use-library (use-base-library and use-connect-library) New elm options for Elm 2.4ME+ (compared with Elm 2.4) ---------------------------------------------------- -A Attach file -w Write .elm/elmrc on startup -y Don't enter Elm if no unread mail is pending. Obsolete elm options -------------------- -k Enable HP 2622 terminal keyboard -K Keypad&softkeys - enable use of softkeys + "-k" Options which now takes enumerated values ----------------------------------------- userlevel beginner, intermediate, expert noencoding pass-7bit, pass-8bit, pass-binary pgp-sign-type application/pgp, text/plain, text/x-pgp fragment-handling none, manual, auto Warnings -------- - Not compiled with MMDF support defined, so probably it doesn't work (or even compile). - This has not been tested much so there can be bad bugs. Bug reports to: Kari E. Hurtta - Support for multipart/signed and multipart/encrypted (specially: support for PGP/MIME) only in reading side. There is no support for attachments with multipart/encrypted. > But anyway, Elm will never be MIME Conformant - HP's shoftkeys are no longer supported - DECNET addresses like host::user may be interpreted as phrase of group syntax or as route of source routed address. - Header editing screen now uses addresses in form phrase
, but because it does not require using of comma (,), multiword phrases must be entered in quotes. For example: "Kari Hurtta" - If address includes <> or comments (), they are not aliased expanded. So aliases must be entered as bare words. - Addresses given as arguments to elm command should be given as one address as arguments. Giving of sevaral addresses as one arguments causes that address is misparsed if header is edited on header editing screen. That is: Use: elm '"Kari Hurtta" ' 'Admin ' Don't use: elm 'Kari Hurtta , Admin ' - readmsg does not use mailbox (lib/mbox.c) routines! - p)rint command on article menu is still broken (but you perhaps may use P)rint text command) - Elm tools (on utils/*) do not use mime routines (melib). - Some Linux libraries does not follow $LC_CTYPE when program is setgid. Net result is that your locale is always C. That is visible that $LC_CTYPE does not effect to locale printed by 'elm -vvvvv': Locale (LC_CTYPE): C Display character-set: US-ASCII Sending character-set: US-ASCII - Conversion from Display character-set to Sending character-set is not possible it should be refused (but if it is not detected result of conversion will be practically empty.) - All refrences iso2022 maps are parsed and read to memory. This may cause quite big memory consumption specially because eastern (multibyte) sets tend to be lot of characters. That mapping information should be shared between processes to reduce memory consuption. - If display charset is produced by using mapping from locale to charset where charset definition is later invalidated ("removed") by setting explicit compatcharsets on user's .elm/elmrc, that may cause PANIC on elm's internal pager or other problems. Invalidation happens if display charset is on implicit compatcharsets list (because of charset definition), but does not have explicit compatcharsets list given by user. - Neither Unicode didirectional algorithm nor Right-Left scripts are supported. - In some situations two Status headers may be generated two Status headers -- one by IMAP deamon and one from APPENDed message. - When APPENDing message to IMAP folder (which is normal UNIX mailbox format) original "From " separator line can not be preserved -- specially it is not possible to pass envelope sender address. - For UTF-8 charset Elm only knows printable characters from Latin/1 range, if unicode database (see elmrc option "unidata") is not loaded. - For using of ISO2022 character sets it is required that mapping them to unicode is know -- otherwise Elm ME+ does not know which characters are printable. - UTF-16 surrogate pairs (D800-DFFF) are not supported on UTF-7 charset. - Mixing of names using IMAP naming convention (imap-naming-convention = yes) and names using imap-charset does not work very well... - Some Linux gethostbyname implementations accept ip-address as name, but return garbage on h_name -field of struct hostent. - " Regarding my message (8 Aug 2000) regarding 'newmail' on AIX 4.3.3 in an 'aixterm' window and the 'aixterm' did not close, indeed the problem was NOT related to 'newmail' but an AIX bug. IBM has release a patch, and the 'aixterm' in AIX 4.3.3 must be update with fileset X11.apps.aixterm.4.3.3.26 (PTF U473920) is solved to problem." From: Noam G. Nudelman - File /usr/share/locale/fi/charset gives charset name utf-8 on Linux Mandrake 7.2. This causes that Configure generates mapping fi utf-8 to elm.mimecharsets. However that seems to have incorrect mapping. You may want change this to fi ISO-8859-1 ( however nl_langinfo(CODESET) gives charset ISO-8859-15 but look following entry. ) - Locale 'fi' seems to have charset ISO-8859-15 according of nl_langinfo(CODESET) on Mandrake Linux 7.2 (and probaly others with same glibc version). However for example gnome terminal uses font -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-1 and not -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-15 Also KDE's konsole program seems use iso8859-1 character set although locale is 'fi' which should have ISO-8859-15 according of nl_langinfo (selecting "unicode" from menu seems fix that.) Because of mismatch more correct locale is fi_FI.88591, which gives ISO-8859-1 character set according of nl_langinfo(CODESET). ( Locale seems come from /etc/sysconfig/i18n or $HOME/.i18n ) > To enable handling of ISO-8859-1 and ISO-8859-15 character sets on linux console, read comments from doc/terminal.info file. - Mandrake Linux 7.2 seems set LD_PRELOAD to load /usr/lib/libxalflaunch.so.0. That (xalf-0.4-2mdk) causes that elm to crash on startup (actually before main() is reached.) - fastmail is broken - kterm on Mandrake Linux 7.2 seems have (at least on my test environment) seems get bad fontlist (*VT100*fontList) which gives bad font for iso8859-1 -- therefore ISO-8859-1 characters do not work. ("xrdb -query" seems report resource with name "*fontList" -- that probably overrides "*VT100*fontList" which comes from /usr/lib/X11/app-defaults/KTerm ) - Also note that initially kterm does NOT default to ISO-8859-1 -- therefore ISO-8859-1 works only when elm explicity switch to ISO-8859-1 (for example with 'elm -D ISO-8859-1') - When assembling message/partial MIME (RFC 2046) requires that all headers except Content-*, Subject, MIME-Version, Message-ID and Encrypted are copied from initial enclosing message to assembled message. It also requires that headers except Content-*, Subject, MIME-Version, Message-ID and Encrypted are ignored and dropped from enclosed message. For now we copy only Received: -headers. Dropping extra headers from enclosed message makes assembly more complicated (and dropping of Received: -headers from enclosed message do not make sense.) - Running '//' Match pattern (in entire message): on one big mailbox seems cause segementation violation on malloc(). Seems memory corruption to me. However running same search on same mailbox undef of valgrind do not report error. Valgrind do not report that there is illegal free() somewhere occured. Collector of these patches -------------------------- Kari E. Hurtta