ELM ME+ 2.5 PLalpha47 announcement

Elm ME+ 2.5 PLalpha47

- Is available with
        <URL: http://www.elmme-mailer.org/elm-ME+2.5.PLalpha47.patch.gz >
  and   <URL: http://www.elmme-mailer.org/elm-ME+2.5.alpha47.tar.gz >

- Is available on ftp.funet.fi
  via anonymous ftp
    directory pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/
              (note changed directory)

    files      elm-ME+2.5.PLalpha47.patch.gz
    and        elm-ME+2.5.alpha47.tar.gz

  or is available with
       <URL: http://www.nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha47.patch.gz >
  and   <URL: http://www.nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha47.tar.gz >

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

SUMMARY: This release implements interruptible
         (with interrupt character, usually Ctrl-C) 
         DNS queries on some systems when 
         libelmme-resolv.so module is used. New
         elmrc options are "name-lookup-cache-time", 
         "special-use-domains-lookup" and
         "static-hosts-max-names" (and
         "query-mode" on "resolv:" section).
         This release includes some changes
         and fixes for elmrc parsing. Also some other 
         changes and some bug fixes are included.

Changes on Elm ME+ 2.5 PLalpha47 compared with Elm ME+ 2.5 PLalpha46

        SUMMARY: This release implements interruptible
                 (with interrupt character, usually Ctrl-C) 
                 DNS queries on some systems when 
                 libelmme-resolv.so module is used. New
                 elmrc options are "name-lookup-cache-time", 
                 "special-use-domains-lookup" and
                 "static-hosts-max-names" (and
                 "query-mode"  on "resolv:" section).
                 This release includes some changes
                 and fixes for elmrc parsing. Also some other 
                 changes and some bug fixes are included.

        - Changed gethostdomain() on lib/opt_utils.c
        - Added check that domain name accepts only
          ASCII characters on gethostdomain().
        - Added gethostdomain() to read $LOCALDOMAIN
          environment variable before {lib}/domain
          file (and before using getdomainname()
          if "getdomainname" is given on "name-resolution" 
          elmrc option.)
        - If $LOCALDOMAIN includes space separated list of domains,
          then first domain is used.
        - Changed generate_hostfullname() on lib/read_rc.c
        - Update doc/elmrc-info
        - If DNS answer is truncated and equal of buffer size then
          resolv -module retries query with bigger buffer
          (up to 65535 bytes) [when using query-mode = blocking].

        - Configure for resolv -module now tests if
          res_mkquery(), res_send() and related routines
          can be used to make DNS queries. Using
          these routines means that res_query() and
          specially res_search() is replaced with
          own code.
        - Configure for resolv -module now tests if
          can be used.
        - This release adds "query-mode" elmrc option to
          resolv: -section. This option have values
                blocking        This uses res_query()
                                   or res_search()
                non-blocking    This uses res_mkquery() and runs
                                   res_send() on separate process.
                                   In that case resolv -module
                                   implements internally
                                   res_search() like search
        > Parameter "helper=allow-interrupt" of "query-mode"
          elmrc option tells that interrupt character (Ctrl-C)
          is allowed kill res_send() helper processes.
        > Parameter "helper=ignore-interrupt" of "query-mode"
          elmrc option tells that interrupt character
          (Ctrl-C) is ignored (does not kill process).
        > Numeric value to "helper" of "query-mode"
          elmrc option parameter tells how many helper
          processes is considered for query.
        > Parameter "helper-skip-limit" of "query-mode"
          elmrc option tells how many busy helper processes
          are skipped and not considered for query.
        > Parameter "parallel-lookup-max-time" of "query-mode"
          elmrc option gives maximum time what is used to resolve DNS
          lookup when non-blocking mode is used.        
        - Added add_foreign_background() to lib/syscall.c  
        - Added wait_background_end() to lib/syscall.c
        - Changed maybe_background() on lib/syscall.c
        - Added wait_for_action_or_timeout_settime() to lib/schedule.c
        - Added wait_for_action_or_deadline_settime() to lib/schedule.c
        - Added wait_for_timeout_f() to lib/schedule.c
        - Small fix for real_wait_poll()

        - This release adds "name-lookup-cache-time" elmrc option
          which tells default cache time on seconds for mail service
          if it is cached (usually not). Default value is
          320 seconds. This replaces DEFAULT_CACHE_TIME constant
          from lib/service_list.c
        - Fixed error
            Enumerated values resolv:* ignored -- code not loaded
            I can't understand mail-services-lookup key "resolv:all-addresses"
               in line 54 in "(...)/lib/elm.rc" file
        - Changed set_dt_enumerate_as_str() on lib/rc_handle.c
        - Changed give_dt_enumerate_as_int() on lib/rc_handle.c
        - Changed give_dt_shared_value() on lib/rc_handle.c
        - Changed struct dt_enumerate_info on hdrs/save_opts.h
        - Fixed case-insensitive matching of tagged keyword
          on set_dt_enumerate_as_str()

        - Fixed error
              Keywords on section "resolv" ignored starting
                 from line 419 on file (...)/lib/elm.rc

        - Added new warning of ignored elm.rc lines.
        - Added rc_eval_tail_cline() to lib/read_rc.c
        - Added rc_eval_tail_line() to lib/read_rc.c

        - Changed struct parsed_rc
        - Changed do_rc_parse(), do_rc_process()
          on lib/rc_parse.c
        - Changed shared_fill_dt_enumerate_values(),
          give_options() on lib/shared.c

        - Fixed frm and elmrc-write -command error
                Keywords on section "smtp" ignored starting
                   from line 1889 on file .elm/elmrc
        - Changed frm -command option handling.
        - Added rc_DT_DELAYSHARED
        - Added some
                # Failed to convert charset of option ...
          comments to generated elm.rc or .elm/elmrc
          on error.
        - Changed do_rc_parse() so that empty line
          followed by comment line resets last option
          which is considered for continuation lines. This changes
          error messages like
                 Key "@charset" does not accept continuation lines
                     in line 119 in ".../elm.rc" file
        > Added error message
                 Continuation line 119 on file ".../elm.rc"
                 ignored: ...
        - Also comment lines starting with "### " resets
          last option which is considered for continuation lines.
        - Also section tag: lines resets last option which is
          considered for continuation lines.

        - Small change to mail_gets() and malloc_gets()

        - Fixed crash on smtp -module if submission/smtp
          server's name is not resolvable.

        - Made DNS query wait to be interruptible with Ctrl-C
          is used on resolv -section with
               mail-services-lookup = resolv:addresses
               mail-services-lookup = resolv:all-addresses
        - Also DNS query is interruptible with Ctrl-C
          is used on resolv -section with
               verify-domain = resolv:mx-address
               verify-domain = resolv:mx
               verify-domain = resolv:any
        > NOTE: This uses actually interrupt signal
                which is usually generated with Ctrl-C
                but tty settings can vary.
        > NOTE: Also interrupt character (Ctrl-C) may kill
                res_send() helper process
                [when using helper=allow-interrupt].
                DNS query is still completed (and resolv
                -module caches answer).
        > NOTE: If
               mail-services-lookup = hostname
               mail-services-lookup = gethostbyname
               mail-services-lookup = getaddrinfo
          is used, then DNS host lookup is not
          interruptible with Ctrl-C.
        > NOTE: If
               verify-domain = hostname
           is used, then DNS host lookup is not
          interruptible with Ctrl-C. 
        > NOTE: Also DNS
          lookup is not interruptible with Ctrl-C
                query-mode = blocking
          is used on resolv -section.
        - This release adds "name-lookup-cancel"
          elmrc option, which controls behaviour of
          Ctrl-C (interrupt character) on DNS lookup handling.
          This option have values
                 disabled       hostname / mail domain name
                                  lookups are not interruptible.
                 enabled        hostname / mail domain name
                                  lookups are assumed to be
                                  interruptible (but that is
                                  not likely not work with
                                  gethostbyname(),  getaddrinfo(),
                                  res_query() and res_search()).
                 auto           hostname / mail domain names
                                  lookup result waiting is
                                  interruptible when  res_send()
                                  helper process is used.
          Value "auto" is default. This may case that
          this is disabled (unless "mail-services-lookup"
          is modified). Also boolean ON, OFF, TRUE, FALSE, YES and NO
          values are allowed on elmrc option "name-lookup-cancel".
        - Added set_cancel_message()
        - Changed connect_remote_account(), make_remote_mbox(),
          give_service_entryS(),  lookup_namei(),
        - Added give_service_entry_can(),
        - Added wait_for_action_or_timeout_settime_c() to lib/schedule.c
        - Added wait_for_action_or_deadline_settime_c() to lib/schedule.c

        - Changed that real_wait_select() and real_wait_poll()
          return -1 on error. Added enum wait_for_status.
        - Changed real_wait(), real_wait_check_timeout(),
        - Some changes on my_wait()
        - Changed error_sleep() return type to be void (no value).

        - Changed SR_RawState()
        - Fixed crash on connect-mode -keyword parsing.
        - Added conf_split_param_value() to lib/remote_mbx.c

        - Added sigchld_handler() call to
          verify_transmission(), enter_helper(),
          attach_modify(), extended_command(),
          fbrowser(),  edit_headers(),
          alias_modify(),  ViewThreads()

        - Added lib/static-hosts.c, which parsed
          /etc/hosts file without using gethostent()
        - If elmrc option "special-use-domains-lookup"
          have value "static-hosts", names given on elmrc
          option "special-use-domains-blacklist"
          are directly read from /etc/hosts (only).
        > Names given on elmrc option
          "special-use-domain" are not looked up
          from DNS and are not looked up with elmrc
          option "mail-services-lookup".
        - If elmrc option "search-mail-service" on
          "resolv:" section is value "static-hosts-dotless-search-name",
          libelmme-resolv.so module search /etc/hosts first
          if name does not include dot (.), then lookups
          name from DNS with default search rules (res_search()).
          If name not found from DNS and name includes dot (.), then
          libelmme-resolv.so module search  /etc/hosts.
        > libelmme-resolv.so module uses elmrc option
          "search-mail-service", when it searches names for
        - If elmrc option "search-mail-service" on
          "resolv:" section is value "static-hosts-dotless",
          libelmme-resolv.so module search /etc/hosts first
          if name does not include dot (.), then queries
          exact name from DNS (res_query()). If name not found
          from DNS and name includes dot (.), then
          libelmme-resolv.so module search  /etc/hosts.

        - If "query-mode" on "resolv:" section have value
          "blocking", then default value of "search-mail-service"
          on "resolv:" section is "fallback-dotless-search-name".
        - If "query-mode" on "resolv:" section have value
          "non-blocking", then default value of "search-mail-service"
          on "resolv:" section is "static-hosts-dotless-search-name".

        - libelmme-resolv.so -module changes default value of
          "mail-services-lookup" if  "query-mode" on "resolv:"
          section have "non-blocking" values and "use-config-library"
          includes "resolv". This is similar than libelmme-resolv.so 
          -module's change of "verify-domain".

        - Changed wait_for_something(), real_wait_select() and
          real_wait_poll() on lib/schedule.c

        - Added "X-Autogenerated:" to default weedlist. This header
          is generated by Communigate Pro.
        - Added "Auto-Submitted:"  to default weedlist. This is defined
          on RFC 3834.
        - Added "X-MS-Exchange-" to default weedlist (removed
        - Added "X-Originating-IP:" and "Accept-Language:" to
          default weedlist.
        - Added "Resent-Message-ID:"  to default weedlist.

        - Added warning of magic values >= 256 to
          parse_magic() on lib/misc/mime_types.c
        - Added some fixes for magic values >= 256 to
          parse_magic() on lib/misc/mime_types.c
        - Changes error messages on load_mime_types_map()
          on lib/misc/mime_types.c

        New elmrc options:
        New files:


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

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

        - "  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. (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 
                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 
          and not

          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>

 MANIFEST                             |    5 
 README.ME+                           |  311 +
 doc/elm.1                            |    6 
 doc/elmconfwriter.1                  |    2 
 doc/elmmailservices.1                |    2 
 doc/elmrc-info                       |   77 
 doc/elmrc-write.1                    |    2 
 doc/elmrc.samp                       |  184 !
 doc/elmregister.1                    |    2 
 doc/fastmail.1                       |    2 
 doc/frm.1                            |    2 
 doc/newmail.1                        |    2 
 doc/readmsg.1                        |    2 
 hdrs/connection_imp.h                |  117 
 hdrs/elm_defs.h                      |   10 
 hdrs/elmlib.h                        |  156 
 hdrs/hashmark.h                      |   11 
 hdrs/hashmark_imp.h                  |   12 
 hdrs/mailerlib.h                     |    9 
 hdrs/mbx_imp.h                       |   16 
 hdrs/me.h                            |    9 
 hdrs/patchlevel.h                    |   10 
 hdrs/rc_imp.h                        |  302 
 hdrs/readmsg.h                       |    4 
 hdrs/s_elm.h                         |   12 
 hdrs/s_elmrc.h                       |    1 
 hdrs/s_error.h                       |    3 
 hdrs/s_me.h                          |   16 
 hdrs/s_resolv.h                      |   29 
 hdrs/save_opts.h                     |   41 
 hdrs/schedule_time.h                 |   46 
 hdrs/service_imp.h                   |   55 
 hdrs/shared_imp.h                    |   18 
 lib/MAGIC                            |   13 
 lib/Makefile.SH                      |   18 
 lib/addr/error.c                     |    4 
 lib/addr/headers.c                   |    4 
 lib/alias/aliases.c                  |    4 
 lib/alias/init.c                     |   12 
 lib/cancel.c                         |  111 
 lib/mail_gets.c                      |   41 
 lib/mailer/init.c                    |    6 
 lib/mailer/mailer.c                  |   38 
 lib/mailer/shared_mailer.c           |   57 
 lib/mbox/con_imap.c                  |   34 
 lib/mbox/connection.c                |    6 
 lib/mbox/forwarded.c                 |    4 
 lib/mbox/hashmark.c                  |   20 
 lib/mbox/hashmark_helper.c           |   11 
 lib/mbox/hashmark_local.c            |   16 
 lib/mbox/hashmark_remote.c           |  112 
 lib/mbox/imap.c                      |    7 
 lib/mbox/init.c                      |   18 
 lib/mbox/localmbx.c                  |    4 
 lib/mbox/mbox.c                      |    4 
 lib/mbox/pop.c                       |   54 
 lib/mbox/realfrom.c                  |    4 
 lib/mbox/remote_mbx.c                |   46 
 lib/mbox/remote_server.c             |    7 
 lib/mbox/savefolder.c                |  187 !
 lib/misc/init.c                      |   12 
 lib/misc/mime_types.c                |  163 
 lib/misc/mlist.c                     |    8 
 lib/misc/service_list.c              |    5 
 lib/opt_utils.c                      |  250 !
 lib/posixsig.c                       |   80 
 lib/rc_delay.c                       |  379 +
 lib/rc_handle.c                      | 1079 +++!!!
 lib/rc_parse.c                       | 1301 ++++!!!
 lib/read_rc.c                        |  459 
 lib/remote_mbx.c                     |  717 !!
 lib/schedule.c                       |  910 +!!!!
 lib/service_list.c                   |  892 +!!!
 lib/shared.c                         |  687 +!
 lib/shared_config.c                  |   10 
 lib/shared_connect.c                 |  112 
 lib/static-hosts.c                   | 2116 +++++++++++++
 lib/streamsched.c                    |   79 
 lib/syscall.c                        |  325 +!
 lib/write_rc.c                       |  864 !!!
 melib/mailcap.c                      |    4 
 melib/mime_decode.c                  |    4 
 melib/mime_parse.c                   |    4 
 melib/parse_util.c                   |    4 
 melib/partial.c                      |    4 
 melib/pgp_decode.c                   |    4 
 nls/C/C/C/s_elm.m                    |   26 
 nls/C/C/C/s_elmrc.m                  |    4 
 nls/C/C/C/s_error.m                  |    6 
 nls/C/C/C/s_me.m                     |   32 
 nls/C/C/C/s_resolv.m                 |   58 
 shared_libs/iconv/iconv.c            |    6 
 shared_libs/include/shared.h         |   21 
 shared_libs/resolv/Makefile.SH       |   45 
 shared_libs/resolv/config            |  186 +
 shared_libs/resolv/elmrc-resolv-info |  113 
 shared_libs/resolv/elmresolv.h       |   78 
 shared_libs/resolv/query.c           | 5643 +++++++++++++++++++++++++++++++++++
 shared_libs/resolv/resolv.c          | 1804 +++!!!!!!!
 shared_libs/resolv/resolvconf.h.SH   |   46 
 shared_libs/resolv/resolvertest.c    |   33 
 shared_libs/resolv/resolvertest2.c   |  944 +++++
 shared_libs/smtp/smtp.c              |  169 
 shared_libs/tls/tls.c                |    8 
 src/a_screen.c                       |    4 
 src/addr_util.c                      |  137 
 src/alias_display.c                  |   10 
 src/args.c                           |    8 
 src/attach_menu.c                    |    9 
 src/browser.c                        |    4 
 src/builtin++.c                      |    4 
 src/command/digestcmd.c              |    4 
 src/command/maincmd.c                |    4 
 src/digest.c                         |    4 
 src/duplicate_removal.c              |    4 
 src/enter_helper.c                   |   14 
 src/extended.c                       |    9 
 src/fbrowser.c                       |    9 
 src/file_util.c                      |    6 
 src/hdrconfg.c                       |    9 
 src/init.c                           |   10 
 src/list/reply.c                     |    4 
 src/list/visit_mailbox.c             |    4 
 src/mailbox.c                        |    4 
 src/mailmsg1.c                       |    4 
 src/mailmsg2.c                       |   11 
 src/messages/header_alloc.c          |    4 
 src/metapager.c                      |    4 
 src/mime.c                           |    4 
 src/opt_generic.c                    |   21 
 src/partial.c                        |    4 
 src/pgp.c                            |    4 
 src/remail.c                         |    4 
 src/save_opts.c                      |    4 
 src/screen.c                         |    4 
 src/screen/curs_input.c              |   96 
 src/screen/curses.c                  |   22 
 src/screen/def_screen.h              |    6 
 src/screen/screen.c                  |   10 
 src/syscall.c                        |    4 
 src/thread.c                         |    9 
 src/utils.c                          |   83 
 src/view_one_thread.c                |    4 
 utils/fastmail.c                     |    4 
 utils/from.c                         |   23 
 145 files changed, 13723 insertions(+), 241 deletions(-), 8638 modifications(!)