Elm ME+ 2.5 PLalpha38 announcement

Elm ME+ 2.5 PLalpha38

- Is available with
        <URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.PLalpha38.patch.gz >
  and   <URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.alpha38.tar.gz >
  via WWW.

- Is available on ftp.funet.fi
  via anonymous ftp
    directory  pub/mirrors/elmme-mailer.org/mirror/src/elm-ME+2.5/
           or  pub/unix/mail/elm/elm-ME+2.5/

    files      elm-ME+2.5.PLalpha38.patch.gz
    and        elm-ME+2.5.alpha38.tar.gz

  or is available with
        <URL: http://www.nic.funet.fi/pub/unix/mail/elm/elm-ME+2.5/elm-ME+2.5.PLalpha38.patch.gz >
  and   <URL: http://www.nic.funet.fi/pub/unix/mail/elm/elm-ME+2.5/elm-ME+2.5.alpha38.tar.gz >
  via WWW.

- Is available with
  message-id <elmME+2.5/PLalpha38/1@klovni.keh.iki.fi>
  on newsgroups alt.sources and comp.mail.elm

SUMMARY: This release adds "@charset = " specification to
         user's ~/.elm/elmaliases, ~/.elm/mailing.lists and
         global {etcdir}/elm.aliases, 
         {etcdir}/elm.mailinglists files. Also this release 
         adds "editor-al-propline" and "editor-ml-propline" 
         elmrc options. This release adds command 
         'elmconfwriter' which is used to clean up some 
         config files during installation. This release 
         fixes some crashes. Then also some other changes 
         and bug fixes are included.



