ELM ME+ 2.5 PLalpha63 announcement

Elm ME+ 2.5 PLalpha63

- Is available with
	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz >
  and	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.PLalpha63.patch.gz >
  via http.
  Signatures are
	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.elm-key-2018.sig >
	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.sig >
  and	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.PLalpha63.patch.gz.elm-key-2018.sig >
  	<URL: http://www.elmme-mailer.org/elm-ME+2.5/src/elm-ME+2.5.PLalpha63.patch.gz.sig >

- Is available with
	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz >
  and	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz >
  via https.
  Signatures are
  	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.elm-key-2018.sig >
	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.sig >
  and	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.elm-key-2018.sig >
  	<URL: https://hurtta.kapsi.fi/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.sig >

- Is available on ftp.funet.fi
    directory	pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/
    files	elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz
    and		elm-ME+2.5.PLalpha63.patch.gz
  via anonumous ftp.
  Signatures are
  	        elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.elm-key-2018.sig
		elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.sig
    and		elm-ME+2.5.PLalpha63.patch.gz.elm-key-2018.sig
    		elm-ME+2.5.PLalpha63.patch.gz.sig

  Or is available with
	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz >
  and	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz >
   with browser.
  Signatures are
	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.elm-key-2018.sig >
	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.sig >
  and	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.elm-key-2018.sig >
  	<URL: ftp://ftp.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.sig >

  Or is available with
	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz >
  and	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz >
  via https.
  Signatures are
  	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.elm-key-2018.sig >
	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.alpha63.41a68fda8c51e1b32e5760f7ee5eff1e.tar.gz.sig >
  and	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.elm-key-2018.sig >
  	<URL: https://nic.funet.fi/pub/mirrors/elmme-mailer.org/src/elm-ME+2.5/elm-ME+2.5.PLalpha63.patch.gz.sig >

- Is available with
  message-id <elmME+2.5/PLalpha63/0@kasvihuone.keh.iki.fi>
  	     <elmME+2.5/PLalpha63/1@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/2@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/3@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/4@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/5@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/6@kasvihuone.keh.iki.fi>
	     <elmME+2.5/PLalpha63/7@kasvihuone.keh.iki.fi>
  on alt.sources, comp.mail.elm 

Signatures are with following keys

  {file}.sig                  PGP signature (old key pubkey.asc,      EA5A2379 1996-04-23)
  {file}.elm-key-2018.sig     GPG signature (key elm.key.2018.asc,    44FC796B 2018-12-01, expires: 2028-11-28)

SUMMARY: This release includes tagfilter module for
         filtering text/enriched and text/html
         tags. This release adds "editor-tfent-propline"
         and "page-tagfilter" elmrc options and
         new tool "elmtagfilterents". This release
         adds global "elm.tagfilter.entities" and
         user "~/.elm/tagfilter.entities" configuration
         files. Also some bug fixes and other changes are
         included.

