$Header: /home/users/hurtta/cvsroot/mail/elmme+/README.ME+,v 2.96 2008/07/21 08:12:19 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. Version ElmME+ 2.5.x is based on version Elm2.4ME+ PLx (25) and incorporates code from of Elm 2.5. =================================================================== * Changelog of Elm ME+ 2.5 Changes on Elm ME+ 2.5 PLalpha20 compared with Elm ME+ 2.5 PLalpha19 -------------------------------------------------------------------- SUMMARY: This release fixes error on submission (a kind of smtp) protocol implementation, crash on AIX and a couple of valgrind reported memory leaks. Also some other small changes or fixes are included. - Fixed valgrind reported memory leak: 660,852 (276,480 direct, 384,372 indirect) bytes in 2,219 blocks are definitely lost in loss record 30 of 30 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x81A6658: safe_malloc (safemalloc.c:51) by 0x818C9FB: rfc822_tokenize (getaddr.c:33) by 0x81DCBCE: parse_header_references (getid.c:289) - Fixed valgrind reported memory leak: 106,629 (5,432 direct, 101,197 indirect) bytes in 450 blocks are definitely lost in loss record 25 of 30 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x81A6658: safe_malloc (safemalloc.c:51) by 0x81DDC51: dup_references (references.c:205) by 0x80E783B: copy_header (duplicate.c:385) > references field was not correctly duplicated. - Fixed valgrind reported memory leak: 4,540 (60 direct, 4,480 indirect) bytes in 2 blocks are definitely lost in loss record 25 of 29 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x81A6658: safe_malloc (safemalloc.c:51) by 0x814C798: browser_malloc2 (savefolder.c:2463) by 0x814C81A: browser_malloc (savefolder.c:2489) by 0x814CA9C: new_browser (savefolder.c:2579) by 0x80B6556: OpenMailbox (openmailbox.c:30) - Fixed valgrind reported memory leak: 76 (8 direct, 68 indirect) bytes in 1 blocks are definitely lost in loss record 14 of 26 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x81A6658: safe_malloc (safemalloc.c:51) by 0x81B43A8: malloc_string (string.c:81) by 0x81B53C6: cat_strings_internal (string.c:488) by 0x81B5D17: cat_strings (string.c:718) by 0x813C908: browser_cat_local (localmbx.c:1073) by 0x814F511: give_edit_buffer (savefolder.c:3706) by 0x807A750: gb_browser (browser.c:622) by 0x80993F2: enter_helper (in_utils.c:833) by 0x807B3AA: run_browser (browser.c:1049) by 0x807B5B2: folder_browser (browser.c:1124) by 0x80B65C4: OpenMailbox (openmailbox.c:38) - Fixed valgrind reported memory leak: 212 (8 direct, 204 indirect) bytes in 1 blocks are definitely lost in loss record 16 of 25 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F6178: safe_malloc (safemalloc.c:51) by 0x4104928: malloc_string (string.c:81) by 0x4106A9D: dup_string (string.c:891) by 0x410B675: append_string (string.c:2761) by 0x40DBDC9: look_special_tokens (getaddr.c:181) by 0x4157934: parse_tokenized_message_id (getid.c:126) > Comments was not correctly recorded. - Fixed valgrind reported memory leak: 12 bytes in 1 blocks are definitely lost in loss record 1 of 23 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F6178: safe_malloc (safemalloc.c:51) by 0x80E4854: malloc_empty_alias_buffer (buffer.c:38) by 0x805FB6E: add_current_alias (alias.c:691) - "Using Elm ME+ 2.5 PLalpha19 on AIX, for the first time ever, I tried to add an alias (typing 'a' in the main menu). When I completed entering the information, I got the following error message: | Updating aliases... | | Couldn't malloc 0 bytes!! | | | PANIC in utils.c:90:malloc_failed_exit | >>>Out of memory" Reported by: Noam G. Nudelman > Do not malloc empty array on ascify_string() - Fixed valgrind reported memory leak: 880 (664 direct, 216 indirect) bytes in 56 blocks are definitely lost in loss record 18 of 24 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F6178: safe_malloc (safemalloc.c:52) by 0x414B3E3: new_address (address.c:56) by 0x41555A8: new_address_string (parsestring.c:255) by 0x8061CB0: lookup_dummy (alias.c:1718) - Fixed valgrind reported memory leak: 216 bytes in 28 blocks are definitely lost in loss record 138 of 183 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F6178: safe_malloc (safemalloc.c:52) by 0x40C3415: cs_stream_from_ascii (cs_binary.c:1778) by 0x410738D: stream_from_string (string.c:1135) by 0x415554D: ascify_address (parsestring.c:235) by 0x4155590: new_address_string (parsestring.c:251) - Fixed valgrind reported memory leak: 18 bytes in 9 blocks are definitely lost in loss record 70 of 233 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F6178: safe_malloc (safemalloc.c:52) by 0x40DA4E6: hdr_text (hdrdecode.c:491) - Fixed bug where "mailer = submission" was giving RET parameter to RCPT command when it must be on MAIL command on submission (or SMTP) protocol. - If password entry (passwd struct) of user does not found, report error message from errno if available. - Do not call getpwnam() again when getting fullname of user, instead us result from earlier getpwnam() or getpwuid(). That is, use get_fullname1() instead of get_full_name(). - Fixed valgrind reported memory leak: 27 (8 direct, 19 indirect) bytes in 1 blocks are definitely lost in loss record 156 of 341 at 0x401C422: malloc (vg_replace_malloc.c:149) by 0x40F62E8: safe_malloc (safemalloc.c:52) by 0x4035F32: encode_mime_params_v (mime_param.c:1557) by 0x80AD0BB: mime_write_header (mime_encode.c:535) - Changed mime_write_top_headers() to use mime_write_header() when writing "Content-Type: multipart/mixed" header field. - Elm ME+ 2.5 PLalpha19 change to not encode characters '.', ',', ':' and '/' on Q encoding did not take onto account that some of these are special characters on structured fields. Fixed that for structured fields (on subject these characters still are not encoded). Changes on Elm ME+ 2.5 PLalpha19 compared with Elm ME+ 2.5 PLalpha18 -------------------------------------------------------------------- SUMMARY: This release changes aliases implementation. Also file names and format of aliases is changed. Regression of In-Reply-To header field editing on "Message Header Edit Screen" is fixed. Header field conversion on b)ounce now applies also to some MIME header fields. Now also bold and underlined text are used on display (in addition of inverse text). Also some other changes and bug fixes are included. Note: You must create directory lib/alias before applying this patch! - Fixed an error, where entering message-id to In-Reply-To header field on "Message Header Edit Screen" was giving error message Missing > after < on in-reply-to header. - When In-Reply-To header field on "Message Header Edit Screen" is edited, generated References: -header field is recalculated. - Added check to "Message Header Edit Screen" that message-id entered to References: -header field is valid syntax. - Added some more places where elmrc option "convert-utf-header" is applied. - If there is 8-bit content on MIME header fields following header fields are rewritten (without causing error) from parsed data on b)ounce: Content-Disposition: Content-Description: Content-Type: This encodes 8-bit data with RFC 2231 or mime encoded words there where they are allowed. Note that charset is guessed and is quite probably wrong. NOTE: Currently this loses comments from Content-Disposition and Content-Type - If elmrc option "mime-parameters" have value "plain", that conversion (of RFC 2231) is not done. - Changed Q encoding of mime encoded words so that characters '.', ',', ':' and '/' are no longer encoded. - Some changes on aliases handling. - Dropped hash (ndbz) because Elm reads all aliases to memory and search them from memory in order. - Moved some code from lib/mk_aliases.c to lib/alias/oldaliases.c - Moved some code from src/aliaslib.c to lib/alias/aliasexpand.c - Added aliases parsing routines to lib/alias/ - Changed aliases file format, new files are .elm/elmaliases and $lib/elm.aliases - Non-ascii values are stored with MIME encoding - Moved some code from lib/misc/conf_writer.c to lib/conf_writer.c - There is many changes on aliases handling and on "Alias mode" of elm - If old format alias file is found when Elm starts, it is prompted that is it used or is it converted to new format. - Now there is three types of aliases: - Person alias - Address list alias - Group alias and mixed form of these. - Program "newalias" now converts old format aliases file to new format. - Existing old aliases.text file on elm global library directory is converted to new format during installation (with -g option of newalias). - Added option -q (quiet) to newalias. This option ignores error, if old aliases.text file does not exists. - Program "elmalias" have following new format specifications: %f First name (of person alias) %A Address (of person alias) %L Address List (of address list alias) %P Phrase (of group alias) %V Vector (of group alias) Format specifications for different alias types are: - Person alias %l Last Name %f First Name %A Address (the alias value) - Address list alias %L Address list (the alias value) - Group alias %P Phrase %V Vector (the alias value) Common specifications for all alias types are: %a Alias (the alias name, alias key) %c Comment (not displayed in mail headers) Also following specifications are generated: %n Name (the user's full name) %v Address (the alias value) %t Type (Person, Address List, Group, Mixed, or Unknown) - Program "elmaliases-write" reads and writes new format aliases file. - Configure now copies doc/elmaliases to bin/elm.aliases for installation - Configure -M and Configure -S also (re)generates bin/elm.aliases - Elmaliases-write option -c merges elm.aliases or elmaliases file with file given as argument. - Configure does not read elm.aliases from elm global library directory. Instead existing elm.aliases from elm global library directory is merged during installation (with -c option on elmaliases-write). - New values without merging are written to elm.aliases.NEW during installation. - "a)lias current message" now generates alias also on case where From: -header field have several addresses. - When given address, aliases is now possible to enter on quoted form. This makes possible to use aliases, which includes spaces.... - Aliases are now case sensitive. They are not lowercases (however aliases from old format aliases file are lowercased). See also chapter "Aliases information" - Added note to Configure that merges are done during installation. - Moved append_string() from lib/hdrdecode.c to lib/string.c - append_string() now takes also printed argument. - Added string_copy_character() to lib/string.c - Added string_have_ascii_sep() to lib/string.c - Exported is_special() as unicode_is_special() from lib/stringtok.c - Added parse_one_address() to lib/addr/getaddr.c - Added lib/addr/parsestring.c which handles addresses on struct string -form - Added address_to_str() and list_to_str() to lib/addr/write_hdr.c - Exported string_need_quote() from melib/mime_param.c - Exported append_quoted_to_string() from melib/mime_param.c. It now uses string_copy_character() - string_need_quote() now uses unicode_is_special() - Added -O option to Usage: -line of Configure - LIB_SRC is removed from lib/Makefile - Exported part of formatting code as format_S_helper() from lib/output.c - Allow cancel startup questions with Ctrl-C - Moved append_quoted_to_string() from melib/mime_param.c to lib/addr/parsestring.c - Moved unquote_string() from melib/mime_param.c to lib/addr/parsestring.c - Added some more ending terminators --END to ~/Canceled.mail.dir/.index - Ignoring Message-ID if there is parse error on it. - StartBold() (or pg_BOLD) and StartInverse() (or pg_INVERSE) both used so Start standout mode On Elm 2.5 there is StartStandout instead. Renamed StartInverse() (or pg_INVERSE) to StartStandout() (or pg_STANDOUT) and changed StartBold() (or pg_BOLD) to use md Start bold mode - Removed StartHalfbright() (or pg_HALFBRIGHT) and EndHalfbright(). Used code was hs and Linux manual gives mh Start half bright mode also that is not on vt100 and is not used on Elm - Added pg_REVERSE for mr Start reverse mode (not used currently: On Linux xterm termcap both mr and so resources gives \E[7m ) - Changed search matches on builtin++ -editor to use StarStandout() on instead of StartBold - Changed Help title on builtin++ to use StartBold (instead of StartInverse) - Changed builtin++ prompt to use StartStandout on instead of StartBold - Also changed similar metapager prompt to use pg_STANDOUT instead of pg_BOLD - Also changed similar showmsg prompt to use pg_STANDOUT instead of pg_BOLD - Added pg_BOLD to following titles - Mailbox (i.e. main screen) - Mail Pre-Send Screen - Message Header Edit Screen - -- ELM Options Editor -- - Folder selection - List info - Generic reply - List-Subscribe selection - List-Unsubscribe selection - List-Post selection for mailing - List-Post selection for reply - List-Help selection - List-Archive selection - Remote URL verification - List-Owner selection for mailing - List-Owner selection for reply - Alias info - Alias info (expanding address) - Alias info (alias editing) - Send only mode - Extended command selection - MIME structure Menu - Attachment Menu - Mailbox (thread mode) - Attachment Configuration - Mailcap program selection - Metamail selection - There is parsing errors on message - Mime type check - Viewing folder - Added pg_BOLD to border on showmsg - Reset terminal modes more carefully on enter - Show first line (i.e. Message XX/XX) on builtin++ -pager underlined. - Now on "Metamail selection" DOWN and UP keys can go to to next or previous mail when cursor walks out of question list. - Fixed crash on "Metamail selection" screen, when RIGHT key is pressed. - Now on "There is parsing errors on message" DOWN and UP keys can go to to next or previous mail. - Moved motion() from src/elm.c to src/motion.c - Moved movement and some common commands from process_showmsg_cmd() on src/showmsg_c.c to process_motion_command() on src/motion.c - When viewing alias info there can be used movement and alias commands somewhat similar way than mailbox commands can be used on when viewing message. - Initialize "unidata" early. - Fixed 'fastmail -i in-reply-to' which was commented out on Elm ME+ 2.5 PLalpha18. - Fastmail was not writing To: -header field. Added To: -header field to fastmail generated mails. NOTE: Fastmail is still broken. Generated mails are not MIME encoded when needed. - Added -c option to readmsg - Added -c option to elmalias - "I failed to compile elmME+.2.5.alpha18 (alpha17 compiled ok) on AIX 5.3. The error I receive is: make[1]: Entering directory `/home/rangers/noam/elmME+.2.5.alpha18/lib/addr' cc -I../../hdrs -I/u/rangers/noam/elmME+.2.5.alpha18/hdrs -O -c -o write_hdr.o write_hdr.c "write_hdr.c", line 357.13: 1506-343 (S) Redeclaration of do_simple_wrapping differs from previous declaration on line 355 of "write_hdr.c". "write_hdr.c", line 357.13: 1506-381 (I) The type "int" of parameter 4 in the prototype declaration is not compatible with the corresponding parameter type "enum encoding" in the nonprototype declaration." Reported by: Noam G. Nudelman > Fixed prototype of do_simple_wrapping() - Added command "elmregister list-conffiles" to generate files listing suitable for dpkg command. Names on list are NL separated. Actually this produces nothing, because config files are created replay time. New tools: elmaliases-write New files: lib/alias/aliases.c lib/misc/oldaliases.c lib/alias/address_alias.c lib/alias/Makefile.SH lib/alias/def_alias.h lib/alias/alias_vector.c hdrs/aliaslib.h lib/conf_writer.c hdrs/conf_writer_imp.h lib/alias/init.c lib/alias/aliasexpand.c src/aliases/aliases_map.c src/aliases/record.c src/alias_display.c src/aliases/buffer.c lib/addr/parsestring.c src/alias_info.c utils/elmaliases-write.c utils/aliases_helper.c doc/elmaliases-write.1 doc/elmaliases ConfTool/GenAliases src/alias_itemized.c src/motion.c src/alias_info_1.c utils/aliases_helper.h Removed files: lib/ndbz.c hdrs/ndbz.h lib/mk_aliases.c lib/aliasdb.c src/aliases/astorage.c src/aliases/astorage_hash.c src/aliases/alias_alloc.c src/aliases/find_alias.c Changes on Elm ME+ 2.5 PLalpha18 compared with Elm ME+ 2.5 PLalpha17 -------------------------------------------------------------------- SUMMARY: This release fixes some bugs, prevents recursive mail commands via "m)ail -> view) folder", adds conversion of MIME messages on b)ounce and f)orward commands, adds generation of References: -header field and adds OpenDocument formats to mime.types -file. - Added following new types to doc/mime.types file: application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.chart-template application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.formula-template application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.graphics-template application/vnd.oasis.opendocument.image application/vnd.oasis.opendocument.image-template application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation-template application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.spreadsheet-template application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.text-master application/vnd.oasis.opendocument.text-template application/vnd.oasis.opendocument.text-web - Fixed a small error on cat_strings() where wrong charset name is printed when printind is specified. - Fixed small errors on ascii_need_quote() and string_need_quote on melib/mime_param.c. Both had missing [] characters. - Fixed some prompt positions on alias mode - Possible fix for get_word_from_string() - Fixed a small error on error message of write_conf() - Fixed the error message on delete_alias_files() - Fixed the error where (comment) was lost when address Phrase (comment) was parsed. Address was stored when '>' was seen so that (comment) was not seen yet. Not parser delays storing of address to next ',' if '>' is not the last token. - Command sequence m)ail -> view) -> ' ' -> m)ail was possible. Changed it so that 'm' gives "Attaching message is not possible when viewing it" error. - Command sequence m)ail -> view) -> ' ' -> b)ounce was possible. Changed that 'b' gives "Attaching message body is not possible when viewing it" error. - Command sequence m)ail -> view) -> ' ' -> r)eply and m)ail -> view) -> ' ' -> f)orward and m)ail -> view) -> ' ' -> g)roup reply and m)ail -> view) -> ' ' -> Mailing list I)nfo and m)ail -> view) -> ' ' -> ^K (Mail PGP public key) and m)ail -> view) -> ' ' -> generic R)eply were possible. These were sending mail (recursively). Added flag SHOWMSG_NOMAIL which disables mailing commands. Also disallowed m)ail -> view) -> ' ' -> V)iew digests because there also are mailing commands. - Fixed the error where hdr_comment() was not correctly dequoting \ -escaping. - Fixed the error where extra ',' was added to the end of address list - Moved struct header_rec from elm_defs.h to addrlib.h - Moved struct mimeinfo from elm_defs.h to addrlib.h ( mimeinfo is embedded in struct header_rec) - Added References: -header generation as specified on RFC 2822: The "References:" field will contain the contents of the parent's "References:" field (if any) followed by the contents of the parent's "Message-ID:" field (if any). If the parent message does not contain a "References:" field but does have an "In-Reply-To:" field containing a single message identifier, then the "References:" field will contain the contents of the parent's "In-Reply-To:" field followed by the contents of the parent's "Message-ID:" field (if any). - Parsed message-id as (comment) - Moved check_8bit_string() from lib/id_phrase.c to lib/addr/write_hdr.c - Moved check_8bit_string() from lib/id_phrase.c to lib/addr/write_hdr.c - Moved write_string_header() from lib/id_phrase.c to lib/addr/write_hdr.c - Moved write_text_header() from lib/write_hdr.c to lib/addr/write_hdr.c - Moved print_EOLN() from lib/write_hdr.c to lib/addr/write_hdr.c - Moved struct addr_list to inside of lib/addr/addr_list.c file. - Moved struct address to inside of lib/addr/address.c - Fixed the error where the header field names were not correctly recognized if there were spaces before ':' on header field. - Check on b)ounce that mail does not have overlong lines (over 998 characters). Overlong lines in mailbox were seen as the result of following events: 1) One mail client had sent message with Content-Type: text/plain; Charset=iso-8859-15; Format=Flowed However the lines were not wrapped as specified on flowed -format. The result was that whole chapter was on one line. Result was quoted-printable encoded, so the lines did not exceed the maximum length during transfer. Mail client apparently indentified itself as X-Mailer: Saunalahti webmail - http://saunalahti.fi 2) Sendmail did conversion quoted-printable => 8bit when the message was was saved into the mailbox. Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by XXX id XXX After these there were over 1400 character lines in the mailbox. Re-sending the resulting message exceeded SMTP's 1000 character line length limit. Therefore elm now does no longer send messages on b)ounce unaltered. ( Actually header field "Content-Transfer-Encoding: 8bit" generated here by sendmail is not correct either. MIME allows only 998 character long lines for "8bit data". ) Messages are not fully checked when doing b)ounce. However if errors are seen during conversion, b)ounce may fail. If conversion of some part of message is not done, then also errors may be ignored. Only MIME messages are converted. Non-MIME messages (and messages with unknown MIME version) are handled the old way (remailed without processing). If there is 8-bit content on header fields on a MIME message, that causes error on b)ounce. 8-bit on content on (top level) header fields is sent as is without error if elmrc option "nohdrencoding" is set (this also causes that header fields are not MIME encoded.) - If there is 8-bit content on (top level) header fields following header fields are rewritten (without causing error) from parsed data on b)ounce: From: To: CC: Reply-To: In-Reply-To: References: Subject: This encodes 8-bit data with mime encoded words there where they are allowed. Note that charset is guessed and is quite probably wrong. - When b)ouncing, now Elm adds Sender: -header field to beginning of header fields (instead of to end of header fields). Now also from_addr_literal() is used for Sender: -field (same than what is used Sender: -field when m)ailing) - Also when mail is f)orwarded as a separate part (ie. as message/rfc822 body part) the same happens that on b)ounce. Therefore this does also same conversions as for the b)ounce case. - Also m)ail -> view) -> Attach m)essage uses this same conversion. - However m)ail -> view) -> Attach message b)ody does not do that kind conversion. However, it does not longer trust given content-transfer-encoding (7bit, 8bit, binary) on mail. - Some small fixes to include_part() encoding handling. New files: lib/addr/getid.c lib/addr/message-id.c lib/addr/references.c Removed files: lib/id_phrase.c lib/write_hdr.c Changes on Elm ME+ 2.5 PLalpha17 compared with Elm ME+ 2.5 PLalpha16 -------------------------------------------------------------------- SUMMARY: This release re-adds "incomingfolders" elmrc option which was lost on Elm ME+ 2.5 PLalpha5. This release also fixes redraw loop on "Mailcap program selection -screen, fixes double free() on search and fixes filename handling on attch_save(). - Unlink tempfile on error on elmregister. - Elmrc option "incomingfolders" added on Elm ME+ 2.5 PLalpha0 was lost on Elm ME+ 2.5 PLalpha5. - "The attached email triggers a bug in ELM 2.4ME+ PL123. The problem is that reading this email message causes continuous redraw of the screen, and you have to kill elm to exit. I think it is caused by too many attachments." Reported by: Bruce Momjian > Fixed "Metamail selection" / "Mailcap program selection" prompt screen. - "I'm attaching the mailbox consisting of just this message. To reproduce the problem, save it, uncompress, and try searching through the body of the message (using elm) for a string, such as "iegor": bunzip /tmp/spam-crash.bz2 elm -f /tmp/spam-crash // iegor The double-free happens in the following stack: (gdb) where #0 0x0000000800a9855c in kill () from /lib/libc.so.6 #1 0x0000000800a973ed in abort () from /lib/libc.so.6 #2 0x0000000800a36ae5 in _UTF8_init () from /lib/libc.so.6 #3 0x0000000800a36b1c in _UTF8_init () from /lib/libc.so.6 #4 0x0000000800a37abd in _UTF8_init () from /lib/libc.so.6 #5 0x00000000004978f0 in arrange_decoded () #6 0x000000000049ee1b in simple_mime_walk () #7 0x000000000049ecf7 in simple_mime_walk () #8 0x000000000046bae3 in mc_match_in_text_mbx () #9 0x0000000000469ced in mcommon_match_in_text () #10 0x0000000000457cfa in pattern_match () #11 0x00000000004351fe in motion () #12 0x0000000000435945 in mailbox_command () #13 0x0000000000445ae6 in compute_visible () #14 0x0000000000446560 in main_messages_menu () #15 0x00000000004347fd in main ()" Reported by: Mikhail T. > Fixed valgrind reported invalid free: Invalid free() / delete / delete[] at 0x401CFCF: free (vg_replace_malloc.c:235) by 0x8199E78: safe_free (safemalloc.c:107) by 0x810B9CF: arrange_decoded (mime_decode.c:2532) by 0x81173B9: simple_mime_walk (mimewalk.c:151) by 0x81171FC: simple_mime_walk (mimewalk.c:95) by 0x80CCBE2: mc_match_in_text_mbx (message_pattern.c:464) by 0x80CA1B3: mcommon_match_in_text (mcommon.c:214) by 0x80B1ABE: pattern_match (pattern.c:439) by 0x8083ADE: motion (elm.c:1881) by 0x8081BBD: mailbox_command (elm.c:892) by 0x8099649: main_messages_loop (mailbox.c:242) by 0x809A1AE: main_messages_menu (mailbox.c:664) Address 0x4493630 is 0 bytes inside a block of size 20 free'd at 0x401CFCF: free (vg_replace_malloc.c:235) by 0x8199E78: safe_free (safemalloc.c:107) by 0x810B9B7: arrange_decoded (mime_decode.c:2528) by 0x81173B9: simple_mime_walk (mimewalk.c:151) by 0x81171FC: simple_mime_walk (mimewalk.c:95) by 0x80CCBE2: mc_match_in_text_mbx (message_pattern.c:464) by 0x80CA1B3: mcommon_match_in_text (mcommon.c:214) by 0x80B1ABE: pattern_match (pattern.c:439) by 0x8083ADE: motion (elm.c:1881) by 0x8081BBD: mailbox_command (elm.c:892) by 0x8099649: main_messages_loop (mailbox.c:242) by 0x809A1AE: main_messages_menu (mailbox.c:664) - "Not sure if you have fixed this in later releases but in ELM 2.4ME+ PL123 if I try to save a file attachment of type "image/jpeg" and the file name already has extension "jpg" elm suggests the additional extension "jpeg"." Reported by: Bruce Momjian > Filename was not correctly recorded on attach_save() Changes on Elm ME+ 2.5 PLalpha16 compared with Elm ME+ 2.5 PLalpha15 -------------------------------------------------------------------- SUMMARY: This release fixes bug on c)hange command which caused lost of mail. Also bug on joint use of l)imit and 'Eo' -command is fixed. This release also adds some new subcommands to elmregister -command. Elm ME+ 2.5 is now main line (trunk or main branch). - If l)imit command was used, and then Eo) [o)pen mailbox to current view] was used, wrong messages was shown on limited display. Now number of selected message is recalculated after new mailbox is added. - Changed redraw handling on "Keep unread messages in incoming mailbox?" question. - Now "elmregister replay" recreates hard links also when "-R" option is not used (-R option implies moving installation to final place). - Added missing subcommand to elmregister manual page. - Changed "elmregister rpm-list" so that hard links are listed. They are now listed with %ghost macro. - Fixed bug where "elmregister replay -R ..." was setting files to wrong owner (was used gid as uid) on some situation, when file was copied. - Added command "elmregister list" to generate files listing suitable for tar command. Names on list are NL separated. - Added command "elmregister list-directories" to generate directory listing. - If after c)hange folder locking of new folder (mailbox) failed, Elm was keeping open old folder, but temp file of older folder (mailbox) was closed. That caused corruption of mailbox. * If "Folder unchanged." message was given, folder was not closed. * Folder was closed on "[Keeping all messages.]" case, it does not need to be closed on here either. > Do not call close_folder() on on real_save() at all. Instead use unlock() on real_cave() ( as in done if 'resyncing' was set ) . * Actual closing of mailbox is done anyway with leave_old_folder() which is called from free_storage() > Splited leave_mbox() to sync_mbox() function which never closes mailbox and close_cleanup_mbox() which does closing (and may remove mailbox). - Fixed Configuration error on Ubuntu 6.06 (gcc 4.0.3) Changes on Elm ME+ 2.5 PLalpha15 compared with Elm ME+ 2.5 PLalpha14 -------------------------------------------------------------------- Summary: This release changes address handling. It supports group phrases. They are preserved on reply. This release also adds "alias-group-phrase" and "confirmprint" elmrc options. Also some minor fixes are included in this release. Note: You must create directory lib/addr before applying this patch! - Some changes on address handling. - Moved some code from lib/getaddr.c to lib/addr/getaddr.c - Moved some code from lib/misc/mlist.c to lib/addr/mlist.c - Moved lib/dispaddr.c to lib/addr/dispaddr.c - Moved some code from lib/okay_addr.c to lib/addr/okay_addr.c - Moved some code from lib/mailer/mailer.c to lib/addr/mailer.c - Moved lib/outheaders.c to lib/addr/outheaders.c - Moved ib/mbox/error.c to lib/addr/error.c - Moved lib/headers.c to lib/addr/headers - Moved some code from lib/write_hdr.c lib/addr/write_hdr.c - Added new elmrc option "alias-group-phrase". If set (default), it is possible to give phrase for group aliases, which is includes to address list. - Added support group phrases. They are preserved when mail is replied. - konsole seems set $COLORTERM to "". Added xterm DW UTF-8 [ $COLORTERM="" ] to doc/terminal.info. This assumes that all these terminals treat certain UTF-8 characters as double wide (as defined with wcwidth() function). - "make install" now indicates if "sh Configure -M" need to be rerun. - Removed src/string2.c -- occurances_of() is not called anywhere. - Interpret output of PGP according of mail charset (that is actually done only when that body part was text ... ) - "There were two adjacent spaces in the first email subject line which were collapsed into one space in the reply, which I think is legal. Perhaps multiple spaces should be collapsed into one for comparison, perhaps near skip_ascii_head_from_string() in thread.c." Suggested by: Bruce Momjian - Added "confirmprint" elmrc option. - Changed save_copy() to use prompt_letter() instead of want_to(). New elmrc options: alias-group-phrase confirmprint New files: lib/addr/Makefile.SH lib/addr/def_addr.h lib/addr/init.c hdrs/addrlib.h lib/addr/addr_list.c lib/addr/address.c lib/addr/getaddr.c lib/addr/mlist.c hdrs/mlist_imp.h hdrs/mlist_common.h lib/addr/okay_addr.c lib/addr/mailer.c lib/addr/write_hdr.c Moved files: lib/dispaddr.c => lib/addr/dispaddr.c lib/outheaders.c => lib/addr/outheaders.c lib/headers.c => lib/addr/headers lib/mbox/error.c => lib/addr/error.c Removed files: lib/getaddrfrm.c src/string2.c Changes on Elm ME+ 2.5 PLalpha14 compared with Elm ME+ 2.5 PLalpha13 -------------------------------------------------------------------- Summary: This release fixes elmregister replay command, when used with -R option, fixes viewing of binary files and selection of wrong media type when sending mail, some UTF-8 problems and compilation errors when compiled with "-traditional" on gcc. * Changes from Elm 2.4ME+ PL123f (25): - "./usr/share/elm/elmregister replay -M all -R `pwd`" was segfaulting when moving packgage to final place. Fixed missing initialization on copy_dir(). Problem noted by: Peter Alfredsen - Avoid error "./usr/local/lib/elmregister: [pick_one] '{' no arg 0" when doing "./..../elmregister replay -M all -R `pwd`" - attach_info() calculated filename extension wrongly. That caused that wrong media type was selected. - Fix viewing of binary files on attachment viewer when sending mail. - Added xterm DW UTF-8 [ $COLORTERM="gnome-terminal" ] to doc/terminal.info. This assumes that all gnome terminals treat certain UTF-8 characters as double wide (as defined with wcwidth() function). - 'return count' was missing from cs_add_streambytes_to_unknown() -- this caused error message Text part 1 have bad UTF-8 characters. Send anyway? n on certain configurations. - Some compilation fixes for "traditional" C Changes on Elm ME+ 2.5 PLalpha13 compared with Elm ME+ 2.5 PLalpha12 -------------------------------------------------------------------- Summary: This release fixes some bugs and some compilation problems on AIX. This release includes mapping table for KZ-1048 and PTCP154 charsets. - Fix panic ADDR PANIC in addr_util.c:690:build_address_l >>>tectual=NULL when rpm@> is entered as mail address. - Fix crash on free_addr_items() - Possible fix for looping - "I finally got around to it and tried to compile elmME+.2.5.alpha12 on AIX 5.3. As you can see, it failed: gmake[1]: Entering directory `/noam/elmME+.2.5.alpha12/lib' cc -I../hdrs -I/noam/elmME+.2.5.alpha12/hdrs -O -c -o get_tz.o get_tz.c " get_tz.c", line 144.36: 1506-045 (S) Undeclared identifier TZNAME_HANDLING." Reported by: Noam G. Nudelman > Fixed tzname_handling test on Configure which was using 'const' and not 'CONST' although lib/get_tz.c uses 'const'. - "It failed compiling on something else at first try (please see line 84 of 701 in attached typescript file): <...> /bin/egrep -h '#define .*_magic' `cat XXfilelist` | /bin/sort > magic_res1 /bin/sh: /bin/egrep: arg list too long" Reported by: Noam G. Nudelman > Change checking of lib/MAGIC - Fixed case where changing alias two times without resync caused that alias name was truncated. - Updated following charsets on lib/precompiled_sets.c: Changed Big5-HKSCS to be MIME name Added BOCU-1 as type unknown Added CESU-8 as type utf-8 -- not exactly UTF-8 but because Elm builtin map UNICODE effectively includes only ranges 0x0000 - 0xD7FF and 0xF900 - 0xFFFF, supported subsets are same. -- CESU-8 is only marked as codeset and not MIME name. Added GB18030 as type unknown Added GBK as type unknown - Added aliases CP936, MS936, windows-936 to ConfTool/charaliases.map - Removed charset CP936 and alias IBM936 (added CP936 to ConfTool/killsets) Changed IBM00924 to be codeset and not MIME name - Removed charset IBM00924 (added IBM00924 to ConfTool/killsets) Changed IBM01140 to be codeset and not MIME name - Removed charset IBM01140 (added IBM01140 to ConfTool/killsets) Changed IBM01141 to be codeset and not MIME name - Removed charset IBM01141 (added IBM01141 to ConfTool/killsets) Changed IBM01142 to be codeset and not MIME name - Removed charset IBM01142 (added IBM01142 to ConfTool/killsets) Added IBM01143 as type unknown -- IBM01143 is only marked as codeset and not MIME name. -- IBM01143 was on ConfTool/charaliases.map (added IBM01143 to ConfTool/killsets) Changed IBM01144 to be codeset and not MIME name - Removed charset IBM01144 (added IBM01144 to ConfTool/killsets) Changed IBM01145 to be codeset and not MIME name - Removed charset IBM01145 (added IBM01145 to ConfTool/killsets) Changed IBM01146 to be codeset and not MIME name - Removed charset IBM01146 (added IBM01146 to ConfTool/killsets) Changed IBM01147 to be codeset and not MIME name - Removed charset IBM01147 (added IBM01147 to ConfTool/killsets) Changed IBM01148 to be codeset and not MIME name - Removed charset IBM01148 (added IBM01148 to ConfTool/killsets) Added IBM1047 as type unknown -- IBM1047 is only marked as codeset and not MIME name. -- Added IBM1047 (codeset) to ConfTool/charaliases.map Changed IBM775 to be charset and not codeset. -- CP775 was already alias of IBM775 on ConfTool/charaliases.map -- Added CP775 to ConfTool/killsets Changed IBM866 to be charset and not codeset. -- CP866 was already alias of IBM866 on ConfTool/charaliases.map -- Added CP866 to ConfTool/killsets Added Latin-9 to alias of ISO-8859-15. Added aliases for ISO-8859-16. Added ISO-11548-1 as type unknown -- ISO-11548-1 is only marked as codeset and not MIME name. -- Added aliases for ISO-11548-1 Added KOI7-switched as type iso2022 -- Added ISO 2022 code for KOI7-switched Added KZ-1048 as type ascii-set -- Added aliases for KZ-1048 -- Added charset/MAPPINGS/kz-1048.txt Added OSD_EBCDIC_DF03_IRV as type unknown -- OSD_EBCDIC_DF03_IRV is only marked as codeset and not MIME name. Added OSD_EBCDIC_DF04_1 as type unknown -- OSD_EBCDIC_DF04_1 is only marked as codeset and not MIME name. Added OSD_EBCDIC_DF04_15 as type unknown -- OSD_EBCDIC_DF04_15 is only marked as codeset and not MIME name. Added PTCP154 as type ascii-set -- Added aliases for PTCP154 -- Added charset/MAPPINGS/ptcp154.txt Added UTF-32 as type unknown -- UTF-32 is only marked as codeset and not MIME name. Added UTF-32BE as type unknown -- UTF-32BE is only marked as codeset and not MIME name. Added UTF-32LE as type unknown -- UTF-32LE is only marked as codeset and not MIME name. - Added CHARSET_noalias flag to MIME_name_to_charset() - Small fix for ConfTool/GenCharmap - Added -G (global) flag to elmunidata. That causes that user config files are ignored (during installation) New files: charset/MAPPINGS/kz-1048.txt charset/MAPPINGS/ptcp154.txt Changes on Elm ME+ 2.5 PLalpha12 compared with Elm ME+ 2.5 PLalpha11 -------------------------------------------------------------------- * Changes from Elm 2.4ME+ PL123d (25) - Fix compilation on ubuntu (GCC 4.0.2). - "troubles when moving from pgp5 to gpg - cannot encrypt. Seems parsing of gpg --list-public-keys is broken in gnupg 1.4.5. syscall to gpg paramter 8 after receipient is <2> ?!" Problem noted by: Axel Reinhold > Add support for newer gpg versions - "last gpg pathes you sent to me work only on some keys!" Problem noted by: Axel Reinhold > Elm ME+ was adding < > around of address (not related to patch) and therefore gpg did not found key when on key there was no < > around addresses. Removed adding of < >. - Elmrc option verify-local-address did worked only for 'address' but not for '
'. Fixed that. NOTE: However verify-local-address works only when mailer option verify=yes works. - sendmail -bv {address} works only, when sendmail is installed as setuid root. Starting from sendmail 8.12 sendmail is no longer installed as setuid root. * This was causing problems form mailer elmrc option 'mailer=sendmail; allow-set-sender=yes' > Do not use sendmail -bv {address} to verify envelope sender address if that test was failed on Configure. mailer option 'verify-set-sender' controls is sendmail -bv {address} called when envelope sender is set. - This also affects mailer option verify=yes, but default for that option is verify=no anyway. - These problems accours when mailer option have setting mailer=sendmail (default). This do not affect mailer=submission setting. - Changed processing of format on lib/output.c, lib/debug.c so that zero width format should work... - Added option -E (ignore errors on arg) elmrc-write - Used -E option on final elmrc-write -G -I elm.rc.old-values * Change from Elm 2.5 - Added struct knode to src/screen/knode.c (!!) [K1] (!!) struct knode is not identical with version on Elm 2.5 - Some cleanup: cur_Raw(OFF) => cur_leave_screen(), cur_leave_screen_signal() cur_Raw(ON) => cur_enter_screen() Raw(OFF|RAW_FROM_SIGNAL) => signal_leave_screen() Raw(ON|RAW_FROM_SIGNAL) => signal_enter_screen() NO_CHARSET flag removed (not used) - Renamed some variables on src/screen/ - If on terminal c_iflag have IUTF8, assume UTF-8 for input and give warning is locale is not UTF-8. Display charset is also tried to change to UTF-8. - Add support [ $VARIABLE =~ "joker*string" ] condition on terminal.info - Add support for condition on ISO-2022 and ISO-2022/DW line - However enabling utf-8 (when xterm is started without utf-8 ie. xterm +u8) with iso2022 codes seems cause crash (Segmentation fault) on ubuntu (XTerm(203)), so by default it is not assumed. - Otherwise it can be assumed on elm.terminalinfo on that TERM=xterm supports ISO2022 sequences for set utf-8 charset on terminal if XTERM_VERSION environment variable is set). This environment variable is introduced on XFree86 4.6.0. - On doc/terminal.info is that code, but commented out. - Strip pathnames from debug output - Before adding charset=UTF-8 automatically to attached text files check that they look like utf-8. If check failed then charset=UNKNOWN-8BIT is added instead. - Add support for condition on DW line of terminal.info This is used lines like xterm DW UTF-8 [ $XTERM_VERSION=~"XTerm(*)" ] * Changes from Elm 2.4ME+ PL123e (25) - Fix panic STRING PANIC in cs_unknown.c:1993:cs_estimate_clip_unknown >>>printable_len not supported Emergency exit taken! All temp files intact! on some cases when locale-charsets elmrc option is used. - Fixed some problems with Configure on ubuntu. - When locale-charsets = UTF-8 was effect, Elm ME+ was printing [ Charset US-ASCII unsupported, converting... ] > Be sure that cs_unknown gives flag CS_universal_set for UTF-8 as cs_utf was giving. - Avoid error message "Failed save message to folder XXXX" when saving mail from V)iew digest -command and embedded mail do not end to newline. - Hide Bcc when forwarding. - When checking that can display charset represents all characters from charset of mime part, compare also ISO 2022 sets. This affect message [ Charset XXXX unsupported, converting... ] versus [ Charset XXXX converted... ] - When catenating strings also compare ISO 2022 sets, when selecting result charset. - NOTE: On catenation conversion is done still via Unicode even when it is possible to do just via copying iso2022 banks. This means that there must be mapping defined for every ISO 2022 set on charset. See chapters "One Eastasian recipe" and "ISO2022 maps information" for details. - Check if mail text can be converted to US-ASCII - If if mail text can be converted to charste given on text-charset elmrc option, UTF-8 charset is used as fallback if conversion is not possible. - If there is bad characters on buffer, Text part have bad characters. Send anyway? is prompted. - If any conversion is not found, Failed convert characters on part . Send anyway? is prompted. - If other than text-charset or US-ASCII is used on conversion Using charset instead of on part %d. Send anyway? is prompted. - Parsing of [keywords] on main buffer is changed. - ']' inside of " " quotes do not end keyword. - Text after [keyword] (before end of line) is preserved. - Following error messages are added: * NUL character on keyword line * Quotation error on keyword line, no space before quotation. * Missing ending keyword ] on line starting with [ * Quotation error on keyword line, no ] outside of quotations * Empty [] on keyword line * Keyword [] requires parameters. * Keyword [] do not have parameters. - Added convert_string2() - Failure of conversions is not detected if conversion is done to charset with type=iconv (libelmme-tls.so module). - Removed prompt_menu3 from verify_transmission() on src/mailmsg2.c - Replaced some want_to() with prompt_letter() - Changed charset/UNIDATA/UNIDATA2.TXT from Unicode 2.0 to charset/UNIDATA/UnicodeData-Latest.txt from Unicode 2.1.9 > That adds characters U+FFFC OBJECT REPLACEMENT CHARACTER U+20AC EURO SIGN - There is new general categories on file: Pi = Punctuation, Initial quote Pf = Punctuation, Final quote > Added these to lib/unidata.c > unidata.bin uses UNIDATA21_magic (0xFB02) instead of UNIDATA_magic (0xFB00) because of new categories. - When reading mailbox, test= arguments from mailcap is executed. That may cause that screen is cleared. - Fixed message [ Use 'Rl' to reply to list or 'I' for list info. ] on case when there is header List-Post: NO (posting not allowed on this list) - Changed "Metamail selection" menu so that default answer is 'p' on last question if any of mailcap questions are answered. - Code for detecting -----BEGIN PGP on parse_body_routine() was messed up on some merge. New files: src/screen/knode.c charset/UNIDATA/ReadMe.txt charset/UNIDATA/UnicodeData-Latest.txt Removed files: charset/UNIDATA/README.TXT charset/UNIDATA/UNIDATA2.TXT Corresponding quotes from Elm 2.5 PL7 Changes file: [K1] Totally new curses subsystem. Changes on Elm ME+ 2.5 PLalpha11 compared with Elm ME+ 2.5 PLalpha10 -------------------------------------------------------------------- Note: You must create directories lib/mbox src/url src/block src/list lib/misc utils/readmsg before applying this patch! * Changes from Elm 2.4ME+ PL123 (25) - Added view folder command to pre-send menu. This allows attaching messages from current mailbox to mail. - Some changes on mail() -function. - Moved mailbox related code from libelmme-base.so to libelmme-mbox.so. - Removed provides_shared_CT - Moved some showmsg loops from elm.c to new file showmsg_1.c - Changed implementation of elmrc option "extra-mailbox-dir". - Changed implementation of elmrc option "attachment-dir". - Changed implementation of elmrc option "gpg". - Changed implementation of elmrc option "metamail". - Changed implementation of elmrc option "pgp2". - Changed implementation of elmrc option "pgp5-dir". - Changed implementation of elmrc option "print". - Moved some code from lib/charset.c to lib/mparse.c - UTF-8 is now required character set on code as is US-ASCII. - When catenating strings prefer UTF-8 charset instead of display charset - Give error if -s 'subject' option is given several times to Elm. - On batch mode standard input is read for mail only when -i (include file) option is not given (but actually -i option is not allowed on batch mode.) - Added mp_list_set_anon() and mp_lookup_anon() to src/screen/menu_param.c. - Some cleanup on mailmsg1() - Changed default of elmrc variable "names" to NO - Removed wra_ReadCh() from src/screen/ - Removed ReadCh (but not menu_ReadCh()) - Removed cur_ReadCH from src/screen/curs_input.c - Added to menu_ReadCh() / menu_ReadCh2() flag READCH_poll, this waits one second for character. If character is not given or POLL_METHOD is not set, this returns TIMOUT_MARK as flag (or character) - Clear redraw flag of prompt area (ie. clear prompt area) after menu_redraw_children() only if redraw flag is set. - Moved main messages menu loop to src/mailbox.c from src/elm.c - exit_prog() no longer call leave but instead returns 1 if caller should exit. - exit_prog() is renamed to exit_mailbox() - quit() no longer call leave but instead returns 1 if caller should exit. - Added some support for RFC 1738 URL -syntax RFC 1738: Uniform Resource Locators (URL) - Added some support for RFC 1808 URL-syntax RFC 1808: Relative Uniform Resource Locators - Added -O 'url' (open url) option to Elm. Error is given if this option is given several times. WARNING: This option does not ask any confirmation. - Added --confirm-url option. This asks confirmation for url given on -O option. - Added support for RFC 2368 mailto -urls. - It is unclear what character set is used on URLs. This especially effects subject header and body pseudo header on mailto url. Following rules are used: - If URL includes non-ascii characters, charset of (decoded) URL is implied charset of URL - If URL includes %XX encoded characters > %7F (ie. non-ascii) charset of decoded URL is UTF-8. This means that %XX encoding is assumed to be use UTF-8 character set. - Note that these two rules are on conflict if some, but not all non-ascii characters are % -encoded. - Added dummy handler for http -URLs. - Added some support for imap -URLs. This support is incomplete and does not fully follow RFC 2192. - ;AUTH= is not supported - ;TYPE= is not supported - ;UIDVALIDITY= is not supported - ;SECTION= is not supported - ;UID= is not supported * Basically only imap mailbox can be specified, not indivual message or list of messages (search result). That is like imap://user@full.hostname/inbox - imap server can not be without mailbox. That is like imap://user@full.hostname/ it is not currently available. - Command elm -O imap://user@full.hostname/inbox can be used. That open imap folder similarly than command elm -f user@full.hostname:inbox - RFC 2192 says that native separator of imap is used as hierarchy separator. This implementation accepts URL separator (/) as hierarcy separator (even when native separator differ.) - Numbers 0-9 are also valid for imap atom. No need to convert parameter to string or literal. - Added RFC 2369 headers to known headers: List-Help, List-Subscribe, List-Unsubscribe, List-Post, List-Owner, List-Archive - Added "List-ID:", "List-Help:", "List-Subscribe:", "List-Unsubscribe:", "List-Post:", "List-Owner:", "List-Archive:" to default weedout list. - RFC 2369 List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner and List-Archive are parsed. - Added Generic R)eply -command. That forms following subcommands: Ra Reply to all Rl Reply to a mailing list Ro Reply to the owner of a mailing list Rt Reply to the author of a message - Added Mailing list I)nfo -command. Il Mail a message to a mailing list Io Mail a message to the owner of a mailing list Ih Mailing list help Ia Mailing list archive Is Subscribe a mailing list Iu Unsubscribe a mailing list Note that most of these commands are only able to send mail, so only mailto: -urls works. - Commands Ih Mailing list help Ia Mailing list archive Is Subscribe a mailing list Iu Unsubscribe a mailing list accepts also (subset of) imap: -urls. These commands cause that a new mailbox is entered (visited) when imap: -url refers to whole mailbox. Current mailbox is not closed so this works differently than c)hange folder -command. Also when the mailbox visited is left, messages are not moved to the =received folder. Commands that are available when visiting a mailbox via url are somewhat limited (changing of folder for example is not available). Actually probably command Ia Mailing list archive makes sense from these. - When remote url is referenced, elm asks confirmation from user before entering mailbox/folder. - Also anonymous imap urls such as List-Archive: are supported. - Added common movement routine to src/movement.c. This is used by src/attach_menu.c and src/list/select.c - Made some changes to attachment screen. - Removed cur_Write_to_screen() - Removed cur_PutLineX() - Added 'E' as E)xtended command -prefix. - Added 'Ed' as duplication removal mode. Duplicare removal requires that messages have Message-ID. When duplicates are collected also some other headers than Message-ID is checked that they are same. Duplicate removal does not delete messages but shows duplicates as one message on mailbox menu. Status changes are copied to all duplicates when message is read, tagged, flagged or marked for deletion. - NOTE: Mailing lists are not currently supported. Specially duplicates are not currently removed if mail has any List-* -header. - Also on duplicate removal mode folder state does not work and therefore commands which use readmsg. On duplicate removal mode pipe (|) command is not available. - Reimplemeted thread sorting (old code did not work with duplication removal mode.) * NOTE: threads are still based on subject (as on old thread sorting.) - Added 'Et' as view t)hreads -command. On viewing thread return can be used to select particular thread or 'd' can be used to mark all messages of thread to be deleted and 'u' can be used to mark all messages of thread to be undeleted. * NOTE: It is not possible to delete threads. Even when all messages are removed from thread (when messages are actually deleted via resync ($)), thread is still visible if 'Et' command is used. - Added elmrc option "thread-sortby". This specifies sorting order for thread view. Possible values are "sent" and "subject" (also "reverse-sent" and "reverse-subject"). - If "unstable-reverse-thread" is set, reverse-sent sorting of "thread-sortby" is based on lastest message on thread. Therefore thread moves to new location, when new message arrives to thread. - Some code changes on src/messages/ - Moved show_message_status from lib/mbox/mbox.c (originally from src/screen.c) to src/messages/status_common.c - Moved status handling from src/menu_common/mailbox.c to src/messages/status_common.c. Routines on src/menu_common/mailbox.c does just forwarding. - Removed adds_only argument from newmbox_1(). That is always FALSE. New mails are read with read_new_mails() function. - Added "Eo" as o)pen mailbox to current view -command. This works similarly with several -f options on command line. That command opens new mailbox without closing current mailbox. - When displaying some text/plain parts inside of multipart/mixed they are catenated without adding "[ Part #X/X: ... " text between them. Specially allows body part to change inside of line. That should allow changing a charset inside of line. * RFC 2046 says: "NOTE: The CRLF preceding the boundary delimiter line is conceptually attached to the boundary so that it is possible to have a part that does not end with a CRLF (line break)." - Some code changes on content-transfer-encoding decoding routines. - State routines did not handle the situation where charset of mail changed in the middle of the line. Now current line buffer is converted to new charset in that case. - Added V)iew digest as mailbox to 'after paging' (showmsg_c) commands. - Removed valid_option_type() - Removed charset_valid_magic() - Removed valid_stream() - Moved some code, which is used only by elm and config file parsing tools, from libelmme-base.so to libelmme-misc.so. - Moved lib/mediatype.c from libelmme-base.so to libelmme-misc.so. It seems to be used only on Elm so it should not be on library at all. - Changed load_terminal_map() to use malloc_gets() instead of fgets() - Added load_mime_types_map() to libelmme-misc.so - Added dump_mime_types_map() to libelmme-misc.so - Added new tool elmmimetypes, which outputs mime.types or elm.mimetypes file. - Now elm.mimetypes file is generated to elm's library directory during installation. During Configure file goes to bin/elm.mimetypes. - Now mime.types file may include magic numbers or signature (pattern). - It is recommended that both magic numbers and extension is given for mime types. - doc/mime.types is updated. - Builtin mime types map includes now magic numbers so these file extensions do not match if the file content do not match the magic numbers (or file signature). - Changed handling of elm.mimetypes and mime.types - If charset is defined on some other file than elm.mimetypes or mime.types, these definitions are not moved. - Removed "compatcharsets" (marked as obsolete) - Removed "iso646-charsets" (marked as obsolete) - Moved some code from lib/charset.c to lib/misc/charset.c - Elmcharset option -c merges elm.mimecharsets or mime.charsets file with file given as argument. - Configure does not any longer read elm.mimecharsets from elm global library directory. Instead existing elm.mimecharsets from elm global library directory is merged during installation (with -c option on elmcharsets). - Elmmimetypes option -c merges elm.mimetypes or mime.types file with file given as argument. - Configure does not read elm.mimetypes from elm global library directory. Instead existing elm.mimetypes from elm global library directory is merged during installation (with -c option on elmmimetypes). - New values without merging are written to elm.mimetypes.NEW, elm.mimecharsets.NEW, and elm.terminalinfo.NEW during installation. - Configure reports on SunOS 5.10: langinfo.h found, testing nl_langinfo(CODESET) support ... nl_langinfo(CODESET) seems work, charset for C locale is 646 wchar.h found So 646 need to be mapped to ASCII. - Added elmrc option "check-type-pattern". If set (default), mime types are checked, when paging mail, agaist elm.mimetypes and mime.types. If content does not match to any pattern (magic number) given for type, that causes a warning. If on elm.mimetypes or mime.types is any entry for type without pattern, warning is NOT printed. If warning is printed, confirmation is required. This mainly protects routines on mailcap to get bogus types. Notice that this does NOT protect metamail (if used). - Added elmrc option "attachment-fix-extension". If set (default), default file extension is set according of mime type (appending after existing extension of given filename). - If either "attachment-fix-extension" or "check-type-pattern", mime types are checked, when saving mail, agaist elm.mimetypes and mime.types. If content does not match any pattern (magic number) given for type, that causes a warning. - Default file extension is not provided, if attachment content does not match mime type. - When default extension is provided, file browser adds that extension after enter is pressed. Then user is asked to accept that extension by pressing enter second time. - Decoding of content-transfer-encoding of attachments of attachment is changed. Now content-transfer-encoding is decoded to temporary file and after that user is asked about filename. The old behauviour was to decode content-transfer-encoding directly to file given by user. New behauviour is required for checking pattern (magic number) of attachments. - If content-transfer-encoding is unknown, default extension is ".encoded". - Folder and file browser now notices if only directory name prefix is given (ie. name ending in /) and asks confirm (second enter) of name before accepting it. - display_central_message() is called nowhere. Removed it and replaced set_central_message() with lib_transient(), - Small optimization for default_unidata() - Small optimization for mail_gets() - Small optimization for parse_body_routine() - Small optimization for cs_clip_from_binary() - Small optimization for string_cmp() - Optimize find_header() by changing data structure. - Changes on mbx_mark_keep_normal() - Optimize mbx_copy_body_spool() - Changed read_line on lib/mbox/localmbx.c - cuserid() is not used so it needs not be in lib/opt_utils.c either. - removed pmalloc() and lib/pmalloc.c -- they are not used - Converted readmsg to use lib/mbox/mbox.c if state file does not exist. - Now readmsg works also for remote mailboxes - readmsg no longer removes empty lines from the end of message. - Small change on folder state file format. - Added elmrc option readmsg which tells path to readmsg -command (used internally of elm). > 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 {bin}/filename == file on Elm's binary installation directory And also same epansions than expand_env(): ~/filename == file on home direccory Environment variable components - Moved encode.c from src/ to melib/ - Moved part of header_parse_helper() from src/messages/header_alloc.c to melib/parse_helper.c - readmsg now outputs only the text only part of a mail by default. - Added -r (do raw output) option to readmsg. - Pipe (|) -command now uses -r option on readmsg. - Readmsg now decodes mime headers, if -r option is not used. - If "store" is given to elmrc option "show-header-errors", header errors are not immediately printed. Letter 'h' is shown as second status letter on that case. - If elmrc option "long-encoded-headers" is not set, Elm ME+ tries to wrap mime encoded headers so that encoded lines are shorter than 80 characters. If elmrc option "long-encoded-headers" is set (default), Elm ME+ tries to wrap headers that way that actual data (without encoding) is shorter than 80 characters. This produces over 80 character (and violates MIME) but may produce nicer result when headers are displayed with encoding decoded (if some part of header is not encoded). This is mainly used on Subject: -header. - Removed STATE_in_string from lib/state.c. It is not used. - Removed STATE_out_string from lib/state.c. It is not used. - Allow setting "receivedmail" elmrc option (normally "=received") to "none". This disables Move read messages to "received" folder? (y/n) question. When "receivedmail" is set to "none", ">" can not be used as folder name. Requested by: Laura Kataja - Allow setting "sentmail" elmrc option (normally "=sent") to "none". When "sentmail" is set to "none", "<" can not be used as folder name. - If "sentmail" is set to "none", "copy" defaults to OFF. - Removed lib/move_left.c. It is not used. - "The attached patch to elm PL122 causes THREAD sorting to go to the bottom of the mailbox if there are no unread messages, instead of the top. This is already done for sorts in mailbox order, sent, and received order, but I use thread by default, so this patch is helpful to me." From: Bruce Momjian - Let elm accept 'kb' from termcap also as backspace and not only VERASE value got from tty. - Allow marking messages deleted also with delete key ('kD' from termcap). - Let end key ('@7' from termcap) to go to the end of the message list. Corresponding to that the home key goes to the beginning of the message list. - Temporary copy for imap and pop folders is not longer /tmp/mbox.user@host or /tmp/mbox.user@host:tail. Instead it is /tmp/mbox.$USER.host.XXXX.XXXX - It is possible to use usernames which include / -character with IMAP -url syntax (/ need to be URL escaped). For example elm -O imap://dom%2Fuser%2Fmbx@server/INBOX ( Some exchange servers uses usernames like dom/user/mbx ) See also chapter "Mapping to content-type" - NOTE: readmsg now filters only mail headers so that readmsg -w From_ 1 does not work (only -r option shows mailbox separator line.) - NOTE: Because Elm 2.5 builtin mime.types mapping (*) includes txt text/plain all text/plain mime part (or attachments) when saved got extension ".txt" if attachment-fix-extension is set (default). (*) As on Elm ME+ 2.5 PLalpha7 - Removed hdrs/regexp.h - sh Configure -SS works as sh Configure -S except that it only subsitutes *.SH files. - Fix crash when elm -S is called. - Fix canceling of mail crash. - Now it is checked that given option combination makes sense with implied operation mode. - Removed -R rel_path argument from elmregister. It is not used. - Added -A alternate_source argument to elmregister. - This argument is needed on doc/ installation when Configure -O option is used. - Fixed "make install" when Elm ME+ is build on separate build directory (with Configure -O option). * Changes from Elm 2.4ME+ PL123a (25) - "Looking at my incoming mail I noticed that there is no space (empty line) between the end of one message and the beginning of the next message". Reported by: Noam G. Nudelman > Fixed regression from Elm ME+ 2.5 PLalpha10 or Elm 2.4ME+ PL122j (25). With IMAP fix from 122j content length does not include ending empty line of mail. Fixed mbx_mark_keep_normal() for that. WARNING: On MMDF case mbx_mark_keep_normal() is not fixed and is probably broken. - elm.rc may include 'unidata = none'. Was failing of 'elmregister replay' because of chmod is failing. > Instead do chmod on elmunidata - Same also for 'bindata = none' (do chmod on elmunidata). * Changes from Elm 2.4ME+ PL123b (25) - Avoided error message bin/elmregister: [trim_list] Bad command letter: s - Fixed valgrind reported memory leak: 77 bytes in 2 blocks are definitely lost in loss record 11 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) by 0x40DDB39: elm_vmessage (output.c:1302) by 0x40DE1B1: elm_message (output.c:1481) by 0x809F789: set_folder_window_title (screen.c:82) - Fixed valgrind reported memory leak: 57 bytes in 1 blocks are definitely lost in loss record 8 of 22 at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306) by 0x40E96C6: safe_realloc (safemalloc.c:64) by 0x40FBE18: strmcat (strmcpy.c:40) by 0x40416EC: strXcat (terminal.c:91) by 0x4043F64: terminal_set_title (terminal.c:1624) by 0x80B1865: set_terminal_titles (termtitle.c:59) * Changes from Elm 2.4ME+ PL123c (25) - Fixed crash when om elmrc have ### pgp2 = none "Is that "&&" correct? Looking at other "none" comparisons in the file, it isn't. Patch attached, and problem confirmed fixed." From: Bruce Momjian * Change from Elm 2.5 - Added .elm/mailing.lists file similar than .elm/mlist on Elm 2.5. Global file is $etc/elm.mailinglists (on Elm 2.5 it is $lib/mlists) [J2] > Note that syntax, however, is different. Specically: - Address matching is same as on alternatives, so incomplete match requires wildcard (*) characters. - Tag lines are like [to-me] ------ [to-many] ====== [cc-me] ==cc== when on Elm 2.5 they are [to-me] (------) [to-many] (======) [cc-me] (==cc==) - List address pattern is name when on Elm 2.5 address pattern is name submatch (name) - There is also alternative matching with tag [list] name List-id: - Made some changes on implementation of okay_addr.c - Added new tool elmmailinglists, which outputs mailing.lists or elm.mailinglists file. - Configure now copies doc/mailing.lists to bin/elm.mailinglists for installation - Configure -M and Configure -S also (re)generates bin/elm.mailinglists - Elmmailinglists option -c merges elm.mailinglists or mailing.lists file with file given as argument. - Configure does not read elm.mailinglists from elm global library directory. Instead existing elm.mailinglists from elm global library directory is merged during installation (with -c option on elmmailinglists). - New values without merging are written to elm.mailinglists.NEW during installation. See also chapter "Mailing lists information". * New elmrc options from Elm 2.4 PL123 (25) thread-sortby check-type-pattern attachment-fix-extension long-encoded-headers readmsg * New command line options from Elm 2.4 PL123 (25) -O Open url --confirm-url Ask confirmation * New tools from Elm 2.4 PL123 (25) elmmimetypes * Added files from Elm 2.4 PL123 (25) src/view_folder.c lib/mbox/Makefile.SH lib/mbox/def_mbox.h lib/mbox/init.c lib/mbox/remote_mbx.c lib/mbox/shared_mbox.c hdrs/mboxlib.h hdrs/state_imp.h lib/mbox/state.c lib/mbox/headers.c hdrs/connection_imp.h src/showmsg_1.c src/url/Makefile.SH src/url/def_url.h src/url/url.c src/url/url_element.c lib/mparse.c src/url/url_path.c src/url/no_url.c src/url/mailto.c src/block/block.c src/block/def_block.h src/block/fileblock.c src/block/stringblock.c src/list/def_list.h src/list/Makefile.SH src/list/list.c src/list/reply.c src/list/select.c src/list/info.c src/movement.c src/extended.c src/duplicate_removal.c src/messages/duplicate.c src/messages/status.c src/messages/status_common.c src/openmailbox.c lib/misc/Makefile.SH lib/misc/def_misc.h lib/misc/init.c hdrs/misclib.h lib/misc/terminal.c lib/misc/mime_types.c utils/elmmimetypes.c doc/elmmimetypes.1 ConfTool/GenMimetypes lib/misc/charset.c src/url/http.c src/messages/thread.c src/thread.c src/messages/thread_messages.c src/view_one_thread.c melib/type_check.c utils/readmsg/Makefile.SH utils/readmsg/def_readmsg.h utils/readmsg/fstate.c utils/readmsg/wrapper.c hdrs/readmsg.h utils/readmsg/folder.c lib/mbox/error.c melib/parse_helper.c src/url/imap.c src/mailbox.c src/list/visit_mailbox.c * Removed files from Elm 2.4 PL123 (25) lib/move_left.c * Renamed files from Elm 2.4 PL123 (25) lib/mbox.c => lib/mbox/mbox.c lib/localmbx.c => lib/mbox/localmbx.c lib/savefolder.c => lib/mbox/savefolder.c lib/imap.c => lib/mbox/imap.c lib/pop.c => lib/mbox/pop.c lib/mk_lockname.c => lib/mbox/mk_lockname.c lib/realfrom.c => lib/mbox/realfrom.c lib/forwarded.c => lib/mbox/forwarded.c lib/header_cmp.c => lib/mbox/header_cmp.c lib/expires.c => lib/mbox/expires.c lib/parsarpdat.c => lib/mbox/parsarpdat.c lib/getword.c => lib/mbox/getword.c lib/mediatype.c => lib/misc/mediatype.c utils/readmsg.c => utils/readmsg/readmsg.c src/encode.c => melib/encode.c * Added files from Elm 2.5 lib/misc/mlist.c (reimplementation from lib/mlist.c) New tools: elmmailinglists New files: lib/misc/conf_writer.c utils/elmmailinglists.c doc/elmmailinglists.1 doc/mailing.lists ConfTool/GenMailinglists Removed files: hdrs/regexp.h Corresponding quotes from Elm 2.5 PL7 Changes file: [J1] New "mime-types" file added to $libdir. [J2] Added the mailing list stuff done by Paul Close Changes on Elm ME+ 2.5 PLalpha10 compared with Elm ME+ 2.5 PLalpha9 ------------------------------------------------------------------- * Changes from Elm 2.4ME+ PL122j (25) - Elm ME+ failed to wrap mime encoded Subject: header under 80 characters on some situations. - Fix return value of get_word_from_string() - Fix case where "Metamail selection" -screen actually not prompted for metamail. - Fix segmentation violation -crash when elm is called as elm --mailbox-title=xxx -f x -f z (when given folders do not exists.) - Fix (or work around) error Message contains bare newlines when saving to some IMAP servers. * Changes from Elm 2.4ME+ PL122k (25) - Make little better decoding of MIME encoding of subject. Specially allow more than one space between mime encoded words. - Changed spelling of "Millenium" to "Millennium". Suggested by: Rob Kendrick * In my English to Finnish dictionary there is a word "millenium". And there is no word "millennium" in the dictionary. But apparently my dictionary is wrong. * Changes from Elm 2.4ME+ PL122l (25) - Fix crash when loading garbage spool folder (ie. mailbox). - Elm failed add / to tmp elmrc variable when it was initialized from $TMPDIR - Some compilation fixes on SunOS. * NOTE: Changes for SunOS 5.10 are only compile tested. It is not tested that they produce working code. - tputs() workaround on Elm 2.4ME+ PL122d (25) causes compilation warning on SunOS, if compiled with gcc. Use workaround only when gcc is not used. - Change from Elm 2.5: - Changed a text on Configure about disabling shell escapes. [I1] Corresponding quotes from Elm 2.5 PL7 Changes file: [I1] Add a warning to Configure about disabling shell escapes (from Keith Neufeld) Changes on Elm ME+ 2.5 PLalpha9 compared with Elm ME+ 2.5 PLalpha8 ------------------------------------------------------------------ * Changes from Elm 2.4ME+ PL122f (25) - When saving mail forder time on "From " -separator line was shifted by one hour if it was on different zone than current time (ie. on daylight saving time versus normal time). - Folder browser was showing wrong entry on prompt line after TAB -character. * Changes from Elm 2.4ME+ PL122g (25) - Fix expensive debug loop on imap.c (so that loop is not run if dubugging is not used.) - Fix redraw handling on do_pipe - "elm -vvv" was printing wrong output: Mailer: unknown; path="/usr/sbin/sendmail" instead of Mailer: sendmail; path="/usr/sbin/sendmail"; add-from="dont"; supported-bodytype="8bit"; supports-dsn="yes" (actually on one line) * Changes from Elm 2.4ME+ PL122h (25) - "I built your latest elm today and came across a smail issue as I build it on several architectures from the same source tree. I found make clean fails to remove utils/reghelper.o which leads to a failure to link obvously..." Reported by: janjaap@stack.nl (Janjaap van Velthooven) > Added reghelper.o to UTIL_OBJ - Added 'V' - command (View digest as mailbox) to help. - Added resort_mailbox() to leaving of A)ssemble message fragments -command/mode. Otherwise main mailbox is incorrectly sorted if new mail was arrived when A)ssemble message fragments -mode was active. - Fix possible redraw loop when prompting password - On A)ssemble message fragments -command menu there is "o)ptions" -command, but actual command was missing. Added 'o' to command loop. - On digest viewing menu there is "o)ptions" -command, but actual command was missing. Added 'o' to command loop. * Changes from Elm 2.4ME+ PL122i (25) - If mime part (or attached file) did not end in a newline, garbage from the next part (until the first LF) was included in the end of that part. That happened when the file or mime part didn't have an LF in the end and it was not required to be content-transfer-encoded. > Fixed copy_part() - Change from Elm 2.5: - Added command 'L' (move to last line of page) [H1] - Added command 'H' (move to first line of page) [H1] NOTE: http://www.ozone.fmi.fi/KEH/ do not exists. Use http://www.elmme-mailer.org/ instead. Elm ME+ 2.5 exists on http://www.elmme-mailer.org/elm-ME+2.5.html and ftp://ftp.elmme-mailer.org/elmme-mailer.org/src/elm-ME+2.5/ Corresponding quotes from Elm 2.5 PL7 Changes file: [H1] Added vi-style `H'' and `L'' commands to go to the top |and bottom of the current indexed (Index, Alias) screen (from Keith Neufeld) Changes on Elm ME+ 2.5 PLalpha8 compared with Elm ME+ 2.5 PLalpha7 ------------------------------------------------------------------ - "Bad News - I tried to use it to send a jpeg attachment EXACTLY like I did yesterday with alpha6 and it died ie MIME PANIC: application/octet-stream is not known MIME PANIC in attach_menu.c:2165:mime_t_clear >>>application/octet-stream is not known Emergency exit taken! All temp files intact!" Reported by: James Corey > Code assumed that application/octet-stream was predefined type on lib/mediatype.c. Instead just use create -flag on give_media_type2() call. - Dropped support of AT&T Mail Forms. That is Content-Type: mailform Also correspond elmrc option 'forms' is marked as obsolete. * Changes from Elm 2.4ME+ PL122e (25) - O)verride charset -command did was not effect on non-MIME messages. - Characters on "Change to which folder:" -prompt was echoed to wrong place after "Already reading that folder!" -message. - Removed extra redraw flag from mail() Removed files: src/forms.c Removed elmrc options: forms form Changes on Elm ME+ 2.5 PLalpha7 compared with Elm ME+ 2.5 PLalpha6 ------------------------------------------------------------------ - init_defaults() was called twice on src/init.c - "I tried your patch for ELM 2.5 alpha5 and it failed to compile on Solaris. So tried the same thing with the new ELM 2.5 alpha6. Same thing." "cs_wfallback.c: In function `init_fallback': cs_wfallback.c:165: `Debug' undeclared (first use in this function)" Reported by: James Corey > Moved DEBUG_VAR(Debug,__FILE__,"charset") outside of #if 0 - Some changes on code how content-type of attachment is detected. - Added .txt extension for built-in default as text/plain (text/plain is generally default on attachment code, but that also overrides application/octet-stream if binary data is found.) - Allow on [include -command to left out content-type. [G1] In that case mime.types file and same internal mapping is used than on Attachment Menu. However there is no default content type as is on Attachment Menu. - Note that RFC 2231 encoding is NOT done MIME content-type parameters given on mime.types file! Elmrc option "mime-parameters" have no effect on that case. - Now charset= -parameter is added automatically on [include -command, if type is text and on file have 8-bit data. This is similar than on Attachment Menu. - Elm2.4ME+ PL0 (25) supported wildcard '*' on alternatives list. Support was probably lost on Elm2.4ME+ PL54 (25). - Added support again. However @ -character should be included on alternatives -list and not replaced with wildcard. [G2] - Character '*' matches to any number of charaters and '?' character match to any single character. - Added /usr/sfw/bin:/usr/ccs/bin to PATH on Configure for Solaris. Hint from: James Corey - Let Configure locate ar and nm (and ranlib) instead just using PATH - Let makefiles use ar -command located by Configure - Use both curses.h and term.h on SunOS (Solaris), not only term.h - Some changes of SunOS (Solaris) - Moved curses.h and term.h including from curses.c to def_screen.h before including termios.h. - SunOS 5.10 (Solaris) have problematic prototype for tputs() and do not have prototype for tgoto() when __STDC__ is defined. Added some workarounds. * Changes from Elm 2.4ME+ PL122d (25) - On some cases filename -parameter was generated twice to Content-Disposition -header. - Tagged flag of current message was not cleared on V)iew digest command. - Allow canceling Already have selection criteria - add more? prompt with Ctrl-C (interrupt character) on systems which supports POSIX termios. - Fix USGNAMES compilation. - browser_descend_local() did not handled correctly case where given filename did not included path (and there was directory already selected.) Corresponding quotes from Elm 2.5 PL7 Changes file: [G1] The content-type is now optional to [include ...]. That is, you can say just [include filename] and Elm will guess both the content type and encoding. [G2] The wildcard '*' is now allowed in the alternatives list. For example, wfp5p@*virginia.edu matches user wfp5p for all machines at virginia.edu. (from Michael Elkins ). Changes on Elm ME+ 2.5 PLalpha6 compared with Elm ME+ 2.5 PLalpha5 ------------------------------------------------------------------ * Changes from Elm 2.4ME+ PL122b (25) - 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. * Changes from Elm 2.4ME+ PL122c (25) - 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 - "I configured ELM 2.5 alpha 5 just like my ELM 2.5 alpha 4 that compiles nicely and got the following error from init.c on Solaris 8 gcc. <...> In file included from init.c:14: ../../hdrs/shared_imp.h:118: parse error before `*' init.c:18: `rc_DT_SHARED' undeclared here (not in a function)" Problem noted by: James Corey > Elm ME+ failed to compiled when USE_DLOPEN and SHARED_LIBS was not defined. - Added -O object-dir argument to Configure - sh somedirectory/Configure.SH no longer build ELm ME+ on somedirectory. Instead current directory is treated as implicit -O `pwd` option of Configure. [F1] - Configure itself still run on UU -directory on source tree. - Some untested SunOS 5 changes to Configure. Corresponding quotes from Elm 2.5 PL7 Changes file: [F1] Added Chip Rosenthal's change to allow builds in a separate directory. Changes on Elm ME+ 2.5 PLalpha5 compared with Elm ME+ 2.5 PLalpha4 ------------------------------------------------------------------ Note: You must create directory lib/mailer before applying this patch! * Changes from Elm 2.4ME+ PL122 (25) * 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 definition you need also doc/term/mlterm.ti from mlterm distribution. Install it with 'tic' command. Then you need start start mlterm with 'mlterm -y mlterm' option, otherwise mlterm sets $TERM to 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 definition 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) (X