Changes on Elm ME+ 2.5 PLalpha38 compared with Elm ME+ 2.5 PLalpha37
--------------------------------------------------------------------

        SUMMARY: This release adds "@charset = " specification to
                 user's ~/.elm/elmaliases, ~/.elm/mailing.lists and
                 global {etcdir}/elm.aliases, 
                 {etcdir}/elm.mailinglists files. Also this release 
                 adds "editor-al-propline" and "editor-ml-propline" 
                 elmrc options. This release adds command 
                 'elmconfwriter' which is used to clean up some 
                 config files during installation. This release 
                 fixes some crashes. Then also some other changes 
                 and bug fixes are included.

        - Possible fix for cs_iso2022_info_set_binary()
        - Possible fix for print_local_shared_options()
        - Possible fix for getkey()
        - Possible fix for give_canceled_mail()
        - Possible fix on split_file() on elmregister.c
        - Use ml_global instead of ml_system parameter when 
          reading global elm.iso2022sets -file.
        - Removed  -C {doc/elmrc-info} from final
            elmrc-write -G -I elm.rc.old-values
        - Changed default_unidata()

        - Added elmconfwriter -command to rewrite existing
          config files. This is used during installation
          to clear existing config files.

        - Some fixes to Makefile.SH
        - Some fixes to utils/readmsg/Makefile.SH

        - Added "@charset = " specification to user's
          ~/.elm/elmaliases and  global
          {etcdir}/elm.aliases  files.
        - Added "editor-al-propline" elmrc option. This is similar
          than "editor-elmrc-propline". If set to "emacs", then 
          when on user's elmaliases file, line
             # -*- coding: ... -*-
          is added to top of file. That line is also written
          if "editor-al-propline" elmrc option is 
          set to "auto" (default) and line detected 
          when file is read. 
          If set to "ignore", then editor property line
             # -*- coding: ... -*-
          on top of file is ignored.    

        - Do not crash when elm.aliases have alias
          without value:
                  ALIAS VIEW PANIC in /media/HD-EU2-buffalo1/mail/elmcharset/src/aliases/aliases_map.c:442:am_give_alias
                  >>>No alias_value or alias_key
                  Call stack: 1C0CE6 80FEC1B 80FCCEE 8065540 8090E4B
                   continues: 80AF9A8 80B0964 80904CB 2F7BF6 80606A1
                  backtrace: 
                  /tmp/TEST/lib/libelmme-base.so(panic+0x1e8)[0x1c0ce6]
                  /tmp/TEST/bin/elm(am_give_alias+0x1e7)[0x80fec1b]
                  /tmp/TEST/bin/elm(update_aview+0x2e4)[0x80fccee]
                  /tmp/TEST/bin/elm(alias+0x436)[0x8065540]
                  /tmp/TEST/bin/elm(mailbox_command+0x1dc)[0x8090e4b]
                  /tmp/TEST/bin/elm[0x80af9a8]
                  /tmp/TEST/bin/elm(main_messages_menu+0xe0)[0x80b0964]
                  /tmp/TEST/bin/elm(main+0xbbd)[0x80904cb]
                  /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x2f7bf6]
                  /tmp/TEST/bin/elm[0x80606a1]
                  ABORTING...
                  Aborted (core dumped)
        - Fixed alias sorting error

        - Fixed crash when message was forwarded as attachment:
                  SIGNAL PANIC in signals.c:144:segv_signal
                  >>>

                  Segment Violation signal!


                  Call stack: 1551AC 80DE3ED 8C1420 80CF973 80D07C9
                   continues: 80D1388 80B1760 80B2247 80AEBF0 80AF02D
                   continues: 80AF257 80D3C39 80DC105 80DD7A5 808DFFD
                   continues: 80AB87E 80AC77C 808CAEA 1D6EDC 805D7D1
                  backtrace: 
                  /usr/local/lib/libelmme-base.so.1.1.37(panic+0x1b9)[0x1551ac]
                  elm(segv_signal+0x84)[0x80de3ed]
                  [0x8c1420]
                  elm[0x80cf973]
                  elm[0x80d07c9]
                  elm(convert_remail_message_1+0x676)[0x80d1388]
                  elm(attach_rfc822+0x18b)[0x80b1760]
                  elm(mail+0x7cf)[0x80b2247]
                  elm(send_msg_middle2+0xdad)[0x80aebf0]
                  elm(send_msg_middle+0x10c)[0x80af02d]
                  elm(send_msg_l+0x126)[0x80af257]
                  elm(forward+0x2af)[0x80d3c39]
                  elm(process_showmsg_cmd+0x545)[0x80dc105]
                  elm(show_message_normal+0xa9)[0x80dd7a5]
                  elm(mailbox_command+0xd73)[0x808dffd]
                  elm[0x80ab87e]
                  elm(main_messages_menu+0xe1)[0x80ac77c]
                  elm(main+0xb46)[0x808caea]
                  /lib/libc.so.6(__libc_start_main+0xdc)[0x1d6edc]
                  elm[0x805d7d1]

                  Emergency exit taken! All temp files intact!


                  ABORTING...
                  Aborted
          This bug is probably introduced on Elm ME+ 2.5 PLalpha18

        - Added "@charset = " specification to user's
          ~/.elm/mailing.lists and  global
          {etcdir}/elm.mailinglists  files. 
        - Added "editor-ml-propline" elmrc option. This is similar
          than "editor-elmrc-propline". If set to "emacs", then 
          when on user's mailing.lists file, line
             # -*- coding: ... -*-
          is added to top of file. That line is also written
          if "editor-al-propline" elmrc option is 
          set to "auto" (default) and line detected 
          when file is read. 
          If set to "ignore", then editor property line
             # -*- coding: ... -*-
          on top of file is ignored.   

        - Possibly fixed case where last line of 
          ~/.elm/mailing.lists  was not (always) parsed 
          if there was not newline on last line.

        New elmrc options:
            editor-al-propline
            editor-ml-propline

        New tools:
           elmconfwriter

        New files:
           utils/elmconfwriter.c
           doc/elmconfwriter.1

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 <elm@elmme-mailer.org>
                                     (was hurtta+elm@posti.FMI.FI)

        - Internationalized (ie. non-ASCII) domain names are not supported.

        - 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.

        - 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 <address>, 
          but because it does not require using of comma (,), multiword 
          phrases must be entered in quotes. 

          For example:  "Kari Hurtta" <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 per argument. Giving of sevaral addresses per 
          one argument causes that address is misparsed if header is 
          edited on header editing screen.

          That is:

                Use:    elm  '"Kari Hurtta" <hurtta>' 'Admin <root>'

          Don't use:    elm  'Kari Hurtta <hurtta>, Admin <root>'

        - p)rint command acts as P)rint text -command. So it
          is currently quite useless.
          p)rint command does that via readmsg -command. However
          P)rint text does actually same (without readmsg).

        - Some Linux libraries does not follow $LC_CTYPE when program is 
          setgid. Net result is that your locale is always C. That is 
          visible that $LC_CTYPE does not effect to locale printed by 
          'elm -vvvvv':

                Locale (LC_CTYPE):         C
                Display character-set:     US-ASCII
                Sending character-set:     US-ASCII

        - All refrences iso2022 maps are parsed and read to memory. 
          This may cause quite big memory consumption specially because 
          eastern (multibyte) sets tend to be lot of characters. That 
          mapping information should be shared between processes to 
          reduce memory consuption.

        - If display charset is produced by using mapping from locale 
          to charset where charset definition is later invalidated 
          ("removed") by setting explicit compatcharsets on user's 
          .elm/elmrc, that may  cause PANIC on elm's internal pager 
          or other problems. Invalidation happens if display charset 
          is on implicit compatcharsets list (because of charset 
          definition), but does not have explicit compatcharsets list 
          given by user. 

        - Neither Unicode didirectional algorithm nor Right-Left scripts 
          are supported.

        - In some situations two Status headers may be generated two 
          Status headers -- one by IMAP deamon and one from APPENDed 
          message.
                  
        - When APPENDing message to IMAP folder (which is normal UNIX 
          mailbox format) original "From " separator line can not be 
          preserved -- specially it is not possible to pass envelope 
          sender address.
  
        - For UTF-8 charset Elm only knows printable characters from 
          Latin/1 range, if unicode database (see elmrc option "unidata")
          is not loaded.

        - For using of ISO2022 character sets it is required that mapping 
          them to unicode is know -- otherwise Elm ME+ does not know which 
          characters are printable.

        - UTF-16 surrogate pairs (D800-DFFF) are not supported on UTF-7 
          charset.

        - Mixing of names using IMAP naming convention 
          (imap-naming-convention = yes)
          and names using imap-charset does not work very well...

        - Some Linux gethostbyname implementations accept ip-address as 
          name, but return garbage on h_name -field of struct hostent.

        - "  Regarding my message (8 Aug 2000) regarding 'newmail' on 
           AIX 4.3.3 in an 'aixterm' window and the 'aixterm' did not 
          close, indeed the problem was NOT related to 'newmail' but an 
          AIX bug.

          IBM has release a patch, and the 'aixterm' in AIX 4.3.3 must
          be update with fileset X11.apps.aixterm.4.3.3.26 (PTF
          U473920) is solved to problem."
         From: Noam G. Nudelman  <noam@mail.biu.ac.il>

        - File /usr/share/locale/fi/charset gives charset name utf-8 on 
          Linux Mandrake 7.2. This causes that Configure generates 
          mapping
                fi      utf-8
          to elm.mimecharsets. However that seems to have
          incorrect mapping. You may want change this to
                fi      ISO-8859-1

          ( however nl_langinfo(CODESET) gives charset ISO-8859-15
            but look following entry. )

        - Locale 'fi' seems to have charset ISO-8859-15 according
          of nl_langinfo(CODESET)  on Mandrake Linux 7.2 (and probaly 
          others with same glibc version). However for example gnome 
          terminal uses font 
                -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-1
          and not
                -misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-15

          Also KDE's konsole program seems use iso8859-1 character set
          although locale is 'fi' which should have ISO-8859-15 according
          of nl_langinfo (selecting "unicode" from menu seems fix that.)
         
          Because of mismatch more correct locale is fi_FI.88591, which gives
          ISO-8859-1 character set according of nl_langinfo(CODESET).

          ( Locale seems come from /etc/sysconfig/i18n or $HOME/.i18n )

        > To enable handling of ISO-8859-1 and ISO-8859-15 character sets
          on linux console, read comments from doc/terminal.info file.

        - Mandrake Linux 7.2 seems set LD_PRELOAD to load 
          /usr/lib/libxalflaunch.so.0. That (xalf-0.4-2mdk) causes that 
          elm to crash on startup (actually before main() is reached.)

        - kterm on Mandrake Linux 7.2 seems have (at least on my test
          environment) seems get bad fontlist (*VT100*fontList) which 
          gives bad font for iso8859-1 -- therefore ISO-8859-1 characters 
          do not work.
        
          ("xrdb -query" seems report resource with name "*fontList"
           -- that probably overrides "*VT100*fontList" which comes
           from /usr/lib/X11/app-defaults/KTerm )

        - Also note that initially kterm does NOT default to
          ISO-8859-1 -- therefore ISO-8859-1 works only when
          elm explicity switch to ISO-8859-1 (for example
          with 'elm -D ISO-8859-1')

        - When assembling message/partial MIME (RFC 2046) 
          requires that all headers except Content-*, Subject, 
          MIME-Version, Message-ID and Encrypted are copied from
          initial enclosing message to assembled message. It also 
          requires that headers except Content-*, Subject,
          MIME-Version,  Message-ID and Encrypted  are ignored and
          dropped from enclosed  message.

          For now we copy only Received: -headers. Dropping extra
          headers from enclosed message makes assembly more 
          complicated  (and dropping of Received: -headers
          from enclosed message do not make sense.)

        - EXIF files are sometimes labeled with content-type
          image/jpeg. They also use .jpg filename extension. They are
          not accepted by Elm ME+ as image/jpeg because magic number 
          (and format) is different. It is unclear what is correct
          treatment. According of specification EXIF files may
          wrap also other file types than jpeg (JFIF).

        - mailer=sendmail; verify=yes works only when sendmail 
          is installed as setuid root. Use mailer=submission instead.
        * Starting from sendmail 8.12 sendmail is normally
          installed as setgid smmsp and not as setuid root.
        - However error message is printed only if 
          verify-local-address=yes is also set

        - IMAP connection is stalled some times. Reason is unknown.

        - From name option (-f) on fastmail is currently broken.