Changes on Elm ME+ 2.5 PLalpha63 compared with Elm ME+ 2.5 PLalpha62
--------------------------------------------------------------------

        SUMMARY: This release includes tagfilter module for
                 filtering text/enriched and text/html
                 tags. This release adds "editor-tfent-propline"
                 and "page-tagfilter" elmrc options and
                 new tool "elmtagfilterents". This release
                 adds global "elm.tagfilter.entities" and
                 user "~/.elm/tagfilter.entities" configuration
                 files. Also some bug fixes and other changes are
                 included.
        
        - Changed prototype of string_matches_ascii() -
          Added op parameter:
                SMA_op_normal,
                SMA_op_match_prefix,
                SMA_op_find_ascii,
                SMA_op_return_order
          SMA_return_len can not used with SMA_op_return_order 
        
        - Added tagfilter module for <tag> filtering.
        
        - Tagfilter supports following text/enriched tags
          when builtin++ pager is used:
          <bold>
          <underline>
          <italic>
          <center>      (detected, does nor work correctly (*))
          <nofill>
          Other tags are just filtered.
        - Rewrapping and joining of multiple lines to one line
          for displaying not supported when replying or forwarding
          mail or when viewing with external pager. This is similar
          than how content type text/plain; format=flowed
          is handled.
        - If builtin pager is not used (or when replying or
          forwarding mail) shows message
          
          [ text/enriched is unsupported, filtering tags. ]

          (*) Centering does not work when displayed line
              cover several tags or several lines on
              original message (before newline is
              converted to space or multiple
              lines are joined to one line for
              displaying).

        - Added pg_ITALIC flag (termcap codes ZH and ZR).
        - Added pg_DIM flag (termcap code mh).
        - Added pg_SUBSCRIPT flag (termcap codes ZN and ZV).
        - Added pg_SUPERSCRIPT flag (termcap codes ZO and ZW).
        - Added pg_STRIKETHROUGH    (no termcap code)

        - Changed PR_CENTER_THIS handling on span_helper()

        - Tagfilter supports following text/html tags
          when builtin++ pager is used:
          <html>
          <head>
          <body>
          <noscript>
          <b>
          <br>
          <em>
          <hr>
          <i>
          <p>
          <pre>
          <q>
          <s>          (!!)
          <strong>
          <sub>        (XX)
          <sub>        (XX)
          <u>
        - Tagfilter uses display attributes for following
          text/html tags (but reports them unsupported)
          when builtin++ pager is used:
          <cite>
          <del>
          <h1>
          <h2>
          <h3>
          <h4>
          <h5>
          <h6>
          <var>
        - Other text/html tags are just used for define
          what are recognized tags but otherwise just
          filtered.
        - Tagfilter recognizes different text/html tags depending
          on inside on what tags they occurs.  
          
          (!!) Only when "ANSI-SGR strikethrough" is
               given on global elm.terminalinfo or
               on user ~/.elm/terminal.info.
          (XX) Incompletely - no terminals support this
        - If builtin pager is not used (or when replying or
          forwarding mail) shows message
          
          [ text/html is unsupported, filtering tags. ]

        - Added elmrc option "page-tagfilter". If set,
          media types given as keywords are displayed with "pager",
          otherwise these are considered to need metamail
          (or mailcap programs).
          Option includes list of keywords:
               none            None of values are selected
               text/enriched   text/enriched type does not require
                                 external programs or metamail
               text/html       text/html type does not require
                                 external programs or metamail
          This does not take account possible unsupported
          tags or that builtin++ pager is not used as "pager".

        - Added global elm.tagfilter.entities and
          user .elm/tagfilter.entities. These files
          defines text/html named character references
          recognized by tagfilter.

          See also "Tagfilter entities listing"

        - Builtin text/html named character references
          recognized by tagfilter are

          &amp;         unicode 0x0026          & -character
          &nbsp;        unicode 0x00A0          NO-BREAK SPACE
          &quot;        unicode 0x0022          " -character
          &lt;          unicode 0x003C          < -character
          &gt;          unicode 0x003E          > -character

        - Added elmtagfilterents -command.

        - Added "editor-tfent-propline" elmrc option.
          This is similar than "editor-elmrc-propline". 
          If set to "emacs", then when on user's 
          tagfilter.entities file, line
             # -*- coding: ... -*-
          is added to top of file. That line is also written
          if "editor-tfent-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.    

        - Global global elm.terminalinfo and
          user ~/.elm/terminal.info can now include
          ANSI-SGR which tell elm to use ANSI SGR
          attributes for bold, dim, italic, underline,
          blinking, reverse, strikethrough, superscript
          and subscript. If termcap specifies also
          attribute, elm may invoke it twice. Do
          not use ANSI-SGR if termcap already specifies it.
          This is mainly for strikethrough, which is
          not supported by termcap. For more information
          see chapter "Additional terminal information".

        - Added struct out_entity routines with lib/out_entity.c
        - Added  state_putentity() to lib/elmlib.h and
          lib/state_out.c     
        - Added string_type_have_unicode() to hdrs/elmlib.h
          and lib/string.c     
        - Added state_add_opcode_pager_range()  to hdrs/elmlib.h and
          lib/state_out.c     
        - Added state_pager_add_param_text() to hdrs/elmlib.h and
          lib/state_out.c     
        - Added struct pager_param_value routines with
          lib/pager_range.c 
        - Added stringbuffer_add_entity() and
          stringbuffer_add_pager_param() to hdrs/elmlib.h and
          lib/stringbuffer.c 

        - Added new_out_entity(), free_out_entity(),
          inc_out_entity_refcount(), out_entity_reference_key(),
          out_entity_text_value(), out_entity_unicode_value(),
          and dup_out_entity()
          to hdrs/elmlib.h and lib/out_entity.c

        - Added missing fclose(f) to parse_hash_mark_entries()
        - Change on dump_aliases_map()

        - Changed exit status handling on elmregister.

        - Possible fix for state_putunicode() on lib/state_out.c

        - Moved inc_pager_range_refcount() from hdrs/pg_range_imp.h
          to hdrs/elmlib.h
        - Potential fix for string_sort_cmp()
        - Fixed crash when inherited page_range was used
          PAGER RANGE PANIC in .../lib/pager_range.c:562:get_pager_range_serialization_from_file
          >>>Bad data read from file

        - Added new_string_alt_text(), new_string_alt_entity(),
          get_string_alt_value(), inc_string_alt_refcount() and
          free_string_alt() to  hdrs/elmlib.h and lib/string_alt.c
 
        - Added get_lineext_alt_and_walk()to  hdrs/elmlib.h and
          lib/pager_lineext.c   
        - Added curses_available_string()
          to hdrs/me.h and src/screen/curses.c   
        - Added get_pager_param_from_stringbuffer() to 
          hdrs/me.h and lib/stringbuffer.c

        - Some fixed for error handling of load_terminal_map()
        - Added ANSI_sgr_values[] to hdrs/msiclib.h
          and lib/misc/terminal.c
        - Added pg_set_or_disable_flags() to hdrs/msiclib.h
          and lib/misc/terminal.c

        - Changed get_pager_range_change()
        - Changed malloc_simple_pager_range()

        - Fix for put_pager_range_serialization_to_file()
        - Fix for stringbuffer_add_pager_range()
        - Fix for state_convert_EOLN()
        - Fix for get_decoded_attachment()

        - Added curses_check_terminal() 
          to hdrs/me.h and src/screen/curses.c   

        New tool:
            elmtagfilterents

        New files:
            melib/tagfilter.c
            melib/tagfilter_decode.c
            hdrs/tagfilter_imp.h
            melib/tagfilter_entity.c
            melib/init.c
            doc/elmtagfilent-info
            utils/elmtagfilterents.c
            doc/tagfilter.entities
            ConfTool/GenEntities
            hdrs/convert_status.h
            lib/convert_status.c
            doc/elmtagfilterents.1
            melib/tagfilter_tag.c
            lib/out_entity.c
            melib/tagfilter_enriched.c
            hdrs/elmme-magic.h
            melib/tagfilter_html.c
            hdrs/pg_params_imp.h
            lib/string_alt.c
            
        New elmrc option:
            editor-tfent-propline
            page-tagfilter

