Hello list!

After about twelve months of development i have merged into
[master] the current state of affairs.

  It introduces some **backward incompatibilities**!
  Packagers should be able to find a unified diff file for their
  respective package management attached to this message.

This is a major feature release.
  Preview 2, 2016-10-31:
    IMAP gone, better don't ^C during macros.  Misses major
    components of the final release.  All bugs of Preview 1 have
    been fixed, and other usual progress happened.
    The text you read is almost a copy of == Preview 1 ==.

I didn't know where S-mailx will truly end up with, but only knew
i wanted to overcome the technical shortcomings, have a better
user experience (regarding the software) and that i wanted to
have, e.g., NNTP support.

During development of this release it became clear that the
general usage will be changed, backward incompatibly, and move
towards sh(1)ell style command line usage, that is to say, we will
turn over and will start parsing regular shell tokens, instead of
comma-separated lists, OR space-separated lists or whatever, and
will expand _any_ value content sh(1)ell-compatibly, instead of
not at all in general and only \t and \n in some others etc.

  wysh set a='${TMPDIR}\t/' b="${TMPDIR}\t/" c=$'\${TMPDIR}\t/'
  echo a=$a b=$b c=$c
  a=${TMPDIR}\t/ b=/tmp\t/ c=/tmp /
..
  set a='${TMPDIR}\t/' b="${TMPDIR}\t/" c=$'\${TMPDIR}\t/'
  echo a=$a b=$b c=$c
  a=${TMPDIR}\t/ b=${TMPDIR}\t/ c=$\${TMPDIR}\t/