Collector of these patches
--------------------------

        Kari Hurtta <elm@elmme-mailer.org>
        Kari Hurtta <hurtta+elm@siilo.FMI.FI>



diffstat:

 ConfTool/GenCharmap               |    3 
 Configure                         |    6 
 MANIFEST                          |    2 
 Makefile-1.SH                     |   14 !
 Makefile.SH                       |    8 
 README.ME+                        |  360 +++++++++++++++++++++++++++!!
 config.h.SH                       |    7 
 doc/Makefile.SH                   |   26 ++
 doc/elm.1                         |    2 
 doc/elmaliases                    |    2 
 doc/elmaliases-info               |    2 
 doc/elmconfwriter.1               |   65 +++++
 doc/elmmailinglists-info          |    2 
 doc/elmrc-info                    |   31 ++
 doc/elmrc-write.1                 |    4 
 doc/elmrc.samp                    |   31 ++
 doc/elmregister.1                 |    2 
 doc/mailing.lists                 |    3 
 doc/readmsg.1                     |    2 
 hdrs/aliaslib.h                   |   28 !!
 hdrs/misclib.h                    |   24 !!
 hdrs/patchlevel.h                 |   10 
 hdrs/rc_imp.h                     |    8 
 hdrs/readmsg.h                    |    4 
 hdrs/s_aliases.h                  |    2 
 hdrs/s_me.h                       |   19 -
 hdrs/save_opts.h                  |    8 
 lib/alias/Makefile.SH             |    7 
 lib/alias/aliases.c               |  351 +++++++++++++!!!!!!!!!!!!!!!!
 lib/alias/init.c                  |   41 !!
 lib/bindata.c                     |    7 
 lib/cs_binary.c                   |   15 
 lib/hdrencode.c                   |   29 !!
 lib/iso2022.c                     |    6 
 lib/iso2022_map.c                 |    8 
 lib/mailer/mailer.c               |    5 
 lib/mbox/common_local.c           |    5 
 lib/mbox/imap.c                   |    5 
 lib/mbox/localmbx.c               |    8 
 lib/mbox/pop.c                    |    5 
 lib/mbox/savefolder.c             |   10 
 lib/misc/Makefile.SH              |    8 
 lib/misc/init.c                   |   51 !!!!
 lib/misc/mlist.c                  |  242 ++++++++!!!!!!!!!!!
 lib/misc/terminal.c               |    7 
 lib/rc_handle.c                   |   23 !
 lib/rc_propline.c                 |   42 +++
 lib/read_rc.c                     |   20 
 lib/service_list.c                |   52 +!!
 lib/shared.c                      |    5 
 lib/string.c                      |    6 
 lib/terminal.c                    |    5 
 lib/unicode.c                     |   19 !
 lib/unidata.c                     |    6 
 melib/encode.c                    |   18 !
 melib/mime_decode.c               |    6 
 melib/mime_parse.c                |    6 
 melib/pgp_decode.c                |    8 
 nls/C/C/C/s_aliases.m             |    4 
 nls/C/C/C/s_me.m                  |   44 ++-
 src/a_screen.c                    |  227 ---!!!!!!!!!!!!!!!!
 src/a_sort.c                      |   43 !!!
 src/addr_util.c                   |   10 
 src/aliases/Makefile.SH           |    4 
 src/aliases/aliases.c             |   13 !
 src/aliases/aliases_map.c         |   84 ++++-
 src/aliases/buffer.c              |    9 
 src/aliases/def_aliases.h         |   12 !
 src/args.c                        |    8 
 src/attach_menu.c                 |   13 !
 src/block/stringblock.c           |    5 
 src/browser.c                     |    9 
 src/duplicate_removal.c           |    5 
 src/editmsg.c                     |    5 
 src/hdrconfg.c                    |    5 
 src/list/def_list.h               |    5 
 src/list/reply.c                  |    6 
 src/mailmsg1.c                    |   15 !
 src/mailmsg2.c                    |    5 
 src/menu_common/message_pattern.c |    7 
 src/messages/canceled_mail.c      |   46 !!!
 src/messages/messages.c           |    5 
 src/messages/storage.c            |    5 
 src/messages/thread_messages.c    |    5 
 src/metapager.c                   |    6 
 src/mime.c                        |   54 !!!!
 src/mime_encode.c                 |   19 !
 src/pgp.c                         |   21 !
 src/read_rc.c                     |   10 
 src/screen/context.c              |    8 
 src/screen/curses.c               |   24 !!
 src/screen/screen.c               |    7 
 src/showmsg_c.c                   |    5 
 src/syscall.c                     |    5 
 src/url/mailto.c                  |    7 
 src/url/url.c                     |    8 
 src/url/url_element.c             |    8 
 src/view_one_thread.c             |    5 
 utils/Makefile.SH                 |   56 ++!
 utils/elmaliases-write.c          |   38 !!!
 utils/elmconfwriter.c             |  438 ++++++++++++++++++++++++++++++++++++++
 utils/elmmailinglists.c           |   32 +!
 utils/elmregister.c               |    6 
 utils/newalias.c                  |   13 !
 utils/readmsg/Makefile.SH         |    4 
 utils/readmsg/def_readmsg.h       |    6 
 utils/readmsg/folder.c            |    5 
 utils/readmsg/readmsg.c           |    5 
 108 files changed, 1457 insertions(+), 141 deletions(-), 1492 modifications(!)

/ Kari Hurtta
Advertisements