-s, ~s: normalize NL/CR characters (Debian #419840)
[s-mailx.git] / NEWS
blobec90a20e90dc74c0f1e6932fd2d733175d1b8f00
1 S - n a i l / S - m a i l x  N e w s
2 ====================================
4 v14.9.0 ("Crow"), 201?-??-??
5 ----------------------------
7 This is a major feature release.
8   Preview 2, 2016-11-02:
9     IMAP gone, better don't ^C during macros.  Misses major
10     components of the final release.  All bugs of Preview 1 have
11     been fixed, and other usual progress happened.
13 I didn't know where S-mailx will truly end up with, but only knew
14 i wanted to overcome the technical shortcomings, have a better
15 user experience (regarding the software) and that i wanted to
16 have, e.g., NNTP support.
18 During development of this release it became clear that the
19 general usage will be changed, backward incompatibly, and move
20 towards sh(1)ell style command line usage, that is to say, we will
21 turn over and will start parsing regular shell tokens, instead of
22 comma-separated lists, OR space-separated lists or whatever, and
23 will expand _any_ value content sh(1)ell-compatibly, instead of
24 not at all in general and only \t and \n in some others etc.
26   wysh set a='${TMPDIR}\t/' b="${TMPDIR}\t/" c=$'\${TMPDIR}\t/'
27   echo a=$a b=$b c=$c
28   a=${TMPDIR}\t/ b=/tmp\t/ c=/tmp /
30   set a='${TMPDIR}\t/' b="${TMPDIR}\t/" c=$'\${TMPDIR}\t/'
31   echo a=$a b=$b c=$c
32   a=${TMPDIR}\t/ b=${TMPDIR}\t/ c=$\${TMPDIR}\t/
34 (But don't do that).  All this is documented in COMMANDS#?.
35 Today only new commands (like `bind', `customhdr' etc.), but also
36 attachment selection, `remove' and `write' use this, others, like
37 `set', can optionally support it with a new command prefix: `wysh'.
39 Credits, in order of commit appearance: Antonio Radici,
40 Aharon Robbins, Mike Frysinger, Predrag Punosevac, Michael Convey,
41 Hariskar, Rudolf Sykora, Martin Neitzel, Gavin Troy,
42 Salvatore Bonaccorso, Todd C.  Miller, Sergey Matveev, Robert Elz,
43 Mantas Mikulėnas, Respiranto, Jens Schleusener,
44 Walter Alejandro Iglesias, Ralph Corderoy, Thomas Dickey, Afan,
45 Justin Ellingwood, Ingo Schwarze, Viktor Szépe, Gaetan Bisson,
46 Juan RP, William Yodlowsky, Hilko Bengen, Matthew Dillon,
47 Colin Watson and Donald Mugnai.
49 We welcome Antonio Radici, Mike Frysinger, Predrag Punosevac,
50 Michael Convey, Rudolf Sykora, Todd C. Miller, Robert Elz,
51 Jens Schleusener, Walter Alejandro Iglesias, Thomas Dickey, Afan,
52 Justin Ellingwood, Viktor Szépe, Juan RP, Matthew Dillon,
53 Colin Watson and Donald Mugnai in THANKS.
55 Apologies: Sergey Matveev.
56 Members of the Roff community which await progress.
58   mdocmx(7) anchors are denoted by a number-sign #: typing
59   "^A ANCHOR" while reading the man(1)ual in a capable less(1)
60   will scroll to the manual's Point-Of-Interest, and pointing
61   a web- browser to the "#ANCHOR" of the online manual works.
63 NOTES, ChangeLog (packager-affine)
64 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66 * This release brings backward incompatibilities, especially for
67   packagers and interactive use cases!
69   + Anything which was WANT_xy before is now OPT_xy, and
70     compiled-in paths and values, like PREFIX or PAGER, have
71     gained a VAL_ prefix (thus VAL_PREFIX and VAL_PAGER).
73     This is _not_ true for non-persistent or environmental values,
74     e.g., DESTDIR, CC, etc, and also not for the overwritable
75     program variables during configuration, e.g., $awk.
77   + SENDMAIL -> VAL_MTA, SENDMAIL_PROGNAME -> VAL_MTA_ARGV0,
78     MAILSPOOL -> VAL_MAIL.
80   + The make system now needs config..build..install or
81     all..install or tangerine (config..build..test..install).
83   + The `build' phase can be parallelized by setting the MAILJOBS
84     environment variable, e.g., "make MAILJOBS='-j 4' build".
85     Note this variable is not tracked in the configuration.
86     (Gaetan Bisson)
88   + Set the new OPT_CROSS_BUILD to avoid feature runtime tests,
89     only compile- and link-availability will be tested.  (Juan RP)
91   + VERBOSE is implemented straight, but must be given at
92     configuration time in order to become honoured.
93     (William Yodlowsky)
95   + ADDCFLAGS / ADDLDFLAGS -> EXTRA_CFLAGS / EXTRA_LDFLAGS
97   + The LD_LIBRARY_PATH etc. building processes will skip any path
98     which contains the string "fakeroot".  (Hilko Bengen)
100   + We honour a set *SOURCE_DATE_EPOCH*#? environment variable.
101     [df4954c]  (reproducible-builds.org; Colin Watson)
103   + Packagers should have received diffs against v14.8.14
104     packaging files.
106   + These are upward compatible changes.
108 - To support RFC 1524 a.k.a. .mailcap files (see below) many
109   "trigger"-characters have been added for *pipe-TYPE/SUBTYPE*#?,
110   which may (rarely) affect existing values. [topic/mimepipe.2]
112 - *NAIL_{HEAD,TAIL}* have been obsoleted in favour of
113   *message-inject-head*#? and *message-inject-tail*#?.
115 - *NAIL_HIST{FILE,SIZE}* have been obsoleted in favour of
116   *history-file*#? and *history-size*#?.
118 - `-H'#? and `-L'#? have been decoupled:
119    it used to be `-e'#? `-L'#? instead!
121 - Colour support has been changed backward in- and upward (from user
122   interface side) compatibly, manual section "Coloured display"#?
123   [topic/colour.2, topic/termcap.2, topic/wysh]:
125   o New commands: `colour'#? and `uncolour'#?.
126     You can define context-sensitive, terminal-capability-sensitive
127     settings, e.g.:
129       if terminal && $features @= +colour
130         colour iso  view-header ft=bold,fg=magenta,bg=cyan
131         colour 256  view-header ft=bold,fg=208,bg=230 subject,from
132         colour mono view-header ft=bold
133         colour mono view-header ft=bold,ft=reverse subject,from
134       endif
136   o The variable *colour-pager*#? defines whether colour and font
137     attribute sequences should be generated when viewing something
138     in $PAGER.
140   o Set the variable *colour-disable*#? to turn colour off without
141     affecting established settings.
143   o It is deduced via termcap(5) (see below) whether the terminal
144     supports colors, e.g., "s-nail -Stermcap=Co#256".
146   o Support for 256-colour terminals. (Gavin Troy)
148 - `source'#? series support shell pipes if the last character of
149    the "filename" ends with a vertical bar |, e.g. [c1c1ee5]
151       source 'gpg -qd ~/.s-nailrc-private.gpg |'
153 - Shell pipes are also supported as targets for `move'#?,
154   `copy'#? etc., e.g., [0d0c523]
156       copy . '| cat; echo huhu'
158 - Support for custom headers via the new `customhdr'#? and
159   `uncustomhdr'#? commands.  Because we don't have "scope-local"
160   environments yet there temporarily is also *customhdr*#?,
161   which can be covered by `localopts'#?. [topic/customhdr]
162   (Sergey Matveev)
164   o Support of *ORGANIZATION* has been dropped.
166   o In compose mode `~e'#? supports _any_ header.
168 - New -:#? command line option can be used to more easily select
169   which startup files should be loaded.
170   (Robert Elz)
172 - `account'#?s and *folder-hook*#?s now have `localopts'#?
173    enabled by default.
175    o Note: it is likely that in the future "scope-local" environments
176      will be implemented, then also covering things like shortcuts etc.,
177      and some thing like a "global" prefix to extend a setting to the
178      global namespace.  (Think TeX.)
180 - A first simple form of compose-mode hooks has been implemented:
181   *on-compose-enter*#? and *on-compose-leave*#? can be set to
182   macros which get invoked at appropriate times, with `localopts'#?
183   enabled (which extend until the message is sent). [d6902e1,3fd1db4]
184   (Jens Schleusener, Rudolf Sykora)
186 - "The .netrc file"#?
188   o gained support for comments.
189     (Walter Alejandro Iglesias, Ralph Corderoy)
191   o `netrc'#? now has a "load" subcommand.
193   o the new *netrc-pipe*#? obsoletes OPT_AGENT and
194     *agent-shell-lookup* and can be used to load an encrypted
195     .netrc file, e.g.:
197       wysh set netrc-lookup netrc-pipe='gpg -qd ~/.netrc.gpg'
199     E.g., this is in usual .netrc syntax and thus possibly much
200     nicer than saying "source 'gpg -qd ~/.credentials.gpg |'".
202 - termcap(5) / terminfo(5) support has been changed backward in-
203   and upward (from user interface side) compatibly, please read
204   "On terminal control and line editor"#? [topic/termcap.2]
206   o OPT_TERMCAP is by default enabled.
207     The new, by default enabled, configuration option
208     OPT_TERMCAP_VIA_TERMINFO can be used to (try to) use terminfo(5)
209     instead.
211   o The variable *termcap*#? can be used to freely define or
212     override terminal capabilities, *termcap-disable*#? will
213     disable interaction with the chosen library, leaving only
214     *termcap* in charge.
216   o The builtin line editor has been rather completely rewritten to
217     be the Mailx-Line-Editor (OPT_MLE, default yes), and supports
218     wide glyphs (if possible), infinite line lengths (2 GB) and more.
219     Tabulator expansion is no longer an option (but needs
220     fnmatch(3)).
222   o Optionally (OPT_KEY_BINDINGS, default yes) it has become possible
223     to freely define key bindings for the MLE via the new `bind'#?
224     and `unbind'#? commands.  These key bindings can make use
225     of termcap(5) and/or terminfo(5) names.  The MLE will install
226     a set of default bindings, more with OPT_TERMCAP: "bind*".
228   o OPT_EDITLINE and OPT_READLINE support have been dropped.
229     The new MLE should not miss anything.  Does it?
230     Tip: in an UTF-8 locale try "touch /tmp/hall{,öchen}" and then
231     autocomplete that: once, then ^Q, and again.
233 - `source'#? can be used in `call'#?ed macros.
234   What sounds so innocent replaced an entire machinery and got rid of
235   a brilliant idea of Kurt Shoens from the 70s, but which never worked
236   with Nail/Heirloom extensions, namely macros, and in right order.
238   Accompanying this `-X'#? can be used to define macros and run
239   them etc.  We're still not there, S-nail v15 -- then S-mailx! -- will
240   change the entire codebase to use SystemV signal handling, instead of
241   going the BSD way that is, like used here, both, very expensive due to
242   the immense amount of signal managing systemcalls and insecure due to
243   almost uncontrollable longjmp()s.  Should work:
245     s-nail -X'define x {' -Xversion -Xx -X'}' -X'call x'
246     s-nail -X'source \' -X'"echo version|"' -Xx
248 - Internal and environment variables are now explicitly _defined_ and
249   _tracked_ after variable handling has been rewritten completely.
250   [topic/okeys-attr.2]
252   o Notes:
253     + This means that, e.g., "password=NOT_SECRET s-nail" will **NOT**
254       work no more, since *password*#? is an internal variable!
256     + But if you do, e.g., "set TMPDIR=~/tmp", then this will also be
257       reflected in the program environment (it is an environment
258       variable) and thus affect child processes.
260     + Therefore we no longer have `setenv' and `unsetenv'.
262     + To integrate other (unkown) environment variables transparently
263       into our variable management, the new command `environ'#?
264       needs to be used, e.g., "environ set NEWVAR=valye" or
265       "environ link EXISTINGVAR".
267   o `-u'#? / *LOGNAME*#? (*USER*) handling has been redefined, and
268     "-u USER" is now exactly the same as "-f %USER", and *LOGNAME*
269     (and *USER*) is actively set to the active user.  (Afan)
271     *LOGNAME*#? is POSIX standardized and henceforth used and
272     preferred over *USER*, which came from BSD.  (Todd C. Miller)
274 - In the future (at least non-message-list) argument handling will
275   be changed backward-incompatibly to be sh(1)ell compatible (and
276   thus POSIX standardized).  New commands use it already today
277   (`bind'#?, `colour'#?, `customhdr'#?), some others (most
278   importantly, `set'#?) can be forced to do so via the new `wysh'
279   command prefix, as in: [topic/wysh]
281     wysh set message-inject-tail=$'\n--steffen'
282     bind base $'\cA,\x61' 'echo control-A and small a'
284 - We now actively manage *umask*#?: 0077 by default, but an
285   empty string will use the setting that is active upon startup.
286   Like any change to (known) environment variables this setting
287   will also be inherited by any child process.
288   (Walter Alejandro Iglesias)
290 - Anything SENDMAIL / *sendmail*-ish has been renamed to *mta*#?,
291   *mta-arguments*#?, *mta-no-default-argument*#?, *mta-argv0*#?.
293   The reason is that in v15 we won't even have *smtp*: it is just
294   another form of MTA, and thus obsolete by itself.
296   For now we support a hack that understands a file:// URL in
297   *mta*, too, but that is the default if there is no protocol.
298   E.g.: "set mta=smtp://a:b@xy.z"
300 - The "spamd" spam interface is obsolete.  I haven't tested it
301   since my main machine died, it is error prone since it assumes
302   internals of the spamassassin interface, and there never was
303   a speed improvement against "spamc".  (However it could react
304   upon the current "is-spam" state of a message, which "spamc"
305   doesn't allow.) [284db64]
307 - Some commands, like `set'#?, `list'#?, `mlist'#? etc.,
308   now react upon the setting of *verbose*#? and *debug*#?.
310 - The new *inbox*#? variable will henceforth be looked up
311   when expanding "%" in filenames, followed by the usual
312   *MAIL*#? and compile-time mailspool search.
313   (Stephen Isard, Jürgen Daubert)
315 ChangeLog
316 ^^^^^^^^^
318 - The manual has seen another major overhaul, all the variables are now
319   documented in a single, sorted list, and many clarifications should
320   have been added. [topic/manual.10]
321   (Predrag Punosevac, Michael Convey, Hariskar, Rudolf Sykora,
322   Respiranto, Thomas Dickey, Donald Mugnai)
324 - *mime-counter-evidence*#? gained bit 4 (perform proper in-depth
325   content inspection as necessary; set to 0xE for all bits).
326   [topic/mimetype.2]  (Aharon Robbins)
328 - Maildir paths are now created recursively as necessary.
329   (Justin Ellingwood)
331 - `-M'#? and `-m'#? options have been added to enforce a special
332   send mode that will flag standard input / the given file with the
333   specified / detected MIME 'Content-Type:'.  This can be used to
334   directly send, e.g., HTML log output.  Note that before v15 this
335   is a bit restricted: you are not free to do anything.
336   (Viktro Szépe, Ralph Corderoy)
338 - Disallow symlinks on writable files (O_NOFOLLOW open(2)).
339   (Matthew Dillon)
341 - `retain'#?, `ignore'#? etc. now differentiate in between
342   From (the From: header) and From_ (the MBOX ident).
344 - `top'#? has been rewritten completely, `Top'#? is new.
346 - `features' has been dropped, `version'#? extended.
348 git(1) shortlog (edited)
349 ''''''''''''''''''''''''
351 f01291d extract_date_from_from_(): dig more invalid MBOXes (Antonio Radici)..
352 662982e Add OF_REGISTER_UNLINK, allow usage in Ftmp()
353 69bf721 *pipe-TYPE/SUBTYPE*: add "@" triggers and $NAIL_FILENAME_TEMPORARY..
354 bb5d0e2 *pipe-TYPE/SUBTYPE*: add "!" trigger ("needsterminal")
355 df8768b Add *mime-counter-evidence* bit 4 (Aharon Robbins)..
356 d3fe980 Ftmp(): drop "mode" argument (not wrong: Mike Frysinger)..
357 7abc368 Print all MIME_RELATED subparts when quoting
358 f6fbcc4 Add *mime-alternative-favour-rich*..
359 86159db nail.1: we support searching, really (Predrag Punosevac)
360 5b61a08 nail.1: talk about address lists (again) (Michael Convey)..
361 0eeffc4 nail.1: try improve states / MBOX etc. relation (Michael Convey)
362 43ea039 nail.1: what is an environment variable (Michael Convey)
363 13e0804 nail.1: fix typo (Hariskar (archlinux Wiki))
364 03d6af5 nail.1: more on sortability (Rudolf Sykora)..
365 4da9043 Not "binary", but "boolean" variables! (Predrag Punosevac)..
366 7064ef2 Add *message-inject-{head,tail}*, obsolete *NAIL_{HEAD,TAIL}*
367 4fde608 Add *history-{file,size}*, obsolete *NAIL_HIST{FILE,SIZE}*
368 36578d1 Add PS_SETFILE_OPENED (affects hooks), *bsdcompat*<>*emptystart*..
369 600d449 Drop the `inc' alias of and for `newmail'
370 5296040 Decouple -H from -L: it used to be -eL instead!
371 dad4e94 Obsolete *SYSV3*
372 c85f56d Support :d specifier for at least `from' (Martin Neitzel)..
373 7b753a8 Support `help' docstrings for `#', `-', plus..
374 30d0bb7 `netrc': add "load" subcommand to only load, not also "show"
375 b12e1ed Be more friendly when composing mails (Martin Neitzel)..
376 b50eac0 nail.1: use display/show not type/print (Michael Convey)..
377 6feafaf Add `search' alias for `from' (Predrag Punosevac)
378 a4e2612 Support 256-colour terminals (Gavin Troy)
379 16b57ab Drop `mono'+, change `colour' and `uncolour' commands..
380 cedde28 Finally: drop IMAP support!..
381 d535db0 Implement `dotmove': move the "dot" up or down by one
382 87a72c7 Ooops, always include commands, as c_cmdnotsupp if disabled!
383 c1c1ee5 `source': support shell pipes (if filename ends with "|")
384 8655aff Error framework: print UAGENT prefix (ident in pipes; Salvatore
385         Bonaccorso)
386 e96baaa Introduce $LOGNAME, the POSIX equivalent of $USER (Todd C. Miller)
387 0d0c523 Support |PIPE targets for `move', `copy' ++..
388 76e6364 Add `customhdr' (Sergey Matveev)..
389 ad58c91 Support *customhdr*, too (Sergey Matveev)..
390 6322e0a Support _any_ user header via ~e (Sergey Matveev)..
391 19b3afb Drop support for $ORGANIZATION in favour of `customhdr'
392 77d4f5c Fix SSL init order, change *ssl-rand-file* behaviour..
393 8daeda9 send.c:sendpart(): "support" malformed messages..
394 eddf684 Drop *print-all-chars*
395 f733f61 Don't set *dot* in -# batch mode
396 5d52578 Add -: command line option (Robert Elz)..
397 53b5f07 README: use git(1) --single-branch (Mantas Mikulėnas)
398 8d0c7dd Allow "-q -" in non-interactive mode; -q and -t are mutual exclusive
399 420131f Fix mispelling: can|to be send->sent (Respiranto (archlinux Wiki))
400 7f3c11f `echo': don't expand via sh(1) no more, use internal mechanism
401 ddece18 main(): verify *expandargv* value content in case of OPT_D_V
402 8d5f709 mk-conf.sh: dump final summary into config.log, too
403 0dd85b1 n_iconv_open(): use *charset-unknown-8bit* also for "binary"..
404 d5a9c17 page_or_print(): never use $PAGER unless startup complete
405 bf889e4 (Shell) Variable expansion: support hyphens in names..
406 3fd94e3 Default `localopts' to YES for `account' and *folder-hook*s!
407 983d22f `if'+: allow "if ${VARNAME}" in addition to "if $VARNAME"..
408 d6902e1 Add *on-compose-{enter,leave}* hooks (Jens Schleusener, Rudolf
409         Sykora)..
410 abf2e5d .netrc: support comments (Walter Alejandro Iglesias, Ralph Corderoy)..
411 37e0c26 nail.1: .netrc comma separator was in original Berknet parser! (Ralph
412         Corderoy)
413 7e85aa9 Drop WANT_EDITLINE support..
414 3e6aa24 make.rc: enable WANT_TERMCAP by default
415 512069b Rewrite for a generic termcap(5) interface..
416 40522c3 nail.1: use -v option to cat(1) if available (Thomas Dickey)
417 cf3ccfe Deduce colours via *termcap* instead!; support all/*..
418 64eabef Turn NCL into M(ailx) L(ine) E(ditor)..
419 adb29c3 MLE: add "mle-position" and "mle-prompt" colour mappings
420 27f3e9d Add terminfo(5) support (via WANT_TERMCAP_PREFER_TERMINFO)..
421   Note: later renamed to OPT_TERMCAP_VIA_TERMINFO
422 1aa64b6 Add WANT_KEY_BINDINGS..
423 ad61278 Add n_pager_{open,close}() -- _always_ termios(4) for $PAGER!
424 d935e65 (BWDIC!) Allow `source' in `call'ed macros..
425 c8c1393 n_lex_input(): truly support line continuation via backslash..
426 7f52ae7 make.rc+: add WANT_NOMEMDBG to allow valgrind(1)+ with DEBUG/DEVEL
427 2497240 homedir: if not $HOME, use pw_dir (of $LOGNAME or getpwuid())
428 d05aed4 mk-conf.sh: require one of (un)?setenv(3) and putenv(3)
429 94b3635 (BWDIC!) make.rc: add defaults _here_ (as VAL_xy, e.g., VAL_SENDMAIL!)
430 f0ac705 (BWDIC!) Rewrite variable handling..
431 724751e nail.1: drop `(un)?setenv' and *bsdset*; add `environ'
432 3fd1db4 Improve compose-hooks via new macro hooks..
433 f4577e6 FIX (fix?) `localopts'..
434 d8f7cd7 (BWDIC!) Redefine -u / $LOGNAME / $USER (Afan)..
435 e337e00 Support expansions in $MAIL!; more on `account's (Afan)..
436 d596d74 Compare *newfolders* case-insensitively (Justin Ellingwood)..
437 57744f9 Redefine *folder* / getfold->folder_query() / *HOME* (Justin
438         Ellingwood)..
439 3c57c83 n_path_mkdir(): create recursively as necessary (Justin Ellingwood)
440 66553bc `list': with non-WS argument, don't sort alphabetically
441 b95e6be Introduce `wysh' command prefix to change argument parser..
442 08b8f48 Only support sh(1)-style quoting for some new commands..
443 665c6f8 `customhdr': disallow using control characters in bodies
444 67c2acb (BWDIC!) Only use new sh(1)-style quoting for attachments!
445 f4b0153 (BWDIC!) Only use new sh(1)-style quoting for `write'
446 a89e1e3 `remove': use sh(1)ell-style quoting
447 858374b Drop wordexp(3), instead unroll via fnmatch(3)..
448 0945726 MLE: change HT expansion..
449 0bbe981 nail.1: fix spelling errors as by igor(1) (Ingo Schwarze)
450 f1a775b Add -M and -m options (Viktor Szépe, Ralph Corderoy)..
451 42b42da `list': include argument-type etc. if *verbose*
452 79f2053 `if'+: support sh(1)-style comments on the line..
453 1bd8e48 Add *umask*, and set actively (Walter Alejandro Iglesias)..
454 6b1cd93 Now with *umask*, just drop fchmod(2)++ calls (Walter Alejandro
455         Iglesias)
456 2b45cd0 Add *netrc-pipe*: allows e.g. encrypted .netrc files
457 af8261e Obsolete WANT_AGENT / *agent-shell-lookup* (Sorry!)
458 05f7743 Generate lowercase MIME charset=/RFC 2231 charset strings
459 ba22166 Change make targets; add $MAILJOBS; don't track $DESTDIR (Gaetan
460         Bisson)..
461 cd244b1 Add WANT_CROSS_BUILD make.rc option (Juan RP)..
462 95141f6 Tweak VERBOSE handling (William Yodlowsky)..
463 73545ad Rename ADD(C|LD)LAGS to EXTRA_(C|LD)FLAGS..
464 ca81646 make.rc, mk-conf.sh: allow y/n booleans
465 d74a18a mk-conf.sh:path_check(): skip any "fakeroot" path (Hilko Bengen)
466 7ce6a17 (BWDIC!) nail.rc: nodot, emptystart, fullnames, m-c-e=0xE; pimp PDF
467         handler
468 09912fa n_file_lock(): do not retry for EBADF / EINVAL
469 44a3be6 sendout.c:__savemail(): try to file_lock() *record*
470 5ef5261 cmd2.c:save1(): try to file_lock() target of `save'/`move'/etc.
471 10990e4 Add n_O_NOFOLLOW, disallow symlinks for writable files (Matthew
472         Dillon)..
473 c83e153 (BWDIC!) Require explicit "from_" to `retain' etc. From_ lines!
474 d7a15e4 page_or_print(): query $PAGER environment, use it
475 481c687 Allow WANT_QUOTE_FOLD to be "require"d
476 1dc9bb6 (BWDIC!) Make `top' real-life capable!  Add `Top', *topsqueeze*..
477 df4954c Add $SOURCE_DATE_EPOCH (reproducible-builds.org; Colin Watson)
478 b412ea8 mime.types: add x-lzma, x-lz4 and x-lzip MIME type extensions
479 dc92f2c savedeadletter()->sendout.c; tweak POSIX compliance (Ralph Corderoy)
480 8a3638c MLE: add `bind' and `unbind' etc...
481 4c93f66 (BWDIC!) Obsolete *sendmail*++ in favour of *mta*++; obsolete *smtp*..
482 284db64 Obsolete *spam-interface*=spamd..
483 83a24a0 boolify(): allow y/n booleans
484 61aac0f All: OPT_ not WANT_, VAL_XY not XY..
485 45d488d README: add The Mail Archive -- Gmane.org reduced to NNTP
486 48eb7da SEND_TODISP(_ALL)?: append newline if message does have no final one
487 63bf464 (BWDIC!) Drop readline(3) support..
488 863f1e8 tty.c,MLE: gracefully honour *line-editor-disable*++..
489 ae4f2df nail.1: talk on `localopts' in macros which change `account's
490 844bedb Support LEXINPUT, thus `bind', contexts..
491 b9e4e61 Drop `features', change `version', adjust make system..
492 20f3cd2 nail.1: more explicit `set' references instead of saying 'Set' (Donald
493         Mugnai)..
494 ==Preview 1==
495 2fefcf6 n_dotlock(), n_file_lock(): oops, missed the pollmsecs==UIZ_MAX case
496 fcd2892 cc-test.sh: detect utf-8, not only utf8 locales
497 1b462ed -#: also set *MAIL* to /dev/null
498 6fbf9da setfile(): if isdevnull, do not really init the box, it is MB_VOID
499 fb4ddf3 quit(): do not fail when quit()ting away from a MB_VOID box
500 2d53b46 url_parse(): better take better care for path parts (Stephen Isard)..
501 8650fa6 sendmp(), setfile(): FIX: ensure time_current is actualized
502 21f0eaa mk-conf.sh: find terminfo on Sun (Thomas Dickey)..
503 e33dfa0 n_termcap_query(): FIX: did real work even with PS_TERMCAP_DISABLE..
504 58423ea MLE.bind.a_tty_bind_create(): properly align durable buffer, too (sic)
505 f449fe1 MLE.bind.a_tty_bind_create(): tweak previous (encapsulate+notify
506         knowledge)
507 abd3631 Use ok_vlook(TMPDIR), drop global tempdir variable
508 4496e9a Many: drop support for *mbox-rfc4155* - a no-brainer..
509 a26d4c2 is_head(): change compat argument to check_rfc4155..
510 5cf41d4 mime_types.c:_mt_by_filename(): basename() path (fix/tweak relative
511         paths)
512 e4ddaa8 Change n_iconv*() protos, add enum n_iconv_flags (Ralph Corderoy)..
513 b1b3896 setfile(): tweak/fix [36578d1] (Add PS_SETFILE_OPENED..)..
514 26674da make.rc, mk-conf.sh: OPT_DEVEL includes OPT_DEBUG, but not vice versa
515 8cbd815 make.rc: OPT_DEBUG (eg) is allowed even with a CONFIG=
516 813802d FIX [b9e4e61d] (Drop features', change `version'..)..
517 e486af5 termcap.c: fix: add missing _F_NOENT check..
518 5bcef02 n_lex_input(): FIX [844bedb] (overwrote buffer size with used length)
519 d59bd2a collect(): FIX [bb944266] (used memcpy() for overlapping region)
520 f498291 a_lex_source_file(): fix resource leak, set a_LEX_FREE for these
521 83313f1 Allow -X options to take multiline arguments..
522 eaa5f01 nail.1: -X: note all are joined and treated as a unit
523 204531f cmd_tab.h: allow history for `environ', `set', `varshow'
524 a1eee83 Add a RFC 6068 url_mailto_to_address() hack for List-Post:
525 9503e7d `source': due to wysh prefix allow space after | pipe indicator
526 9fde9d7 lex_input.c: tweak/rethink [83313f1] (Allow multiline -X options)..
527 99e96f3 FIX "," message specification (since [1c4b8c9], v14.8.4)..
528 1587069 FIX [44cec1f] (Fix "address" message specifications (John Dodson))..
529 e40e181 nail.1, nail.rc: set *sendwait* by default (Ralph Corderoy)
530 7ea7734 make.rc: oops, set VAL_MBOX to ~/.mbox not ~/mbox in [94b3635]!
531 0879986 First (rather small) step in reworking getmsglist()..
532 3051546 Move `help' to lex_input.c, show argument type with *verbose*
533 3c86507 getmsglist(): improve [0879986] a bit
534 d5bdcaa getmsglist(): fix [0879986]: honour hidden/deleted for / and @
535 0ef4291 `z': add ^: goes to first screen; fix max calc for 0 modulos
536 7adcf99 `write'++: !interactive: urlxenc() attachment paths (Ralph Corderoy)..
537 58393be getmsglist(): fix [0879986]: honour hidden/deleted for :colon
538         modifiers
539 b14aae7 `write'++: !interactive:.. But now, really (Lyndon Nerenberg, David
540         Levine)..
541 20082ee THANKS: David Levine and Lyndon Nerenberg
542 5270bf1 Simplify *folder* (implicit trail solidus) (Stephen Isard, Ralph
543         Corderoy)
544 dcd26bd Add FEXP_{NSPECIAL,NFOLDER}, disallow fatal user recursions
545 f1313c0 Add `urlcodec', obsolete `url{en,de}code'
546 610b952 `urlcodec': makeprint() when decoding
547 a638bcf Add *typescript-mode*, set it for -# (Ralph Corderoy, Martin
548         Neitzel)..
549 053e19f Add *inbox* (Stephen Isard, and Jürgen Daubert)..
550 5d7b970 Add n_SHEXP_PARSE_QUOTE_AUTOCLOSE (simplifies tab completion)
551 6a09b2c folder_query(): FIX [5270bf1]: strlen() may be 0, so don't [len-1]
552 f67e8c3 folder_query(): err: real FIX for problem "fixed" with [6a09b2c]..
553 4a4630d `folders': tweak return value (a bit)
554 9d364e1 mk-conf.sh, auxlily.c: fix va_copy(3) detection with -std=c89
555 4f581d4 getmsglist(): hey. If we cannot find threaded range end, reverse
556         direction
557 830e15a n_verr(): even without va_copy(3), limit buffer to 1 KB!
558 20e3240 Add OPT_ALWAYS_UNICODE_LOCALE (Predrag Punosevac)..
559 14b5a3a Make combinetime() overflow safe (Vincent Lefevre)..
560 2bf0888 getmsglist(): if user gives A-B, try fulfill even in threaded mode
561 dfc5dac Fix off-by-one introduced in [57744f9] (Redefine *folder* ..)..
562 c4522db Tweak [36578d1] (Add PS_SETFILE_OPENED..) by saving errno
563 0bd7cbb Dotlock: O_TRUNC is meaningless with O_CREAT|O_EXCL; etc.
564 ==Preview 2==
566 Appendix
567 ^^^^^^^^
569 The complete changelog of commits in between two versions OLD and
570 NEW can be inspected by using the git(1) `log' command:
572   $ git log --reverse --topo-order --abbrev-commit OLD..NEW
573   # Only topic branch headers (--no-merges for content commits only):
574   $ git log --oneline --reverse --topo-order --merges OLD..NEW
575   # Same, but truly accessible:
576   $ git log --oneline --reverse --topo-order --merges --parents OLD..NEW |
577     while read c1 c2 c3 c4 c5 c6; do
578       printf "%-24s: \$ git log --oneline --no-merges %s ^%s\n" \
579         "${c6}" "${c1}" "${c2}";
580     done
582 NEWS entries for the S-nail releases before v14.9.0 have been cut off
583 before release v14.9.0 and can be found in the git(1) repository:
585   v14.8.0 - v14.8.14: $ git show v14.8.14:NEWS
586   v13     - v14.8.5 : $ git show v14.8.5:NEWS
587   9.0     - 12.5    : $ git show heirloom:ChangeLog
589 Also accessible via the following URL, just replace X.Y.Z accordingly:
590   https://git.sdaoden.eu/cgit/s-nail.git/tree/NEWS?h=vX.Y.Y
591 For even older releases you need to look into the [timeline] branch, but
592 no changelog has been administrated for them.
594 Note:
595 The content has been vaporised.  Ways to access the leakage are
596 documented in the newest announcement at the top of this file.
598 # s-ts-mode