$Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.254 2001/02/20 15:39:39 hurtta Exp $ Version Elm2.4ME+ PL0 (25) is based to version Elm2.4 PL24 ME8b+. Version Elm2.4 PL24 ME8b+ is based to version Elm2.4 PL24 ME8b. Version Elm2.4 PL24 ME8b is done by Michael Elkins . For details, look file ANNOUNCE.ME [ Michael Elkins posted the equivalent of MIME code in Elm2.4 PL24 ME8b to Elm Development Cordinator. Later changes are not posted to Elm Development Cordinator. ] Version Elm2.4 PL24 ME8b is based to version Elm2.4 PL24. Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25. Changes of Elm2.4ME+ PL89 (25) compared to Elm2.4ME+ PL88 (25) -------------------------------------------------------------- - "Being perfectly happy with the wildcard filename selection feature as of last elm me+ PL 87, my wish would be now that the same wildcard expansion could take place also for attached file names." Requested by: Emmanuel BIGLER > Modified gb_filebrowser() -- now elmrc option browser-wildcard-matching apply also when browsing files (instead of mailboxes / folders). - header_charset was not set on attach_menu.c, or newmail.c and from.c utilities. - "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest (88) version of Elm I got the following error: imap.c: In function `cache_open_imap': imap.c:2541: `h_errno' undeclared (first use in this function)" "There is no: #ifndef h_errno extern int h_errno; declaration in imap.c and this may cause the error." Reported by: Witold Witkowski - "If you retrieve mail from a POP server and then q)uit, you always get "OOPS! Storing of mail failed!" from leavembox.c. This appears to have started in elm-2.4ME+83." From: Jay Rouman > pop.c code added extra \n after mailbox separator (one \n was already added by ctime()) Changes of Elm2.4ME+ PL88b (25) compared to Elm2.4ME+ PL88a (25) ---------------------------------------------------------------- - In attach_menu.c header_charset was not set. Changes of Elm2.4ME+ PL88a (25) compared to Elm2.4ME+ PL88 (25) -------------------------------------------------------------- [ This is out of branch patch. ] - In newmail.c and from.c utilities header_charset was not set. - "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest (88) version of Elm I got the following error: imap.c: In function `cache_open_imap': imap.c:2541: `h_errno' undeclared (first use in this function)" "There is no: #ifndef h_errno extern int h_errno; declaration in imap.c and this may cause the error." Reported by: Witold Witkowski - Fix some Tru64 (aka Digital Unix, aka OSF1) compilation warnings. Changes of Elm2.4ME+ PL88 (25) compared to Elm2.4ME+ PL87 (25) -------------------------------------------------------------- Warning: Changes on header processing of copy_message_2() routine. Report if there are problems in mailbox update. - Accept Mime-Version: -headers like Mime-Version: 1.0 (NeXT Mail 4.2mach_patches v148.2) - USE_DOMAIN did not added domain to address when recipient was not not 'valid' local recipeint (ie. recipient was something other than user from passwd.) Problem noted by: Andrew Piziali - 'Simplify' metapager() -- use state_write_headers() - Added MIME header decoding routine give_decoded_header() to lib/headers.c - Use give_decoded_header() on state_write_headers() (actually on new routine state_write_header()) > Now displaying of =?...?= and "..." quotation is consistent on pager -- in both case quotation is undone (not just =?...?= case). > WARNING: Comments (ie. (...)) on addresses when paging mail no longer show in the original place - Added header_charset -field to 'struct header_rec' (that is passed as defcharset for MIME routines.) - Rewritten copy_message_2 to use give_decoded_header() (via state_write_header()) when decoding > Headers copied via copy_message*() routine when docode set is similarly processed as when paging paging mail. - Use give_decoded_header() on rfc822_decode() - Removed rfc822_header_converter(), rfc1522_decode_structured(), rfc1522_decode_comment(), rfc1522_decode(), rfc1522_decode_real(), decode_encoded_atom(), rfc1522_decode_word() from melib/mime_decode.c - "The domain name expansion code works for addresses such as: ltanner However, if I use the address: ltanner (Larry Tanner) the domain name is not appended to the username so the message bounces." Reported by: Andrew Piziali - Added new elmrc variable header-phrase-display-mode. Value "plain" tells that phrases should be showd as is and value "quoted" tells that phrases should be shown in quoted mode. This effects phrases on paged message headers and on message editing screen. Phrases on address headers and others (such as in-reply-to) are affected. - "The attached patch adds the KOI8-U charset support to elm+ME." From: Mikhail Teterin > Done some modifications to patch (original ptach did not initialized reverse mapping correctly.) New charsets listed: KOI8-U From RFC2319 (b) (b) On builtin charset list of ELM-ME+ Changes of Elm2.4ME+ PL87 (25) compared to Elm2.4ME+ PL86 (25) -------------------------------------------------------------- - src/aliaslib.c didn't compile when USE_DOMAIN was defined. - Allow user always select on Configure is noaddfrom and usedomain set or unset. - " Running Elm 2.4ME+82 with mailbox editing enabled, if I press "e" to edit my default mailbox, /var/spool/mail/andy, which contains a single PGP-encrypted and signed message, change something in a message header or body using my editor (vi), save the editing buffer, and exit the editor, Elm displays: Resynchronizing with new version of folder... and then redisplays the folder index screen with the folder reverted to its pre-edit state." Problem noted by: Andrew Piziali > mbx_end_edit_spool() was not really returning changes to default mailbox. Changes of Elm2.4ME+ PL86 (25) compared to Elm2.4ME+ PL85 (25) -------------------------------------------------------------- - Handle exceptions case on select() as errors case on poll() - Converted folder parsing on utils/from.c to use read_folder_headers() - Converted folder parsing on utils/newmail.c to use read_folder_headers() - Undo change (done on PL84) of default answer of question "Should included also when using $termlib and ?" for AIX. - " In addition to the problem mentioned above, no matter what I answer to the question in Configure: Termlib routines in '-ltermcap' from prior Configure run found Should included also when using -ltermcap and ? like 35 in src/curses.c, there appears "#include ". This produces the error included as an attachment. When commenting this line out, elm2.4.ME+.85 compiles well." Reported by: Noam G. Nudelman > Added possibility to add only curses.h. That is default for AIX. - Both and are included by default on Linux and IRIX. - " I would like to ask/suggest that just as /usr/local is used as the path for the "public executables" directory and "public libraries", why not by default use /usr/local as the prefix path for the man pages (/usr/local/man/mann and /usr/local/man/catn) ?" Requested by: Noam G. Nudelman > Use directory which is "near" to given bin directory as first candinate for manual pages location. - Now it is possible to give installation prefix directory to Configure. By giving installation prefix directory Configure selects directories as following: PREFIX/bin for public executables PREFIX/man/man1 for unformatted manual pages PREFIX/man/cat1 for formatted manual pages PREFIX/lib for public config files Is is also possible to asnwer "none" to question about installation prefix directory. In that case directories are prompted separately. - Installation prefix directory can be given also with -P option to Configure - "I am seeing the follwing compile errors with elm2.4.ME+.85. I can't find the definition of catgets()." "I am on BSD/OS 4.01." Reported by: Bruce Momjian > Include msgcat.c to library if msgcat is not available. [ Was dropped from compilation on Elm2.4ME+ PL83 ] - Added elmrc option default-nomime-charset to specify charset of non-MIME messages. Default is "SYSTEM". In other words non-MIME messages are assumed to use system charset. Note that old implicit default was that non-MIME messages uses display charset. Note that using of display charset for non-MIME messages does not work well, when display charset is switched to some other than system charset. - Call FlushBuffer() after writing of "Quick quit" so that the user gets immediately feedback. Moved files: src/expires.c => lib/expires.c Changes of Elm2.4ME+ PL85 (25) compared to Elm2.4ME+ PL84 (25) -------------------------------------------------------------- - Moved find_header(), classify_header() and locate_header() from melib/parse_util.c to lib/headers.c - moved delete_headers from melib/parse_util.c to lib/headers.c and changed calling convention. - moved headers structure building from state_read_headers() (melib/parse_util.c) to update_header_list() (lib/headers.c). - Added read_folder_headers() to lib/headers.c (using update_header_list()) and implemented folder parsing on src/newmbox.c with it. - Parsing of top level MIME headers uses now the same routine than parsing other MIME headers. - Added elmrc option show-header-errors. Setting this to false disables some error messages about duplicate (MIME) headers. - Changed description field to struct string * on mime structure. - 'struct string * ret' was incorrectly static on browser_descend_imap(). That caused Elm to crash, when login to the IMAP server failed. - IMAP flags given in LIST response were no correctly processed. - "I have a user wish for developers : I appreciate the new file selection feature with the "TAB" key however I am missing the wildcard selection feature (may be I do not use the new interface properly?) . In my "mail" directory I have several hundreds of files. So browsing page after page to find the one I need is much slower than before with the wildcard selection feature. They do not seem to be listed alphabetically either." Requested by: Emmanuel BIGLER > Implemented a subset of the old wildcard feature for folder browser. Characters '*' and '?' are treated as wildcards. Typing name with wildcard and pressing ENTER or TAB gives directory listing limited with that wildcard specification. That is limited to one directory -- directory paths can not include wildcards. Note also that it prevents selecting folder names that include '?' or '*' characters. - Added elmrc variable browser-wildcard-matching. Setting this variable OFF disables wildcard feature and therefore allows selecting filenames that include '?' or '*' characters. New files: lib/headers.c hdrs/hdr_imp.h Removed files: src/wildcards.c [ Undo Elm2.4ME+ PL84a patch before installing this patch. ] Changes of Elm2.4ME+ PL84a (25) compared to Elm2.4ME+ PL84 (25) --------------------------------------------------------------- [ This is out of branch patch. ] - 'struct string * ret' was incorrectly static on browser_descend_imap(). That caused Elm to crash, when login to IMAP server failed. - IMAP flags given in LIST response were no correctly processed. Changes of Elm2.4ME+ PL84 (25) compared to Elm2.4ME+ PL83 (25) -------------------------------------------------------------- - Elm does not detect that the user is trying to move to the same folder that she is on already. Problem noted by: Laura Kataja > Use selection_is_folder() instead of comparing current selection's name against folder name with strcmp() - Configure was using $i_stdlib on test for return type of malloc(). Hovever $i_stdlib is not longer set. - Delay the reading of local directory when needed - Added undocument "-X transcript_file" option to elm, newmail and frm (from.c). Note that transcript file will include passwords! - Change default answer of question "Should be included also when using $termlib and ?" to 'y' for AIX (just a guess). [ Change dropped on PL86 ] - Drop gethostname() routine from opt_utils. Instead call uname() on lib/read_rc.c if needed. This means that /etc/systemid is no longer readed. - elm -vv gives now information of gethostname() or uname() in use - Call FlushBuffer() after writing of "Send" so that the user gets immediately feedback (it may take time to encode big attachments) Changes of Elm2.4ME+ PL83 (25) compared to Elm2.4ME+ PL82 (25) -------------------------------------------------------------- [ WARNING: There are quite large changes on file and folder I/O. Especially saving mail to folders has changed much. There are also quite many changes in the remote mailbox (especially IMAP) code. So please report new bugs which you observe... ] - Moved local mailbox handling routines from lib/mbox.c to lib/localmbx.c. - Implemented some kind of connection caching for imap connections. This can be disabled by setting elmrc option imap-connection-cache to false. - These cached (unused) connections are closed when Elm checks new mail after "timeout" (elmrc value). - Cached connections are also closed with Ctrl-F (Forget passphrase) - By default Elm ME+ shows IMAP server greeting. Also other untagged OK messages, which do not have machine readable response codes, are shown. This can be turned off with setting elmrc variable imap-show-greeting to false. - By default Elm ME+ shows IMAP server's untagged NO messages. This can be turned of by setting elmrc variable imap-show-warning to false. - By default Elm ME+ shows IMAP server's untagged BAD messages. This can be turned of by setting elmrc variable imap-show-error to false. - By default POP server greeting is shown. This can be turned off with setting elmrc variable pop-show-greeting to false. - Show pop server closing message (however this is not show when resyncronizing ($)) - "Due to increased Micro$oft occupation some Russian messages tends to have Windows standard Russian encoding CP1251 and not KOI8-R as before. This patch required to view "windows-1251" marked messages on KOI8-R Unix display (via charset converting)." From: Andrey A. Chernov > Map name is changed to be CP1251 for consistency of others. * SIDE NOTE: This patch just adds internal conversion table. Actually you can do same also by using elm.mimecharsets file and external conversion table. - #include on headers.h (instead of individual files) - When saving tagged messages now default filename is based on first tagged message (as was old behauviour; in some point that behauviour was lost). - Initialization of screen now happens a little earlier than before. - Remove copy_write_error_exit() from fileio.c - remove #ifdef SITE_HIDING code -- (not used and assumes UUCP world.) - Generation of "From ... remote from site" removed (assumes UUCP world.) - ">From " extra mailbox separator lines are no longer copied. - Old $HOME/dead.letter will be renamed before new is mail is written to $HOME/dead.letter. $HOME/dead.letter is used on some failures. Renaming is not not if there are enough old dead.letter files. In that case dead.letter is lost. But it may be that writing to $HOME/dead.letter never occurs! - Add '%p' support to elm_smessage() and elm_vmessage() - Use timezone offset of given time not current time (get_tz_mins()) - Implemented new folder browser. Hit TAB when the folder name is asked to get directory listing. - Added elmrc options local-fast-lookup (default: false) and local-fs-charset (default: SYSTEM) to control local folder and file browsing. - If there are problems to expand name given with -f option folder browser is started. Specially 'elm -f ""' or 'elm -f .' can be used for starting of yhe browser. - Browsing of IMAP folders is also possible - Saving to Imap folder ('s', 'S', 'C' commands) is also possible - When copying message, additional ">From " mailbox separator lines after "From " separator line are no longer copied. (This ">From " may indicate old UUCP.) - Elmrc variable "imap-charset" (default: SYSTEM) specifies charset used with IMAP - Supports IMAP's international naming convention. This can be disabled by setting elmrc variable imap-naming-convention to false. If imap folder name does not match IMAP's international naming convention, imap-charset is used instead. Note however that mixing of components of IMAP's international naming convention and components with imap-charset in same directory path does not work. - Added elmrc options imap-fast-lookup (default: false) to control IMAP folder browsing. Variable is similar than local-fast-lookup. If both imap-fast-lookup and imap-naming-convention are set, most of folders using imap-charset (and not imap naming convention) are NOT accessible! * WARNING: If creating new folder and imap-naming-convention is set, folder (including path) is created with imap naming convention, even if original directory was using imap-charset ! Net result is that you have two directories with same name (one with using imap naming convention and another using imap-charset). That may cause strange things! NOTE: When appending message to folder, lines would probably be CRLF terminated -- currently that is not done. - Default "copy = ON" Requested by : Laura Kataja [ internal variable name changed from auto_cc to auto_copy_sent, original variable name and it's comment were misleading ] - mime_decode.c was losing some file descriptors. - Added some messages to the message catalog. - Implemented new file browser. Hit TAB when file name is asked to get directory listing. Normally system charset is assumed for filename, but that can be changed with local-fs-charset elmrc option. - Attachment saving now asks permission to overwrite a file. See chapter "Folder and file browser" below in this file. - Added prototypes for some functions - #include on src/curses.c (and perhaps ) - " I discovered Elm 2.4ME+ PL82 (25) forgets an attachment if the body of the message is PGP-signed. " Reported by: Andrew Piziali > Note that only main body will be PGP signed or encrypted. - Make selection of PGP little better when decoding PGP signed application/pgp messages and when decoding PGP signed non-MIME messages. - Terminal IO on src/curses.c is done via /dev/tty (not stdin and stdout) - Do not use stdio when printing from signal handlers (sig_user_stop and sig_return_from_user_stop on src/curses.c) - Avoid passing of message catalog texts (catgets) as format strings for printf like functions. Instead use CATGETS macro and lib/output.c routines. These routines (via CATGETS macro) does not use message catalog data for determining of parameter types or arguments. - If end of lines on quoted-printable text are encoded with CRLF instead of LF, quoted-printable decoding was not removing CR from end of lines when replying. That happened specially with POP and IMAP, because POP and IMAP mails are stored by Elm ME+ just using CRLF as end of line. - If on IMAP folder both \Recent (= NEW) and \Seen (= not UNREAD) are set, ignore \Recent (NEW), because mail is already read. That happens when IMAP folder is resyncronized ($) (ie. mail arrives during that IMAP session). - Renamed some charsets CPxxxx -> Windows-xxxx (they are registered with that name in IANA). Added file ConfTool/killsets which lists these charsets. Old definitions are removed during Configure. Also added option -I to utils/elmcharset.c. This gives charsets which should be ignored when reading global charset charset definition. - Added support for UTF-7 charset (lib/cs_utf.c). Note that it is not useful as display or system charset. It should be used only as mail charset. See also chapter "Charset definition". - However UTF-16 Surrogate pairs (D800-DFFF) are not supported on UTF-7. - Elmrc option utf7-encode-optional control should 'optional direct characters' utf-7 encoded (default: yes). These characters are (from RFC 2152): Character ASCII & Unicode Value (decimal) ! 33 " 34 # 35 $ 36 % 37 & 38 * 42 ; 59 < 60 = 61 > 62 @ 64 [ 91 ] 93 ^ 94 _ 95 ' 96 { 123 | 124 } 125 - Added builtin table for CP1252 (windows-1252 charset), so that users don't need to download CP1252.TXT from Unicode.org. Builtin map name is "CP1252" and charset name is "windows-1252". - Does not require MIME-headers (especially charset information) for forwarded non-MIME message which is inside of message/rfc822. In other words assume current display charset. - For Tru64 (aka Digital Unix, aka OSF1) prefer strings.h over string.h - On Tru64 (aka Digital Unix, aka OSF1) full name is first thing in GCOS field - Added "Copyright 1996-2000 Kari Hurtta" texts to elm/args.c, doc/elm.1 and hdrs/elm.h - Read charset value for locale from LOCALE_DIR/LOCALE/charset file on ConfTool/GenCharmap, if possible. - Added ISO-8859-13, ISO-8859-14 and ISO-8859-4 to ConfTool/GenCharmap - Use doc/mime.charsets also for locales in form *.* on ConfTool/GenCharmap New charsets listed: (*) UTF-7 Builtin support (U) (b) Big5-HKSCS "Big5-HKSCS" is registered IBM00858 "IBM00858" is registered IBM00924 "IBM00924" is registered (!) IBM01140 "IBM01140" is registered (!) IBM01141 "IBM01141" is registered (!) IBM01142 "IBM01142" is registered (!) IBM01143 "IBM01143" is registered (!) IBM01144 "IBM01144" is registered (!) IBM01145 "IBM01145" is registered (!) IBM01146 "IBM01146" is registered (!) IBM01147 "IBM01147" is registered (!) IBM01148 "IBM01148" is registered (!) IBM01149 "IBM01149" is registered (!) SCSU "SCSU" is registered (!) (U) UTF-16 "UTF-16" is registered (!) (U) UTF-16BE "UTF-16BE" is registered (!) (U) UTF-16LE "UTF-16LE" is registered (!) (U) IBM775 "IBM775" is registered IBM866 "IBM866" is registered ISO-8859-13 "iso-8859-13" is registered (b) TIS-620 "TIS-620" is registered Renamed charsets: Windows-1250 "Windows-1250" is registered Windows-1251 "Windows-1251" is registered (b) windows-1252 "windows-1252" is registered (b) Windows-1253 "Windows-1253" is registered Windows-1254 "Windows-1254" is registered Windows-1255 "Windows-1255" is registered Windows-1256 "Windows-1256" is registered Windows-1257 "Windows-1257" is registered Windows-1258 "Windows-1258" is registered Charsets aliases modified: ISO-8859-14 "iso-8859-14" is registered (b) (!) Not suitable as Mime charset (*) Notice that these charsets may be unsupported by Elm ME+ (U) Encoding of Unicode (b) On builtin charset list of ELM-ME+ New files: lib/savefolder.c lib/localmbx.c src/browser.c ConfTool/killsets Renamed files: hdrs/curses.h => hdrs/elm_curses.h Removed files: hdrs/mcprt.h hdrs/mcprtlib.h lib/mcprt.c lib/mcprtlib.c Changes of Elm2.4ME+ PL82 (25) compared to Elm2.4ME+ PL81 (25) -------------------------------------------------------------- - Do not incorrectly detect [ in the middle of long lines. * "In attempting to add additional recipients to the CC: line of an outgoing message (using Elm 2.4ME+ PL81 (25)), Elm keeps adding commas when it should not." Reported by: Andrew Piziali - Don't autoadd comma (',') if there is already space or comma (',') on header editing screen. - Delay adding of comma (',') to the point where we see that the next character is '(' or '<' on header editing screen. - Autoadd comma (',') after '>' and ')' - Only autoadd comma (',') on beginning of editing (ie when we start typing new address to buffer when there is already address on buffer). - '\' escaping was broken on header editing screen Changes of Elm2.4ME+ PL81 (25) compared to Elm2.4ME+ PL80 (25) -------------------------------------------------------------- [ WARNING: IMAP code is little tested and has a quite limited functiolnality -- only a little more functionality than POP code. ] - Avoid sequence /* ... /**/ on config.h - Define NEED_REOPEN_AFTER_FAILED_CONNECT if socket needs to be closed and reopend after failed connect() before retrying. Notice that if connect() returns EINVAL Elm ME+ automatically closes and reopens socket and then retries same connect(). - New elmrc variable "menu-display-host" - Center ELm version string to second line if first line has no space left. - lib/imap.c provides IMAp type folders (but only about same functionality that POP folders -- currently saving or copying of mail to IMAp folders is not implemented.) - lib/remote_mbx.c includes common routines for POP and IMPA code. - IMAP mailboxes can be accessed by giving username@hostname as folder name (tries first IMAP and then POP if connection to IMAP port gives Connection refused.) - IMAP folder can be accessed by giving username@hostname:folder as folder name. > Note however that: - Temporary file is used same way than is used in case of unix mailbox. - It is not possible to e)dit IMAP mailbox - It is not possible to s)ave or C)opy to to IMAP mailbox (NOT IMPLEMENTED YET) - It is not possible to browse folder list from IMAP server (NOT IMPLEMENTED YET) - Messages are kept on IMAP mailbox until you D)elete them and then resync ($) or quit. However note that some other mail client may may same time access IMAP mailbox and mark messages to be deleted and actually delete (EXPUNGE) them. - If some other mail clients change status of messages at the same time when ELM had IMAP mailbox open, those changes are not displayed on Elm mailbox/message display (even when messages are EXPUNGEd). - However Elm should survive when messages are EXPUNGEd when mailbox is open (that is not tested.) - Sending of mail still happens via calling of local mailer -- SMTP or Message Submission protocol is not supported. - IMAP code uses TCP port 143 (IMAP4rev1) - Messages from IMAP mailboxes are saved to folders with IMAP's (= Internet's) EOLN convention. That is CRLF. In other wordsthey are not converted to the unix's EOLN convention which is LF only. Elm should able to handle that (and that is more 'binary' mail friendly.) If you need mail text without extra CRes, use 'S' (save text) command. - IMAP international mailbox name convention is not supported - util/newmail.c doesn't close non-local folders when waiting new mail - util/newmail.c writes now debug output to file $HOME/NEWMAIL:debug.info - New elmrc variable "imap-use-examine". When this is set "frm" and "newmail" opens IMAP mailbox read-only (with "EXAMINE") -- this causes that mails do not lose \Recent flag -- however seems that (some?) IMAP servers does not report new mail when mailbox is opened read-only. - Replaced %X with %p on debug format strings - Some OSF1/Dunix/Tru64 fixes - "Environment: Digital UNIX V4.0E, cc Problem: Elm dumps core after reading the folder, before displaying messages. Debug session: tru64> bin/elm -f test/test.mail Read-only folder is 'test/test.mail' with 8 messages [ELM 2.4ME+ PL79 (25)] SIGNAL PANIC in signals.c:99:segv_signal" Reported by: Bernhard Simon > Fix erronous sizeof on elm_smessage (lib/output.c) - "The keywords "encode", "clear", etc. are useful, but some users don't like the feature (they think the message body should be only scanned on request). Attached to this message there is a patch that allows to disable the feature using the configuration parameter "mimebodykeywords"." From: Jose A. Rodriguez > Default of "mimebodykeywords" is TRUE (ie. parse keywords) New files: lib/remote_mbx.c lib/imap.c Changes of Elm2.4ME+ PL80 (25) compared to Elm2.4ME+ PL79 (25) -------------------------------------------------------------- - "Problem: There is no strdup on old ULTRIX" Reported by: Bernhard Simon > There should be not any strdup call on ELM ME+. Replaced one strdup() call on src/mbox.c with safe_strdup() call. - "Problem0: After asking whether to create directory .elm, messages are written beginning at the top of the screen without clearing it before. This problem semms to be platform independent." Reported by: Bernhard Simon > Be sure that the messages are written to the end of the screen. - "I am using ELM 2.4ME+ PL77 (25) on HP-UX 10.20 and from time to time I get the following error when calling frm: Couldn't seek 1604 bytes into folder. ** Error 0. ** You have no mail. I have tracked down the problem to lib/mbox.c:3007, where fseek is called with folder->p->fh_temp being NULL." Reported by: Lutz Jaenicke > Don't call fseek() if folder->p->fh_temp is NULL. - "Problem1: In Configure line 1836 (cat libc.tmp |egrep ...) produces empty libc.list, so Configure gets confused about existing functions (e.g. gethostname)" (on AIX 3) From: Bernhard Simon - "Problem3: Undeclared identifier fd_set in schedule.c Solution: edit lib/schedule.c and add #include (line 11)" (on AIX 3) Reported by: Bernhard Simon > Detect sys/select.h on Configure on and include it on hdrs/defs.h - "AIX Problemz: If the file for incoming mail does not exist, v79 exits with Can't open folder '/usr/spool/mail/root' for reading! On v60 it displays (as expected?) a screen with no messages. This problem semms to be platform independent." Reported by: Bernhard Simon > Do do treate ENOENT error from can_open() on mbx_sessionlock_filehandle() as error (case SESSIONLOCK_CHECK). Changes of Elm2.4ME+ PL79 (25) compared to Elm2.4ME+ PL78 (25) -------------------------------------------------------------- [ WARNING: There are quite large changes on character set handling of terminal, and changes in the builtin editor. Specially builtin editor has changed almost totally. Also keyboard input routines have changed much. So please report new bugs which you observe... Elmrc option displaycharset has changed meaning, so if you have set that, you need to remove setting and use elm.mimecharsets or .elm/mime.charsets file instead. ] - Implemented support for multibyte characters as keyboard input (lib/charset_input.c). And reimplemnted Reach (as ReadCh2) and optionally_enter (as optionally_enter2) with that support. - Menus are still using one byte characters and it is assumed that input character set is equivalent of code character set (practically equivalent of US-ASCII). - Added ability to specify on mime.charsets and elm.mimecharsets on ISO2022 codes for terminal character set change. New keywords are: other-set, bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96, bank-G0-94, bank-G0-94x94, bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96, bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96, bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96 Value of these kaywords are space separated (usually empty) list of intermediate bytes and final byte given on form d/d. If there is several bytes, list must be given on quoted form. NOTE: Although there are *94x94 and *96x96 keywords, that does NOT mean character sets using ISO 2022 two byte characters are supported. Specially there is no "type" value for that kind character sets. In other words "type=iso2022" is missing. See chapter "Charset definition" from later of that file. - Added files libdir/elm.terminalinfo and ~/.elm/terminal.info for storing additional terminal information. Specially information about charset switching. See chapter "Additional terminal information". - Now elm -w saves also ~/.elm/terminal.info file. - Added option -D charset to elm. That specifies the display charset used. For external programs (including pager and editor) however system charset (is locale charset) is used however, because -D does now change locale and programs get charset information from locale. Therefore -D option is in practise effective only for the internal pager. Files libdir/elm.terminalinfo and ~/.elm/terminal.info tell the switching method for terminal (and that is effective only for output charset.) For (external) editor buffers content is converted between display charset and system charset. - Added elmrec option allow-charset-switching (defualt unset). When this is set, Elm ME+ may use any charset that the terminal supports when needed (for example paging of message which uses some other charset which is given in libdir/elm.terminalinfo or ~/.elm/terminal.info). Note that this also is effective only with internal pager (and possible on some other space where Elm ME+ itself may display text with foreign charset.) [ NOTICE that Elm ME+ needs information for printable characters of display charsets. Currently there is no such information (except for characters which maps to UNICODE range 0-256, which Elm ME+ know). For system charset (locale charset) Elm ME+ gets information about printable characters from system. ] - Elm option -D 'charset' also turns on allow-charset-switching. - Elm option -D NOSWITCH turns off allow-charset-switching. - To change display charset and allow switching only between system charset (locale charset) and given system charset use option -D =charset - elmrc option displaycharset now specifies charset to which elm should switch terminal. Default charset (system charset) may be specied with elm.mimecharsets or .elm/mime.charsets file instead. - builtin editor is someway rewritten (it is now perhaps little more 'full screen'). Most of old ~ commands should still work. Does NOT handle well lines which are longer that screen width. Also you can not add lines between text even that you can edit (someway) existing lines of text. Builtin editor keeps message on memory when editing it. - Now when is asked optionally new value (cursor on beginning of old value) - cursor rigth key accepts old value and moves cursor end of value for editing - enter accepts old value - typing of value erases old value (so that only typed characters are preserved) In other words on header editing screen when editing Subject pressing cursor rigth key causes that subject can be preserved and new text added to end of it. - Added support for UTF-8 charset (lib/cs_utf.c). Note that it is not very useful, because currently Elm only knows printable characters from Latin/1 range. See also chapter "Charset definition". - Removed Configure question about Default Text Charset for outgoing messages. Result of that question was not actually used by Elm ME+. Elmrc option text-charset should be used instead. - Generate elm.mimecharsets file also for systems, which does not support locale. - Option "alteditor" was broken (not used actually). - Changed option "alteditor" that it have always used when when replied mail (with including text). - Special value EDITOR means that use current (primary) editor. This is new default. - Header editing screen was not displaying address when fullname of address was with unknown character set - Header editing screen was potentially using wrong character set when printing address - Support gpg on viewing of multipart/signed messages. Requested by: Steven Pritchard - Default of "page-known-charsets" elm.rc variable changed to ON. - Be consistent on defination of macros P_ and ANSI_C Problem noted by: Mariah Geiger - Charset type "ascii-set" now read same maps than charset type "one-byte-map", excepts that ASCII range on maps needs not be defined (and if is defined must be identity mapping.) - Check return value of setuid/setgid calls. New files: lib/charset_input.c lib/iso2022.c lib/terminal.c lib/unicode.c lib/cs_utf.c doc/terminal.info doc/elmterminal.1 utils/elmterminal.c Removed files: src/wordwrap.c src/softkeys.c Changes of Elm2.4ME+ PL78 (25) compared to Elm2.4ME+ PL77 (25) -------------------------------------------------------------- - " The executable 'newmail' that comes with Elm 2.4ME+ PL77, occasionally reports the following error message: STRING PANIC in string.c:484:convert_string >>Bad magic number (string type)" Reported by: Noam G. Nudelman > elm_fprintf was called with wrong arguments on newmail.c - Fix incorrect *_clip_* on lib/cs_binary() Changes of Elm2.4ME+ PL77 (25) compared to Elm2.4ME+ PL76 (25) -------------------------------------------------------------- - On PL73 [encode] was producing (by mistake) text/X-ELM-encode instead of application/X-ELM-encode as earlier versions. Return old behauviour. - Generation of "encoded" data (application/X-ELM-encode) was broken on PL73. - "It has for quite some time now bugged me that Elm expands "&" in the passwd GCOS field to all uppercase. This is not the correct expansion. The string should merely be capitalized. Both the BSD finger and sendmail capitalize rather than uppercase. Just consider entries like this: kim:*:10167:20:&mo Suominen:/u/kim:/bin/tcsh This should *NOT* be displayed as "KIMmo Suominen". I'm attaching a patch for lib/gcos_name.c that fixes this. I have also committed this into the NetBSD pkgsrc system for third-party software." From: Kimmo Suominen - "version elm2.4.ME+.76a has a little memory bug: when reading a mbox, and if a line has less than 5 characters, the program reads out of bounds. Attached to this message there is a patch that fixes the problem." From: Jose A. Rodriguez [ Undo Elm2.4ME+ PL76a patch before installing this patch. ] Changes of Elm2.4ME+ PL76a (25) compared to Elm2.4ME+ PL76 (25) -------------------------------------------------------------- [ This is out of branch patch. ] - On PL73 [encode] was producing (by mistake) text/X-ELM-encode instead of application/X-ELM-encode as earlier versions. Return old behauviour. - Generation of "encoded" data (application/X-ELM-encode) was broken on PL73. Change on Elm2.4ME+ PL76 (25) or Elm2.4ME+ PL73 (25) ---------------------------------------------------- - Elm no longer assume that address is user's address if fullname matchess to fulllname of address. Give alternative addresses on alternatives elmrc option. Changes of Elm2.4ME+ PL76 (25) compared to Elm2.4ME+ PL75 (25) -------------------------------------------------------------- - Always generate subject string to header structure to avoid crash. - Added elmrc variable env-from-source. It tells which information to use for envelope from address. Possible values include: forward-from (0) Use: "From " separator line ">From " forwarded indicator "Return-Path:" header from (1) Use: "From " separator line "Return-Path:" header return-path (2) Use: "Return-Path:" header Setting this to value return-path requires that on every mail have Return-Path: -header. - "Please update the source of http://www.ozone.fmi.fi/KEH/elm-2.4ME+.README to also rflect the URL for filter, not just the email address: http://www.bolthole.com/filter/" Requested by: Philip Brown - "When replying to, in the last elm me pl75, this "name" is suggested : ð?(ù?" Reported by: Emmanuel BIGLER > Changed one %s to %S on mailmsg1.c - Elm no longer assume that mail is from user, if username part (only) on envelope address matches. Addresses from elmrc option alternatives is now matches also agaist envelope address. Use elmrc option alternatives to specify your address if Elm now shows your name instead of To on list. - "Actually, no version of FreeBSD comes with intl libraries, at least none that would make 'intl' be a valid library on the compiler command line. Please change the Configure script to omit intl from libswanted for any version of FreeBSD, not just 3.2." From: Mike Brown Removed files: lib/tail_of.c lib/addrmchusr.c Changes of Elm2.4ME+ PL75 (25) compared to Elm2.4ME+ PL74 (25) -------------------------------------------------------------- - Metapager generated sender address for top line incorrectly if From: header did not existed. - Don't put builtin definations to elm.mimecharsets (doc/mime.chatsets). - Add charset type iso646-set and elmrc option iso646-charsets. - Configure -M updates bin/elm.mimecharsets only. - Make output of ConfTool/GenCharmap (ie. Configure -M) prettier. - " I just tried to compile elm2.4.ME+.74, and I see that you fixed the 'h_errno' problem in the 'lib/pop.c' file but didn't in the 'lib/read_rc.c' file. When I fixed it also in the 'lib/read_rc.c' it compiles with no problems." Reported by: Noam G. Nudelman - "This is a strange error message I get when I try to read my mail: STATE PANIC in state.c:770:state_printf >>Embedded newlines are not supported Emergency exit taken! All temp files intact! I have no idea what's the problem. Ih the attachment is the mail massage that causes it to crash. " Reported by: Bojan Bistrovic > Fixed format string of state_printf call. - " It just seems to be my month for bugfinding. ;-) My "options => sort => Subject" no longer sorts by message subject, as far as I can tell. " Reported by: Isaac Stoddard > Fixed incorrect condition on subject_compare() - Giving "something>" as address on header editing screen caused infinite loop on Elm ME+. - frm was giving odd error messages if mailfile pointed by MAIL environment variable does not exists. - Missing of subject was causing segmentation fault on frm. - Update percent of loaded mails when updating counter of loaded mails. In other words now both readdatapercentinc and readmsginc elmrc options causes update of both numbers (counter and percent). - Make difference on return of string_cmp() [lib/string.c] on cases 'values equal' and 'values not comparable'. - 'elm -w' now writes also .elm/mime.charsets file. - Some parse errors on .elm/mime.charsets are now considered fatal same way than errors on .elm/elmrc file. - "This is what happens: when I try to read the mail defined as MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" it seems to work fine (first screen displays properly) but when elm reaches the part which is supposed to be in Windows-1252 charset and tries to convert it to ascii, it crashes producing the error: STRINGBUFFER PANIC in sb_file.c:200:sb_get_line_from_file >>Bad charset readed from file" Reported by: Bojan Bistrovic > Ignore charset alias when charset alias points to stale defination of charset. That charset defination may be undefined ("removed") by setting explicit compatcharsets on user's .elm/elmrc. - Warn if charset alias is tried to redefine as charset. - Refresh updating counter line if it is overwritten by error message. - Update frm.1 manual page and generate actual patchnames for files to FILES section. New files: ConfTool/iso646maps Changes of Elm2.4ME+ PL74 (25) compared to Elm2.4ME+ PL73 (25) -------------------------------------------------------------- - If end of lines on quoted-printable text is encoded with CRLF instead of LF, quote-printable decoding was adding CR before every character. That happened specially with POP, because POP mails is stored by Elm ME+ just using CRLF as end of line. Reported by: Laura Kataja - " I patched my PL72 tree to PL73, and reconfigured to my previous config as default. When I typed "make", I got: cd lib; /bin/make - all cc -I../hdrs -O -c charset.c cfe: Error: charset.c, line 614: Unacceptable operand of relational operator. if (val < 0 && ------------^ *** Error code 1 (bu21) make: *** [all] Error 1" Reported by: Isaac Stoddard > Wrong variable was used. - Don't call metamail, if top level type disposition is attachment (metamail ignores disposition). That kind messages are marked with 'a' on mailbox menu. - Complain about unsupported locales (locale is unsupported if not mapping information for correspond charset exist). - Locales marked with (unsupported) are added now with nameless charset. - If display character set's type is unknown (ie. locale is unsupported), then assume that display character set's invariant part is on same position than on character set used by code (ie compiler). Note however that invariant part does not include '@' character! - Replace (unsupported) with character set name on tables, if mime name for locale charset is known. Unsupported status is now indicated by missing of mapping information. Message will be WARNING: Locale xx_XX (charset XXXXXX) is unsupported, will cause problems! - " When compiling Elm 2.4.ME+ PL73 (or any version above PL67), on AIX 4.3.2 (with gcc version 2.95.2) I receive the following error message: cd lib; /bin/make - all gcc -I../hdrs -fpcc-struct-return -O -c pop.c pop.c:15: parse error before `int'" Reported by: Noam G. Nudelman > Seems that h_errno is macro on AIX. New files: lib/cs_fallback.c Changes of Elm2.4ME+ PL73 (25) compared to Elm2.4ME+ PL72 (25) -------------------------------------------------------------- [ WARNING: There are quite large changes on character set set handling, on builtin pager and sending messages. So please report new bugs which you observe... Also there is several fixes, which are just guess (for foreign platforms: vaxult4, hpix 9.05). They of course are totally untested. So it is possible that they do not even compile... This is so much changes (and some are incomplete) so this this quite sure more buggy than PL72. ] - "Last known compile on our vaxult4 machine was 2.4.ME+.38. I tried compiling 2.4.ME+.72, but then I got this error: cc -I../hdrs -O -c parse_util.c "../hdrs/melib.h", line 60: syntax error" From: Geir Johannessen > Guess the fix [ perhaps it does not work and is definately untested... ] - Added facility to convert character set of incoming messages to display character set. - Added facility to convert character set of new message to outgoing character set (text-charset) when sending mail. - Changed semantic of charset -option. Now just not give charset -label for outgoing messages to Content-Type -line. Now character set is converted to that character set (if message is pgp signed conversion is not done and charset label is not changed either.) - charset option is renamed to text-charset (old name is alias). * Use text-charset=DISPLAY if conversion is not wanted. - If after conversion text is 7-bit only and text-charset is superset of US-ASCII (as given on compatcharset or MIME-subset -parameter on mime.charsets -file), US-ASCII used as charset -labeled on Content-Type -line instead. > So if mapping information of text-charset is incomplete and it is only konw that text-charset (or displaycharset) is superset of US-ASCII, then conversion produces only US-ASCII characters and that causes also that mail is labeled to be US-ASCII > That also mean that on compatcharset or via MIME-subset -parameter on mime.charsets should not specify character sets to be supersets of US-ASCII if it is not compatible with ascii on byte-to-byte level. ( In other words for example utf7 is NOT superset of US-ASCII on that sense. ) Read chapter "Charset definition" from later of that file. [ In practice there is no any builting charset mappings which are usefull (make sense) with text-charset, so use text-charset=DISPLAY if you do not use external mapping files. Currently there is NO support for utf7 or any other multibyte character set (low level routines are missed). In other words there is no charset types (paramater type) for multibyte character sets. ] - From: -header for outgoing mail is now printed same way than other address headers (ie. To, CC, Reply-To and Bcc) - Builtin pager now always use temporary file (or memory buffer). For simplify it does not longer read directly from folder. - Builtin pager now enligth matching line when searching with / (TABulators are not enligthed) - Parsed headers (fullname and comments) now carry character-set information (they are not always just filtered to Display Character set during parsing -- also this includes facility to character set conversion. ] - Same basically also apply for outgoing mail headers > On outgoing mail on in-reply-to -header is handled only if it is on beginning of header. [ Note however missing low-level routines... ] - Added generic panic routine to elmlib. - Added elmrc option page-known-charsets. If it is TRUE, do not call metamail to charset for which we have some information (even that we can't show all characters with displaycharset). Default is FALSE (old behauviour). - Flag as error if user gives something like [keyword on beginning of line and keyword is not detected. That is that user does not send mail where keyword accidentally mistyped (and does not work as intended). For example [inlcude some.file text/plain 7bit] on beginning of line. If user wants enter that kind line to mail which really start with [, then [ can be doubled as [[ on beginning of line. That produces one [ character to outgoing mail. Elm's own messages now start [ followed by space. That is not flagged as error. - Do not longer produce empty bodypart (or part with length of -1 as seen on Elm) if there is [include ...] directive on last line. - "Can we add this patch to the Configure script? This should help detect Solaris systems which need -lsocket -lnsl." From: Hon-Yin Kok [ I little modified that patch, I hope that this did not broken it. ] - "FreeBSD 3.2 cannot have library intl in the libswanted list. It gets included in the final compile sentence for elm even though there is no such library." From: Geir Johannessen - Move expand_env() to lib/expand.c from lib/read_rc.c - Let expand() to expand only if string start with metachar (so that it is not needed to check is string starting with metachar, before calling expand().) - Added expand_meta() to lib/expand.c. > Meta expand provides: +filename == file on mail folder directory =filename == file on mail folder directory %filename == file on mail folder directory {rc}/filename == file on .elm subdirectory of home {lib}/filename == file on Elm's global library directory And also same epansions than expand_env(): ~/filename == file on home direccory Environment variable components - do_expand_path() to lib/read_rc.c, strnfcpy() to lib/strfcpy.c - Elm no longer assume that mail is from user, if fullname matches to sender's name. Now only addresses are used to determine if To address should be displayed instead of From address. Addresses from elmrc option alternatives is now matches also agaist From: -header. Use elmrc option alternatives to specify your address if Elm now shows your name instead of To on list. - "Now it compiles under hpix 9.05 + gcc 2.7.2. There is just a single warning left: gcc -I../hdrs -fpcc-struct-return -O \ -c schedule.c -o schedule.o schedule.c: In function `real_wait': schedule.c:195: warning: passing arg 2 of `select' from incompatible pointer type schedule.c:195: warning: passing arg 3 of `select' from incompatible pointer type" Reported by: Emmanuel BIGLER > Guess the fix for HPUX [ perhaps it does not work and is definately untested... ] - Add support read-only folders (but not mailboxes -- they can not be opened read-only). If lock_folders is set, lock them with shared (or read lock) and not with exclusive lock. Promted by: Gertjan van Oosten , Hon-Yin Kok * "Please find attached a patch that makes ELM work with read-only mail folders (archived mail folders are read-only in our environment)." From: Gertjan van Oosten [ Actually that patch is not used... ] - "We are using elm on (the rather old platform) SunOS4.1.3_U1. I tried the latest two versions -71 and -72, which do not compile with gcc-2.8.1 (and -2.7.2) due to some (for this platform) strange definition in hdrs/mbx_imp.h. There "FILE" is used as a struct name, but this is (on this platform) a define in stdio.h "#define FILE struct _iobuf" and therefore crashes the compile." From: Jan Weerts - "This is not really an elm bug, but it helps; under Linux with libc version glibc-2.1 (RedHat 6.1 for example) elm fails to compile since some header files have been changed. Older versions exist in the directory /usr/i386-glibc20-linux/include so it's necesary to add the '-I' flags to the compiler. There's a patch in attachment to the Configure script that checks if the directory exists and if it does adds it to the list of c-flags." From: Bojan Bistrovic [ I heavy modified that patch, I hope that I did not broke it... ] - Generate actual patchnames for files to FILES section of elm.1 and elmcharset.1 manual pages (instead of using /usr/local/lib always.) - Let Configure script automatically suggest -woff 1009 to cflags on IRIX 6.5 - If Configure does not be able to generate mapping from locale to MIME charset, mark locale as '(unknow)' on elm.mimecharsets instead of defaulting to display charset. - Fix ConfTool/LocaleMap - Configure -S now updates bin/elm.mimecharsets also. - Mark EBCDIC as '(unsupported)' - Fix unfolding of header on src/newmbox.c, add unfold_header() to lib/mbox.c - New elmrc option extra-mailbox-dir, which gives directory on where folders are considered to be mailboxes (ie. to they can arrive new mail when they are open.) Prompted by: Geir Johannessen New files: hdrs/cs_imp.h lib/string.c lib/cs_binary.c lib/panic.c lib/hdrdecode.c lib/hdrencode.c src/id_phrase.c lib/stringbuffer.c hdrs/sb_imp.h lib/sb_mem.c lib/sb_file.c ConfTool/charaliases.map ConfTool/mapfiles ConfTool/GenCharmap Removed files: lib/parsarpwho.c src/returnadd.c Changes of Elm2.4ME+ PL72 (25) compared to Elm2.4ME+ PL71 (25) -------------------------------------------------------------- - Elm dies (exits) after sending mail sometimes. Reported by: Laura Kataja - "We've had some trouble with the pgp5 support with regards to signing messages using elm-2.4ME+70. When trying to sign messages the error message Pgp returned error status 7 appears and the message isn't signed. This appears to be because a couple of pgp2 flags have made their way into the pgp5 support. The following patch fixes things (for me at least):" Reported by: Greg Lewis [ patch not used ] "Ok, I see what you're saying (I didn't understand which PGP executable was being called in the first case obviously :). pgps, which does only signing, doesn't have the -s flag though and neither pgpe nor pgps take a -w flag." Reported by: Greg Lewis > Dropped ws -flags from PGP_SIGNED_MESSAGE case. [ rename() will wipe the original file (that what -w flag did.) ] - Dropped RENAME and rename() from lib/opt_utils.c In other words rename() is now required to be provided by system. - "There's a bizzare bug in last four versions of elm (ELM 2.4ME+ PL67 - 70). It's related to the ispell: when you use ispell, every other character I type gets "swallowed" somehow, meaning that the ispell doesn't see it but elm does. The effect is that you have to type every letter twice while running ispell, and then after you're finished all those letters get feeded to elm's menu: Please choose one of the following options by parenthesized letter: s e)dit message, edit h)eaders, s)end it, or f)orget it. This isn't usually a problem since most of the time you use space-character to skip word so it doesn't produce any erros, but it's still a waste of time. " Reported by: Bojan Bistrovic > Added Raw(OFF), Raw(ON) -pair around ispell. - Reset buffer of background_read() on curses.c when turning raw mode OFF. Changes of Elm2.4ME+ PL71 (25) compared to Elm2.4ME+ PL70 (25) -------------------------------------------------------------- - Seems that is is not allowed try another connect() after unsuccesfully one with same socket. > If error was EINVAL, close and reopen socket. - Autoadd comma (',') after old addresses when adding new address on header editing screen. Promted by: Tom Haynes , Siegfried Schmitt - Use on util/newmail.c same kind utime usage on lib/mbox.c - Filter was dropped from installation and compilation on Elm 2.4ME+ PL0 (25). Drop sources also from distribution. Filter is maintained separately by Philip Brown Changes of Elm2.4ME+ PL70 (25) compared to Elm2.4ME+ PL69 (25) -------------------------------------------------------------- - Header was not properly terminated on newmbox.c after unfolding resulting duplicate last character of header. - add OpenBSD to a couple checks (utils/newmail.c) - correct a time_t cast that was missed (src/mailmsg2.c) - check for fork returning -1 in the one fork() that doesn't do that yet - pipes should be closed if the fork() fails (src/syscall.c) This isn't tested, but it makes sense to me. From: Paul Janzen - "Under HP-UX 10.20, read_rc.c needs: extern int h_errno;" Reported by: Zube - "Please find attached a patch to make newmail.c compile on Solaris 2.x." From: Gertjan van Oosten - "Please find attached a patch to fix an external pager bug; if a folder has for example an incorrect Content-Length header, ELM would screw up." From: Gertjan van Oosten > [ Actually patch was not used. ] - "Also, under Solaris 2.6/7, HP-UX 10.20 and FreeBSD 3.1, if the mailbox does not exist (i.e. /var/mail/user), elm will dump core. If the file exists but is zero length, there is no problem. This problem does not occur on linux (Redhat 6.0 in my tests)." Reported by: Zube - Also happened on IRIX Changes of Elm2.4ME+ PL69 (25) compared to Elm2.4ME+ PL68 (25) -------------------------------------------------------------- - bin/from.c and bin/newmail.c was trying to create dotlock file $MAIL.lock > Changed prepare_read_folder second argument to be enum prepare_mode { PREPARE_NORMAL = 0, PREPARE_NEW_ONLY = 1, PREPARE_NOLOCK = 2, PREPARE_NEW_ONLY_NOLOCK = 3 }; - POP code now uses UIDL and remembers which messages are really readed. UIDL's of readed messages together which status is stored files with name .username@hostname to folder (usually ~/Mail) directory. - "Further testing also reveals that excluding (changing to 'undef') dotlock in the pre-configure script breaks the build: cc -I../hdrs -c mbox.c mbox.c: In function `mbx_free_spool': mbox.c:972: structure has no member named `lockfile' Since the lockfile member is excluded from the struct in mbx_imp.h based on the define for USE_DOTLOCK_LOCKING, and the mbox.c file does not use ifdefs around the various code where the lockfile member is used." Reported by: Keith Ward Changes of Elm2.4ME+ PL68 (25) compared to Elm2.4ME+ PL67 (25) -------------------------------------------------------------- - Fix "Would you like the domain name appended?" query. [Broken on PL46] - Dropped HOSTCOMPILED - Dropped xenix special case from Configure (about uuname) - If gethostname() and uuname() are not supported on system, hostname must be given on system elm.rc file. - On some systems try also use gethostbyname() to get hostfullname and hostdomain from hostname. If that succees, getdomainname() is not used anyway. * Note that host's domain name is still compiled in. -> These changes make it closer that some time in future it is possible to do binary distributions of elm. Notice however that there is still too much compiled in configuration for binary distribution. - Try use dnsdomainname (that is on Linux) to get domainname on Configure. "Third, I don't know if this is supposed to work this way, but the default domain name offered is always .UUCP ; it would be nice if the Configure shell could get the domain name correctly (via 'dnsdomainname' for example)." Suggested by: Bojan Bistrovic - "I've had some problems when trying to compile ELM 2.4ME+ PL66 (25) under Linux (RedHat 6.0, egcs-2.91.66, with "-fpcc-struct-return"). in read_rc.c, the compilation would fail with the error: read_rc.c:79: initializer element is not constant" Patch from: Bojan Bistrovic > Added init_debugfile() also to utils/answer.c, utils/elmalias.c, utils/fastmail.c, utils/from.c, utils/newalias.c, utils/newmail.c, utils/prlong.c, utils/readmsg.c, utils/elmcharset.c * Also reported: "I have the following compilation error in elm-me pl66 platform : linux redhat 6.1 This bug did not sho up in pl 62 used routinely. read_rc.c:79: initializer element is not constant" Reported by: Emmanuel BIGLER "I've had this bit of a problem compiling elm-2.4+ME62. Actually, the error has been around since the elm-2.4+ME57 stage, and probably even before then. The error involves anyone using GNU libc 2.0 or higher. I'm using glibc-2.1.2 on my linux box, kernel 2.1.12 and 2.3.18. Compilation and error follow: cc -I../hdrs -O -c read_rc.c -o read_rc.o read_rc.c:78: initializer element is not constant line 78 in read_rc.c, has: FILE *debugfile = stderr; /* file for debug output */ According to the Glibc FAQ, at http://sourceware.cygnus.com/glibc, 3.9. I get compiler messages "Initializer element not constant" with stdin/stdout/stderr. Why? {RM,AJ} Constructs like: static FILE *InPtr = stdin; lead to this message. This is correct behaviour with glibc since stdin is not a constant expression. Please note that a strict reading of ISO C does not allow above constructs. One of the advantages of this is that you can assign to stdin, stdout, and stderr just like any other global variable (e.g. `stdout =my_stream;'), which can be very useful with custom streams that you can write with libio (but beware this is not necessarily portable). The reason to implement it this way were versioning problems with the size of the FILE structure. To fix those programs you've got to initialize the variable at run time. This can be done, e.g. in main, like: static FILE *InPtr; int main(void) { InPtr = stdin; } or by constructors (beware this is gcc specific): static FILE *InPtr; static void inPtr_construct (void) __attribute__((constructor)); static void inPtr_construct (void) { InPtr = stdin; } I've tried a number of changes like this, in the read_rc.c program, which all gave me errors. I'm open to trying to find the right place to make the correction, but seeing that just about every file in the src directory uses debugfile, I'm a bit baffled on where to add this in. If you have any ideas on how to resolve this, I'd love to know how. Thanks in advance!" Reported by: Brad Littlejohn - Added information to output of 'elm -vv' about compiled in host's domain name and is domain part (@hostname) added to address of From: -header (and other). - SECURITY: print_msg() on src/syscall.c was using popen() (without resetting egid). - Added to start_run() (melib/src/syscall.c) ability to make output (and error) pipe. > Converted print_msg() on src/syscall.c to use start_run() - Let print command to print output to screen (do not redirect to /dev/bull -- was broken on some earlier version) - Added new command Print text -command (P). This prints decoded content of message. - SECURITY: read_in_messages() on src/editmsg.c was using popen() (without resetting egid). > Converted read_in_messages() in src/editmsg.c to use start_run() [ If SAVE_GROUP_MAILBOX_ID is defined, these popen's most likely do not cause any problem. In that situation Elm run's on most of time with resetted egid. ] Changes of Elm2.4ME+ PL67 (25) compared to Elm2.4ME+ PL66 (25) -------------------------------------------------------------- [ Warning: This have quite much changes on folder handling, so please report new bugs which you observe. Also POP code is little tested. ] > Moved most of code from bytes() on src/file_util.c to lib/file_util.c > Moved save_file_stats() from src/fileio.c to lib/file_util.c > Moved open_or_create() from src/file_util.c to lib/file_util.c > Moved copy_to_folder() from src/file_util.c to lib/file_util.c > Moved copy1() from src/file_util.c to lib/file_util.c > Moved elm_chown() from src/util.c to lib/file_util.c > Side effect is that incoming mailbox is keep locked during reading of mails -- not just looking new size of it - Added lib_prompt() and lib_transient() to lib/output.c - lib/schedule.c does I/O multiplexing with select() or poll(). > NOTE: Code using poll() is NOT TESTED - lib/mbox.c provides access routines for folders. Also it provodes SPOOL (mailbox) and NON_SPOOL (normal folders) type folders. - lib/pop.c provides POP type folders. - POP mailboxes can be accessed by giving username@hostname as folder name. Note however that: - Offline reading is not supported. In other words this code does not follow 'download and delete' -method. However temporary file is used same way than is used in case of unix mailbox. - It is not possible to e)dir POP mailbox - Automatic notification of new mails seems not work. You need resync ($) folder instead. - It is not possible to s)ave or C)opy to to POP mailbox (POP does not have STORe command.) - Elm does not remember which messages are readed and which are new (UIDL command should be used.) However POP server may perhaps provide artifcial Status: -header -- on some situations information of that may be misleading (for example in resyncing ($)). - Messages are keep on POP mailbox until you D)elete them and then resync ($) or quit. - On resync ($) POP connection is closed and reopened. Because password is not stored to memory, it will be reasked. - POP code is very little tested and quite sure there may be some bugs... - Sending of mail still happens via calling of local mailer -- SMTP or Message Submission protocol is not supported. - POP code uses TCP port 110 (POP3) - Messages from POP mailboxes are saved to folders with POP's (= Internet's) EOLN convention. That is CRLF. In other words thet are not converted unix's EOLN convention which is LF only. Elm should able to handle that (and that is more 'binary' mail firendly.) If you need mail text without extra CRes, use 'S' (save text) command. - Note that it is currently explicite disallowed $MAIL variable to be interpreted as POP mailbox even if you put it to form username@hostname. Also saving to '!' may end to file name username@hostname if you have put thatto elmrc variable incoming-mailbox. - Note that elmrc variable 'mailbox' was synonym for variable 'receivedmail' which teels to which folder to store receiced mails (normally =received) Now elmrc variable 'mailbox' is removed. - New elmrc variable 'incoming-mailbox' can be used to tell location of POP mailbox - If you c)hange folder, opening of new folder is done before old is leaved (so do not change from local mailbox ($MAIL) from POP mailbox $USER@localhost -- bad things may happen.) - C)opy and s)ave does not use lib/mbox.c routines, so if you try save to user@hostname, you ended to save to file with that name! - Lock file (.dot) is removed is removed if if it more that 10 minutes old (and mailbox is not accessed). That test is done after when lock is tried to create to X times, where X is given on Configure -time. > In other words question "Should it REMOVE the lock file after X checks? " is removed from Configure. - Converted utils/from.c to use lib/mbox.c. - Converted utils/newmail.c to use lib/mbox.c - Note that utils/readmsg.c still does not use mailbox (lib/mbox.c) routines! - error() on src/out_utils.c auto sleeps if needed (sleep is skipped if there is keyboard input (on some OSes)) -- transient() (via lib_transient()) may be used if wait is not wanted. - "I have always felt a need for an unread function in Elm. Specifically, sometimes I want to mark a message as unread even though I have read it in order to make it stand out the next time I open the folder. So when I finally had some time free I decided to make an unread function tied to the 'U' key. The work is based on a similare solution by bruceb@locus.com (Bruce M. Binder) way back in 1995 for the last official version of Elm. I would be happy if you could apply the patch to elm-2.4ME+PL67. The patch is enclosed at the end of the mail." From: Geir Johannessen - Removed unused (and broken) leapyear macro from src/date.c - Removed extra extern char *strpbrk(); utils/answer.c -- already defined on header files. - Added new command Save text -command (S). This saves or copies decoded content of message to file or folder. [ Undo Elm2.4ME+ PL66s patch before installing this patch. Security fix of PL66s is included on PL68. ] New files: lib/mbox.c lib/file_util.c lib/pop.c hdrs/mbx_imp.h lib/schedule.c Changes of Elm2.4ME+ PL66s (25) compared to Elm2.4ME+ PL66 (25) --------------------------------------------------------------- - SECURITY: print_msg() on src/syscall.c was using popen() (without resetting egid). - Added to start_run() (melib/src/syscall.c) ability to make output (and error) pipe. > Converted print_msg() on src/syscall.c to use start_run() - Let print command to print output to screen (do not redirect to /dev/null -- was broken on some earlier version) - SECURITY: read_in_messages() on src/editmsg.c was using popen() (without resetting egid). > Converted read_in_messages() in src/editmsg.c to use start_run() [ If SAVE_GROUP_MAILBOX_ID is defined, these popen's most likely do not cause any problem. In that situation Elm run's on most of time with resetted egid. ] Changes of Elm2.4ME+ PL66 (25) compared to Elm2.4ME+ PL65 (25) -------------------------------------------------------------- - Extra NotKnowPrint (875) and MailNotSaved (876) removed from nls/C/C/C/s_elm.m. Problem boted by: Oota Toshiya - Added utils/elmcharset.c lib/charset.c doc/elmcharset.1 > MIME character set (and others) can be now presented with pointer of type charset_t. Changed charset and display_charset to be type charset_t. > Moved get_charset_map_info() to lib/charset.c from lib/read_rc.c [ Added load_charset_map_info() and implemented get_charset_map_info() with load_charset_map_info() ] * load_charset_map_info() now parses additional information > Moved mime_parse_content_opts() to lib/charset.c from melib/mime_parse.c - On .elm/mime.charsets and {lib}/elm.mimecharsets there may be lines like - ISO-8859-1;MIME-subset=US-ASCII That kind defination may be used instead of compatcharsets elmrc option. - Added new elmrc -variable type DT_FUNC (call function for value). Now compatcharsets -option is that kind (function charset_compatfunc). - Removed rmt-install target from Makefiles Changes of Elm2.4ME+ PL65 (25) compared to Elm2.4ME+ PL64 (25) -------------------------------------------------------------- - Result of have_pgp() was not checked on copy_pgp (on fileio.c) Changes of Elm2.4ME+ PL64 (25) compared to Elm2.4ME+ PL63 (25) -------------------------------------------------------------- - Default to PGP 5 only if pgp5-dir is given. Otherwise use pgp-version when reading PGP 5 mail. Changes of Elm2.4ME+ PL63 (25) compared to Elm2.4ME+ PL62 (25) -------------------------------------------------------------- - Some support for different PGP versions. New elmrc options: pgp2 (Gives path of PGP 2 binary) pgp5-dir (Gives path of directory for PGP 5 bianries) gpg (Gives path og Gnu PG binary) pgp-version Gives what program to use when signing or encrypting mail. One of 'pgp2', 'pgp5' or 'gpg'. Elmrc option pgp is now obsolete. - Default action for messages which includes PGP keys is now extract keys - Ctrl-E still extract keys. Difference is that uses version which is given on pgp-version elmrc option and do not take account MIME. - When sending encrypted mail and PGP key not found for recipient, menu e)dit recipient list, s)kip recipient, q)uit is provided. - Also if you visit pgp menu and do nothing (or fail). Default is changed to 'p' (go again pgp menu). > That try prevents sending mail accidentally without encrypted if you tried to send it on encrypted form > Added DT_LONG for elm_timeout (DT_NUM was wrong) > Added DT_PGPVER - Some support for multipart/encrypted on reading side. - Support for application/pgp-encrypted protocol. > Attachments on application/pgp-encrypted are not supported. Changes of Elm2.4ME+ PL62 (25) compared to Elm2.4ME+ PL61 (25) -------------------------------------------------------------- - If compiled with REMOVE_AT_LAST defined, there is error 'lock.c:286: `lockfile' undeclared' error. Reported by: bigler@jsbach.univ-fcomte.fr - Some code moved from src/syscall.c to hdrs/syscall.c - Some support for multipart/signed on reading side. - Added elmrc variable "pagesigned". If set parts with unknown protocolls are paged. - Support for application/pgp-signature protocol. - Use %Q on add_parameter() Changes of Elm2.4ME+ PL61 (25) compared to Elm2.4ME+ PL60 (25) -------------------------------------------------------------- - "Elm fails to remove the /tmp/print.xxxx file after sending a message to the print spooler. After a "print " command, a copy of the message is left in /tmp as /tmp/print.xxx" Problem noted by: Konstantinos Konstantinides - Some fixes so that this compiles more cleanly on IRIX 6.5. You still want use -woff 1009 however. - Add support for ISO-8859-15 locales (*.ISO8859-15) of IRIX 6.5 - Added special conversion type 'Q' (mean to quoted string) to elm_vmessage() [lib/output.c] - "In Configure, when testing for the sendmail version, something (even an empty string) should be supplied on STDIN to the $mailer. Otherwise, if $mailer is actually a wrapper script that expects something on STDIN, it could wait forever for input." From: mike@hyperreal.org > Redirected $mailer's input to /dev/null on test. Changes of Elm2.4ME+ PL60 (25) compared to Elm2.4ME+ PL59 (25) -------------------------------------------------------------- - "elm_vmessage()" wasn't correctly converting numbers with "%d", "%x", or "%X" - there was an extra "6" in all the format strings, so the digits 7, 8, and 9 got converted to 6, 7, and 8. One of the few places where software would work *better* in 2000.... :-)" From: Guy Harris - "Use "$echo" rather than "echo" in the "Configure" script, so if it had to explicitly use "/bin/echo", it does so in all places where it is echoing a string that's not supposed to have an NL at the end (otherwise, you may end up with [Type carriage return to continue] \c with the extra "\c" at the end)." From: Guy Harris Changes of Elm2.4ME+ PL59 (25) compared to Elm2.4ME+ PL58 (25) -------------------------------------------------------------- - Undo AFS patch of PL58 -- it seems cause crash... Changes of Elm2.4ME+ PL58 (25) compared to Elm2.4ME+ PL57 (25) -------------------------------------------------------------- - Added %x and %X formats to elm_vmessage (lib/output.c) - Although doc/mime.charsets is based on IRIX 6.2, added to it following locales from GNU locales (Linux): cs_CZ, eu_ES, ga_IE, no@nynorsk, sr_YU (eu_ES, ga_IE, no@nynorsk, sr_YU marked as unsupported) - Added ConfTool/LocaleMap, ConfTool/GrepValue - Little more intelligent generation of elm.mimecharsets - "We are using the "fastmail" program to send mass mailings on our internal network. For some reasons I was looking for the possibility to set the "Precedence:"-header. But I did not find any. Therefore I have added another option to the fastmail program to aspecify a "Precedence:"-header." From: Norbert Gruener - Removed I_STDLIB now if ANSI_C is defined stdlib.h is used, otherwise not - Changed const keywords to CONST macros - Close mailbox after in is readed -- keeping it open prevents mail to arirve when AFS is used. Patch from: Norbert Gruener [ Undone in PL59 ] - Put forward structure definations inside of #ifdef ANSI_C - HP-UX gives warning "../hdrs/elmlib.h", line 123: warning 617: Redeclaration of tag "tm" ignored. Problem noted by: oota toshiya > Removed defination and changed replaced #include "elmlib.h" with #include "headers.h" (to avoid opposite error) on: lib/atonum.h, lib/expand.c, lib/get_tz.c, lib/getword.c, lib/ldstate.h, lib/len_next.c, lib/mail_gets.c, lib/msgcat.c, lib/qstrings.h, lib/safemalloc.h, lib/headers.h, lib/strmcpy.c, lib/validname.h Changes of Elm2.4ME+ PL57 (25) compared to Elm2.4ME+ PL56 (25) -------------------------------------------------------------- - Add missing 'return 0' to buffer_to_text() on src/hdrconfig.c - Certain aliases expansions was causing Elm ME+ to crash on aliaslib.c Problem noted by: Bruce Momjian Changes of Elm2.4ME+ PL56 (25) compared to Elm2.4ME+ PL55 (25) -------------------------------------------------------------- - Add elmrc option "convert-comment-to-fullname". When this is set address address (comment) is parsed as address (fullname) instead. That is for compatibility to older versions of Elm. Option "convert-comment-to-fullname" is set by default. - Fix compile time error if USE_DOMAIN is defined - Fix compile time error if MMDF is defined - Some MMDF fixes from Bob Broughton for PL37. They are little modified (and untested). * MMDF sure still do not work Changes of Elm2.4ME+ PL55 (25) compared to Elm2.4ME+ PL54 (25) -------------------------------------------------------------- WARNING: That patch is biggest so far, so there is much changes. So expect bugs. Specially address handling and aliases expansions are rewritten. NOTE: Check locale setting by running: elm -vvvvv - Drop translate_return() from src/addr_util.c (not longer used) - Drop fix_arpa_address() from src/addr_util.c (not longer used) - handle_reply_to() on src/reply.c was not decoding MIME -encoding (decode_who_none was used instead of rfc1522_decode_structured) - Add get_alias_address_l(), do_expand_group_l(), do_get_alias_() (and helper function _add()) to src/aliaslib.c - Implement get_alias_address() (*) in terms of get_alias_address_l() in src/aliaslib.c - Drop do_expand_group(), add_name_to_list(), do_get_alias() from src/aliaslib.c - Moved expand_list() (*) to aliaslib.c (only used on aliaslib.c now) from mailmsg1.c and simplified - (*) Actually get_alias_address(), expand_list() on aliaslib.c and build_address() on src/addr_util.c is not used any more -- them are put inside of #if 0 ... #endif [ get_alias_address, expand_list and build_address is removed on PL67 ] - Don't ask First and Last names for group aliases. - Add build_address_l(), argv_to_expanded(), expanded_to_edit_buffer() and update_expanded_from_edit_buffer() to src/addr_util.c - Add add_expanded_(), add_textual_(), zero_expanded_address() make_surface(), free_expanded_address() helper functions to src/addr_util.c - Add struct mailing_headers and zero_mailing_headers() and free_mailing_headers() functions to src/mailmsg1.c [hdrs/me.h] - Dropped remove_hostbang() from src/mailmsg2.c - src/hdrcnfg.c uses now struct mailing_headers. > Added inpval_to, expval_to, hdrproc_to, inpval_cc, expval_cc, hdrproc_cc, inpval_bcc, expval_bcc, hdrproc_bcc, inpval_subject, expval_subject, hdrproc_subject, inpval_reply_to, expval_reply_to, hdrproc_reply_to, inpval_action, expval_action, hdrproc_action, inpval_expires, expval_expires, inpval_priority, expval_priority, hdrproc_priority, inpval_precedence, expval_precedence, inpval_in_reply_to, expval_in_reply_to, hdrproc_in_reply_to, inpval_userhdr, expval_userhdr > Modified hdrproc_expires, hdrproc_precedence, hdrproc_userhdr > Added hdr_to_buffer, hdr_to_expval, buffer_to_header, text_to_buffer, text_to_expval, buffer_to_text, * NOTE: Now addresses are show as fullname
- address (comment) kind usage is preserved if it is used. - editmsg.c uses now struct mailing_headers. > get_with_expansion() replaced with get_addr_with_expansion() and get_text() > Common part of these moved to new procedure get_it() - Added have_editor() to editmsg.c - edit_the_message() takes now arguments editor and headers (struct mailing_headers) - send_msg_middle() and send_msg_argv() to src/mailmsg1.c. - Dropped send_msg() from src/mailmsg1.c - Common part of mail() (src/mailmsg2.c) and remail() (src/remail.c) moved to new mail_backend() (mailmsg2.c). - Added comment field to struct addr_item. Now addresses are parsed (lib/getaddr.c) as: fullname
(comment) - Although doc/mime.charsets is based on IRIX 6.2, added to it following locales from GNU localdb (Linux): de_BE, de_CH, de_LU, en_DK, en_GB, en_IE, et_EE, fo_FO, fr_LU, gr_GR, kl_GL, nl_NO, bt-br, ru_RU, sl_SI, lt_LT, lv_LV (I think that bt-br is typo on GNU localdb -- should be bt_BR I suppose. lt_LT and lv_LV I marked as unsupported because it is uncertaing what is charset associated to them.) - Now configure tries to do 'locale -m' for list of mapping tables (GNU locale/localdef) and put result to elm.mimecharsets with key like *.tablename. I hope I have understand that 'locale -m' correctly. - Now is possible to generate $lib/elm.mimecharsets from scratch even when it exists already. - If I_LOCALE is defined (Elm will call setlocale()) and message catalog routines are found, then Elm will use system's message catalog routines without asking. - If I_LOCALE is defined (Elm will call setlocale()), assume that isprint() is not ASCII only (do not ask from user if isprint() is broken). - If I_LOCALE is defined (Elm will call setlocale()), assume that tolower() and toupper() works without testing, because ELm's replacement routines are ASCII only. - Elm -vv now prints dedination of I_LOCALE, ASCII_CTYPE and BROKE_CTYPE also. - If ctype routines are ASCII only, set MIME charsets to US-ASCII without asking from user. - Checking that isprint(), toupper(), tolower(), [isupper(), islower()] are called with unsigned char -values. - Added elmrc -variable sort-thread-max-time. This controls how long can be time (on days) between mails with can be considered to be same thread when using threaded sort. - Dropped remailer stuff (and USE_REMAILER), src/remailer.c - Dropped src/returnadd.c, removed kludge() - Added have_printout() to src/syscall.c - Added test to Configure to see if shared libc.so is actually is GNU ld script (for Debian Linux 2.1). - Added test to Configure to look look EWOULDBLOCK from /usr/include/asm/errno.h on Linux - Added test to Configure to look look F_SETLK from /usr/include/asm/fcntl.h on Linux - Changed texts and defualts about locking on Configure - Now Configure defaults Linux 2.0 with flock locking. On Linux 2.1 and 2.2 both flock anf fcntl locking. On Linux 1.* Configure defaults fcntl locking. - On sysv systems (or non-BSD systems) Configure defaults no flock locking. - Change default of COnfigure to not use getdomainname() for mail domain. It gives NIS domain. - Accept none as printer spooler name on Configure. Note that on this case printing command must be set on global elm.rc - Search /var/spool/mail one candinate for mail spool directory on Configure (for Debian Linux 2.1) - Removed memory models question form Configure. It is not used. - Removed PDP11 from Configure. Changes of Elm2.4ME+ PL54 (25) compared to Elm2.4ME+ PL53 (25) -------------------------------------------------------------- [ Before applying this patch, undo Elm2.4ME+ PL53Y -patch. ] * "Kari, the following headers, cause with 'g'roup reply two instances of the same adress the reply is sent to." Problem noted by: Roeland Th. Jansen - Added okay_address_l() to lib/okay_addr.c - Added current_header argument to send_msg(). - Changed handle_reply_to() and get_and_expand_everyone() to return struct addr_item array. - Changed optimize_and_add to process struct addr_item array. - Added current_header argument to src/send_msg() - Added send_msg_l() and expand_list() to src/mailmsg1.c - Dropped get_return() call from src/alias.c - Dropped get_return() call from src/file.c - Dropped '%' command (get_return() call) from src/elm.c - Dropped '%' command (get_return() call) from src/showmsg_c.c - Removed get_return() function from src/returnadd.c - Use okay_address_l() in lib/displaddr.c - Removed figure_out_addressee() and lib/figadrssee.c - Removed okay_address() from lib/okay_addr.c -Remove uneeded initialization from utils/from.c (frm). Already done on inet_defaults(). - Call abort() if emergency_exit() is called with interrupt -set (for helping of debugging) - Test that year >= 0 instead of year > 0 on cvt_yearstr_to_yearnum(). That affects if year 2000 is given as 00. Year 2000 fix from: Ed Symanzik - Interpret years 100 - 199 as year + 1900 (that is 2000 - 2099) in cvt_yearstr_to_yearnum(). - Closing folder twise causes error message: Sorry, can't unlink the temp file /usr/tmp/mbox.$USER [No such file or directory]! Problem noted by: Jussi Kaurola - Add one more buffer bounding check for gcos_name(). - Fix incorrect match on map_display_charset() (lib/read_rc.c). May causes that display_charset is mapped to "" string. - Allow -A (Attach) option to work on batch mode. - "I've put together a patch which implements a threaded sort order for elm2.4.ME+43, which I'd like to see get committed to the main distribution. The sort is very similar to the existing SUBJECT sort except that the threads appear in chronological order based on the time sent of the first message of the thread." From: Brian Dean > Sorting of REVERSE THREAD was completely broken on given patch. I hope that I managed to fix it. - If =received is treated as mailbox (for example because of protection mask of folder), user if promted for "Move read messages to "received" folder? (y/n)" altough user is already on =received -folder. Hitting of 'y' can cause lost of folder. Problem noted by: Isaac Stoddard - Added same_file() to me.h and maked it non-static on newmbox.c Changes of Elm2.4ME+ PL53Y (25) compared to Elm2.4ME+ PL53 (25) --------------------------------------------------------------- [ This is out of branch patch. ] - Test that year >= 0 instead of year > 0 on cvt_yearstr_to_yearnum(). That affects if year 2000 is given as 00. Year 2000 fix from: Ed Symanzik - Interpret years 100 - 199 as year + 1900 (that is 2000 - 2099) in cvt_yearstr_to_yearnum(). - Closing folder twise causes error message: Sorry, can't unlink the temp file /usr/tmp/mbox.$USER [No such file or directory]! Problem noted by: Jussi Kaurola Changes of Elm2.4ME+ PL53 (25) compared to Elm2.4ME+ PL52 (25) -------------------------------------------------------------- - "I used to get 'emergency' errors when syncing a mail folder (via shortcut '$') and sometimes when quitting. The function file_util.c: copy_to_fh did not have a 'return(0);' at the end to catch the case when nothing went wrong. It was returning a random value instead. This random return value was passed back up as a fatal error. Adding a return at the end seems to have solved the problem." From: Marc Pawliger - "I am still experiencing a crash when composing a message using Elm and I hit the '~p' shortcut to print out the message in progress. There is a NULL dereference happening and elm crashes." Problem noted by: Marc Pawliger > Missing format string for Write_to_screen on editmsg.c. - Removed MIME configuartion option. Now MIME support is always compiled in. - Added elmrc option send-mime-plain-text. When this is not set, text/plain US-ASCII messages with encoding 7bit are sent without MIME headers. Default is that send-mime-plain-text set. - Add print_EOLN(filedesc,mime_info->encoding_top) to some places. - Do append_sig() before needs_encoding() on mailmsg.c (case editor == builtin) - Move writing of Content-Length -value to copy_message_across() - cl_start, cl_end and cl_offsett moved to mime_send_t (not a mime informatuion actually) and no longer global information. - Only write content-length to copy of mail (do not send it) Changes of Elm2.4ME+ PL52 (25) compared to Elm2.4ME+ PL51 (25) -------------------------------------------------------------- [ There is reported some problems on folder handling on PL51. It is unclear if this fixes them. ] - Add possibility to specify on Configure what directory check first for programs. Prompted by: Marc G. Fournier - Look /usr/share/locale also from locale directory (not only /usr/lib/locale) Prompted by: Mike Brown - Use more, if available (and only if Configure is not run with -d option), to page bin/elm.mimecharsets - MMDF support patch From: Konstantin Kuznetsov - map_display_charset: use best match from file instead of first match - Reopen folder after unlink so that copy does not go nowhere! Problem noted by: Jacek Uminski - If folder locking is used, do not unlink and link folder, instead copy to it on leavembox. - skip_space was uninitialized on rfc1522_decode_structured Changes of Elm2.4ME+ PL51 (25) compared to Elm2.4ME+ PL50 (25) -------------------------------------------------------------- [ Warning: This have quite much changes on folder handling and locking, so please report new bugs which you observe. Before applying this patch, undo Elm2.4ME+ PL50s -patch. ] - Added struct folder_info and moved some variables to it (cur_folder, cur_tempfolder, folder_type, equivalent of mailfile, mailfile_size, lock_state, lockfile, create_fd) > Now copy of mailbox to /tmp is created little earlier. > Mailbox is not opened second time for syscal locking. - Added pgp-sign-type elmrc -variable. Possible values are application/pgp, text/plain and text/x-pgp. Inspired by: Will Day - Added elmrc option readdatapercentinc (default 5). This tells how owten show percentage of readed mailbox in "Reading message" -text. > Changed readmsginc elmrc options default to 100. > Notice that actual update frequence is determined by combination of both of these (readdatapercentinc and readmsginc) - Fix incorrect bound checking on putc_so_string() (state.c) - base64_decode was passing wrong buffer size to state_getl Problem noted by: Yury Yaroshevsky - Move defination of SYSCALL_LOCKING to defs.h from lock.c - Add indication of SYSCALL_LOCKING to elm -vv output - Remove lock-in-copy option if SYSCALL_LOCKING is not compiled (so that elmrc is not filled with irrelevant options) - Added lock-folder elmrc option (available if SYSCALL_LOCKING is compiled). Default: on - For forward compatibility: strip text after ; on charset= and display= -charset lines and on mime.charsets -file (function get_charset_map_info). - attach_save (on src/attach.c) was saving one byte too less data when saving of attachment which do not require decoding. - Generation of elm.mimecharsets was not very smart. Problem noted by: Mike Brown Changes of Elm2.4ME+ PL50s (25) compared to Elm2.4ME+ PL50 (25) -------------------------------------------------------------- [ This is out of branch patch. ] - Fix incorrect bound checking on putc_so_string() (state.c) - SECURITY: base64_decode was passing wrong buffer size to state_getl Problem noted by: Yury Yaroshevsky Changes of Elm2.4ME+ PL50 (25) compared to Elm2.4ME+ PL49 (25) -------------------------------------------------------------- - elm -vvvv now print names of some configuration files - elm -vvvvv prints some configuration data (mainly locale dependent data) - "When I use the keys '+' or '-' in an empty attachment list elm exits with a segmentation violation. This seems to occur because the variable 'ptrs' points to NULL (and 'ptr_max' is equal to 0) which is not checked. The following patch fixes this bug." From: Henrik Pletat - Added locale_init() to lib/read_rc.c and moved to catopen and setlocale to it. - Added mapping from LC_CTYPE locale to display_charset. Mapping is done on file $lib/elm.mimecharsets or on .elm/mime.charsets - Special value DISPLAY on elmrc variable charset means that use display_charset. - Moved variable substitution from Configure to ConfTool/Substitute (called automatically) - Ctrl-U and Ctrl-D on builtin++ pager was working inconsistently. Problem reported by: Andrew J. Piziali Changes of Elm2.4ME+ PL49 (25) compared to Elm2.4ME+ PL48 (25) -------------------------------------------------------------- - Put ME+ to under of CVS. Because revision numbers changed there was need of changing header text of files. - "It fixes a small problem with the date representation in the upper right corner. Currently, times like "09:08:02" are displayed as " 9: 8: 2". This is because src/date.c uses the format "%2.2d:%2.2d:%2.2d" which is not supported by elm_vmessage() (gets interpreted as "%2d:%2d:%2d"). The patch changes this to "%02d:%02d:%02d" (this is used everywhere else anyway), which fixes the problem." From: Gertjan van Oosten - If To: is empty and I have sender, show sender of mail (DisplayAddrress (lib/dispaddr.c) was not correctly detectection empty To: -header.) Changes of Elm2.4ME+ PL48 (25) compared to Elm2.4ME+ PL47 (25) -------------------------------------------------------------- - Changed to and cc field on header_rec to include result of break_down_address - Added to_matches and cc_matches to pattern.c - moved and reimplemented forwarded from utils/newmail.c and src/addr_util.c to lib/forwarded.c - shift_lower needs const for argument - Add buffer overflow check to stip_parens() and get_parens() (lib/striparens.c) - Moved main part of parse_arpa_date() to new routine parse_date_time (lib_/parsarpdat.c) and let parse_arpa_date() to call that routine. - Reimplemented process_expiration_date() (src/expires.c). Original code did not handled 4 number years and was broken on year 2000. New code uses just parse_date_time() -- However it accepts expiration times where date part is only given from RFC 822 date-time format. - Now real_from() (lib/realfrom.c) assumes local timezone, if timezone is not given, because From mailbox separator is normally inserted locally. - There was "multi-character character constant" -warning coming from src/mkhdrs.c Reported by: Witold Witkowski - "If you switch to the option editor screen, change "O)utbound mail saved" from "=sent" to "=sent" (i.e. enter the displayed character sequence), return to the index, and then mail a message, the outgoing message will be saved in a file named ~/=sent rather than in ~/Mail/sent. The equal sign is not getting expanded to the user's mail folder directory." Reported by: Andrew J. Piziali - "I suggest checking and accepting (extending) existing PATH" From: Witold Witkowski > Moved $PATH to beginning of initial PATH of Configure Changes of Elm2.4ME+ PL47 (25) compared to Elm2.4ME+ PL46 (25) -------------------------------------------------------------- - Do not treate characters > 127 as controls (allow they on words of phrases) - Fix name of "Forwarded message from" -text Changes of Elm2.4ME+ PL46 (25) compared to Elm2.4ME+ PL45 (25) -------------------------------------------------------------- - Split break_down_address to look_special_tokens(), scanned_to_phrase(), scanned_to_str() routines and reimplement break_down_address as state machine (4 states, 6 terminals). > Now phrase from group -syntax is ignored and route from address is dropped. - strtok(), strpbrk(), strstr() was declared in both of elmlib.h and defs.h (remove later declaration). Noted by: John Goerzen , Emmanuel Bigler - Changed from field on header_rec to include result of break_down_address (instead of just fullname). - "From " address is stored to new env_from field > Sorting based on sender uses first "From " address and then parsed From: -header (fullname and then address) > Limit with 'from' now works both of full name and address and it uses now MIME-decoded full name. Also "From " address is considered. - get_return (on returnaddr.c) is simplified. Now it uses stored (and parsed) From: -header from from field of header_rec - Assume INTERNET (style addresses). Remove question from Configure and all ifdefs. - Assume USE_EMBEDDED_ADDRESS (From: and Reply-Top:). Remove question from Configure and all ifdefs. - Call user_init(), init_defaults() and read_rc_file() on newmail. Changes of Elm2.4ME+ PL45 (25) compared to Elm2.4ME+ PL44 (25) -------------------------------------------------------------- - skip_envelope on melib/parse_util.c was not skipping ">From " -lines. - Save composition filename to global variable (so it does not need to be genrated in signal handler for removal) Changes of Elm2.4ME+ PL44 (25) compared to Elm2.4ME+ PL43 (25) -------------------------------------------------------------- - Added lib/getaddr.c (break_down_address, free_addr_list) - Moved rfc822_tokenize, remove_space_tokenized, free_rfc822tokenized from melib/parse_util.c to lib/getaddr.c - Reimplemented parse_arpa_who (lib/parsarpwho.c) and get_address_from (lib/getaddrfrm.c) with break_down_address - Added size argument to (get_address_from) - replace break_down_to_list (src/reply.c) with break_down_address - "patch-hmo-1 extends the '#' debug menu, showing all defined message flags, in the order present in hdrs/defs.h." From: Helge Oldach Changes of Elm2.4ME+ PL43 (25) compared to Elm2.4ME+ PL42 (25) -------------------------------------------------------------- - print attachment instead of just printing [skipping...] message when printing from atttachment -menu - Changes calling sequence of Write_to_screen - Added some messages to message catalog - Added PutLineX to curses.c - Dropped Putline1, PutLine2, PutLine3 to favor PutLineX - Remove hostname initialization from fastmail, fastmail now calls read_rc -routines Changes of Elm2.4ME+ PL42 (25) compared to Elm2.4ME+ PL41 (25) -------------------------------------------------------------- - Tweak little (add missing space) to build_header_line - "When I'm in the attach menu before sending a mail and I use the delete function on the LAST attachment, the cursor diappears. Trying then to move up the cursor elm exits with a sigmentation violation. This error appears in several versions of elm." From: Henrik Pletat - Fix call of parse_arpa_who in figure_out_addressee, which caused that To -address in 'frm' was truncated. - Change days_ahead to return year in 4 numbers and simplify it. - Some year 2000 fixes for src/date.c - Make elm_date_str to return year in 4 numbers [ Undo Elm2.4ME+ PL41h patch before installing this patch. ] Changes of Elm2.4ME+ PL41h (25) compared to Elm2.4ME+ PL41 (25) -------------------------------------------------------------- - Tweak little (add missing space) to build_header_line Changes of Elm2.4ME+ PL41 (25) compared to Elm2.4ME+ PL40 (25) -------------------------------------------------------------- [ Warning: This is so much changes (and some are incomplete) so this this quite sure more buggy than PL40. ] - "it's not "a X-Windows" but rather "an X-Windows"; and BTW, it's not "X-Windows" at all cause that term simply does not exist (cf. man X). Simply replay "an X-Windows" by "an X11". Thanks." From: (sender's name lost) ( I managed to delete hurtta+elm Mailbox, so resend your mails if they are sent between 1998-03-04 and 1998-04-04. ) - Added some messages to message catalog - iprintf.c dropped (so far) -- it is not used (at least yet) - elm_sfprintf, elm_message > Global change: Most of sprintf calls replaced with elm_sfrpintf - Do not longer test existence of mkdir() - "this is another very simple fix that repairs this: posixsig.c:89: warning: preprocessing directive not recognized within macro arg" From: Helge Oldach - Dropped error1, error2, error3 to favor lib_error - Changed how menu2.c works (and therefore changed DSN and remailer menus.) - Tweak parsearpawho > Now From: is not assument to be part of buffer > from in header struct is now mime decoded > That is now mime encoded when generating comment to reply address. - Handles now phrases on From: -header which uses continuation lines - Dropped get_real_name -- it is it is at least equal broken than parse_arpa_who - ' added to set of characters which need quotation because sendmail otherwise will quote words which includes ' on phrases -- even that ' is not special character -- and that way destroy MIME encoding. - MIME decoding is now done when showing values in header menu (for address headers) - MIME encoding also full name got from gecos field of passwd - MIME encode also name entered to comments in header edit screen (for address headers) Changes of Elm2.4ME+ PL40 (25) compared to Elm2.4ME+ PL39 (25) -------------------------------------------------------------- - Enumerated options userlevel: beginner intermediate expert noencoding: pass-7bit pass-8bit pass-binary - Move reading of elmrc to elmlib and put elm tools to read elmrc. This may make to some time in future to possible to do binary distributions of elm. > pmalloc.c moved from src/ to lib/ - Added option elm -vvv - Add routine lib_error (lib/output.c) - Added some messages to message catalog - "I have a nice patch to elm-me+-2.4pl25ME+39: If you press (l)imit and then type "thread", all messages with the same subject are shown. A leading "Re: " is stripped. That is usefull for (large) mailing lists, where you don't read all messages. (It's like the thread command in most net news readers)" From: Christian Hammers - "I have determined what the problem is. When you `bounce' a message elm fails to strip the `From ' line from the top of the message. This causes Smail to think that the message is an incoming UUCP transmission. Smail uses the `From ' line to build the new return path using a !, getting a wrong answer. Elm should strip the `From ' from bounced messages." From: Ian Jackson > Added CM_REMOVE_ENVELOPE flag to call of copy_message in remail.c in case of INTERNET is defined (From comments it looks that passing of "From " is done by purpose: "For those cases when you want to have a message continue along to another person in such a way as they end up receiving it with the return address the person YOU received the mail from") - Elm -v now prints warning "Elm is not intended to be distributed in binary form. If that is done, then it is very likely that compile time configuration does not match to your system." Changes of Elm2.4ME+ PL39 (25) compared to Elm2.4ME+ PL38 (25) -------------------------------------------------------------- - "The filter included in elm-2.4ME+37 also appears to be vulnerable to the "save_embedded_address()" attack, but not to the "get_filter_rules()" attack." From: KSR[T] > I didn't used supplied patch. Instead I added bound check to one loop in save_embedded_address (I was added it to one loop but was missed other loop. ) > Note that Makefile will not compile ot install filter -- that is intentionally (it was dropped because of security problems) - "here is another small fix relative to elm-2.4ME+37. This is relevant for empty folders with keepempty=OFF. Previously an empty folder was deleted *only* when this folder was left with all (and >= 1) messages marked 'deleted'. Now an already empty folder is also deleted upon quit or change to another folder." From: Helge Oldach > I didn't used supplied patch. Instead I modified leave_mbox. - Added elmrc -option "dsn-success" - "it looks like that the help function in change folders of this used version (2.4me+38) doesn't work." Reported by: Roeland Th. Jansen > init_helpmsg was called with wrong number of parameters. Changes of Elm2.4ME+ PL38 (25) compared to Elm2.4ME+ PL37 (25) -------------------------------------------------------------- - getarpdate generated date wrongly in year 2000 - "Here's another small fix which allows elm to deal more reasonably with empty last name/first name/comment fields in the alias file. This is intended for situations where people use mail addresses which already include the full name (like: Helge.Oldach@sep.hamburg.com), so that duplicating the last name and first name on the alias list seems not reasonable. If one just leaves the last name/first name/comment fields empty like in: hmo = = Helge.Oldach@sep.hamburg.com then the alias screen will display nothing but the alias, which doesn't tell anything. This patch makes elm display the actual mail address instead of an empty last name/first name/comment field. It also fixes the display of such empty fields when displaying the actual address while sending a mail ("Message addressed as: Helge.Oldach@sep.hamburg.com ()") - the empty brackets won't appear in this case." From: Helge Oldach - "background_wait_time should be background-wait-time in doc/elmrc-info, otherwise the elmrc update function (elm -w) won't copy the comment." From: Helge Oldach - "It wasn't properly truncating the subject line if the rest of the header was longer than 44 characters" From: Guy Harris - If msgcat.c will be compiled, don't include In that situation always include "elm_nl_types.h" - rfc822_tokenize, remove_space_tokenized, free_rfc822tokenized, strmcat Changes of Elm2.4ME+ PL37 (25) compared to Elm2.4ME+ PL36 (25) -------------------------------------------------------------- - include in defs.h - include in lib/posixsig.c on Ultrix V4.4 From: Bernhard Simon - "The latest elm.me has a nl_types.h include which on Digital UNIX is conflicting with a system include having the same name, which is of course needed for proper compilation :(." From: Christophe Wolfhugel > Rename nl_types.h to elm_nl_types.h > There was wrong number of argument in catgets call in iprintf.c [ not currently used ] From: Christophe Wolfhugel - Changes for configure to run in Dec Unix (OSF1) "- cc -std (to have prototypes) - nm_opts='' for DEC Unix or it gives wrong output with -p and Configure won't see some functions (like strspn) - signal hardcoded, because cc -E or cpp or DEC Unix does not pass the standard defines (the ones put by cc -std) and we will miss the signal prototype anyway :(." From: Christophe Wolfhugel - Some changes that Elm compiles cleanly on Digital Unix (OSF1) [ It was not defining __STDC__, but was complaining if char * argument was given to unsigned char * argument of function (and opposite) ] - Digital Unix (OSF1) was defineing macto BSD (sig!) Renamed BSD macro to BSD_TYPE Changes of Elm2.4ME+ PL36 (25) compared to Elm2.4ME+ PL35 (25) -------------------------------------------------------------- - "If the mail transport agent (MTA) is missing, elm silently fails. No message is delivered and no warning or error message is displayed." From: Jan Prikryl , Andrew J. Piziali > Return status of process was decoded incorrectly. > Also errno status was written to wrong end of report -pipe. - Redraw screen also if old position was on screen when new mail arrives. - Dropped return_value_of from curses.c - Support arrow cursor on attachment menu - "I recently tried to run the Configure script on AIXv4.2.1 which failed trying to extract the function names out of libc.a. I updated the script so it will work on AIX." From: Will Fiveash - "Also, I am including my file locking patch so that elm will lock a folder when trying to save or copy to it." From: Will Fiveash > Added elmrc option lock-in-copy, that locking is done if this option is TRUE (default). * NOTICE: This does not work with dot-locking * NOTICE: This is usefull only with folders which elm treats as mailboxes, because folder are not locked (when visited). - Changed can_open to use my_wait and prepared for EINTR - Dropped move_old_files_to_new() Changes of Elm2.4ME+ PL35 (25) compared to Elm2.4ME+ PL34 (25) -------------------------------------------------------------- - "I've built elm-2.4.ME+3[34] under SunOS 4.1.2 using libc 1.1.7 and gcc-2.7.2 and can't actually open a mail file with them. " From: Dave Rynne - wait in can_access was not prepared for EINTR - can_access was not using my_wait [ And why can_access just not use access system call? -- it used real uid and gid anyway!!!! ] - "The run_state structure declared in me.h has a member called "errno". However, it is unsafe to use errno as an identifier under some Unices, e.g. when errno is a macro. Here is a patch against PL34 which renames the struct member." From: Jesse Thilo [ It turns out that culprit is Linux libc 6 ] - Add support for multipart/alternative. Elmrc variable pagealternative is added. If that is TRUE (default), and at least one subpart of multipart/alternative is displayable metamail is not called. If that is FALSE, metamail is not called if all subparts of multipart/alternative are displayable. Changes of Elm2.4ME+ PL34 (25) compared to Elm2.4ME+ PL33 (25) --------------------------------------------------------------- - Print "Elm: Unsupported locale (check $LANG)" if setlocale fails. Suggested by: Michael Rudolf - "I've found a bug in the Configure script for elm2.4.ME+.33: when Configure asks for the metamail path and the path doesn't exist elm asks you: "File ... doesn't exist. Use that name anyway?", if you answer 'y' then metamail_path is set to 'y'. I think that's not the desired action... :)" From: Jose A. Rodriguez - Add elmrc -varaible pgp. This gives path to PGP. If "none", pgp is not called. Also checked that pgp is executable with given path. Suggested by: John Goerzen - check with can_open that debug file can be opened. - -A (attach) option didn't used "~/.elm/mime.types" file. Reported by: Andrew J. Piziali Changes of Elm2.4ME+ PL33 (25) compared to Elm2.4ME+ PL32 (25) -------------------------------------------------------------- - Content-Disposition: inline; filename = "filename" was not parsed correctly. Reported by: Jussi Kaurola - Remove NIS tests from Configure. $passcat was not used ( Next section "set up shell script to do ~ expansion" may perhaps need it, but actually it does not use it. ) Hint from: Jerzy Sobczyk > Now sun is always added to from of $libswanted - Added elmrc option background-wait-time (default 2 seconds) If = 0 wait mailer to completion > 0 wait background-wait-time seconds for completion if not completed in this time, let it go to background (completion of mailing is still reported if user have not exited from elm in that time when mailer have completed) Suggested by: Heiko W.Rupp Daniel C. Sobral * THIS option is supported only in POSIX systems > Added my_wait to lib/posigsig.c - Added VOLATILE to defs.h > to resize_screen, redraw_screen (elm.h, headers.h) - "When I tried to compile elm2.4.ME+.32 for Digital Unix 4.0 I got a few compiler errors. The problem is that ANSIC/not ANSIC headers are not in sync... They are fixed with this patch (for lib/iprintf.c file)" From: Jose A. Rodriguez * Actually this (ELMCHAR, iprintf) code isn't yet in use - "The bug was that filter truncated the "Saved folder" to only 3 chars (out of the full path). To fix it, just change the following line in 'utils.c' in the filter directory" From: From: Yuval Shamir [ Suggested fix was incorrect. ] > Notice: filter code is not tested (and compilation of it is commented out from Makefile in all ME+) Changes of Elm2.4ME+ PL32 (25) compared to Elm2.4ME+ PL31 (25) --------------------------------------------------------------- - Incorrect Content-length: -header was causing corruption of folders. From: Guy Harris - argv_from_to was not handled ',' in comments correctly. Detected from report of Gary Casterline > Use rfc822_toklen instead of len_next_part - SECURITY: strcpy -> strfcpy changes of Elm2.4ME+ PL29 (25) was not done for curses.c in this source tree. Bug report on List . From: John Goerzen - Some changes on curses.c (bl -- bell) - Change output of option -v - "If you use 'answer -u', then every user name is truncated to three letters." ... "Change line 232 to: " ... From: Jean-Pierre Radley [ Suggested fix was incorrect. ] - "Configure always has had a problem on Linux systems, extracting names in a usuable format (from /usr/lib/libc.so). The following small change fixes this." From: Bauke Jan Douma - "In Solaris enviroment NIS+ is now used instead of Yellow Pages so I have modified Configure to reflect this and allow to use niscat in the same fashion as ypcat was." From: Jerzy Sobczyk [ Undone in PL33 ] - Compilation of filter (actions.c) fail. Reported by: Arnout Boer - Typo mismatch in lib/strftime.c From: Yuval Shamir - [wordwrap.c, bultin editor] "Wordwrap and delete at the beginning of the line does not work in PL31. Fix is below." From: "Zoltan T. Hidvegi" [ I didn't used supplied patch. ] - [builtin editor] There was 'sizeof buffer' instead of 'buffer_size' in get_with_expansion() - Add same fflush -fix to remail.c which is in mailmsg2.c Changes of Elm2.4ME+ PL31H (25) compared to Elm2.4ME+ PL31 (25) --------------------------------------------------------------- [ This is out of branch patch. ] - Incorrect Content-length: -header was causing corruption of folders. From: Guy Harris - argv_from_to was not handled ',' in comments correctly. Detected from report of Gary Casterline > Use rfc822_toklen instead of len_next_part Changes of Elm2.4ME+ PL31 (25) compared to Elm2.4ME+ PL30 (25) -------------------------------------------------------------- - Print "Warning: BINARY data? Check Content-Type!" when trying send binary (*) data as text in attachment menu. (*) binary = not fill requirements of "7bit" and "8bit". - Convert some system_call() to use start_run() ... wait_end() instead. - optionally_enter() in pgp_decode.c was called without size -argument - "The problem appears to be that when a "FILE *" is rewound, the underlying file is not, causing mail messages to be empty. " Reported by: Jon Harder [ Now input file descriptor is fflush'ed -- this should synzronize it. ] - "I often mail PGP-encrypted attachments to people with the appropriate content type. If I want to review the attachment before sending it, I go the to a)ttachments screen, select the attachment of interest, and press . Elm prompts me for a pass phrase because I always encrypt using my public key along with the recipient's. If I mistype my pass phrase, I cannot use control-F (^F) to cause Elm to forget the cached pass phrase from either the attachments screen or the send screen. I wish ^F were recognized on those two screen also." Suggested by: Andrew J. Piziali * Added ^F to verify_transmission, attachment menu, and to showmsg_c.c Changes of Elm2.4ME+ PL30 (25) compared to Elm2.4ME+ PL29 (25) -------------------------------------------------------------- - mailerflags -array (argument vector) was not NULL terminated in remail.c. - Elm was not recognized SortBy (and aliassortby) keywords [ strfcpy was got size of pointer instead of array size in read_rc.c ] Reported by: "Ralf S. Engelschall" - Fixed some error messages in read_rc.c - "The problem is that 'case:' statement use int range, so 0xFC02 expanded to 0x0000FC02, not to 0xFFFFFC02, but xxx->magic value is short and expanded to 0xFFFFxxxx, so comparation is unsuccessful. Fix is simple: direct cast to short." From: "Andrey A. Chernov" [ I don't actually used that fix. Instead I changed magic values to 'unsigned short' in elmlib.h. Now they are used same way as in melib.h. ] * Actually this (ELMCHAR) code isn't yet in use Changes of Elm2.4ME+ PL29 (25) compared to Elm2.4ME+ PL28 (25) -------------------------------------------------------------- [ Warning: This is so much changes (and some are incomplete) so this this quite sure more buggy than PL28. ] - SECURITY: Elm was passing `shell command` without quotation to shell when invoking sendmail. Reported by: Wolfgang Ley from: "Computer Emergency Response Team, Germany" (Originally from: Dirk Nimmich ) > Don't use shell when calling sendmail (or other mailers) - quote_args() dropped from strings.c - now elm waits until sendmail returns (and simple not put it background without checking if mailing succees) > Now -V option of Elm works better - Small change in displaying of multipart messages - (mime_decode.c) Use in_state_seekable instead of testing magic agaist STATE_in_file - Move state.c from src/ to melib/ - New header files melib.h and elmlib.h - Add routine strfcat to strfcpy.c - get_folder_type is litle more smarter to detect files in mail directory - d)omainze removed from header config -menu - Don't ask shell in configure -- take shell from passwd If passwd is used, default value for elmrc is null string If $SHELL env variable is used, defaualt value for elmrc is $SHELL string - If $EDITOR env varaible is used, default value for elmrc is $EDITOR string - Default to p)gp if replying to pgp encoded message (in verify_transmission -menu) - Remove bounceback variable and bouncebk.c - [defs.h] In IRIX define 'int32' by using 'int32_t' Warning: If you have compiled Elm with ABI=-64 (default on IRIX64), this changes on disk format of aliases database * Actual use inttypes.h (does not work if -cckr is used, (also can't be used in IRIX 5.3 because of conflicts with sys/types.h -- ARGH!) - Removed references to VMS and EUNICE from Configure - Removed I_STDARG -- now if ANSI_C is defined stdarg.h is used, otherwise varargs.h is used - Add do { .... } while(0) to dprint -macro - Global change: Use strfcpy instead of strcpy and: Use strfcat (new routine) instead of strcat (but sprintf -calls are still untouched!) [ Undo Elm2.4ME+ PL28s patch before installing this patch. ] Changes of Elm2.4ME+ PL28s (25) compared to Elm2.4ME+ PL28 (25) -------------------------------------------------------------- - SECURITY: Elm was passing `shell command` without quotation to shell when invoking sendmail. Reported by: Wolfgang Ley from: "Computer Emergency Response Team, Germany" (Originally from: Dirk Nimmich ) > Quote ` -character Changes of Elm2.4ME+ PL28 (25) compared to Elm2.4ME+ PL27 (25) -------------------------------------------------------------- - mailerflags was too short for DSN flags Changes of Elm2.4ME+ PL27 (25) compared to Elm2.4ME+ PL26 (25) -------------------------------------------------------------- - 'hdr -> magic = NULL;' should be 'hdr -> magic = 0;' in parse_util.c Noted by: "Andrew J. Piziali" - "Change Elm to exit after printing the error message, rather than continuing and erasing the screen message and all, if it encounters an error when reading your "elmrc" file." From: Guy Harris * But do not do this if in batch mode! * Don't exit if there is errors in global elmrc! * Let user save new .elm/elmrc with option -w - state_read_headers was building next_header chain incorrectly (and possible other chains also). - add_paramater_t routine (wrapper for add_parameter) to mime_encode.c - Let user attach files with option -A To get this work correctly, user needs to have mapping file extension -> mime/type in his .elm/elmrc - Added field magic to mime_t and routine mime_panic. Now it is possible to get error message MIME_PANIC if in mime structure in memory is something wrong (analogy to STATE PANIC and HEADER PANIC). - Size of forwarded mail in message/rfc822 was not set correctly in Elm2.4ME+ PL23. - Added DSN (Delivery Status Notification) Configure menu to verify_tranmission. You need sendmail 8.8 to get this. - In menu of verify_transmission, show a)attachments option also in user level = 0, if there is attachments. - In menu of verify_transmission, show p)gp option also in user level = 0, if original message was pgp -encoded (when replying). - In menu of verify_transmission, show D)SN option also in user level = 0 if there is dsn settings (does not apply now). Changes of Elm2.4ME+ PL26 (25) compared to Elm2.4ME+ PL25 (25) -------------------------------------------------------------- - Adding final \n\n was badly broken in copy_message() Reported by: Eilon Gishri - Try fixing handling of null bodys in read_headers() { newmbox.c } in some cases. Perhaps this brokes nothing? - rfc1522_encode_text failed to \0 terminate Subject From: Claus Assmann - PGP fails to check signature if KEEPBINARY=ON From: Heiko W. Rupp - Created new directory melib and made archive libme.a. Some code is moved to that directory. You need to create that directory before applying path! Changes of Elm2.4ME+ PL25 (25) compared to Elm2.4ME+ PL24 (25) -------------------------------------------------------------- - Problem with screen size (elm_LINES and elm_COLUMNS are inconsistent). [ I was commented out line what was comment /* kludge for HP Window system? ... */ in PL23. VERY misleading........................ I HATE this. - K E H ] - Fix release month Changes of Elm2.4ME+ PL24 (25) compared to Elm2.4ME+ PL23 (25) -------------------------------------------------------------- - ks/ke capabilities are optional. They are not present in ANSI -terminal. From: "Andrey A. Chernov" - X-ELM-OSV was not correctly parsed Changes of Elm2.4ME+ PL23 (25) compared to Elm2.4ME+ PL22 (25) -------------------------------------------------------------- - Add a new config variable, called askpgpsig. When set to ON, Elm will ask for a username to sign pgp messages with. From: Guido van Rooij - menu2.c: ch must be int, or comparations with -1 (EOF) and 257 (REDRAW_MARK) produce wrong results. From: Andrey A. Chernov From: Guy Harris - In "do_pipe()", "redraw" was both a variable and a label. From: Guy Harris - If you've set characters such as the word-erase or reprint character to non-standard values, use your values, not the standard ones. From: Guy Harris [ Added also !escaped test, because now these characters can be printable. ] - Moved processing of cursor keys to ReadCh (old cursor key handling was buggy). > HP's shoftkeys are not supported: No options: -k -K No elmrc variables: softkeys keypad > Recognized keys are: Key tercap name terminfo name ----- ----------- ------------- UP arrow ku kcuu1 DOWN arrow kd kcud1 LEFT arrow kl kcub1 RIGHT arrow kr kcuf1 PAGE UP kP kpp PAGE DOWN kN knp HOME kh khome HELP %1 khlp FIND @0 kfnd > To get keys to use, your $TERM variable must point termcap/terminfo defination what includes these keys. Notice that 'vt100' does not include other than cursor keys. You must perhaps make new defination, for example terminal type 'vt100-plus' :-) For terminfo use 'tic' and 'infocmp' -commands. - state operations are moved outside of #ifdef MIME ... #endif - Added new routines state_write_headers, state_read_headers, delete_headers, locate_header and find_header to parse_util.c. read_header_line is now implemented with routine state_read_hdr_line. file_read_headers is implemented with routine state_read_headers. > Now included RFC 822 parts have printed text -- Start of included mail From: xxxxx instead of -- Start of included mail. - Rewritten read_mime_header to use file_read_headers, mainly by dividing it to new routine parse_mime_headers > Rewritten rfc822_parse. Now non-mime messages inside of message/rfc822 should be handled more correctly. - Setting elmrc variable require-mime-version-for-body-encoding to FALSE causes that almost all messages are treated as MIME -messages and MIME-Version is not required for these (in top level or inside of message/rfc822). - Add flag CM_REMOVE_ENVELOPE for copy_message > make message/RFC822 attachment when forwarding with copy_message - Make wait() in matapager restart in case of EINTR error - Do MIME Part 2 (RFC 1522) decoding even when not MIME even when not Mime-Version -header is present (If you want olf behauviour, set elmrc variable require-mime-version-for-hdr-encoding to TRUE). Header decoding is not done if sending elm was disabled to do MIME Part 2 (RFC 1522) encoding (as set in elmrc variable nohdrencoding). That information is carried in header X-ELM-OSV: (Our standard violations). - quoted-printable-decode was not decoding zero length part correctly. > Indicate with length == -1 as not set instead of length == 0 - Added symbolics values RHL_MARK_FOLDING and RHL_CHECK_HEADER for flags of read_header_line. Now read_header_line check header for carefully. Side effect: If there is spaces before ':' in header, them are deleted (assuming RHL_CHECK_HEADER). - Add to mime_types[] following non-standard main content types: x-world, model Changes of Elm2.4ME+ PL22 (25) compared to Elm2.4ME+ PL21 (25) -------------------------------------------------------------- [ Warning: There is quite much changes in user interface, so perhaps there is bugs. ] > Changes in Makefile.SH -- remember to run 'Configure' or 'Configure -d' or 'Configure -S' - 'ch' need to be 'int' in alias() - 'cmd' need to be 'int' in MenuLoop() - 'ch' need to be 'int' in generic_menu() Problem noted by: Claus Assmann - There was unwanted trigraph in run_decoder() Problem noted by: Claus Assmann - There was missing 'default:' in state_put() Problem noted by: Claus Assmann Problem noted by: Guy Harris - rename 'timeout' to 'elm_timeout' to get rid out linker warning - rename 'filter' to 'elm_filter' to get rid out linker warning - rename 'LINES' to 'elm_LINES' to get rid out linker warning (These are defined also in libtermlib.so) - rename 'COLUMNS' to 'elm_COLUMNS' to match 'elm_LINES' - If there is Raw(ON) in parent in metapager(), then also Raw(OFF) must be in parent Noted by (?): Jurgen Fluk - Replace some getchar()s with ReadCh(REDRAW_MARK) in syscall.c - Replace some getchar()s with ReadCh(REDRAW_MARK) in read_rc.c - Replace some getchar()s with ReadCh(REDRAW_MARK) in alias.c - Replace some getchar() with ReadCh(REDRAW_MARK) in utils.c - Use type application/X-ELM-encode with [enclode] ... [clear] if message is multipart (Elm 2.4ME+ PL6 should know this type, but there was error is some versions of ME+ in mime_notplain). - mime_notplain was returning TRUE (should be FALSE) for application/X-ELM-encode. - The builtin++ pager clears the screen before displaying the first screen of the message; however, the metapager wasn't clearing the screen before running the external pager, which left some junk on the screen. From: Guy Harris - Convert optionally_enter to use flag bits and now it returns REDRAW_MARK in most places when redraw is needed - LOCK_DIR removed from Configure / config.h.SH - Rememmber if last Configure run there was answer 'none' for additional librariers - Some new checks in Makefile (or actually in Makefile.SH), Configure is run lately (that confih.sh or Makefile or config.h are not stale) Changes of Elm2.4ME+ PL21 (25) compared to Elm2.4ME+ PL20 (25) -------------------------------------------------------------- - More Configure fixes for IRIX 6.2 - PGP signed messages (with type text/plain) was not handled correctly. Noted by: Volker Paulsen - Just a short one-liner to fix the display: When you leave the key selection menu in pgp_mail_public_key() with `q' (i.e., don't mail a key), this routine currently returns 0. This means that the main list won't be redrawn and seems to be a bug. From: Thomas Roessler - read_number should create buffer of size SLEN, not NLEN since it uses optionally_enter() which assumes that the buffer has length SLEN From: Thomas Roessler - Additionally, one might want to have the pgp functions in the help menu. From: Thomas Roessler Changes of Elm2.4ME+ PL20 (25) compared to Elm2.4ME+ PL19 (25) -------------------------------------------------------------- [ There is changes of error handling of leave_mbox -- so report, if you lost mail... ] - Look also termlib.so and curses.so in Configure - Remove PGP test from need_meta in showmsg.c (It was causing that metamail was not called for multipart/signed what isn't supported.) - Move metamail flags before PGP flags in show_message in screen.c - lib/safeopen.c need to be added to MANIFEST Noted by: Keith Manley - Elm as acting quite oddly if ending boundary of multipart structure was missing. Detected from report of: Rolf Larsson - Add sleep_message() to out_utils.c - Detect if there is read error in newmbox! - Check read errors also in some other places.... - Changes in leave_mbox -- now it returns with value -2 if it fails to leave folder - SIGUSR1 and SIGUSR2 is anly handled when in prompt (because otherwise we can be in wrong state -- for example in middle in resync.) - Check in ReadCh if it was called from GetPrompt (GetPrompt want to see EINTR error!) - ReadCh takes now redraw flag: Either 0 or REDRAW_MARK. Now elm is able in many places automatically redraw screen when elm resumes after suspending. - skip_envelope() to parse_util.c - Use skip_envelope() in get_and_expand_everybody() and handle_reply_to() -- now elm should not be confused with MMDF envelope of mail Reported by: { Unknown -- mail lost } Changes of Elm2.4ME+ PL19 (25) compared to Elm2.4ME+ PL18 (25) -------------------------------------------------------------- - Fix SIGSEGV (with application/pgp; format=mime) - With application/pgp; format=mime in included mime type nested structures was not parsed (actually that was causing SIGSEGV) - recognize application/pgp; x-action=signclear - Add "-- Start of included mail." and "-- End of included mail." texts. Changes of Elm2.4ME+ PL18 (25) compared to Elm2.4ME+ PL17 (25) -------------------------------------------------------------- [ This patch includes very many changes, so perhaps there are bugs ... ] - Clean up some of the questions in the "Configure" script. From: Guy Harris - Added a '-S' option to the Configure script to just redo the "variable substitutions on .SH files" that the script performs at the end. "I found this extremely useful, as I often made changes to the config.sh (for instance, the 'optimize' flags), and I wanted to re-create the Makefiles without running the entire Configure script all over again." - Also added '-h' option to report usage and available options to Configure script. From: Will Day - Add support for a "mailpermissions" variable in your "elmrc" file that can be set to specify the permissions to be used when creating a new mail folder. The syntax to use when specifying the permissions is *not* numeric, it's an "ls"-style string such as "rw-rw----", and the default is "rw-------". From: Guy Harris - (Elm)HelpViewAttach was missing from s_elm.m - Have the NLS stuff make "s_elmalias.h" from "s_elmalias.m". From: Guy Harris - Fix up "gencat" to compile on systems that don't do ANSI C (e.g., SunOS 4.1[.x] when using the bundled C compiler). From: Guy Harris - Some additions to help text of Elm - Reconstruct mime_send_t. There was wrong type when multipart message was sent and pgp was used. Noted by: J. Porter Clark - Added elmrc option: "quoteforward", which will let the user restore the behavior of original elm when forwarding messages - that is, to quote them like replies. "I wanted this available, because usually when I forward a message, I will comment various lines, and if it's not quoted like a reply, my comments can be confused with the forwarded message (and I didn't want to have to manually comment the message every time)." From: Will Day - convert mail() and send_msg() to use binary flags. Get rid of global variable "forwarding". - Added safeopen_rdwr() call yet some places. "While browsing through elm me+ xyz kh's source code, I stumbled across an invocation of tempnam() in a somewhat insecure environment: In mailmsg2.c, it's output is used as argument to fopen(...,"w+"). This is dangerous, since it may allow other users to access those temporary files." From: Thomas Roessler > Also use open_end_update() call, then code is cleaner [ In suplied patch there was possibility that elm destroyes =sent folder... ] - Modification for Configure: On a Linux system which uses ELF-format shared libaries, the library symbols do not have an underscore prepended to them. "I simply removed the [._] part from the sed expression. This makes everything compile and run happily on my machine, but if you want to correct this problem in your distribution, you would probably want to keep the old rule as well, to keep it from breaking elsewhere." Noted by: Matthew Hunt - "The second patch (re-)enables the use of the `T' key in the menu at the end of a message (tag + next). This used to work in earlier releases of elm." From: J Wunsch - "I think there is a small bug in metapager.c which has the consequence that the pager menu is sometimes displayed on the wrong screen page. The patch below fixes this behaviour." From: Thomas Roessler [ This patch little questionable -- 'ti' is "string to begin brograms that use cup" (cursor addressing) and 'te' is "string to end programs rhat use cup" -- problem is that xterm uses ti/te to swap screen page... ] - "Additionally, there is still an ugly timezone bug in elm-me+; the old patch for elm 2.4 applies cleanly to the current me+ version." Noted by: Thomas Roessler > Fix timezone: "OK...here is the fix for the wierd timezone shifting. Besides the botched month parameter, the year also was wrong. This patch better documents the input parameters to the lib/date_util.c procedures, and fixes get_tz_mins() to avoid a wierd offset shifting problem. Thanks to Thomas Roessler for chasing down the cause of the problem." From: Chip Rosenthal - Fix dangling pointer bug in attach_viewer! - Recognize text/x-pgp. From: Guido van Rooij [ + #ifdef USE_PGP added ] > If type was text/x-pgp, don't consider case that PGP file is binary - Don't convert application/x-pgp* to application/pgp in newmbox.c -- instead recognize it in mime_decode. - Don't reset type_opts when converting text/plain to application/pgp. [ That change was buggy -- fixed in PL21 ] - Move "Decrypting message..." and "Checking signature..." messages to another place. Changes of Elm2.4ME+ PL17 (25) compared to Elm2.4ME+ PL16 (25) -------------------------------------------------------------- - Some systems use OXTABS bit instead of TABDLY [ Various paches for *BSD ] From: Ollivier Robert From: Jeff Thieleke From: Andrey A. Chernov - Undone HP-UX change for ANSI_C "This is mostly incorrect. We figured out that the problem was the -traditional flag that was included by default when compiling with gcc." Noted by: Jeff Thieleke - Removed -traditional from gcc flags in Configure "The real fix would be to remove the default CFLAGS when compiling with gcc, since they probably aren't needed any more." Suggested by: Jeff Thieleke - Don't allow change a filename of forwarded mail in attachment menu. - If content-transfer-encoding is unknown when saving attachment, treate it as binary. - Don't allow change filename in attachment menu to non-existent Changes of Elm2.4ME+ PL16 (25) compared to Elm2.4ME+ PL15 (25) -------------------------------------------------------------- [ Warning: state routines are rewritten -- so look below what to do if you get STATE PANIC message ... ] - Add #include "headers.h" to safeopen.c to get rid out one stupid compiler warning Urged by: Andrew J. Piziali - struct state is divided to two structs: struct in_state and struct out_state. Large modifications to state routines (state.c). If you get message STATE PANIC: Bad magic number compile elm with debugging -g and -DDEBUG and run elm with -d11 and try get it repeated. Now STATE PANIC should cause producing of core file. Look with debugger where that STACE PANIC accured (ask stack trace from debugger) and look also file ~/ELM:debug.info - If terminal driver is expanding tabs, do not print them -- instead jump to correct location - "HP-UX apparently doesn't declare __STDC__ (like AIX), so compiling with cc or gcc fails in src/init.c at the getgid(), getuid() prototypes." From: Jeff Thieleke [ Undone in ME+ PL17 ] - If you sign 8-bit mail, it will be later encoded with quoted-printable or base64 (by elm or by sendmail). Thus 'invalidating' because pgp_decode does not undo contet- transfer encoding before calling PGP. Noted by: Zoltan Hidvegi Noted by: Hans-Christoph Wirth * Now content-transfer-encoding is decoded before bodypart is passed to pgp (it also now work, when *.pgp file is encoded with base64). > That decoding is done via temporary file -- perhaps I some time stack state routines so temporary file is not needed and decoding of content-ttransfer-encodings are done during reading. > If I some day get implemented MIME/PGP then 8-bit mail is always encoded with quoted printable and then passed to PGP for signing. - Display text before PGP armor if elmrc variable showpgppreamble is set (default). Binary PGP files are detected by looking first byte (after decoding content-transfer-encoding). - Fix to PL15 fix: "Elm fail in resyncing if mailfile is created after initial entering to mailbox." -- previous fix can cuase elm exiting with message "What's this? The temp folder already exists??" and then "Ahhhh... I give up." Perhaps noted by: Andrew J. Piziali - SECURITY: Elm was running PGP as setgid mail (by using popen) when searching matching keys -- converting to use pipe - fork - setgid (groupid) - execl - Need pass +language=en to PGP when searching matching keys Noted by: Boris Staeblow - Initialize last (extra) element also to NULL in DynamicArray so that DestroyDynamicArray works (lib/dynarray.c) -- was causing SIGSEGV in GetPGPKey [ Undo Elm2.4ME+ PL15s patch before installing this patch. ] Changes of Elm2.4ME+ PL15s (25) compared to Elm2.4ME+ PL15 (25) --------------------------------------------------------------- - SECURITY: Elm was running PGP as setgid mail (by using popen) when searching matching keys -- converting to use pipe - fork - setgid (groupid) - execl Changes of Elm2.4ME+ PL15 (25) compared to Elm2.4ME+ PL14 (25) -------------------------------------------------------------- [ Warning: This is perhaps more buggy than PL14. ] - Some changes in Makefiles, Configure - Change of temporary mbox name, put temporary mbox to back to temp directory (from home directory) - can_open(filename,"sw") checks if creating of _new_ file is possible (O_EXCL) -- and use that in leavembox.c Side-effect: New file is created - use isprint((unsigned char)ch) in src/curses.c - "I removed all fopen(file, "w") where file was a filename in /tmp and replaced these with a safeopen(file) call. These changes should be also applied to the vanilla elm source." - "Also there are some minor bugfixes for PL11. Elm did not asked my PGP password when I wanted to read a PGP encrypted mail since it wrongly thought that the mail is only signed but not encrypted. That's the most serious bug." - "I add a ClearScreen() before the fork in pgp_decrypt_init() to make the screen look clearer." From: Zoltan Hidvegi - Routine safeopen_rdwr added to safeopen.c - Test agaist special modes was WRONG in leavembox.c (it was 0x7000 and it should be 07000) - Treate files with special modes as SPOOL files (newmbox.c) - Handle 'intelligent' way also SPOOL files what haven't in mailhome - Restore also special modes of file if file is not executable - Don't chown file if owner is already correct -- it resets special modes * With these changes it is possible to redirect sendmail aliases to files (mode 04600) and cause that elm does not reset setgid bit (what is required to be set, before sendmail accepts forwarding to no world writable files). - Multiple To: -headers was cauisng of trashing of memory and SIGSEGV Noted by: Richard Allen - Elm fail in resyncing if mailfile is created after initial entering to mailbox. Noted by: Miroslav Ruda { I didn't used suplied patch. } - Elm fails to create received -folder Noted by: Jussi Kaurola - Added function open_end_update to file_util.c - Replace iscntrl((unsigned char)*pending) with !isprint((unsigned char)*pending) in builtin++.c because Configure asks that is isprint working with 8-bit values, but it does not ask about iscntrl * Notice: Seems that someones does not agreed with interpretation of ASCII_CTYPE defination. My interpretation is: ASCII_CTYPE defined: isprint works only with arguments 0-127 Conclusion: We can't test that is characters in range 128-255 printable or not, so don't print them ASCII_CTYPE is defined when you answer "no" to following question: "Should Elm assume that isprint() won't break on non-ASCII characters?" To get 8-bit characters to work you need: 1) 8-bit clean ctype functions and macros 2) ASCII_CTYPE is not defined 3) setlocale exists (Configure have found locale.h; that is: I_LOCALE is defined) 4) Correct locale defination (environment variable $LANG or $LC_CTYPE usually) Look manual page of setlocale - If you are not using builtin(++) pager in Elm, thinks can go more complicated -- all pagers does not use locale definations - Use kill(getpid(), SIGSTOP) instead of kill(0, SIGSTOP) so that delivering of mail does not stop when user suspends Elm. Reported by: Richard J. Auletta New files: lib/safeopen.c Changes of Elm2.4ME+ PL14 (25) compared to Elm2.4ME+ PL13 (25) -------------------------------------------------------------- - PGP signed (or encrypted) MIME mail was not quoted when replying. Quick fix for pgp_decode in pgp.c. It still perhaps have broken... Changes of Elm2.4ME+ PL13 (25) compared to Elm2.4ME+ PL12 (25) -------------------------------------------------------------- - Compiler was giving warning that 'char *' and 'unsigned char *' are not assignment-compatible (for code in mime_encode.c) Noted by: Arkady Altman - Include headers of forwarded message to editor buffer even when you have noheader = ON (that is in situation mimeforward = OFF). That is now controlled with elmrc variable "noheaderfwd" (default: OFF) - Elm was getting SIGSEGV in remailer_parse_opts in remailer.c Noted by: V Menayang [ Notice that this REMAILER code is still broken! ] - remailer.c was calling finger without resetting egid! - FreeBSD changes to utils/newmail.c also pertain to NetBSD From: Jeff Thieleke Changes of Elm2.4ME+ PL12 (25) compared to Elm2.4ME+ PL11 (25) -------------------------------------------------------------- Warning: This version is probably much more buggy than PL11 !! - The blank line between two messages in a folder was missing. Noted by: Juergen Obermann - If nohdrencoding = TRUE and there is 8bit characters in subject, treat as there was 8bit characters in body. From: Andrey A. Chernov [ This does not work very well... ie. It works only when Content-Type is Text/plain. ] " Before RFC 1522 issued, too many users (f.e. Russian users) use 8bit chars in Subject: header field. There is a lots of 8bit capable MUA & MTA exists now, much more then RFC1522 compatible ones. In existent variant when you enter 8bit subject with ASCII body result content charset stays as ASCII, it makes impossible to recognize Subject: charset. I UNDERSTAND that my method violates MIME slightly (no 8bit characters must be in header field) but it is adoptation of real life practic." - Add /usr/sbin to default path, there is sendmail on FreeBSD - Disable national extensions of 'date' - Add FreeBSD lock directory - Add KOI8-R charset to user prompt, it is officially registered, RFC1700 - Fix utime_buffer declaration for FreeBSD - Allow mailbox editing for Expert user level only. Total disabling of this option makes life harder for experienced users and total enabling cause accidental 'e' hitting damage novice users mailboxes. It seems that enabling it for Expert user leve is the best solution. From: Andrey A. Chernov - "I also discovered another small 'bug'... Michael Elkins changed someday in pgp.c a get_address_from() call to a simple strcpy() which caused my pgp not to find my secret key because of a leading blank: " Volker Paulsen " ^ After I changed it back to get_address_from() the leading blank becomes removed and pgp matches the key correctly against its key ring ." From: Volker Paulsen - Add binary -flag for header_rec. No longer hack for remail.c. - Make more clear what part of message was PGP signed or encrypted. (Why pgp returns exit status 0 even when signature doesn not match???) - Some massive rewriting of copy_message. Now should decoding of RFC 1522 encoding work correctly when replying (and forwarding). Side effects: - Headers which have longer than 32 KB after unfolding are truncated - Exact folding is not preserved Changes of Elm2.4ME+ PL11 (25) compared to Elm2.4ME+ PL10 (25) -------------------------------------------------------------- - Elm wrote incorrect Content-Length: -header when updating Status: -header Noted by: Juergen Obermann [ That content-length is lightly too big and is not fixed if it is last mail in folder (it is not big enough that newmbox.c notices) also incorrent Content-Length: -header causes in other situations that it is ignored. This causes problems when "From ":s are not escaped. ] Changes of Elm2.4ME+ PL10 (25) compared to Elm2.4ME+ PL9 (25) ------------------------------------------------------------- - CM_DISPLAYING was wrong value in hdrs/defs.h - Elm was corrupting folder by adding number to end of mail... And therefore causes that next mail does not start with "From " in folder. Noted by: Volker Paulsen - REMAILER code does not compile. From: Andrey A. Chernov From: Arkady Altman Changes of Elm2.4ME+ PL9 (25) compared to Elm2.4ME+ PL8 (25) ------------------------------------------------------------ - Attach viewer does not completely fill header_rec so "lines" was uninitiazed, which may cause "metapager()" to choose randomly whether to use the built-in pager or not, if you haven't set "pager" to "builtin" or "internal". Now structure is pre-initialized completely. "lines" is set to number of bytes / 60 (not saticfactory, but actually metapager should use number of lines in decoded message -- not in original anyway.) Prompted by: Guy Harris Changes of Elm2.4ME+ PL8 (25) compared to Elm2.4ME+ PL7 (25) ------------------------------------------------------------ - In syscall.c, around line 180, the space for p was allocated but the actual string was never built. From: Mark Johnson - At the end of a message with the buildin pager I sometimes get the prompt "MORE (you've seen 101%):" and I can not read the next message with pressing the space bar. From: Juergen Obermann - "rfc822_reap_comments()" wasn't properly handling Content-Type: headers like Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Feb_14_09:54:49_1996)--" because it didn't realize that the ")" in the boundary was inside a quote, and therefore should be copied rather than being stripped out. From: Guy Harris - It wasn't RFC 1522-decoding the name in the "From:" header when it put in the "Forwarded message from" and "End of forwarded message from" lines. From: Guy Harris - Put defualt disposition for attachment to be 'attachment' when sending. - Check that attachment is not deleted before mail is sent. - Because copy_message is now called from metapager, it needs two more arguments (mailfile and current_header). I hope that this change breaks nothing! Detected from report of: Mark Johnson Changes of Elm2.4ME+ PL7 (25) compared to Elm2.4ME+ PL6 (25) ------------------------------------------------------------ - Incorrect subject Changes of Elm2.4ME+ PL6 (25) compared to Elm2.4ME+ PL5 (25) ------------------------------------------------------------ - Sometimes extra newline was added when message or body of it was copied. > copy_message in fileio.c was gone too hairy. Tried to reorganize it. I hope that nothing breaks. > Semantic of flag CM_DECODE is now changed. > Now message is decoded before replying and forwarding (excpet when mime_forward is true -- forwarded message as attachment is not decoded). > Well, now [encode] [clear] does not work when metamail is called. > [encode] ... [clear] is now internally handled as application/X-ELM-encode (in MIME -message) - Do RFC 1522 decoding only in MIME messages. - builtin++ code in metapager was broken [encode] ... [clear] > I simplified metapager. I hope that nothing breaks. > Notice that [encode] ... [clear] is broken when sending multipart messages. - Now also headers of message/rfc822 are prefixed when replying - Nicer printing of folded headers (in metapager and rfc822_decode) - Letter 'e' (= uses Elm's [encode] ... [clear]) added to status letter of mailbox menu. Changes of Elm2.4ME+ PL5 (25) compared to Elm2.4ME+ PL4 (25) ------------------------------------------------------------ - "nohdrencoding" was in wrong place in list - To instead of From in headers was always displayed: From: Petr Lampa - There was some confusion in (char *) versus (unsigned char *) in rfc1522_encode_text. Pointed by: Petr Lampa - Replaced check of R_OK with ECCESS_EXISTS in can_save in attach_menu.c - Reordering of attach_viewer so metamail is not called when it isn't needed (new defination of 'pagemultipart' was broken it.) - Message "Parsing MIME structure..." is printed - Added to some unlink and elm_chown calls to attach_menu.c - Now prints "Executing metamail..." if metamail is called for display message. - Tried fix MIME decoding of headers in copy_message (well, it still can't work correctly.) - MIME (RFC 1522) encoding of In-Reply-To -header > Address headers and headers from .elm/elmheaders are still not encoded. - Don't try print To: address in menu if it does not exists. Changes of Elm2.4ME+ PL4 (25) compared to Elm2.4ME+ PL3 (25) ------------------------------------------------------------ [ Warning: This is perhaps more buggy than PL 3 (25). ] * Sending of simple Text/Plain messages with quoted-printable encoding was broken when remailer -code was added. Noted by: Petr Lampa - In the index screen Tag all, Delete all and Undelete all didn't show the new status of the messages. From: Juergen Obermann - In readmsg the Cc-header line is always shown. From: Juergen Obermann [ This should be also posted to Elm Development Cordinator ] - Add a "Status: RO" line to all outgoing messages (when the "copy" option is turned on), so that they do not show up as "New" when you look at a folder. From: Pete Wenzel - The macro X_OK is undefined in some systems. Use EXECUTE_ACCESS instead. From: Gunnar Ekolin > Failing to include . Test agaist I_UNISTD instead of ANSI_C. Noted by: Petr Lampa > Now EXECUTE_ACCESS, WRITE_ACCESS, READ_ACCESS, ACCESS_EXISTS, EDIT_ACCESS is defined in terms of X_OK, W_OK, R_OK, F_OK from unistd.h (if available) - Fix defination in hdrs/mcprt.h to match with lib/mcprt.c From: Claus Assmann - DisplayAddress not work (well, I really not used that patch). That needs still reconsideration. From: Claus Assmann - Mime (RFC 1522) encoding of following headers: - From (fullname) - Subject - Content-Description Encoding of In-Reply-To, To, CC or headers in .elm/elmheaders is NOT done. - New elmrc variable "nohdrencoding". If this variable is TRUE, then MIME encoding of headers isn't done. - Wrong tests with allow_no_encoding in src/mailmsg2.c. Noted by: Petr Lampa - Use strincmp for lib/strincmp.c instead of strcasecmp. Noted by: Petr Lampa - Added check for write errors in mime_encode.c Changes of Elm2.4ME+ PL3 (25) compared to Elm2.4ME+ PL2 (25) ------------------------------------------------------------ - Fix to builtin++.c SIGSEGV fix Changes of Elm2.4ME+ PL2 (25) compared to Elm2.4ME+ PL1 (25) ------------------------------------------------------------ - Really fix In-Reply-To -header [ This is also posted to Elm Development Cordinator ] Changes of Elm2.4ME+ PL1 (25) compared to Elm2.4ME+ PL0 (25) ------------------------------------------------------------ - SIGSEGV in builtin++.c when looking full headers of mail and Ctrl-L was hit. - Typo in remailer.c (causes that it don't link) From: Ollivier Robert - Ultrix patch from comp.mail.elm From: John Simonson , Sydney Weinstein , Bill Gianopoulos - Now Elm's Configure search for metamail -program - DisplayAddress: Don't munge sender with get_real_name - Elm was generating syntactically incorrect In-Reply-To -headers - Because some peoples seems have trashed src/state.c that patch includes file src/state.c.PL1. If src/state.c.PL1 and src/state.c don't have identical, use command: mv src/state.c.PL1 src/state.c otherwise: rm src/state.c.PL1 - SIGSEGV when hitting 'G' in builtin++.c Changes of Elm2.4ME+ PL0 (25) compared to version Elm2.4 PL24 ME8b+ ------------------------------------------------------------------- - Added (security) patch PL24 -> PL25 and added same kind (security) fixes for MIME code - Version number is now formed with new style :-) - elmrc -variable 'displaycharset' is propgated to environment variable $MM_CHARSET when calling metamail. Environment variable $MM_CHARSET overwrides default value of 'displaycharset'. - New elmrc -variable 'metamail'. So now you not need define environment variable $NOMETAMAIL, if you want compile Elm with MIME support, and you don't have metamail. Special values: none Don't call metamail metamail Call metamail, if environment variable $NOMETAMAIL is not defined /path Call this, if this is executable - Meaning of elmrc -variable 'pagemultipart' is changed. If this is FALSE (default), then call metamail if elm can't handle all subpart of multipart -type or if type is other than multipart/mixed, multipart/digest or multipart/report. If 'pagemultipart' is TRUE, then always handle multipart type without metamail (and treat unknown subtypes as multipart/mixed). Decision can Elm handle that type, is done when message is displayed. So there is now 'M' -letter (= metamail needed) in multipart mails until message is displayed even when Elm can show it (that is because that defination is recursive and requires parsing of structure of message.) - Multipart/digest now works correctly when viewing attachment what we have sending and we have put type for it to be Multipart/mixed. - Configure now tries test if sendmail supports -B8BITMIME and -BBINARYMIME (unlikely). - Makefile now don't compile or install 'filter' because security problems in it. Changes of Elm2.4 PL24 ME8b+ compared to version Elm2.4 PL24 ME8b ----------------------------------------------------------------- - New version of my Reply-To patch included [ Old version of that patch is posted to Elm Development Cordinator ] - Made MIME part 2 (RFC 1522) decoding more accoriding of RFC. - Some bugfixes Charset definition ------------------ Files libdir/elm.mimecharsets and ~/.elm/mime.charsets handling mapping from current locale (LC_CTYPE) from MIME charset value. On file there may be three kind lines: - charset-defination locale charset-name locale charset-defination - alias-defination First kind line defines properties of charset. Second kind line defines mapping from locale to charset name. Third kind line defines mapping from locale to charset and defines properties of charset. This kind line should be avoided, because it leads to redefination of charset. Fourth kind line gives aliases for charset. This does not redefine charset. So in file should be only three kind lines - charset-defination - alias-defination locale charset-name charset-defination have following forms "charset name"; params... charset; params... charset-name is name of charset without quotes (or ; character). locale have following forms LL_cc.encoding LL_cc *.encoding params on charset defination have forms param param=value param="quoted value" params are separated by ; character. Possible paramas are following MIME-subset gives byte-to-byte subset type gives type of charset map gives mapping from charset to unicode -- exact meaning depends type of charset alias gives alias for charset and iso2022 paramaters given on later. Specially MIME-subset=US-ASCII gives compatcharsets. Notice that MIME-subset should be used only on one-byte character sets which do not use escaping technology. Possible types of charsets include unknown-charset this is default type ascii-set specifies that bytes 0-127 map to unicode values 0-127. This is default for charsets which have MIME-subset=US-ASCII given. one-byte-map Specifies that mapping to unicode values are given on external file. iso646-set Specicies 7-bit character set which invariant part of map directly to unicode values and and variant part is given on map argument. This is default for charsets which have MIME-subset=INVARIANT given. utf-8 Specifies that charset uses UTF-8 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. utf-7 Specifies that charset uses UTF-7 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. imap Specifies that charset uses IMAP variation of UTF-7 encoding algorithm. And that values 0-127 map to unicode values 0-127. Note that this type parameter without map paramater does not define mapping of other values to unicode. Possible map values for type ascii-set include following builtin maps US-ASCII ISO-8859-1 KOI8-R KOI8-U CP1251 CP1252 Possible map values for type ascii-set and one-byte-map include following kind names filename File is readed from directory given on map-text-dir directory (normally $lib/elm.map.txt) {rc}/filename File is readed from .elm subdirectory of user's home ~/filename File is readed from user's home directory Map files should be "Format A" files from unicode.org. These map files are not included to Elm ME+ distribution, because on these files there are stated that Unicode, Inc. specifically excludes the right to re-distribute this file directly to third parties or other organizations whether for profit or not. These map files are parsed and readed to memory when first time referenced on elm.mimecharsets or mime.charsets. If you use these mappings file, you then also want set page-known-charsets = ON on global elm.rc. That causes that metamail does is not called for these character sets (metamail probably does not do any conversions and tries print them as is.) Possible map values for type iso646 include following kind names INVARIANT (builtin) XXXX XXXX XXXX XXXX XXXX (12 hex values) gives unicode character for following positions 0x23, 0x24, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x60, 0x7B, 0x7C, 0x7D, 0x7E Possible iso-2022 params are following other-set bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96, bank-G0-94, bank-G0-94x94, bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96, bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96, bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96 Params bank-94x94, bank-G?-94x94, bank-96x96, bank-G?-96x96 are not allowed with charset type ascii-set, one-byte-map or iso646-set. (For these values there is no any charset type which are usefull -- therefore these params values can not be used.) Paramater bank-G0-94=4/2 is added automatically to bank specifications of charset type ascii-set. Possible param values for iso-2022 are space separated (usually empty) lisst of intermediate bytes and final byte given on form d/d. If there is several bytes, list must be given on quoted form. Giving of iso-2022 param does NOT itself imply that charset may include ISO 2022 codes. Rather it means, what codes to use when switching terminal to that character set. Possible map values for type utf-8, utf-7 and imap include following kind names UNICODE Specifies identify mapping to unicode on ranges 0x0080 - 0xD7FF and 0xF900 - 0xFFFF (*). filename File is readed from directory given on map-text-dir directory (normally $lib/elm.map.txt) {rc}/filename File is readed from .elm subdirectory of user's home ~/filename File is readed from user's home directory Map files have lines on format start-end start-end where first start-end gives values on given charset and second gives correspind unicode-values (start and end value). Start and end should be given on hexadecimal format. (*) Mapping of ascii range (0000-007F) is determined by charset type utf-8, utf-7 and imap. Surrogates Area (D800-DFFF) and Private Use Area (E000-F8FF) are excluded from mapping. alias-defination have following forms "charset name"; alias="name"... charset; alias=name... There may be given several aliases given on one line. Also aliases may be given on own lines. Alias defination lines for given charset should be after charset-defination line for charset. If charset-defination for given charset is given after alias defination, alias defination does NOT follow new defination of charset. Additional terminal information ------------------------------- Files libdir/elm.terminalinfo and ~/.elm/terminal.info handles terninal specifi methods for switching of chartset of terminal. On file there may be following kind lines: term ISO-2022 charset-name term ISO-2022 charset-defination term PRIVATE charset-name d/d d/d d/d where term is type of terminal (ie value of $TERM). ISO-2022 is literal, which indicates that next column is character set name or character set defination as on elm.mimecahrstets or mime.charstes file and that charatcter set switching happends as given with other-set and bank-Gx-* attributes on charcter set defination. PRIVATE literal, which indicates that next two columns are charatter set name and bytes given on d/d format for switch character set. It is assumed that these escape sequencences not affect to input (keyboard) charset of terminal (ie. not affect 'keyboard mode' or 'keyboard language'). Folder and file browser ----------------------- Hit TAB to get folder or file browser when file or folder name is asked. Characters '*' and '?' are treated as wildcards on folder and file browser if option browser-wildcard-matching is ON (default). Typing name with wildcard and pressing ENTER or TAB gives directory listing limited with that wildcard specification. That is limited to one directory -- directory paths can not include wildcards. Note also that it prevents selecting file or folder names that include '?' or '*' characters. Folder and file browser understands following special keys: TAB Gives directory listing for that directory name which is written to file or folder name question prompt. UP Moves selection up on folder listing DOWN Moves selection down om folder listing LEFT Removes selection from file or folder name question prompt, or Gives directory listing for previous directory. RIGTH Adds selection from file or folder name question prompt, or Gives directory listing of current selection (ie. selects that directory). Enter Answers to file or folder name question. IMAP directory can be accessed by giving username@hostname or username@hostname:folder or username@hostname/directory to prompt and pressing TAB key. Note that username@hostname has three meanings: 1) Default directory (folder listing) for username on hostname. 2) IMAP INBOX folder for username on hostname. 3) POP mailbox username on hostname. If username@hostname is given (as itself or as prefix) on file browser, that gives error message that remote directories or files are not available. Following table shows which elmrc options can refer to remote mailboxes and prefixes which folder browser supports. Elmrc Remote Browser variable (3) possible prefix (1) Meaning ---------------- ---------- -------- --------- incoming-mailbox YES ! Current incoming mailbox sentmail YES < "sent" folder receivedmail YES (2) > "received" folder maildir NO = "Mail" directory maildir NO + "Mail" directory maildir NO % "Mail" directory extra-mailbox-dir NO (none) Extra mailbox directory (none) NO $ Environment variable (4) (none) NO ~/ User's home directory (none) NO ./ Current directory (1) If '!', '<' or '>' is used as prefix, current directory (or subfolder) separator is added automatically after incoming, sent or received folder. That usage is useful only with IMAP servers, which at the same time have folders (mailboxes) and directories (if folders which include subfolders or mailboxes). (2) If you put "received" folder to remote IMAP server, you are forced to log in to IMAP server every time when you leave folder or mailbox! (3) Environment variables in these elmrc variables are expanded before use. (4) Environment variables are supported only with local mailboxes or folders. Elm mailbox menu's status letters --------------------------------- - First letter: D Deleted E Expired N New O Unread r replied - Second letter: C Confidental U Urgent P Private (or ...) A Action F Form letter e Uses Elm's [encode] ... [clear] P PGP message (or ...) S PGP signed message K PGP public key ? MIME message with unknown MIME version a MIME message is attachment M MIME message wich requires metamail or isn't yet parsed m Pre-MIME message wich requires metamail s signed message (may require metamail) p private (encrypted) message New commands for Elm 2.4ME+ (compared to Elm 2.4) ------------------------------------------------- Subject (main) menu: ^E Extract PGP public keys from current message ^F Forget PGP passphrase ^K Mail PGP public key(s) P Print text of current message or tagged messages S Save (copy) text of current message to file or text of tagged messages to a folder U Unread message (change status from read to unread) v View attachments in current message. Altered elmrc variables for Elm 2.4ME+ -------------------------------------- pagemultipart PL0 If FALSE, call metamail if elm can't handle all subpart of multipart -type or if type is other than multipart/mixed, multipart/digest or multipart/report. If TRUE then always handle multipart type without metamail (and treat unknown subtypes as multipart/mixed). readmsginc PL51 Changed default to 100 displaycharset PL78 Character set to which switch terminal charset (text-charset) PL73 Character set to which convert outgoing mail text alteditor PL78 Now used even when "editor" is not builtin. page-known-charsets PL79 Changed default to ON copy PL82 Changed default to ON New elmrc variables for Elm 2.4ME+ (compared to Elm 2.4) -------------------------------------------------------- allow-charset-switching (MIME) askpgpsig PGP background-wait-time - browser-wildcard-matching - convert-comment-to-fullname - default-nomime-charset - dsn-success MIME / DSN env-from-source - extra-mailbox-dir - header-phrase-display-mode - imap-charset IMAP imap-connection-cache IMAP imap-fast-lookup IMAP imap-naming-convention IMAP imap-show-error IMAP imap-show-greeting IMAP imap-show-warning IMAP imap-use-examine IMAP incoming-mailbox (POP, IMAP) iso646-charsets MIME keeppassfor PGP local-fast-lookup - local-fs-charset - lock-in-copy - lock-folder - map-text-dir MIME / SYSTEM metamail MIME menu-display-host - mimebodykeywords MIME mimeforward MIME noencoding MIME nohdrencoding MIME noheaderfwd - pagealternative MIME page-known-charsets MIME pagemultipart MIME pagesigned MIME pgp2 PGP pgp5 PGP gpg PGP pgp-sign-type PGP / MIME pgp-version PGP pop-show-greeting POP quoteforward - readdatapercentinc - require-mime-version-for-body-encoding MIME require-mime-version-for-hdr-encoding MIME show-header-errors (MIME) showpgppreamble PGP sort-thread-max-time - text-charset MIME usepgppass PGP utf7-encode-optional MIME Obsolete elmrc variables ------------------------- charset (alias to text-charset) hpkeypad (alias to keypad) hpsoftkeys (alias to softkeys) keypad - softkeys - textencoding MIME bounce (alias to bounceback) bounceback UUCP pgp PGP (alias to pgp2) mailbox (alias to receivedmail) New elm options for Elm 2.4ME+ (compared to Elm 2.4) ---------------------------------------------------- -w Write .elm/elmrc on startup -A Attach file Obsolete elm options -------------------- -k Enable HP 2622 terminal keyboard -K Keypad&softkeys - enable use of softkeys + "-k" Options which now takes enumerated values ----------------------------------------- userlevel beginner, intermediate, expert noencoding pass-7bit, pass-8bit, pass-binary pgp-sign-type application/pgp, text/plain, text/x-pgp Warnings -------- - Not compiled with MMDF support defined, so probably it doesn't work (or even compile). - This has not been tested much so there can be bad bugs. Bug reports to: Kari E. Hurtta - Decoding of MIME is not done when searching content of mail - RFC 1522: Mime part 2 support is incomplete - Support for multipart/signed and multipart/encrypted (specially: support for PGP/MIME) only in reading side. There is no support for attachments with multipart/encrypted. > But anyway, Elm will never be MIME Conformant - HP's shoftkeys are no longer supported - DECNET addresses like host::user may be interpreted as phrase of group syntax or as route of source routed address. - Header editing screen now uses addresses in form phrase
, but because it does not require using of comma (,), multiword phrases must be entered in quotes. For example: "Kari Hurtta" - If address includes <> or comments (), they are not aliased expanded. So aliases must be entered as bare words. - Addresses given as arguments to elm command should be given as one address as arguments. Giving of sevaral addresses as one arguments causes that address is misparsed if header is edited on header editing screen. That is: Use: elm '"Kari Hurtta" ' 'Admin ' Don't use: elm 'Kari Hurtta , Admin ' - readmsg does not use mailbox (lib/mbox.c) routines! - p)rint command on article menu is still broken (but you perhaps may use P)rint text command) - Elm tools (on utils/*) do not use mime routines (melib). - Show Linux libraries does not follow $LC_CTYPE when program is setgid. Net result is that your locale is always C. That is visible that $LC_CTYPE does not effect to locale printed by 'elm -vvvvv': Locale (LC_CTYPE): C Display character-set: US-ASCII Sending character-set: US-ASCII - Conversion from Display character-set to Sending character-set is not possible it should be refused (but if it is not detected result of conversion will be practically empty.) - All referenced one-byte-map maps are parsed and readed to memory. This may cause quite big memory consumption if you have given mapping to a lot of charsets and you have many users running elm. That mapping information should be shared between processes to reduce memory consuption. - If display charset is produced by using mapping from locale to charset where charset definition is later invalidated ("removed") by setting explicit compatcharsets on user's .elm/elmrc, that may cause PANIC on elm's internal pager or other problems. Invalidation happens if display charset is on implicit compatcharsets list (because of charset definition), but does not have explicit compatcharsets list given by user. - Printable, lower and uppercase characters are known only from Latin/1 part (0000-00FF) of Unicode. - Neither Unicode didirectional algorithm nor Right-Left scripts are supported. - When APPENDing message to IMAP folder, message lines are not necessary CRLF terminated. - In some situations two Status headers may be generated two Status headers -- one by IMAP deamon and one from APPENDed message. - When APPENDing message to IMAP folder (which is normal UNIX mailbox format) original "From " separator line can not be preserved -- specially it is not possible to pass envelope sender address. - For UTF-8 charset Elm only knows printable characters from Latin/1 range. - UTF-16 surrogate pairs (D800-DFFF) are not supported on UTF-7 charset. - Mixing of names using IMAP naming convention (imap-naming-convention = yes) and names using imap-charset does not work very well... - Some Linux gethostbyname implementations accept ip-address as name, but return garbage on h_name -field of struct hostent. - " Regarding my message (8 Aug 2000) regarding 'newmail' on AIX 4.3.3 in an 'aixterm' window and the 'aixterm' did not close, indeed the problem was NOT related to 'newmail' but an AIX bug. IBM has release a patch, and the 'aixterm' in AIX 4.3.3 must be update with fileset X11.apps.aixterm.4.3.3.26 (PTF U473920) is solved to problem." From: Noam G. Nudelman Collector of these patches -------------------------- Kari E. Hurtta Poofreeding by Laura Katala