diffstat:

 ConfTool/GenEntities            |    9 
 Configure                       |   27 
 MANIFEST                        |   19 
 Makefile-1.SH                   |   17 
 Makefile.SH                     |   15 
 README.ME+                      |  635 ++!!
 doc/Makefile.SH                 |   28 
 doc/elm.1                       |    2 
 doc/elmalias.1                  |    2 
 doc/elmaliases-write.1          |    2 
 doc/elmbindata.1                |    2 
 doc/elmcharset.1                |    2 
 doc/elmconfwriter.1             |    2 
 doc/elmhashmarks.1              |    2 
 doc/elmiso2022sets.1            |    2 
 doc/elmlibregister.1            |    2 
 doc/elmmailinglists.1           |    2 
 doc/elmmailservices.1           |    2 
 doc/elmmimetypes.1              |    2 
 doc/elmrc-info                  |   47 
 doc/elmrc-write.1               |    2 
 doc/elmrc.samp                  |   47 
 doc/elmregister.1               |    2 
 doc/elmstringconvert.1          |    2 
 doc/elmtagfilent-info           |    9 
 doc/elmtagfilterents.1          |   83 
 doc/elmterminal.1               |    2 
 doc/elmterminalinfo-info        |   16 
 doc/elmunidata.1                |    2 
 doc/fastmail.1                  |    2 
 doc/frm.1                       |    2 
 doc/newalias.1                  |    2 
 doc/newmail.1                   |    2 
 doc/readmsg.1                   |    2 
 doc/tagfilter.entities          |  111 
 doc/terminal.info               |    8 
 hdrs/convert_status.h           |   21 
 hdrs/cs_imp.h                   |   10 
 hdrs/elm_defs.h                 |   62 
 hdrs/elmlib.h                   |  321 +
 hdrs/elmme-magic.h              |    4 
 hdrs/me.h                       |   14 
 hdrs/melib.h                    |  136 
 hdrs/misclib.h                  |   93 
 hdrs/pager.h                    |   48 
 hdrs/patchlevel.h               |   10 
 hdrs/pg_lineext_imp.h           |   11 
 hdrs/pg_params_imp.h            |   59 
 hdrs/pg_range_imp.h             |   24 
 hdrs/readmsg.h                  |    4 
 hdrs/s_me.h                     |   33 
 hdrs/save_opts.h                |   42 
 hdrs/sb_imp.h                   |   30 
 hdrs/state_imp.h                |   43 
 hdrs/sysdefs.SH                 |   12 
 hdrs/tagfilter_imp.h            |  613 ++++
 lib/MAGIC                       |   21 
 lib/Makefile.SH                 |   26 
 lib/alias/aliases.c             |  476 !!!
 lib/convert_status.c            |   59 
 lib/cs_binary.c                 |  117 
 lib/cs_iso2022.c                |   45 
 lib/cs_unknown.c                |   68 
 lib/cs_utf.c                    |   38 
 lib/debug.c                     |   48 
 lib/mbox/hashmark.c             |   14 
 lib/mbox/init.c                 |   11 
 lib/mbox/savefolder.c           |    6 
 lib/mbox/state.c                |   37 
 lib/misc/terminal.c             |  735 ++!!!
 lib/out_entity.c                |  146 +
 lib/pager_lineext.c             |  143 
 lib/pager_range.c               |  570 +++
 lib/pgrng_bfr_binding.c         |  194 +
 lib/posixsig.c                  |   39 
 lib/rc_handle.c                 |   16 
 lib/read_rc.c                   |   42 
 lib/sb_file.c                   | 1069 ++++!!
 lib/sb_mem.c                    |  559 +++
 lib/service_list.c              |    6 
 lib/state_out.c                 |  393 ++
 lib/state_out_buffer.c          |   62 
 lib/string.c                    |  399 !!
 lib/string_alt.c                |  196 +
 lib/string_sort.c               |    6 
 lib/stringbuffer.c              |  219 +
 lib/unicode.c                   |   13 
 melib/Makefile.SH               |   37 
 melib/def_melib.h               |    5 
 melib/flowed.c                  |   51 
 melib/init.c                    |  238 +
 melib/mime_decode.c             |  383 +!
 melib/tagfilter.c               | 5201 ++++++++++++++++++++++++++++++++++++++++
 melib/tagfilter_decode.c        |  234 +
 melib/tagfilter_enriched.c      |  131 +
 melib/tagfilter_entity.c        | 3378 +++++++++++++++++++++++++
 melib/tagfilter_html.c          | 3109 +++++++++++++++++++++++
 melib/tagfilter_tag.c           | 4031 +++++++++++++++++++++++++++++++
 nls/C/C/C/s_me.m                |   69 
 shared_libs/iconv/iconv.c       |   33 
 src/addr_prompt.c               |    6 
 src/args.c                      |   11 
 src/attach_menu.c               |   15 
 src/browser_help.c              |   33 
 src/builtin++.c                 |  162 !
 src/init.c                      |    9 
 src/limit.c                     |   12 
 src/menu_common/alias_limit.c   |   16 
 src/menu_common/message_limit.c |   18 
 src/metapager.c                 |    8 
 src/opt_generic.c               |    6 
 src/pager/helper.c              |  264 
 src/pager/span_range.c          |  582 ++!
 src/pattern.c                   |   10 
 src/quotadisp.c                 |    9 
 src/save_opts.c                 |    6 
 src/screen/curses.c             |  372 ++
 src/screen/screen.c             |   23 
 utils/Makefile.SH               |   74 
 utils/elmconfwriter.c           |   75 
 utils/elmmailinglists.c         |    6 
 utils/elmregister.c             |   90 
 utils/elmtagfilterents.c        |  383 ++
 utils/elmterminal.c             |  166 !
 utils/readmsg/readmsg.c         |    5 
 125 files changed, 23120 insertions(+), 184 deletions(-), 4435 modifications(!)