Hello list, hereby i announce S-nail v14.10.0-alpha, an ALPHA release of v14.10.0 "Mountains O' Things". (The version of the alpha release is broken, it says v-dirty.0.0.) Credits, in order of commit appearance: Maxim Tarasov, Geoff Clare, Gavin Troy, Olaf Hering, Stuart Henderson, Olav Mørkrid, John Levine, Z, Vincent Lefevre, Oskari Pirhonen, Robert Elz, Florian Weimer, Adhemerval Zanella, Damien Miller, Madou Mad, Giannis-2, Qualys (Security Advisory team), Ross Burton, Mingli Yu, Hans Bezemer, Ashton Fagg, Steve Blinkhorn, Arne Wörner, Harald van Dijk, Stephen Isard, Jens Schleusener, John Holder, Χάρης Καραχριστιανίδης (Hariskar), Denys Vlasenko, Dr. Werner Fink, Predrag Punosevac, Sergey Matveev, Solar Designer, Kevin Bloom, Arkadiusz Miśkiewicz, Thorsten Glaser, Claus Assmann, Robin Humble, Chet Ramey, Tomáš Korbař, Viktor Dukhovni, Martin Uecker, Dag-Erling Smørgrav, Kyle Evans, rahl, Mia Soweli, and Ryan Matthews. We welcome Maxim Tarasov, Olaf Hering, John Levine, Z, Oskari Pirhonen, Florian Weimer, Adhemerval Zanella, Damien Miller, Giannis-2, Qualys (Security Advisory team), Ross Burton, Mingli Yu, Hans Bezemer, Ashton Fagg, Steve Blinkhorn, Arne Wörner, Denys Vlasenko, Kevin Bloom, Arkadiusz Miśkiewicz, Thorsten Glaser, Robin Humble, Tomáš Korbař, Viktor Dukhovni, Martin Uecker, Dag-Erling Smørgrav, rahl, Mia Soweli, and Ryan Matthews in THANKS. We are ∞ https://scan.coverity.com/projects/s-nail (project 444). Number games ^^^^^^^^^^^^ The tarball is available as https://ftp.sdaoden.eu/s-nail-v14.10.0-alpha.tar.xz The web page will have manuals in a few minutes at https?://www.sdaoden.eu/code.html#s-mailx mdocmx(7) anchors are denoted by a number-sign #: pointing a browser to the "#ANCHOR" of the online manual works. PACKAGER NOTES (make.rc) ^^^^^^^^^^^^^^^^^^^^^^^^ - New OPT_NET_TEST, builds a test helper for network protocol functionality, default enabled (with OPT_NET=y). - Whoever uses OPT_AUTOCC (default) may now use VAL_AUTOCC to fine-tune settings. The "option_care" flag may be of special interest, the default though is VAL_AUTOCC=bind_now,pie,stackprot,fortify,cfprot (Stuart Henderson) - OPT_DOCSTRINGS and OPT_UISTRINGS were removed. - OPT_OAUTH_HELPER, external OAuth Python3 helper program, default enabled (with OPT_NET=y) - OPT_BUILD_TESTS umbrella option that covers all possible programs which are build solely as helper for the test. - VAL_BUILD_INFO may be set by packagers who do not want to include build information in the binary. (Mingli Yu) ==alpha NOTES, ChangeLog ^^^^^^^^^^^^^^^^ + In general: if it did not work in the past, try it now. (There are way too many bugfixes to be noted.) + v15-compat=y is now default! (Setting will disappear in v15.) + Command line interface moved towards sh(1)ell-style quite a bit. This includes that `if' .. series now practically works identical to bash(1)s [[ ]] construct, such things now succeed: uns i; if -z $i; ec ya; end + Several settings gained built-in initial values. Like this non- expert users should get away out-of-the-box more easily. (Arkadiusz Miśkiewicz, Kevin Bloom) Note: includes *mime-force-sendout* (Arkadiusz Miśkiewicz) ! Remarks: power users may not like certain of these, for example, ! that *emptystart* is now set by default. So far there is no ! simple toggle to turn these extensions all off, like the new ! *expert* that Norman Ramsey asked for. ! I wonder whether that should change with the final v14.10.0 ! release. For at least -alpha however they have to be ! disabled/changed explicitly, in resource files, for example. (The entire set of initial settings is shown by eg s-nail -:/ -Xse -Xx The entire set of known variables plus initial settings: s-nail -:/ [-v] -Xvars -Xx) + `xcall', the "manual tail call optimization", no longer leaks memory (and much more fixes). Oh no, we can implement yes(1)! s-nail -:/ -X'define yes { ec yes xcall yes } call yes' + SMTP configuration changed completely via new *smtp-config*, including support of SMTP extensions like PIPELINING and more. (It is likely "it just works" for you out of the box. Any hint if not would be appreciated!) ! POP3 and IMAP are not yet converted to the new syntax in -alpha. + The old Heirloom-style approach of credentials was removed. It was obsoleted since before 2015. + SMTP, POP3 and IMAP gained support for OAUTHBEARER authentication mechanisms. (IMAP also PLAIN. (Stephen Isard)) There is an optional *build-oauth-helper* Python3 script that can be used by the macros shown in the new XY-config(7) manual, which gives copy+paste examples, to manage OAuth credentials. ! With -alpha, credentials must be kept in a "hot" and valid ! state; the release hopefully will call out for credentials ! when they are *really* needed. + MIME classification learned about chains like .tar.gz. New ?o [only-handler] `mimetype' marker, a good thing. Both: (Olaf Hering) Also new ?s [send-text] marker. Because MIME media type handlers, like those defined in "The Mailcap files", match media types, non-standardized fictional types like "x-tar-gz" are used in the wild as MIME environments become configured. That is, IANA MIME registry standards do not know about "extension chains": "tar.gz" is thus a gzip(1) compressed file, and the sane solution of recursively unpacking until no more MIME media type unpacking is possible is not available. Therefore introduce this type-marker, which says that the given MIME media type shall only be matched when looking for handlers, but not when classifying content to create messages. Some are built-in by default, see $ s-nail -:/ -Xmimet -Xx | grep only-hand + File related functions of `vexpr' moved to new `fop'. Many `csop', `fop' and `vexpr' functions added or extended. + New $(( )) shell-style arithmetic evaluator. ! Known -alpha bug for tremendously deep ?: style conditionals: ! ok: $((0?2:(3,0)?(4,5):(5,0)?(7,8):(9,10))) ! ok: $((1?10?20?22*1?23**1:24**1:25/1?0:56>>1:-1:-2)) ! bad: $((0,1,2,0?(3,4):(((5,0)))?0?0?0?6:7:8:9:10?11?(12?(13?(0?+14:-14):0:0):0):0?15:0?16:17?18:0)) + We gained multiple "local" scopes for commands, please read "Command modifiers". Also `vput' is obsolete, there is a ">" command "redirection" modifier instead + We gained "result set"; alongside this `vexpr' regular expression matching goes that route, with temporary backward compatibility. ^?, ^*, ^@, ^#, ^0, ^1, .. Result set access, in the local#-most scope#: ex- tended return# values of the last Macro# call#ed (if ^? is true), regular expression match groups as cre- ated for example by if# and vexpr#, as well as other dedicated (documented) result sets, for example of fop# glob, the circumflex mode of digmsg# and ~^#, or read# and readsh#. ^# holds the number of accessible values (^1 etc). For return values ^0 stores the macro name, for regular expressions the entire match, per-command documentation applies otherwise. ^* and ^@ behave like *# and @#. define x { if abrakadabra =~ (.+)ka.*(b.+)a echo "$^#: <$^0> <$^1> <$^2>" return ^ says $^2 end } call x; echo "$^?, $^#, $^0 $^1 $^2" #-> 3: <abrakadabra> <abra> <br> #-> 1, 3, x says br + New *on-mailbox-event* hook will replace folder hooks, reporting more conditions. + New *on-compose-embed* hook! This replaces the obsolete *on-compose-splice* series, which ran in subprocesses, was hard to use and could end with process deadlocks if used falsely. Macro# hook that is invoked once the Compose mode# user inter- action has ended (but see asksend#). It runs in COMMAND ESCAPES# mode and can act like an interactive user. The s-nail-config(7)* manual provides examples. + New *ttycharset-detect* variable. Alongside this, rewrite of the entire MIME probing machinery! And support *iconv-disable*. (Dr. Werner Fink) We can now create email content as crude as, for example (result of test t_ttycharset_detect(), var-2). (I love that! We were *so* bad before!) Subject: =?iso-8859-1?B?ZPw=?= Content-Type: text/plain; charset="utf-8" Content-Disposition: attachment; filename="l2.txt" Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: attachment; filename*=utf-8''%E2%98%BA.txt Content-Type: text/plain; charset="utf-8" Content-Disposition: attachment; filename*=iso-8859-1''d%F6.txt Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: attachment; filename*=iso-8859-1''d%FC.txt Content-Type: text/plain; charset="utf-8" Content-Disposition: attachment; filename*=iso-8859-1''d%FC.txt Content-Type: text/plain; charset="utf-8" + Date: header fields in -t'emplate mode are used. This fixes us being used for git-send-email. (rahl) ==alpha ChangeLog ^^^^^^^^^ - *smtp-from* replaces *smtp-hostname*, and is a variable chain. (Madou Mad, [Giannis-2], [Stephen Isard]) - Password "logged" only for -d/3x -v (Gavin Troy) - New *line-editor-config*. - If *termcap-ca-mode* is given a value, alternative screen is cleared when left. (Vincent Lefevre, Oskari Pirhonen) - New `:' no-effect command (like sh(1)ell one). - *tls-config-pairs* (fallback) knows about KTLS. - -M and -m command line option hacks were removed. - `~r', `~R' and `~<' command escapes saw fixes / changes. - New *message-id* configuration format string. - The Subject: [tag] resorting done by (certain, newer?) Mailman configurations is now properly dealt with. - The MLE ("Terminal control and line editor") supports "bracketed paste mode": [Option] mle-be-bd-ps: if "bracketed-paste" is supported by the TERM#inal (see termcap#), enabled regardless of line-editor-no-defaults# to prevent undesired interpretation of pasted (clipboard) content. An implementation detail though documented and shown by bind#. - Because iconv(3) is a closed black box which does not reveal anything, we now include a complete character set name database in order to reflect, and choose MIME preferred real names. - *on-program-exit* defined more. (Robert Elz) - New *obsoletion* variable to allow configuration of which obsoletion messages appear (to some extend). - *smime-cipher* defaults to AES256. - In certain contexts *cols* replaces $COLUMNS. - No more *piperaw*: `Pipe' is always, `pipe' never. `Show' is gone, `show' remains. - From_ quoting in the first body line was broken for eleven years. - "Compose mode" `history' entries are better normalized. - New mle-prompt2 and -promptx slots for "Coloured display" aka `colour'. - According to RFC 5321, 2.3.5, the plain <postmaster> address is supported, case-insensitively (with an empty *hostname*). ==alpha git(1) shortlog (edited) ^^^^^^^^^^^^^^^^^^^^^^^^ Steffen Nurpmeso (785): bb02d5386e Make *v15-compat*=yes a default! 45d7ac28b3 a_crese_reedit(): no prompt for empty subject, use Re: (Maxim Tarasov) b278ac5ee0 THANKS: Maxim Tarasov d52a2f5830 *reply-to-swap-in*: upon after swap, this is US (Geoff Clare) a5f7c353de *smtp-hostname*: convert to variable chain b245481fef `varshow': without arguments, list all variables 3c54958980 [(BWDIC!) -*batch-exit-on-error*] Some detaching (..and so much left) a3c8b6cbb3 (BWDIC!) Extend/Tweak/FIX: local/localopts/environ & varshow; scope->global.. 267f2274d0 a_go_evaluate(): allow \ modifier everywhere 6f7be8ce28 Turn `eval' into a command modifier 31491a5dc4 `xcall': massive optimization and truly correct implementation.. af755d2676 (BWDIC!) Obsolete `localopts', more `local' (`mail', `reply' et al).. f9e96b7bd9 Add OPT_NET_TEST, by default enabled, and src/net-test stub cd1c089f8b net-smtp.c: support RFC 2920 PIPELINING 7ef348c297 SMTP: add *smtp-config* and automatic EXTENSION (EHLO, RFC 1869) support.. ee0d1c25d3 SMTP: use immediate response also for PLAIN auth 9356a41a50 (BWDIC!) Extend authentication stuff, support automatic such.. a1f5dbe289 mx_cred_auth_lookup(): log password only with -d/3x -v (Gavin Troy) 851cab2978 No! Drop support for old credentials! Now!.. e04fab9492 Fix EXTERNAL/EXTERNANON shadowing.. 34b67b41b1 SMTP: actually implement OAUTHBEARER, too.. 9c4b4e467c Fix handling of "auth" / automatic protocols bca33281c5 IMAP: use CAPABILITY of response codes, if available.. bad9215f69 IMAP: actually implement OAUTHBEARER, too 83a854c21d Create mx_oauthbearer_create_icr(), use it for IMAP + SMTP 77397a7b90 POP3: actually implement OAUTHBEARER, too fcf69e7f71 MIME classification: support EXT chains (.tar.gz..) (Olaf Hering).. 4434e5cc2d THANKS: Olaf Hering 29f4518c30 Add ?* mimetype type-marker, work around standard restriction (Olaf Hering).. cbceb81aa6 MLE: add *line-editor-config*, support "any" and "case" matches 7a75f205b1 MLE: *line-editor-config*: optionally support srch-regex 8cebbdc4c6 MLE: *line-editor-config*: add srch-pos0 keyword 3845a72b39 Build: add VAL_AUTOCC to config it a bit (Stuart Henderson) 4d0247338a Ignore some header fields (again) (Olav Mørkrid) 308949c7aa `digmsg', `~^': FIX: MIME decode "header show" (ouch) dbef07f67c (Only) Via -R and -f, allow ((eml|mbox)://)?- to denote stdin (pipe) 1f562421fb `readctl': support "lock" and "flock" subcommands c469bbee6b `digmsg', `~^': add "epoch" subcommand ("Date: as RFC time") ec6bb490be More EML, MBOX and Maildir corner cases cc29381d45 Add new `fop' command, move file operations from `vexpr' e01bf9e9f3 `vexpr': "date-utc", "epoch": allow optargs, convert on-the-fly 0c473016a3 `headerpick': add create/remove/assign/join subcommands 24b268e4bc `digmsg', `~^': add "header headerpick" subcommand a7c8cede67 Add support for RFC 9057's Author: header field 701a51bd9f SMTP: add RFC 6152 support (8BITMIME) (John Levine) 21370097c3 THANKS: John Levine 985f8b2de6 Add *mailbox-basename* (Z) 228617f9e0 THANKS: Z 1495c462b1 Give *termcap-ca-mode* a value (Vincent Lefevre, Oskari Pirhonen) e7ee331d35 THANKS: Oskari Pirhonen c8a185bfc4 Add mx_child_ctx_set_args_for_sh() (Geoff Clare, Ciprian Dorin Craciun).. 1c9c4c4e32 THANKS: Ciprian Dorin Craciun 32fbc0ad2d Make clear $SHELL needs to be POSIX compatible (Robert Elz) 5e5a84fc37 su_time_nsleep(): clock_nanosleep(2) !errno (Florian Weimer,Adhemerval Zanella) 2ba93882f8 THANKS: Florian Weimer 622cf5d016 THANKS: Adhemerval Zanella e221756886 random: randomize reseed_after (Damien Miller) 47e008c6b9 THANKS: Damien Miller 53646a5c09 Add *smtp-from*, obsolete *smtp-hostname* (Madou Mad, [Giannis-2]).. a2a97f18f7 THANKS: Giannis-2 64baa630a9 "Terminate" cmp_n()/cmp_case_n() where NOT YET (Qualys).. ff426cf15c THANKS: Qualys Security Advisory team d38b2ac110 Remove even more bogus quotation marks (Ross Burton).. 9c6e0d280c THANKS: Ross Burton 148642149e Braino: receiver->recipient; includes *mta-no-recipient-arguments*! dab8affa67 mx-test.sh: work around FreeBSD /bin/sh #264319, #220587 da4533f264 mk/make-config.sh: outsource cc_check_testprog() to cover OPT_AUTOCC=no (Mingli Yu).. 17bb0d7d94 `vexpr': support bases 37-64 9bb1e7acb6 `vexpr': date-utc: offer $dutc_month_abbrev (Hans Bezemer) 629c7a6cc9 THANKS: Hans Bezemer 39a533006c nail.1: polish, I (Ashton Fagg) e9509f2a0d THANKS: Ashton Fagg 6659c046e3 `mtaaliases': add resolve option (Steve Blinkhorn) 0b6534b0c8 THANKS: Steve Blinkhorn 5ed7ae7e49 make.rc, mk/make-config.sh: add VAL_BUILD_INFO= (Mingli Yu) fc27f94ed9 shexp: add $(( )) arithmetic expression evaluator 19c5549105 Add `:' no-effect that rather mirrors sh(1) `:' c84e2fb3ae mx_sendout_header_date(): support sub-minute precision (Arne Wörner).. ddd75f4f38 THANKS: Arne Wörner 04a50e3a53 shexp: $(()): fix bugs (Harald van Dijk) 77cf091224 nail.1: talk on `account' evaluation order (Stephen Isard) ce9a586f36 su/code.h: fix misspelling: DOYGEN->DOXYGEN (Jens Schleusener) 8e126e3a66 Many: fix spelling error threshold (Jens Schleusener) 096e951061 *message-inject-tail*: never dup to stdout (Stephen Isard) 917f4e66a0 nail.1: *on-compose-splice*: "read version" works no more (Stephen Isard) c0aabb346c nail.1: pimp *on-compose-splice* docu (Stephen Isard) bc61b21d41 `fop': l?stat: add st_[acm]time (Stephen Isard) bf8606c835 Add `setdot' (Stephen Isard) 3189e21d7d `read', `readall': support local modifier f8aadb3605 Allow `vpospar' and $#/$@/$0.. access in (and during) hook(s) (execution) 4709e418d0 `vpospar': add "evalset" subcommand 020b421b98 mx_socket_write1(): do not even try if socket is death (Stephen Isard) e7e70e68e3 Attachments: support ! base64 modifier in file=!cs#!cs (John Holder) 8241106d3c mx-test.sh: t_attachments(): adapt to "do encode CRLF (John Holder).." 12652b3dfe Enable "global" command modifier 2549d64b9f `vpospar': support "global" modifier; raise limit to S32_MAX f55b2591b5 `if', `elif': =~, \!~: offer match group access via $^#, $^0, $^1 etc 1defba9a08 `vexpr': regex: switch to use regular $^0 match groups 1d8ba20cdb shexp: \c\ and \c\\ have to be treated alike (POSIX wants \c\\) e4b22d5ead Try fix/rewrite conditionals, II.. 8cd9ba4745 Do not recursively abort() endlessly if TMPDIR is invalid fc3029fd93 Drop OPT_DOCSTRINGS and OPT_UISTRINGS 9ebf0b40eb Small simplification of "Try fix/rewrite conditionals, II.." (now possible) 09e2a0d232 iconv: finally work around GNU libc iconv(3) (//TRANSLIT) bug 133f816826 `fop': fix brainos; check ftruncate(3) error!; truly #ifdef FLOCK! 8f6d9464dc Drop *append*, default built-in set *hold*, *keep* and *keepsave*.. 38b55588cc *tls-config-pairs*: *tls-features*: +option-ktls; support KTLS.. 9148d4167f nail.1: prevent mime trouble in example (Χάρης Καραχριστιανίδης) 14dbf7751f mx-test.sh: t_mailcap(): t15 (Χάρης Καραχριστιανίδης) 7b123fa779 Conditionals: for $SHELL compat support = to mean ==, too 125e82026b Work over a_shexp_tilde(), add a_amv_var_check_xdir() (Robert Elz).. 3d58abd7e8 If -A is used, immediately flag *account* 03be6b9be5 n_var_setup_batch_mode(): do not freeze $MAIL, $MBOX, *inbox*!.. 5b31d98484 (BWDIC!) Change again *on-mailbox-event*.. 71de5634d9 *reply-to*: make VIP, check+convert (Dr. Werner Fink).. 010b6d8337 icodec: number_sign_rescan corner cases + tests (Denys Vlasenko) f85abd23fd THANKS: Denys Vlasenko fffe770bb7 Add *mailbox-read-only* a37309922d Add mx_shell_cmd(); add *bang* tests, and *bang-data*.. b52c7904a5 Remove *add-file-recipients*.. f0aa9d1e06 Make -H and -L mutual exclusive.. b0e66596e9 *history-gabby*: add "fuzz" keyword; change *on-history-addition*;.. 6b33e91a19 Remove *keep-content-length*.. 3f73664883 (BWDIC!) n_namelist_vaporise_head(): no more *metoo*, ..that was an error.. 71d7917505 (BWDIC!) `alias' (`alternates'): be sane; add `alias -[-+]' modes.. b5587f48c8 (BWDIC!) POSIX 2023+ includes `alternates' in `alias'es!.. c7735ce66c Scope work (adds `our', three scope mode..; fix environ link unroll bug).. 3e601142f3 shexp: $(()): optimize POWER via Chandah-sûtra (Denys Vlasenko) 2b4895747e `vexpr': add "seconds" command 81528984c1 Add *charset-locale* (always CODESET, not user settable).. 369eb4e95c Add *ttycharset-detect* (Dr. Werner Fink).. cac2442f8c Implement *iconv-disable* (Dr. Werner Fink).. e94cccb758 nail.1: polish, II (Ashton Fagg) 83e09e0ccc Imply *metoo* for Bcc: entries (after compose mode) 4ee138bb1b `return': allow any number of extended return values 3bef13b4c8 MLE: first token-expand modifiers, cmds and cmdaliases (Predrag Punosevac) a971808b68 Support $^* and $^@ (and "$^@" in particular) d5578368ed `fop': add `glob' subcommand (Sergey Matveev) a55c59fe9b `shift': negative count removes at back 7c55bb9c1c `digmsg': allow direct usage of compose mode - 4a082d5273 (BWDIC!) `digmsg', `~^': add ^ mode to use $^# for storage.. c421bc11c1 (BWDIC!) Remove -M and -m command line option HACKS!.. 6ad84e1b66 [BWDIC] Add *on-compose-embed*; obsolete *splice* hack.. 8988da5687 `exit', `quit': do NOT delay exit until compose mode is left! 9a1cf48c7d ~r,~R,~<: with HERE delimiter: leading - ignores tabulators.. 1c7b67d012 ~r,~R,~<: with unquoted HERE delimiter: implement shell expansion.. 41fc726337 I.-active compose mode, -[~#], *on-compose-embed*: support newline escaping.. 260acda425 `shift': support match groups via ^ dfb26e10f1 `read', `readsh': be more correct; both: add result set mode 154ad961be `vpospar' evalset: do not perform expansions 552913e582 Introduce >VARNAME modifier, obsolete vput B-) 2187cf6eff a_xtls_check_host(): RFC 9525 forbids commonName, allows only subjectAltName 3aa6ea68ac `vpospar': support ^ result set mode 206ccece14 Add *message-id*, and slightly change default 71fb868123 (fix) mx_header_subject_edit(): newer mailman resort [tag]: deal.. c9ed811266 Implement bracketed paste mode 2bba7bc5d1 mx-test.sh: t__tls__create(): deal with OSSL 3.2.0 security level.. 0b00fa9b28 Rework mime-classification a bit (Dr. Werner Fink).. 03ee82f524 We need a fully fledged iconv DB! b9f17c059a Add "send-text" `mimetype' type-marker flag to enforce text/plain.. 1296c2ac5e Imply text treatment for any text/* MIME type (Stephen Isard) f692f4f3dc a_main_startup(): check set[gu]id() return value (Solar Designer) 975a7ad3fd make.rc: clarify VAL_SYSCONFRC (Kevin Bloom) 63cd03d3e1 THANKS: Kevin Bloom b364caef4a Set *mime-force-sendout* by default (Arkadiusz Miśkiewicz) dc8a2a35ee THANKS: Arkadiusz Miśkiewicz c7e9cde72f Fix obsolete *replyto* setting *reply-to*.. 5847e47dd0 mk/make-config.sh: improve ancient shell compat (Thorsten Glaser) 7dcc8c954a THANKS: Thorsten Glaser 506b28bd1b mime.types: javascript also .mjs (Stuart Henderson) 0b79208b18 Finalize (?) codespell report fix (Jens Schleusener) 4805faab7d *on-program-exit*: define it more (Robert Elz).. c40ca69be6 Do not use HOST_NAME_MAX (Claus Assmann) 307ac35df2 termios: support being a (background)& process (Robin Humble, Chet Ramey).. 136d5f6276 THANKS: Robin Humble b48b6c7b17 Re-define interactive: STDIN *and* STDOUT are isatty(3) (Robin Humble).. fd186509b8 S/MIME test: support several digests (Tomáš Korbař).. 76cdee9cf4 S/MIME: Blake2 is not supported for CMS/PKCS7 (Tomáš Korbař).. 3c7ae20aa1 *{mime-sign,tls-fingerprint}-digest*: changes (Tomáš Korbař, Viktor Dukhovni).. b1e1c7ad62 THANKS: Tomáš Korbař cfdcea2a49 THANKS: Viktor Dukhovni c533897cdb nail.1: try improve *from* docu (Tomáš Korbař) b224b6eacd shexp: allow "uns i; if -z $i; ec ya; end" to succeed (like [[ .. ]]) 4f66ddc5e9 a_fs_fgetline_byone(): fix 11 year old brainfart.. 1a4c716c7b n_collect(): FIX bug from 2023-10-24.. 4fda22ba67 *quote-fold*: allow symbol specification (Stephen Isard) 3e28936614 *quote-fold*: FIX possible crash (Stephen Isard).. e2397d789c Overload *quiet* to not `type' part info etc (Stephen Isard) dfac7added *obsoletion*: new variable: diversify these warnings! 302e87f21e (BWDIC!) shexp: support "$@$@"; support "field splitting".. 7d87b65cdf *expandaddr*: add "forcename" (Stephen Isard) 4186509d45 S/MIME: follow OpenSSL 3.5, default to AES256 not 128 (RFC 5751) 426b9eb49e Add --copyright; drop "All rights reserved" where still present.. 5bac945c19 gcc 15.1 revealed string init fault of mine (Martin Uecker).. f6c243a864 THANKS: Martin Uecker fab81a7ad2 shexp: $* field splitting: go ksh93 with *posix* (Geoff Clare).. 1d69be9932 mk/make-config.sh: TERMCAP only with MLE 5046b180ba MLE: bracketed paste mode: go wchar.. 9d42470f3d `if': doc+test all tokens in AND-OR are expanded 17e6b02538 -u, setfile(): pass through real errno; -u: exit _NOPERM at times 0269604549 savedeadletter(): fix: without headers, would dump body line as header 3ba4944235 Refine SIG(HUP|INT) (Dag-Erling Smørgrav, Kyle Evans).. 3dd4ca2230 THANKS: Dag-Erling Smørgrav b7b9618a82 a_coll_dead_save(): added: include headers when *save* in $DEAD!.. d996353802 a_main_startup(): in reproducible mode, reset signals (Kyle Evans).. 2106d7c8ec header_is_known(): at times only search virtuals (rahl).. 16759ce49e a_header_extract_ignore_field_XXX(): skip Date: headers (rahl) 51b469d6ac THANKS: rahl dcb06be481 Parse Date: from messages, use it if found+ok (rahl).. f7ee9f2503 nail.1: git send-email (rahl) 4858b59910 a_mps_multipart(): fix: RFC 2046 allows "FWS" after boundary (mia soweli) ef88605276 THANKS: Mia Soweli a999912c86 `headerpick': FIX "retain/ignore *" ("(fast) shorthand setting").. af45d1e0ed Add `(un)?headerorder' command(s) (plus ~M+ FIX).. 11ef566b7d a_shexp__arith_op_apply(), `vexpr': avoid UBSAN issues (Harald van Dijk) 88f318e5e5 MLE: oops, turn off bracketed paste mode for mle-prompt-char! 88f5f06ffd Add *cols* as an "alternative" for $COLUMNS f76b254ac8 mx_flthtml_reset(): use *cols* instead of $COLUMNS; (BWDIC!) FIXes.. caa300dc5d Honour *cols* for SEND_TODISP*, and SEND_TOQUOTE*.. b1e720e8a1 (BWDIC!) Fix `pipe', change `Pipe', drop `Show'.. 82e90ad4e1 `colour': ignore RGB (24-bit; yet!), treat as 256 (Gavin Troy) 334ac84104 FIX `uncolour' (also: with preconditions++) (Χάρης Καραχριστιανίδης).. d16bfa6c66 nail.1: certain multi-byte -> multibyte (Geoff Clare) 943ae1cbb0 `vexpr': add rand[su] subcommands 0fc4d33880 FIX From_ quoting in first body line (since before v14.8.0 -- 11 years!!) 1857037dd2 a_folder_mbox_setptr(): (BWDIC!) "do stuff", I (mia soweli).. 341f888d5f nail.1: clarify *hold*/*keepsave*, `hold'/`mbox'/`touch' (Ryan Matthews) 68f96777a8 THANKS: Ryan Matthews e3d7536040 Normalize compose mode history entries (better), II.. 50691746a7 *history-file*: rewrite handling a bit.. e253d8667c *ignoreeof*: honour POSIX: if set no EOF at all.. 5d39aeeafb mx_visual_info(): FIX: treat mbrtowc()==-2 just like -1.. 67c82c2330 `fop': mkdir: add mode arg: name [mode [recur]] 140c9e6f1d a_folder_update_mailname(): avoid realpath(2) for /dev/null.. 5ab4321ffc Add *expert* option (Norman Ramsey) 7c7b62919c THANKS: Norman Ramsey (eight years too late!!!) c836256059 Add mle-prompt2 and -promptx colours, use them.. fef5cf288b IMAP: add *imap-auth*=plain (Stephen Isard) 86ee445fd6 icodec: add IDEC_MODE_(SIGN|WSP)_DISABLE (Sergey Matveev) 89318261ee nail.1: polish, III (Ashton Fagg) 8bceae009a *mime-counter-evidence*: give meaning to empty value! 857da248f9 okeys: more implied defaults (Arkadiusz Miśkiewicz, Kevin Bloom).. b93da16039 Add OPT_OAUTH_HELPER, default enabled 21db4f74a1 Allow sending mail without primary recipients (RFC 5322) 845d819608 Fix: *mta*=test: honour *mbox-fcc-and-pcc* as documented 6346d34144 Add *build-dotlock-helper* (in spirit of *build-oauth-helper*) 7b697adbdd Add OPT_BUILD_TESTS "umbrella option" (package convenience) d65f969e3e RFC 5321, 2.3.5: allow plain <postmaster> (with *hostname*=) ==alpha 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 Entries for releases before v14.10.0 have been cut off and can be found in the git(1) repository: v14.9.0 - v14.9.25: $ git show v14.9.25:NEWS v14.8.0 - v14.8.16: $ git show v14.8.16:NEWS v13 - v14.8.5 : $ git show v14.8.5:NEWS 9.0 - 12.5 : $ git show heirloom:ChangeLog Also accessible via HTTPS?, just replace X.Y.Z accordingly: https?://git.sdaoden.eu/browse/s-nail.git/plain/NEWS?h=vX.Y.Z For even older releases you need to look into the [timeline] branch, but no changelog has been administrated for them.
Copyright (c) 1997 - 2024, Steffen Nurpmeso <steffen@sdaoden.eu>
@(#)site/code-nail-ann-alpha.html-w42 1.1 2026-04-08T15:55:01+0000