(But don't do that).  All this is documented in COMMANDS#?.
Today only new commands (like `bind', `customhdr' etc.), but also
attachment selection, `remove' and `write' use this, others, like
`set', can optionally support it with a new command prefix: `wysh'.

  Remarks:
  However, this enlightenment came late, in Spring 2016.  A number
  of internal code flows etc. have been developed without this
  knowledge, which is why the release will take some more time:
  i want to rewrite all that with the real destination in mind.
  The user interface of all new facilities etc. is however both,
  stable and upward-compatible.  It is only about internal
  interfaces and code flow.

Credits, in order of commit appearance: Antonio Radici,
Aharon Robbins, Mike Frysinger, Predrag Punosevac, Michael Convey,
Hariskar, Rudolf Sykora, Martin Neitzel, Gavin Troy,
Salvatore Bonaccorso, Todd C.  Miller, Sergey Matveev, Robert Elz,
Mantas Mikulėnas, Respiranto, Jens Schleusener,
Walter Alejandro Iglesias, Ralph Corderoy, Thomas Dickey, Afan,
Justin Ellingwood, Ingo Schwarze, Viktor Szépe, Gaetan Bisson,
Juan RP, William Yodlowsky, Hilko Bengen, Matthew Dillon,
Colin Watson and Donald Mugnai.

We welcome Antonio Radici, Mike Frysinger, Predrag Punosevac,
Michael Convey, Rudolf Sykora, Todd C. Miller, Robert Elz,
Jens Schleusener, Walter Alejandro Iglesias, Thomas Dickey, Afan,
Justin Ellingwood, Viktor Szépe, Juan RP, Matthew Dillon,
Colin Watson and Donald Mugnai in THANKS.

Apologies: Sergey Matveev.
Members of the Roff community which await progress.

  mdocmx(7) anchors are denoted by a number-sign #: typing
  "^A ANCHOR" while reading the man(1)ual in a capable less(1)
  will scroll to the manual's Point-Of-Interest, and pointing
  a web- browser to the "#ANCHOR" of the online manual works.

NOTES, ChangeLog (packager-affine)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* This release brings backward incompatibilities, especially for
  packagers and interactive use cases!

  + Anything which was WANT_xy before is now OPT_xy, and
    compiled-in paths and values, like PREFIX or PAGER, have
    gained a VAL_ prefix (thus VAL_PREFIX and VAL_PAGER).

    This is _not_ true for non-persistent or environmental values,
    e.g., DESTDIR, CC, etc, and also not for the overwritable
    program variables during configuration, e.g., $awk.

  + SENDMAIL -> VAL_MTA, SENDMAIL_PROGNAME -> VAL_MTA_ARGV0,
    MAILSPOOL -> VAL_MAIL.

  + The make system now needs config..build..install or
    all..install or tangerine (config..build..test..install).

  + The `build' phase can be parallelized by setting the MAILJOBS
    environment variable, e.g., "make MAILJOBS='-j 4' build".
    Note this variable is not tracked in the configuration.
    (Gaetan Bisson)

  + Set the new OPT_CROSS_BUILD to avoid feature runtime tests,
    only compile- and link-availability will be tested.  (Juan RP)

  + VERBOSE is implemented straight, but must be given at
    configuration time in order to become honoured.
    (William Yodlowsky)

  + ADDCFLAGS / ADDLDFLAGS -> EXTRA_CFLAGS / EXTRA_LDFLAGS

  + The LD_LIBRARY_PATH etc. building processes will skip any path
    which contains the string "fakeroot".  (Hilko Bengen)

  + We honour a set *SOURCE_DATE_EPOCH*#? environment variable.
    [df4954c]  (reproducible-builds.org; Colin Watson)

  + Packagers should have received diffs against v14.8.14
    packaging files.

  + These are upward compatible changes.

- To support RFC 1524 a.k.a. .mailcap files (see below) many
  "trigger"-characters have been added for *pipe-TYPE/SUBTYPE*#?,
  which may (rarely) affect existing values. [topic/mimepipe.2]

- *NAIL_{HEAD,TAIL}* have been obsoleted in favour of
  *message-inject-head*#? and *message-inject-tail*#?.

- *NAIL_HIST{FILE,SIZE}* have been obsoleted in favour of
  *history-file*#? and *history-size*#?.

- `-H'#? and `-L'#? have been decoupled:
   it used to be `-e'#? `-L'#? instead!

- Colour support has been changed backward in- and upward (from user
  interface side) compatibly, manual section "Coloured display"#?
  [topic/colour.2, topic/termcap.2, topic/wysh]:

  o New commands: `colour'#? and `uncolour'#?.
    You can define context-sensitive, terminal-capability-sensitive
    settings, e.g.:

      if terminal && $features @= +colour
        colour iso  view-header ft=bold,fg=magenta,bg=cyan
        colour 256  view-header ft=bold,fg=208,bg=230 subject,from
        colour mono view-header ft=bold
        colour mono view-header ft=bold,ft=reverse subject,from
      endif

  o The variable *colour-pager*#? defines whether colour and font
    attribute sequences should be generated when viewing something
    in $PAGER.

  o Set the variable *colour-disable*#? to turn colour off without
    affecting established settings.

  o It is deduced via termcap(5) (see below) whether the terminal
    supports colors, e.g., "s-nail -Stermcap=Co#256".

  o Support for 256-colour terminals. (Gavin Troy)

- `source'#? series support shell pipes if the last character of
   the "filename" ends with a vertical bar |, e.g. [c1c1ee5]

      source 'gpg -qd ~/.s-nailrc-private.gpg |'

- Shell pipes are also supported as targets for `move'#?,
  `copy'#? etc., e.g., [0d0c523]

      copy . '| cat; echo huhu'

- Support for custom headers via the new `customhdr'#? and
  `uncustomhdr'#? commands.  Because we don't have "scope-local"
  environments yet there temporarily is also *customhdr*#?,
  which can be covered by `localopts'#?. [topic/customhdr]
  (Sergey Matveev)

  o Support of *ORGANIZATION* has been dropped.

  o In compose mode `~e'#? supports _any_ header.

- New -:#? command line option can be used to more easily select
  which startup files should be loaded.
  (Robert Elz)

- `account'#?s and *folder-hook*#?s now have `localopts'#?
   enabled by default.

   o Note: it is likely that in the future "scope-local" environments
     will be implemented, then also covering things like shortcuts etc.,
     and some thing like a "global" prefix to extend a setting to the
     global namespace.  (Think TeX.)

- A first simple form of compose-mode hooks has been implemented:
  *on-compose-enter*#? and *on-compose-leave*#? can be set to
  macros which get invoked at appropriate times, with `localopts'#?
  enabled (which extend until the message is sent). [d6902e1,3fd1db4]
  (Jens Schleusener, Rudolf Sykora)

- "The .netrc file"#?

  o gained support for comments.
    (Walter Alejandro Iglesias, Ralph Corderoy)

  o `netrc'#? now has a "load" subcommand.

  o the new *netrc-pipe*#? obsoletes OPT_AGENT and
    *agent-shell-lookup* and can be used to load an encrypted
    .netrc file, e.g.:

      wysh set netrc-lookup netrc-pipe='gpg -qd ~/.netrc.gpg'

    E.g., this is in usual .netrc syntax and thus possibly much
    nicer than saying "source 'gpg -qd ~/.credentials.gpg |'".

- termcap(5) / terminfo(5) support has been changed backward in-
  and upward (from user interface side) compatibly, please read
  "On terminal control and line editor"#? [topic/termcap.2]

  o OPT_TERMCAP is by default enabled.
    The new, by default enabled, configuration option
    OPT_TERMCAP_VIA_TERMINFO can be used to (try to) use terminfo(5)
    instead.

  o The variable *termcap*#? can be used to freely define or
    override terminal capabilities, *termcap-disable*#? will
    disable interaction with the chosen library, leaving only
    *termcap* in charge.

  o The builtin line editor has been rather completely rewritten to
    be the Mailx-Line-Editor (OPT_MLE, default yes), and supports
    wide glyphs (if possible), infinite line lengths (2 GB) and more.
    Tabulator expansion is no longer an option (but needs
    fnmatch(3)).

  o Optionally (OPT_KEY_BINDINGS, default yes) it has become possible
    to freely define key bindings for the MLE via the new `bind'#?
    and `unbind'#? commands.  These key bindings can make use
    of termcap(5) and/or terminfo(5) names.  The MLE will install
    a set of default bindings, more with OPT_TERMCAP: "bind*".

  o OPT_EDITLINE and OPT_READLINE support have been dropped.
    The new MLE should not miss anything.  Does it?
    Tip: in an UTF-8 locale try "touch /tmp/hall{,öchen}" and then
    autocomplete that: once, then ^Q, and again.

- `source'#? can be used in `call'#?ed macros.
  What sounds so innocent replaced an entire machinery and got rid of
  a brilliant idea of Kurt Shoens from the 70s, but which never worked
  with Nail/Heirloom extensions, namely macros, and in right order.

  Accompanying this `-X'#? can be used to define macros and run
  them etc.  We're still not there, S-nail v15 -- then S-mailx! -- will
  change the entire codebase to use SystemV signal handling, instead of
  going the BSD way that is, like used here, both, very expensive due to
  the immense amount of signal managing systemcalls and insecure due to
  almost uncontrollable longjmp()s.  Should work:

    s-nail -X'define x {' -Xversion -Xx -X'}' -X'call x'
    s-nail -X'source \' -X'"echo version|"' -Xx

- Internal and environment variables are now explicitly _defined_ and
  _tracked_ after variable handling has been rewritten completely.
  [topic/okeys-attr.2]

  o Notes:
    + This means that, e.g., "password=NOT_SECRET s-nail" will **NOT**
      work no more, since *password*#? is an internal variable!

    + But if you do, e.g., "set TMPDIR=~/tmp", then this will also be
      reflected in the program environment (it is an environment
      variable) and thus affect child processes.

    + Therefore we no longer have `setenv' and `unsetenv'.

    + To integrate other (unkown) environment variables transparently
      into our variable management, the new command `environ'#?
      needs to be used, e.g., "environ set NEWVAR=valye" or
      "environ link EXISTINGVAR".

  o `-u'#? / *LOGNAME*#? (*USER*) handling has been redefined, and
    "-u USER" is now exactly the same as "-f %USER", and *LOGNAME*
    (and *USER*) is actively set to the active user.  (Afan)

    *LOGNAME*#? is POSIX standardized and henceforth used and
    preferred over *USER*, which came from BSD.  (Todd C. Miller)

- In the future (at least non-message-list) argument handling will
  be changed backward-incompatibly to be sh(1)ell compatible (and
  thus POSIX standardized).  New commands use it already today
  (`bind'#?, `colour'#?, `customhdr'#?), some others (most
  importantly, `set'#?) can be forced to do so via the new `wysh'
  command prefix, as in: [topic/wysh]

    wysh set message-inject-tail=$'\n--steffen'
    bind base $'\cA,\x61' 'echo control-A and small a'

- We now actively manage *umask*#?: 0077 by default, but an
  empty string will use the setting that is active upon startup.
  Like any change to (known) environment variables this setting
  will also be inherited by any child process.
  (Walter Alejandro Iglesias)

- Anything SENDMAIL / *sendmail*-ish has been renamed to *mta*#?,
  *mta-arguments*#?, *mta-no-default-argument*#?, *mta-argv0*#?.

  The reason is that in v15 we won't even have *smtp*: it is just
  another form of MTA, and thus obsolete by itself.

  For now we support a hack that understands a file:// URL in
  *mta*, too, but that is the default if there is no protocol.
  E.g.: "set mta=smtp://a:[email protected]"

- The "spamd" spam interface is obsolete.  I haven't tested it
  since my main machine died, it is error prone since it assumes
  internals of the spamassassin interface, and there never was
  a speed improvement against "spamc".  (However it could react
  upon the current "is-spam" state of a message, which "spamc"
  doesn't allow.) [284db64]

- Some commands, like `set'#?, `list'#?, `mlist'#? etc.,
  now react upon the setting of *verbose*#? and *debug*#?.

== Preview 1 ==

- The new *inbox*#? variable will henceforth be looked up
  when expanding "%" in filenames, followed by the usual
  *MAIL*#? and compile-time mailspool search.
  (Stephen Isard, Jürgen Daubert)

== Preview 2 ==

ChangeLog
^^^^^^^^^

- The manual has seen another major overhaul, all the variables are now
  documented in a single, sorted list, and many clarifications should
  have been added. [topic/manual.10]
  (Predrag Punosevac, Michael Convey, Hariskar, Rudolf Sykora,
  Respiranto, Thomas Dickey, Donald Mugnai)

- *mime-counter-evidence*#? gained bit 4 (perform proper in-depth
  content inspection as necessary; set to 0xE for all bits).
  [topic/mimetype.2]  (Aharon Robbins)

- Maildir paths are now created recursively as necessary.
  (Justin Ellingwood)

- `-M'#? and `-m'#? options have been added to enforce a special
  send mode that will flag standard input / the given file with the
  specified / detected MIME 'Content-Type:'.  This can be used to
  directly send, e.g., HTML log output.  Note that before v15 this
  is a bit restricted: you are not free to do anything.
  (Viktro Szépe, Ralph Corderoy)

- Disallow symlinks on writable files (O_NOFOLLOW open(2)).
  (Matthew Dillon)

- `retain'#?, `ignore'#? etc. now differentiate in between
  From (the From: header) and From_ (the MBOX ident).

- `top'#? has been rewritten completely, `Top'#? is new.

- `features' has been dropped, `version'#? extended.

git(1) shortlog (edited)
''''''''''''''''''''''''

f01291d extract_date_from_from_(): dig more invalid MBOXes (Antonio Radici)..
662982e Add OF_REGISTER_UNLINK, allow usage in Ftmp()
69bf721 *pipe-TYPE/SUBTYPE*: add "@" triggers and $NAIL_FILENAME_TEMPORARY..
bb5d0e2 *pipe-TYPE/SUBTYPE*: add "!" trigger ("needsterminal")
df8768b Add *mime-counter-evidence* bit 4 (Aharon Robbins)..
d3fe980 Ftmp(): drop "mode" argument (not wrong: Mike Frysinger)..
7abc368 Print all MIME_RELATED subparts when quoting
f6fbcc4 Add *mime-alternative-favour-rich*..
86159db nail.1: we support searching, really (Predrag Punosevac)
5b61a08 nail.1: talk about address lists (again) (Michael Convey)..
0eeffc4 nail.1: try improve states / MBOX etc. relation (Michael Convey)
43ea039 nail.1: what is an environment variable (Michael Convey)
13e0804 nail.1: fix typo (Hariskar (archlinux Wiki))
03d6af5 nail.1: more on sortability (Rudolf Sykora)..
4da9043 Not "binary", but "boolean" variables! (Predrag Punosevac)..
7064ef2 Add *message-inject-{head,tail}*, obsolete *NAIL_{HEAD,TAIL}*
4fde608 Add *history-{file,size}*, obsolete *NAIL_HIST{FILE,SIZE}*
36578d1 Add PS_SETFILE_OPENED (affects hooks), *bsdcompat*<>*emptystart*..
600d449 Drop the `inc' alias of and for `newmail'
5296040 Decouple -H from -L: it used to be -eL instead!
dad4e94 Obsolete *SYSV3*
c85f56d Support :d specifier for at least `from' (Martin Neitzel)..
7b753a8 Support `help' docstrings for `#', `-', plus..
30d0bb7 `netrc': add "load" subcommand to only load, not also "show"
b12e1ed Be more friendly when composing mails (Martin Neitzel)..
b50eac0 nail.1: use display/show not type/print (Michael Convey)..
6feafaf Add `search' alias for `from' (Predrag Punosevac)
a4e2612 Support 256-colour terminals (Gavin Troy)
16b57ab Drop `mono'+, change `colour' and `uncolour' commands..
cedde28 Finally: drop IMAP support!..
d535db0 Implement `dotmove': move the "dot" up or down by one
87a72c7 Ooops, always include commands, as c_cmdnotsupp if disabled!
c1c1ee5 `source': support shell pipes (if filename ends with "|")
8655aff Error framework: print UAGENT prefix (ident in pipes; Salvatore
        Bonaccorso)
e96baaa Introduce $LOGNAME, the POSIX equivalent of $USER (Todd C. Miller)
0d0c523 Support |PIPE targets for `move', `copy' ++..
76e6364 Add `customhdr' (Sergey Matveev)..
ad58c91 Support *customhdr*, too (Sergey Matveev)..
6322e0a Support _any_ user header via ~e (Sergey Matveev)..
19b3afb Drop support for $ORGANIZATION in favour of `customhdr'
77d4f5c Fix SSL init order, change *ssl-rand-file* behaviour..
8daeda9 send.c:sendpart(): "support" malformed messages..
eddf684 Drop *print-all-chars*
f733f61 Don't set *dot* in -# batch mode
5d52578 Add -: command line option (Robert Elz)..
53b5f07 README: use git(1) --single-branch (Mantas Mikulėnas)
8d0c7dd Allow "-q -" in non-interactive mode; -q and -t are mutual exclusive
420131f Fix mispelling: can|to be send->sent (Respiranto (archlinux Wiki))
7f3c11f `echo': don't expand via sh(1) no more, use internal mechanism
ddece18 main(): verify *expandargv* value content in case of OPT_D_V
8d5f709 mk-conf.sh: dump final summary into config.log, too
0dd85b1 n_iconv_open(): use *charset-unknown-8bit* also for "binary"..
d5a9c17 page_or_print(): never use $PAGER unless startup complete
bf889e4 (Shell) Variable expansion: support hyphens in names..
3fd94e3 Default `localopts' to YES for `account' and *folder-hook*s!
983d22f `if'+: allow "if ${VARNAME}" in addition to "if $VARNAME"..
d6902e1 Add *on-compose-{enter,leave}* hooks (Jens Schleusener, Rudolf
        Sykora)..
abf2e5d .netrc: support comments (Walter Alejandro Iglesias, Ralph Corderoy)..
37e0c26 nail.1: .netrc comma separator was in original Berknet parser! (Ralph
        Corderoy)
7e85aa9 Drop WANT_EDITLINE support..
3e6aa24 make.rc: enable WANT_TERMCAP by default
512069b Rewrite for a generic termcap(5) interface..
40522c3 nail.1: use -v option to cat(1) if available (Thomas Dickey)
cf3ccfe Deduce colours via *termcap* instead!; support all/*..
64eabef Turn NCL into M(ailx) L(ine) E(ditor)..
adb29c3 MLE: add "mle-position" and "mle-prompt" colour mappings
27f3e9d Add terminfo(5) support (via WANT_TERMCAP_PREFER_TERMINFO)..
  Note: later renamed to OPT_TERMCAP_VIA_TERMINFO
1aa64b6 Add WANT_KEY_BINDINGS..
ad61278 Add n_pager_{open,close}() -- _always_ termios(4) for $PAGER!
d935e65 (BWDIC!) Allow `source' in `call'ed macros..
c8c1393 n_lex_input(): truly support line continuation via backslash..
7f52ae7 make.rc+: add WANT_NOMEMDBG to allow valgrind(1)+ with DEBUG/DEVEL
2497240 homedir: if not $HOME, use pw_dir (of $LOGNAME or getpwuid())
d05aed4 mk-conf.sh: require one of (un)?setenv(3) and putenv(3)
94b3635 (BWDIC!) make.rc: add defaults _here_ (as VAL_xy, e.g., VAL_SENDMAIL!)
f0ac705 (BWDIC!) Rewrite variable handling..
724751e nail.1: drop `(un)?setenv' and *bsdset*; add `environ'
3fd1db4 Improve compose-hooks via new macro hooks..
f4577e6 FIX (fix?) `localopts'..
d8f7cd7 (BWDIC!) Redefine -u / $LOGNAME / $USER (Afan)..
e337e00 Support expansions in $MAIL!; more on `account's (Afan)..
d596d74 Compare *newfolders* case-insensitively (Justin Ellingwood)..
57744f9 Redefine *folder* / getfold->folder_query() / *HOME* (Justin
        Ellingwood)..
3c57c83 n_path_mkdir(): create recursively as necessary (Justin Ellingwood)
66553bc `list': with non-WS argument, don't sort alphabetically
b95e6be Introduce `wysh' command prefix to change argument parser..
08b8f48 Only support sh(1)-style quoting for some new commands..
665c6f8 `customhdr': disallow using control characters in bodies
67c2acb (BWDIC!) Only use new sh(1)-style quoting for attachments!
f4b0153 (BWDIC!) Only use new sh(1)-style quoting for `write'
a89e1e3 `remove': use sh(1)ell-style quoting
858374b Drop wordexp(3), instead unroll via fnmatch(3)..
0945726 MLE: change HT expansion..
0bbe981 nail.1: fix spelling errors as by igor(1) (Ingo Schwarze)
f1a775b Add -M and -m options (Viktor Szépe, Ralph Corderoy)..
42b42da `list': include argument-type etc. if *verbose*
79f2053 `if'+: support sh(1)-style comments on the line..
1bd8e48 Add *umask*, and set actively (Walter Alejandro Iglesias)..
6b1cd93 Now with *umask*, just drop fchmod(2)++ calls (Walter Alejandro
        Iglesias)
2b45cd0 Add *netrc-pipe*: allows e.g. encrypted .netrc files
af8261e Obsolete WANT_AGENT / *agent-shell-lookup* (Sorry!)
05f7743 Generate lowercase MIME charset=/RFC 2231 charset strings
ba22166 Change make targets; add $MAILJOBS; don't track $DESTDIR (Gaetan
        Bisson)..
cd244b1 Add WANT_CROSS_BUILD make.rc option (Juan RP)..
95141f6 Tweak VERBOSE handling (William Yodlowsky)..
73545ad Rename ADD(C|LD)LAGS to EXTRA_(C|LD)FLAGS..
ca81646 make.rc, mk-conf.sh: allow y/n booleans
d74a18a mk-conf.sh:path_check(): skip any "fakeroot" path (Hilko Bengen)
7ce6a17 (BWDIC!) nail.rc: nodot, emptystart, fullnames, m-c-e=0xE; pimp PDF
        handler
09912fa n_file_lock(): do not retry for EBADF / EINVAL
44a3be6 sendout.c:__savemail(): try to file_lock() *record*
5ef5261 cmd2.c:save1(): try to file_lock() target of `save'/`move'/etc.
10990e4 Add n_O_NOFOLLOW, disallow symlinks for writable files (Matthew
        Dillon)..
c83e153 (BWDIC!) Require explicit "from_" to `retain' etc. From_ lines!
d7a15e4 page_or_print(): query $PAGER environment, use it
481c687 Allow WANT_QUOTE_FOLD to be "require"d
1dc9bb6 (BWDIC!) Make `top' real-life capable!  Add `Top', *topsqueeze*..
df4954c Add $SOURCE_DATE_EPOCH (reproducible-builds.org; Colin Watson)
b412ea8 mime.types: add x-lzma, x-lz4 and x-lzip MIME type extensions
dc92f2c savedeadletter()->sendout.c; tweak POSIX compliance (Ralph Corderoy)
8a3638c MLE: add `bind' and `unbind' etc...
4c93f66 (BWDIC!) Obsolete *sendmail*++ in favour of *mta*++; obsolete *smtp*..
284db64 Obsolete *spam-interface*=spamd..
83a24a0 boolify(): allow y/n booleans
61aac0f All: OPT_ not WANT_, VAL_XY not XY..
45d488d README: add The Mail Archive -- Gmane.org reduced to NNTP
48eb7da SEND_TODISP(_ALL)?: append newline if message does have no final one
63bf464 (BWDIC!) Drop readline(3) support..
863f1e8 tty.c,MLE: gracefully honour *line-editor-disable*++..
ae4f2df nail.1: talk on `localopts' in macros which change `account's
844bedb Support LEXINPUT, thus `bind', contexts..
b9e4e61 Drop `features', change `version', adjust make system..
20f3cd2 nail.1: more explicit `set' references instead of saying 'Set' (Donald
        Mugnai)..
== Preview 1 ==
2fefcf6 n_dotlock(), n_file_lock(): oops, missed the pollmsecs==UIZ_MAX case
fcd2892 cc-test.sh: detect utf-8, not only utf8 locales
1b462ed -#: also set *MAIL* to /dev/null
6fbf9da setfile(): if isdevnull, do not really init the box, it is MB_VOID
fb4ddf3 quit(): do not fail when quit()ting away from a MB_VOID box
2d53b46 url_parse(): better take better care for path parts (Stephen Isard)..
8650fa6 sendmp(), setfile(): FIX: ensure time_current is actualized
21f0eaa mk-conf.sh: find terminfo on Sun (Thomas Dickey)..
e33dfa0 n_termcap_query(): FIX: did real work even with PS_TERMCAP_DISABLE..
58423ea MLE.bind.a_tty_bind_create(): properly align durable buffer, too (sic)
f449fe1 MLE.bind.a_tty_bind_create(): tweak previous (encapsulate+notify
        knowledge)
abd3631 Use ok_vlook(TMPDIR), drop global tempdir variable
4496e9a Many: drop support for *mbox-rfc4155* - a no-brainer..
a26d4c2 is_head(): change compat argument to check_rfc4155..
5cf41d4 mime_types.c:_mt_by_filename(): basename() path (fix/tweak relative
        paths)
e4ddaa8 Change n_iconv*() protos, add enum n_iconv_flags (Ralph Corderoy)..
b1b3896 setfile(): tweak/fix [36578d1] (Add PS_SETFILE_OPENED..)..
26674da make.rc, mk-conf.sh: OPT_DEVEL includes OPT_DEBUG, but not vice versa
8cbd815 make.rc: OPT_DEBUG (eg) is allowed even with a CONFIG=
813802d FIX [b9e4e61d] (Drop features', change `version'..)..
e486af5 termcap.c: fix: add missing _F_NOENT check..
5bcef02 n_lex_input(): FIX [844bedb] (overwrote buffer size with used length)
d59bd2a collect(): FIX [bb944266] (used memcpy() for overlapping region)
f498291 a_lex_source_file(): fix resource leak, set a_LEX_FREE for these
83313f1 Allow -X options to take multiline arguments..
eaa5f01 nail.1: -X: note all are joined and treated as a unit
204531f cmd_tab.h: allow history for `environ', `set', `varshow'
a1eee83 Add a RFC 6068 url_mailto_to_address() hack for List-Post:
9503e7d `source': due to wysh prefix allow space after | pipe indicator
9fde9d7 lex_input.c: tweak/rethink [83313f1] (Allow multiline -X options)..
99e96f3 FIX "," message specification (since [1c4b8c9], v14.8.4)..
1587069 FIX [44cec1f] (Fix "address" message specifications (John Dodson))..
e40e181 nail.1, nail.rc: set *sendwait* by default (Ralph Corderoy)
7ea7734 make.rc: oops, set VAL_MBOX to ~/.mbox not ~/mbox in [94b3635]!
0879986 First (rather small) step in reworking getmsglist()..
3051546 Move `help' to lex_input.c, show argument type with *verbose*
3c86507 getmsglist(): improve [0879986] a bit
d5bdcaa getmsglist(): fix [0879986]: honour hidden/deleted for / and @
0ef4291 `z': add ^: goes to first screen; fix max calc for 0 modulos
7adcf99 `write'++: !interactive: urlxenc() attachment paths (Ralph Corderoy)..
58393be getmsglist(): fix [0879986]: honour hidden/deleted for :colon
        modifiers
b14aae7 `write'++: !interactive:.. But now, really (Lyndon Nerenberg, David
        Levine)..
20082ee THANKS: David Levine and Lyndon Nerenberg
5270bf1 Simplify *folder* (implicit trail solidus) (Stephen Isard, Ralph
        Corderoy)
dcd26bd Add FEXP_{NSPECIAL,NFOLDER}, disallow fatal user recursions
f1313c0 Add `urlcodec', obsolete `url{en,de}code'
610b952 `urlcodec': makeprint() when decoding
a638bcf Add *typescript-mode*, set it for -# (Ralph Corderoy, Martin
        Neitzel)..
053e19f Add *inbox* (Stephen Isard, and Jürgen Daubert)..
5d7b970 Add n_SHEXP_PARSE_QUOTE_AUTOCLOSE (simplifies tab completion)
6a09b2c folder_query(): FIX [5270bf1]: strlen() may be 0, so don't [len-1]
f67e8c3 folder_query(): err: real FIX for problem "fixed" with [6a09b2c]..
4a4630d `folders': tweak return value (a bit)
9d364e1 mk-conf.sh, auxlily.c: fix va_copy(3) detection with -std=c89
4f581d4 getmsglist(): hey. If we cannot find threaded range end, reverse
        direction
830e15a n_verr(): even without va_copy(3), limit buffer to 1 KB!
20e3240 Add OPT_ALWAYS_UNICODE_LOCALE (Predrag Punosevac)..
14b5a3a Make combinetime() overflow safe (Vincent Lefevre)..
2bf0888 getmsglist(): if user gives A-B, try fulfill even in threaded mode
dfc5dac Fix off-by-one introduced in [57744f9] (Redefine *folder* ..)..
c4522db Tweak [36578d1] (Add PS_SETFILE_OPENED..) by saving errno
0bd7cbb Dotlock: O_TRUNC is meaningless with O_CREAT|O_EXCL; etc.
== Preview 2 ==

Appendix
^^^^^^^^

The complete changelog of commits in between two versions OLD and
NEW can be inspected by using the git(1) `log' command:

  $ git log --reverse --topo-order --abbrev-commit OLD..NEW
  # Only topic branch headers (--no-merges for content commits only):
  $ git log --oneline --reverse --topo-order --merges OLD..NEW
  # Same, but truly accessible:
  $ git log --oneline --reverse --topo-order --merges --parents OLD..NEW |
    while read c1 c2 c3 c4 c5 c6; do
      printf "%-24s: \$ git log --oneline --no-merges %s ^%s\n" \
        "${c6}" "${c1}" "${c2}";
    done

NEWS entries for the S-nail releases before v14.9.0 have been cut off
before release v14.9.0 and can be found in the git(1) repository:

  v14.8.0 - v14.8.14: $ git show v14.8.14:NEWS
  v13     -  v14.8.5: $ git show v14.8.5:NEWS
  9.0     - 12.5    : $ git show heirloom:ChangeLog

Also accessible via the following URL, just replace X.Y.Z accordingly:
  https://git.sdaoden.eu/cgit/s-nail.git/tree/NEWS?h=vX.Y.Y
For even older releases you need to look into the [timeline] branch, but
no changelog has been administrated for them.

--steffen

------------------------------------------------------------------------------
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
__________________________________
[email protected]

Reply via email to