7 Many thanks: Gaetan Bisson, Stephen Isard, Jérémie Courrèges-Anglas,
8 William Yodlowsky, and Adam Sjøgren from GMANE.org!
10 ChangeLog (packager-affine)
11 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
13 - The packager-install: target has been fixed. [a8c1b0b]
14 (Gaetan Bisson and William Yodlowsky)
16 - As suggested by Gaetan Bisson the several build system tasks are now
17 individually addressable, i.e., 'make [OPTIONS] config', 'make build',
18 'make test', 'make packager-install'); nothing changes unless you want
19 to, in which case: please see INSTALL. [4d3b799]
21 The new target 'test' will call cc-test.sh with its new --check-only
22 option which will only perform the (too few) function tests on the
24 And cc-test.sh will no longer create output files, but simply echoes
25 to STDOUT and STDERR. [629e1ee, 786f219]
28 - The default configuration file now sets *bsdannounce* and *bsdflags*,
29 all in one line, as suggested by William Yodlowsky.
30 (If *header* is disabled, *bsdannounce* is ignored, but *header* must
31 be enabled by default according to POSIX, and *bsdannounce* is just
32 the same as *header*, but for the folder-switched event. Thus setting
33 *bsdannounce* is the more sane default, imho.) [6161f10]
36 - Announcement messages are now tagged '[ANNOUNCE]'. [26e1b35]
37 (Tagging suggested by Stephen Isard and Jérémie Courrèges-Anglas)
39 - The manual NAME now includes the version (but it's somewhat ugly).
45 - When switching folders when in compose mode, message attachments
46 become invalid. For v14.4.5, at least warn when this happens.
49 - When reading multipart/alternative messages which do not contain
50 a text/plain part, the (most likely HTML) part is not displayed (even
51 if S-nail is configured to display HTML). The reason is a bug i've
52 introduced with [0d43a999] (Change "Part X:" display message..,
53 2012-12-20). (Note that the committed fix i've posted to the list was
54 not correct either and has been fixed itself.) [225c02b, ecfa149]
59 Thanked, Gavin Troy, Gaetan Bisson.
61 - Fix output buffer confusion that would have occurred when parts of
62 a multipart mail had a pipe command set. Longer story in [e75d16dd].
65 - The makefile now supports a `packager-install' target that bypasses
66 the reevaluation of the configuration (after checking that there is
67 one) and directly steps ahead to the install process.
70 - Notes in INSTALL that CFLAGS and LDFLAGS need to be overwritten from
71 within (conf.rc or) the command line.
77 I convey special thanks to Karol Błażewicz and Gaetan Bisson.
79 - The new build system didn't allow to overwrite CFLAGS= when used in
80 conjunction with GNU make(1). To make a long story short, removing
81 a `.POSIX:' directive from the makefile fixed the problem. Luckily.
84 - More INSTALL notes for UnixWare 7.1.4, which suffers from the same
85 problem: here the fix is to use the -e option of make(1).
87 - Karol Błażewicz reported a segmentation violation he got when using an
88 Arch Linux S-nail test package, and Gaetan Bisson informed me about
89 that. The problem was that we didn't assign the resulting default
90 address (which gets used when *from* is not set) to the result which
91 gets used, effectively resulting in a NULL dereference. [cfd60479]
96 Many thanks to Paul Vojta.
98 - On GNU/Linux there is no MAXPATHLEN constant defined by default, as
99 this is a non-standard legacy constant. Mozilla ran into this some
100 time ago, though a bit different [1]. It made it easier for S-nail.
102 [1] <https://bugzilla.mozilla.org/show_bug.cgi?id=412610>
104 We could include `sys/limits.h' to get at MAXPATHLEN, there it is
105 defined to be PATH_MAX, but let's just include the standard `limits.h'
106 and ensure MAXPATHLEN ends up >= PATH_MAX. With this condition being
107 true even FORTIFYd sources won't bail with reported buffer overflows
108 because realpath(3) expects a buffer of PATH_MAX bytes. [bee5e57c]
111 - With the builtin LINE_EDITOR, ensure proper interaction with GNU
112 rlogind(8), which is alone in its quest to set the ISTRIP termios(4)
115 - Bugfix a codepath that would have prevented compilation when
116 HAVE_ICONV is not set.
117 While there, allow to unselect message attachments when using the `~@'
118 tilde command interactively, which i mysteriously had forgotten when
119 allowing selection of 'em. (oops?) [4f58ffea]
121 - It's now easier for packagers to get at debug-enabled CFLAGS; simply
122 use WANT_ASSERTS=1 (should not be enabled in shipouts, please).
125 - Fixed a terrible bug that i've introduced in november 2012, that would
126 have corrupted MBOX files when using the `resend' command. (The
127 so-called "From_ line" would have been quoted to ">From_ line" instead
128 of simply being stripped.) [19d449e2]
130 - Fixed a SIGSEGV for the builtin LINE_EDITOR, that would have occurred
131 if a history traversal (^B or ^F) would have been continued by
132 a reverse history completion (^R).
133 While there, avoid some multiple-beeps-in-a-row that yet occurred due
134 to code reuse, and document that ^G etc. reset the multibyte state
137 Also, the expand-on-tab code could have excessed line input maximums,
138 e.g., after `? /usr/bin/*<Tab>'. This was of course known, but
139 i wanted to keep it because all tested (modern) terminals "mess up but
140 won't break", and thus made it possible to use the data, even if it's
141 visual representation was messed up. The real solution will be much,
142 *much* more complicated, i.e., show possible *completions*, page-wise,
143 etc., i.e., just like is known by tab *completion*. This will need
144 far more time because it doesn't make sense to embed such complicated
145 code into the current bed.
146 Now i've chosen to simply don't display excess, but replace the
147 content with a message that says that there was excess. It simply
148 looks better. [0320c8ba]
150 - I've changed the use of `[?]' as a replacement sequence for invalid
151 / non-displayable characters to `?' (again). There are still code
152 paths (from the original codebase) which use the real Unicode
153 replacement character instead, so our display is still not unique.
154 On the long term the codepath can anticipate in all levels wether
155 use of Unicode is possible, so that, then, we will be unique again,
156 using either only `?' or the Unicode replacement character. [faf6380]
158 - I've anticipated in v15.0 and implemented *quote-fold* as a stream
159 filter. It is now multibyte safe and takes into account the visual
160 width of characters, i.e., ideographs etc. It is working almost as
161 good as an algorithm can work that looks at data linewise, but is yet
162 experimental and incomplete in that it will break lines even if only
163 whitespace or a backslash escape follows. It is code that is only
164 a few hours old, which is why it is not enabled by default. [
171 - Fix some harmless stylos and typos in the manual and `conf.rc'.
174 - Ensure *complete* proper cleanup on signal-caused configuration run
177 - Bugfix: reenable empty configuration variable overrides, as in
179 $ make install SID= NAIL=mailx ...
182 - Bugfix: rename the `conf.rc' variables SHELL, LISTER and PAGER because
183 they clash with the POSIX standard variables of the same names, which
184 hurts now that the configuration is run through the shell itself.
185 The configuration names are now XSHELL, XLISTER and XPAGER (ouch).
188 - nail.rc: comment out some non-portable S-nail(1) specifics, for those
189 who install this file as mailx.rc or so, somewhere. [3f14b01]
191 - From now on S-nail will use simple version tags, as, e.g., `14.4.1',
192 i.e., no more `s-nail-14.4.1'. [a75437d, 183d59c] (Jürgen Daubert)
194 Also move UAGENT out of `version.h' [f7be5be]
196 Uh! v14.4 must have originated in a bad dream; good it's vanished.
201 Thanks to the entire vivid and virile S-nail(1) user community is
202 proper, especially Stephen Isard, Gavin Troy, Martin Neitzel.
203 Not to forget Ryan Kavanagh and Ayan George.
205 Note this time the changes are in reverse order, i.e., oldest first.
210 15fbe09 ^bf9173f 'topic/varmac-unite'
211 Simplification and unification of variable and macro handling
212 40f6f58 ^15fbe09 'topic/cledit1'
213 Command line editor; new manual section `Line editor'
214 ad28a32 ^40f6f58 'topic/termsize'
215 Honour POSIX mailx(1) and respect $COLUMNS and $LINES on startup
216 dc3cd49 ^a446fd8 'topic/qf'
218 b8738f7 ^0651fd0 'topic/spam1'
219 Interaction with SpamAssassin; new manual section `Handling spam'
220 5419d6f ^b8738f7 'topic/make1'
221 Reworked build system; please read `INSTALL' and `conf.rc'
222 9ab4d6b ^5419d6f 'topic/list1'
223 Slightly tweaked message thread display, fix `:u :r' to mean it
228 - The default PAGER is now more(1). (But read on.)
230 - The `echo' command is now compliant, and fully supports XSI.
232 - The `group' and `ungroup' command aliases have been removed, they are
233 `alias' and `unalias'.
235 - We now have the capability of line editing and history.
236 One may choose from not less than three different implementations:
237 a builtin editor as well as possible linkage against BSD editline(3)
238 and also a GNU readline(3) compatible layer.
239 Please read the new manual section `Line editor'.
241 Input is now compliant in that an interactive line may be continued
242 after escaping the newline character with a backslash.
243 [topic/cledit1] (all of them)
245 The *prompt* variable may now contain shell escapes, just like the
246 `echo' command. [0938d8a]
247 As a special extension the new \? escape, when used within *prompt*,
248 will expand to the exit status of the last command. [41076d2]
250 - The POSIX standard environment variables $COLUMNS and $LINES are now
251 honoured upon startup. [topic/termsize]
253 - The `help' / `?' commands now support abbreviation, i.e.,
254 ``$ ? unc'' should now find `uncollapse'. [7b86195]
256 - The `~' abbreviation that has been introduced as an alias for `call'
257 is now a real command, not a magic shortcut. [9987289]
259 - The new variable *quote-as-attachment* can be used to additionally
260 embed the quoted message as a `message/rfc822' MIME attachment.
263 - The compose-mode command `~@' will now attach messages from the
264 current mailbox if given a filename of the style `#NUMBER'.
265 Please read the corresponding manual section `Tilde escapes', though.
267 - The `WANT_JUNK' and `WANT_SCORE', as well as Gunnar Ritters junk mail
268 management have been removed.
270 Instead S-nail(1) can now support interaction with SpamAssassin, but
271 sofar only via the spamc(1) / spamd(1) client / server pair of
272 programs that ships as part of SpamAssassin. The new configuration
273 directive `WANT_SPAM' controls wether this feature is desired.
275 Please read the new manual section `Handling spam'.
276 [topic/spam1] (Martin Neitzel)
278 (S-nail(1) is now *definitely* floating-point free.)
280 - The configuration and make system have been overhauled / reorganized.
281 The configuration is now in `conf.rc', also contains directives like
282 `PREFIX' etc, and is always read in. However, only those directives
283 which are not yet set (via environment or command line overwrites) are
284 incorporated into the set of configuration options. Therefore
289 will now build S-nail(1) twice, because of the changed configuration.
291 Note that `WANT_GSSAPI' is now by default disabled, which shrunk
292 a freshly started s-nail image by more than 30 percent.
294 We're not finished yet in that there is no dependency graph etc.
295 Please do read `INSTALL' and `conf.rc'.
298 - Message selection has been slightly bugfixed in that `:u :r' really
299 means `:u' AND `:r'. Compared to NetBSD Mail(1) it's still a shame.
301 Threaded message display has been slightly changed in that within
302 a thread identical Subject: lines are not repeated. It may not be
303 perfect yet due to the general list / thread state. [topic/list1]
305 - If, upon startup, the environment variable `NAIL_NO_SYSTEM_RC' is set,
306 then the system wide initialization file isn't read, just as if the
307 `-n' option had been given. [1b31535]
309 - It is now possible to use CTRL-C during connection hangs. (But in
310 general error recovery capabilities of the socket related
311 infrastructure is non-existent, practically speaking.) [45a9f36]
313 - *quote-fold* has been temporarily disabled, as it is not multibyte
316 No review for v14.4. And today is Friday, the 13th. Ouuuh!
321 I should *maybe* should have and want to give prominence to
322 Martin Neitzel for this, i maybe have misunderstood.
324 - Bugfix *synchronous* *pipe-** execution..
326 Well, unfortunately yet another newly introduced bug slept in
327 S-nail v14.3[.1] -- [a8d724b3, Add @ and @& shell command prefixes
328 for pipe-MIMETYPE, 2013-05-03] falsely changed the waiting state
329 for subprocesses, as has shown up by a HTML-only mail on the
331 'Seems i'm collecting one line fixes in this codebase; this needs
332 to change in the future.
337 I want to give prominence to Juergen Daubert (jue AT jue DOT li), who
338 reported that i've broken plain-old unfancy send mode in 14.3.
340 + Ok, i'll hope we're out of new errors for the v14.3 series with that.
342 - New variable: *batch-exit-on-error*.
343 Only works if the new -# command line option has been given, and will
344 check the "current" exit status whenever one operation completes
345 (S-nail returns to the command prompt).
346 If the exit status implies error (e.g., sending the last message
347 failed) then we exit forcefully with that error status. (The normal
348 behaviour is that the status is reset when the command loop ticks.)
351 - While here again, i've added the new -# command line option.
352 This is the first step to implement a reliable batch mode;
353 unfortunately it still selects the users system mailbox on startup,
354 because we simply cannot go to "no" mailbox for quite some time -- at
355 some future time we will be able to go to some VOID thing, and then
356 this will end up as a rather efficient batch mode.
357 For now it sets *dot*, *emptystart*, *noheader* and *sendwait*, and
358 also implies the -~ command line option. [7549569]
361 printf "m ${MBOX}\n~s subject1\nE-Mail Körper 1\n.\n" &&
362 printf "m ${MBOX}\n~s subject2\nEmail body 2\n.\n" &&
364 ) | MAILRC=/dev/null "${NAIL}" -n -#
366 - Also, -N set *header* instead of *noheader*. [7b4a13f6]
369 - Plain old unfancy invocations like
372 $ echo bla|s-nail ./FILE1
374 had been broken (by [522cb3ec]). [260e19d]
380 Thanks to Gavin Troy (gavtroy AT gmail DOT com) who inspired the @ and
381 @& pipe-command prefixes.
386 - S-nail has been registered at Coverity Scan, and the third build
387 (after topic branches *coverity-444* and *coverity-444.2*) produced no
388 more errors. (<http://scan2.coverity.com/projects/444>.)
389 (Then i used POP3 and IMAP and fixed some SIGSEGV. ;) Still didn't
390 look at S/MIME, Maildir, caches etc... o()
392 - S-nail v14.3 doesn't produce any spurious linker warnings on
393 OpenBSD 5.3; all (correct!) use cases of strcpy() and strcat() have
394 been replaced. [7bdf330, 2c8d7cb]
396 - This is the first release with a (though very short) review -- i'm
397 slowly getting comfortable with the code. (But i'm too stupid to
398 perform reviews on patches, 'always did reviews on C++/Perl/xy
399 classes. Aaah, how beautiful ... objects.)
404 - It is now possible to "call" macros without using the `call' command
405 by prefixing them with a tilde, as in
414 - Added the *pop3-bulk-load* option.
415 Yes, there are mailing lists etc. which use plain text email, and,
416 there, headers are often more data than the body, so it doesn't make
417 sense to download the headers twice (unfortunately POP3 doesn't
418 support a BODY command; if only it would support a RETRDELE command..)
421 And yep, from this changeset on i personally use S-nail even over the
422 network, no longer my stale and incomplete S-Postman. And i can tell
423 you, this damn thing is so silent, i always set *verbose* not to go
424 grazy ... but .. i hate to say it .. the healing will take time.
426 - POP3 will now try to use APOP authentication automatically; thus the
427 *use-apop* stuff has been replaced by *pop3-no-apop* options (just in
428 case there are POP3 servers which advertise they support APOP but in
429 fact fail to do so; anyone?) [6c3c5575]
431 - Some IMAP segmentation violations have been fixed:
433 ? fi imaps://user1@localhost
434 Password:Interrupt <- CNTRL-C
435 ? set imap-auth=cram-md5 <- hey, 'forgot to set correct auth
436 ? fi imaps://user1@localhost
437 IMAP write error: error:140D00CF:SSL routines:SSL_write:protocol is shutdown
440 And also, when *folder* was set to an IMAP account but hasn't been
441 opened yet, and no IMAP account ever has been opened, a string
442 comparison against a NULL pointer yet caused a SIGSEGV, too.
445 - `set folder=' now tolerates `%:' and expands PROTOs stuff etc.:
447 ? short xp %:imaps://user1@localhost
450 Pure convenience so that it doesn't need to be typed twice (still no
451 completion in sight...). Note that setting *folder* to a POP3 box
452 will now be actively rejected. [b12b17f5]
454 NOTE: while implementing this i've detected another dead-end
455 miscondition in S-nail -- you really should ensure that your target
456 folder/box is connected before you leave your current POP3/network
457 based folder, if there is data to be moved to the target (i.e.,
458 mbox). This problem will persist for a long time due to the way the
459 entire codebase functions; i hope i can find a short/mid-term
460 solution, but the real healing will take years. The mentioned
461 solution would at least make S-nail interruptable, currently we get
462 stuck and interrupts are blocked...
464 - If you're using S-nail on Mac OS X and have seen some segmentation
465 faults when expanding shell stuff then you may be pleased to hear that
466 S-nail now works around an Apple bug. [63273772]
468 - The builtin mime.types have been corrected and a lot of new ones have
469 been added. New data from
470 <http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/resources/\
471 org/apache/tika/mime/tika-mimetypes.xml>, thanks! [8072fcb6]
473 - BEWARE: handling of command line arguments has changed a bit!
475 1. The -D, -d, -E, -i, -N and -v command line options are now
476 implemented by means of setting the respective option, as via -S.
477 (This means that from now on resource files can only *temporarily*
478 overwrite command line arguments.)
480 2. The -I and -T command line arguments have been dropped.
481 It seems Gunnar Ritter stopped developing nail/Heirloom mailx once he
482 started implementing Newsreader functionality. It'll take a long time
483 until we get there, so for now drop all the Newsreader stuff.
485 3. Handling of -r has been changed. E.g.:
487 s-nail -A test -Snoeditalong -r 'La mort est <fem@me>' -d
488 ? set from=bummer@m1.com
492 Sendmail arguments: "sendmail" "-i" "-r" "fem@me" "t1"
493 ? set from=bummer@m2.com
496 Sendmail arguments: "sendmail" "-i" "-r" "fem@me" "t2"
500 s-nail -A test -Snoeditalong -r '' -d
501 ? set from=bummer@m1.com
505 Sendmail arguments: "sendmail" "-i" "-r" "bummer@m1.com" "t1"
506 ? set from=bummer@m2.com
509 Sendmail arguments: "sendmail" "-i" "-r" "bummer@m2.com" "t2"
511 [*main-fun-cleanup* topic branch]
513 - *smime-sign-include-certs-** stuff works again, oops.. [9a8597c6]
515 - A whole lot of smallest and small fixes due to registration at
516 Coverity Scan, as project 444. Error handling in S-nail is ridiculous.
517 [*coverity-444* and *coverity-444.2* topic branches. The sheer number
518 of fixes was the reason to sit down and go for unplanned S-nail v14.3]
520 - *idna-strict-checks* has been dropped. It's silly to have in a MUA,
521 especially given that GNU LibIDN doesn't ship with a lot of rules.
522 We were able to drop quite some code (and a use-after-free, too :().
525 - The ~p tilde command displays attachments more verbose.
526 Until the big big MIME and send layer rewrite :) this is intermediate
527 since until then we do not really know neither MIME type nor charset
528 of an attachment at the time this is displayed (for sure). Yet
529 i think it's nicer to show what we have than keep it the way it was.
532 - @ and @& shell command prefixes have been added for the pipe-MIMETYPE
533 mechanism. The former suppresses filters if multiple messages are
534 displayed at once, the latter adds asynchronous program execution on
535 top of that. E.g., to display PDF documents, but only if you
536 *explicitly* address the message *alone and by itself*, and without
537 blocking S-nail and the $PAGER, do:
539 set pipe-application/pdf="@&cat >"${TMPDIR}"/s-nail${$}.pdf;\
540 mupdf "${TMPDIR}"/s-nail${$}.pdf; rm "${TMPDIR}"/s-nail${$}.pdf"
542 (Inspired by Gavin Troy.) [a8d724b3]
544 Note: most of that had been posted to nail-devel@ already, but it was
545 tweaked ([251b636]) so that you now *really* have to say `p MSGNO' to
548 - The NETLESS CONFIG= has been removed; it is almost identical to
549 MINIMAL now (i.e., without WANT_JUNK and WANT_SCORE).
551 - WANT_JUNK and WANT_SCORE have been disabled by default.
552 They don't seem to be too useful; i hope i can implement
553 a SpamAssassin hook for (downloaded) mail messages for v14.4.
554 If so, expect these two "modules" to become removed completely.
559 Another unplanned (minor) bugfix release after Gavin Troy (gavtroy AT
560 gmail DOT com) pointed out that MIME CTE decoding was broken, who
561 i therefore want to give a lot of prominence right here.
563 - Fix MIME content decoding which has been broken by [01c0e135].
570 An unplanned (minor) bugfix release after i've found two bugs today and
571 heard from Jérémie Courrèges-Anglas (jca+nail AT wxcvbn DOT org) that
572 there exists a S-nail OpenBSD package.
574 I want to give prominence to the following people that helped to
575 improve S-nail(1) during this development cycle, in order of
576 appearance: Dirk Peters (peters AT schwertfisch DOT de).
578 Thank you very much, and best from Germany!
580 - Some warnings of newer clang(1) versions were silenced, including yet
581 another alloca(3) problem (see *memtracer* topic branch in v14.0
584 - Tweaking the MIME boundary detection left a little hole that could
585 cause boundaries not to be detected, as has been shown by a Microsoft
586 Word generated mail on the ICU list. [11e5fb5b]
588 - A format string could overflow bounds if unrealistic
589 (18446744073709551615) line numbers or message sizes would have been
592 - An algorithmic error could cause overlong lines which wrapped around
593 to the next display line. [ade52660]
596 v14.2, 2013-03-15 [v14.1, 2013-03-12]
597 -------------------------------------
599 I want to give prominence to the following people that helped to
600 improve S-nail(1) during this development cycle, in order of
601 appearance: Martin Neitzel, Christos Zoulas, Stephen Isard, jgw@txo.org
604 Thank you very much, and best from Germany!
606 + v14.2 differs from v14.1 only by one commit, one that fixes
607 (mime_fromhdr(): partial rewrite using n_iconv_str(), 2013-03-12),
608 which i hastily implemented just hours before the release of v14.1,
609 and simply shouldn't have made it (into there).
610 The v14.1 tarball has been removed from the server.
612 - A fix for the quoted-printable codec: "message truncation" occurred
613 when a mail maliciously used a soft linebreak to escape the linebreak
614 of a completely empty line.
615 (That resulted in 0 written and 0 leftover bytes, a condition that was
616 declared erroneous back in november 2012 when i started handling I/O
619 - The "folders" command will work again when given an argument.
620 A fault of mine introduced in (cmd1.c: expand() may fail, 2012-10-23).
622 - The Base64 codec has been touched again, and we are finally capable to
623 perform sequential decoding; this was targeted for the MIME/send layer
624 rewrite, but it actually was possible today.
625 The result as seen in ps(1), running on the Base64 encoded HTML5
626 standard (4622545 bytes HTML, with a NUL appended to force Base64
627 encoding, resulting in a 6244793 bytes email):
629 7420 s006 S+ 2:22pm 0:10.65 plain-nail -f HTML5
630 1440 s006 S+ 2:23pm 0:00.36 ./s-nail -f HTML5
632 (So the only thing that is left for a good throughput is sequential
633 decoding of quoted-printable encoded parts that maliciously use soft
634 linebreaks to convert an entire part to a single line. And i've seen
635 that from Apple Mail.)
637 - New option: *mime-allow-text-controls* (rather long manual entry).
639 - *smtp-auth-password-user@host* and *smtp-auth-user-user@host* will
641 (Reported by jgw@txo.org in November 2011, fixed by Gavin Troy in
644 - Most *headline* formats now do support the '-' left-alignment flag.
645 Note that you most likely have to change your *headline* accordingly.
646 (The still missing %n format is one reason why there will be v14.2.)
648 - *datefield* and *datefield-markout-older* can now be set to
649 strftime(3) format strings (except %n).
650 (From Stephen Isard's wishlist.)
652 - A possible SEGV has been found and also fixed by Stephen Isard.
653 (The "legendary" cross-world stereo fix!)
655 - Wow! S-nail will finally compile on GNU based Linux systems like
656 Slackware 14 etc. (Found while hunting bug reported by
659 - New option: *datefield-markout-older* can be used to choose
660 a different date display for mails that are older than six months,
661 in equal spirit to what POSIX describes for the -l option of the ls(1)
662 command (Stephen Isard).
664 - (Exotic) Years are (would) now (be) interpreted correctly according to
667 - CRAM-MD5 usage has been fixed.
669 - *folder* updates are now tracked when set, and we will show the
670 realpath(3) name of it, showing PREFIX..SUFFIX if that wouldn't fit on
672 Tracking updates made it also possible to perform other more expensive
673 tasks when setting *folder*, so that it is now possible to do
679 et cetera (both ideas by Christos Zoulas).
681 - Bugfix for the ~@ tilde-escape in non-interactive mode.
682 (readtty(): quick shot: work in pipelines (on non-TTY).., 2013-01-25)
683 introduced the possibility to "read data from the terminal" (STDIN
684 that is) in non-interactive mode.
685 The manual documents that attachment input must be terminated with an
686 empty line, but if that had been omitted, as in the example below, we
687 would have yet entered an endless loop.
689 $ cat <<_EOT | /s-nail -~ -s boom ./OUT
695 - Alias expansion will now be performed for members of Reply-To: fields
698 - Decoding quoted-printable will now be more relaxed.
699 (Even though the standard says that users should be given a hint when
700 input is not absolutely clean; a possible warning will be added later,
701 when we have an error message ring.)
703 - New option: *mimetypes-load-control* can be used to control which of
704 the mime.types resources will be loaded.
706 - The builtin default mime.types have been extended a bit.
711 I want to give prominence to the following people that helped to
712 improve S-nail(1) during this development cycle, in order of
713 appearance: John Dodson, Gianluca Ramunno, and Anon Ymous from the
719 - Encoding defaults to *quoted-printable* not *8bit*.
720 This has no technical background except that i think it's the better
723 - Small progress for the "getting stuck due to the current folder
724 becomes inaccessible due to whatever reasons" problem.
725 (schdir(): realpath() local files before leaving CWD.., 2013-01-08)
727 - The names of temporary files have changed. Whereas not all uses of
728 temporary files already use really meaningful names, it has yet become
729 possible to use the pattern "*mail-*"; or, to be compatible with
730 NetBSD Mail(1) in one go, "*mail*". (E.g., in my ~/.vimrc you'd read:
731 :au BufRead,BufNewFile *mutt*,*mail* setl fenc= | setf mail
732 [the *mutt* is a leftover from times when i've used MUAs that suck].)
737 - The Quoted-Printable MIME handling has been rewritten completely.
738 We now correctly encode files with the MS-DOS newline sequence (CRLF).
739 (Part of the *mime-cte* topic branch.)
741 S-nail(1) continues to be able to handle text messages and text
742 attachments without a trailing newline, but because these
743 Content-Transfer-Encoding related things are now handled by the C-T-E
744 layer instead of by sendout.c a text message body that comes in as
745 part of a complete message via the -t command line option will loose
746 the missing final newline (i.e., it'll gain one).
747 This problem does *not* occur when *only* the message body comes in
748 via STDIN, as in 'cat FILE | s-nail', but *only* when the -t option is
750 (sendout.c: does no(t/ longer) know about CTE internals!, 2013-02-09)
752 - Filename arguments for -a are now processed *after* all the resource
753 files have been loaded etc., so that the usual "folder" specifics can
754 be used (provided that proper care for shell quoting was taken).
755 ((main(): delay -a processing.., 2013-01-10), as a part of the
756 *mainaflags* topic branch.)
758 - (d38c5bd, When the write command asks.., 2004-11-23) added support
759 for pipes when saving attachments during a "write" command.
760 It however used the wrong SIGPIPE signal handler; e.g.:
762 Enter filename for part 2 (application/x-gzip): |exit
765 Of course, it still performs a jump and that most likely leaves memory
766 chunks behind, thus causing some memory leaks. This will be
767 a long-term problem (you may want to read [mime.c:fwrite_td(): TODO
768 notes on unfixable leaks, 2013-01-14] for more).
769 (send.c:sendpart(): fix longjmp() SIGSEGV.., 2013-01-29)
771 - Fixed a name quoting regression that i've introduced in
772 (Rewrite *extract().., 2012-10-20), that would have caused
773 "x \"y\" z" to become "x"y" z" instead of "x "y" z".
774 (S-nail still does not really have RFC compliant parsers, just as
775 NetBSD Mail(1) has, i.e., there are structured and unstructured fields
776 etc... I hope i can provide them in v15.0.)
777 (names.c:yankname(): fix quote regression.., 2013-01-29)
779 - The IDNA conversion now assumes domain names are specified in
780 *ttycharset*, rather than in the LC_CTYPE locale charset.
781 I.e., it integrates into the usual character set specifications.
782 (IDNA: honour *ttycharset* for domain names, 2013-01-18)
784 - The new *editalong* variable will automatically spawn an editor when
785 composing a mail in interactive mode, just as if `~e' was given.
786 (Add new *editalong* variable, 2012-01-07)
788 - The manual has been converted to mdoc.
789 (The manual has been converted to mdoc, 2012-12-28)
791 - The ~@ tilde escape, when given filename arguments, will treat the
792 arguments as a comma-separated instead of a whitespace-separated list.
793 (collect: change separator of ~@ tilde escape.., 2012-12-28)
795 The interactive mode of ~@ has also been changed, rather massively.
796 Please do reread what the manual says.
797 ((collect: support multiple attachment charsets.., 2013-01-23), as
798 part of the *attach* topic branch.)
800 - Thanks to Gianluca Ramunno (ramunno DOT gianluca AT gmail DOT com)
801 S-Nail will no longer try to issue a STARTTLS command when it is about
802 to establish a SMTPS connection, a task that logically fails since the
803 connection is already secured.
804 (Interestingly the nail codebase performs the necessary test for IMAP
806 While here the undocumented nail v11.0 *smtp-use-tls* legacy option
808 (Fix SMPTS with a set *smtp-use-starttls*.., 2012-12-22)
810 - The RFC 4155 compliant MBOX quoting is now exclusively used, the
811 shitty *posix-mbox* variable has been removed again.
812 (Shitty because i've implemented RFC 4155 compliant MBOX quoting and
813 tested it, then added *posix-mbox* for those who liked the old
814 behaviour and did not re-test -- the final code path was buggy.)
816 In mails newly created and saved by S-nail(1) no From_ quoting at all
817 will be used no more, but instead the rewritten MIME file classifier
818 will detect unquoted From_ lines and enforce quoted-printable encoding.
819 (This is an approach that is S/MIME compatible all through the way as
820 the file data is not modified at all, but only encoded, so that the
821 data checksum is not changed.)
823 In yet existent mails that S-nail copies or moves around without
824 reclassification an RFC 4155 compliant From_ line detector will apply
825 MBOXO quoting (prepend a single '>') as necessary.
826 Different to the old MBOXRD behaviour S-nail will neither quote yet
827 quoted From_ lines ('>>From xy' -> '>>>From xy') nor will it unquote
828 one quote level when reading etc. mails ('>> From xy' -> '>From xy').
829 As a result the code could be simplified.
831 This changeset also incorporates a fix for NetBSD PR bin/47453, as
832 reported by Martin Brandenburg. I.e., some mailers, noticeably
833 UW-imap (with MBX format only?), use non-compliant From_ lines with
834 RFC 822 date specifications. Be aware of 'em.
835 (RFC 4155 MBOX, and drop *posix-mbox* and foldergets().., 2013-01-06)
837 - *rfc822-show-all* has been removed.
838 It didn't work properly for more complex MIME structures, like
839 message/rfc822 messages with attachments etc., just as i've seen today
840 on the file(1) mailing list.
841 So, instead of hacking it now i've dropped it and will come back with
842 a better solution when the MIME and send layers have been overhauled.
843 I.e., the real intent was to be able to specify that an embedded
844 message/rfc822 is treated as a *unity*, and that's the goal.
845 (Drop *rfc822-show-all*, 2013-01-23)
846 [The manual will be adjusted in a different commit.]
848 - *rfc822-no-body-from_* has been renamed to *rfc822-body-from_*.
849 It thus must be set explicitly.
850 On the other hand it now catches all cases...
851 (*rfc822-no-body-from_* -> *rfc822-body-from_*, 2013-01-23)
852 [The manual will be adjusted in a different commit.]
854 - The new *charset-7bit* (defaults to US-ASCII) and *charset-8bit*
855 (defaults to UTF-8) have been introduced.
856 These are used if seven bit clean data is to be sent, and no
857 *sendcharsets* are set or the convertion of all of them failed,
860 - There is no functional change unless there is iconv(3) support.
861 - There is no functional change unless you set them.
862 (Introduce *charset-8bit* and *charset-7bit* variables.., 2013-01-18)
863 [The manual will be adjusted in a different commit.]
865 In addition the new *sendcharsets-else-ttycharset* variable can now
866 be used to automatically use *ttycharset* as a *sendcharset(s)*,
867 regardless of the new *charset-8bit* variable.
868 (Add *sendcharsets-else-ttycharset* variable, 2013-01-24)
869 [The manual will be adjusted in a different commit.]
871 NOTE: before we apply charset conversion we now perform a string
872 comparison to see wether character sets are identical. If the strings
873 match (case-insensitively), then *no* conversion is performed.
874 This means that code like
876 $ printf "LATIN1: \0376" | s-nail -Ssendcharsets= -s boom ./out.txt
878 *succeeds* in an UTF-8 environment now, whereas older versions would
879 fail with an "illegal byte sequence" error (unless the iconv(3)
880 library of the system would not perform any conversion that seems
881 superflous, of course).
883 I thought about making this optional, but, in fact, if this would be
884 done in an environment without iconv(3) support then the result would
885 be equally corrupt. And the way it is now we save the expensive and
886 superflous conversions. (See TODO for more.)
888 Please *do* reread the manual section "Character sets".
889 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
891 - An attempt was made to improve MIME Content-XY: detection.
892 It should be more RFC compliant, and just overall better :);
893 a simple one-pass classifier cannot match libmagic(3), of course.
895 This changeset removes support of the long obsoleted (4fee1ef,
896 2005-01-06) *charset* variable, as well as for the
897 *maximum-unencoded-line-length* variable that has been introduced in
898 (48a652bd, 2005-07-26).
900 For S-nail v14.0 it'll be no longer necessary to do
902 $ tr -d '\015' < input | s-nail ...
904 to transport files which use the $-DOS (terminal) newline (sequence).
905 We still depend upon *sendcharsets* for a while, though.
906 (Rewrite file-content classification.., 2013-01-02)
908 - The new *mime-counter-evidence* variable can be used to force
909 a classification of non-text MIME parts (attachments) by their
910 filename, i.e., a "reverse-classification" just as would be performed
911 if S-nail(1) would itself *send* the file(name). This can help
912 against some stupid MUAs (Apple Mail?) that send .diff etc. files as
913 `application/octet-stream' parts etc.
915 At a later time this may become a valued option, causing a temporary
916 save of unnamed attachments followed by a MIME classification of the
917 file contents, followed by forced treatment as plain text if it seems
918 to be human readable. But not yet. Just to warn you.
919 (Add *mime-counter-evidence* variable.., 2012-12-29)
921 - The special "pipe-" command "@" can be used to force treatment of
922 a MIME message part as plain text (e.g.,
923 'set pipe-application/pgp-signature=@' will henceforth print those
924 signatures inline and as plain text).
925 (Introduce the special "@" "pipe-" command, 2012-12-27)
927 - The MIME types (as from mime.types(5)) will now be cached. Before
928 all possible sources would have been opened, read and parsed for each
929 and every message part that required detection of the MIME
931 The new "mimetypes" command can be used to show or clear that cache.
932 (Add mime.types(5) cache.., 2012-12-27)
934 - A small set of MIME types (template: ./mime.types) will now become
935 compiled into S-nail(1), and be used as a fallback if there are no
936 ~/.mime.types and/or no /etc/mime.types, or those didn't contain
937 a matching type. E.g., NetBSD 6 doesn't ship a default database.
938 Also, file extensions will be matched case-insensitively (case of
939 attribute values is not specified afaik?).
940 (Introduce compiled-in mime.types(5).., 2012-12-21)
942 - The undocumented *charset7* variable was removed.
944 - The "Message X:" display leader has been changed and will henceforth
945 be matchable via "^[-- Message \d+ -- \d+ lines, \d+ bytes --]:$".
946 These lines can no longer be suppressed by setting the *quiet*
947 option (which was yet possible for print and top, though undocumented).
948 (Change "Message X:" display message.., 2012-12-20)
950 - When displaying multipart messages the "Part X:" introductional string
951 has been changed; if the Content-type: header is not *retain*ed, then
952 this string will include the part's type and size. Ditto for
953 Content-disposition: and a mentioned attachment filename.
954 This is a first step only, for the final version the MIME and send
955 layers will have to be adjusted. But the string will be matchable via
956 a "^[-- #.* --]$" regular expression from now on.
957 (Change "Part X:" display message.., 2012-12-20)
959 - MIME boundaries in multipart messages are now handled better in that
960 no boundary string should get through to the display.
961 (Tweak MIME boundary detection.., 2012-12-20)
963 - A couple of long standing, even pre-Heirloom mailx(1) memory leaks and
964 segmentation violations, most of them related to configurations
965 without alloca(3) support, as well as one leak that i have introduced
966 when i implemented RFC 4155 MBOX handling, have been fixed.
967 But S-nail should now survive non-alloca(3) configurations.
968 (*memtracer* topic branch.)
970 - The Base64 MIME handling has been rewritten completely.
971 This was an urgent topic, because the old implementation (a) read in
972 all lines of a base64 encoded text part, repeatedly resizing a string
973 storage and repeatedly decoding that string until all the lines have
974 been swallowed (i.e., or by accident the last decoded byte was
975 a newline character, and that in turn may of course have fucked up for
976 multi-octet encodings, dependent on the actual byte-order), (b) used
977 function local static data to keep state in between multiple
978 invocations, which messed up multi-byte/-octet encodings like this
980 �5��ɽ���Aɥ����́��٥��������[lots of data follows]
982 and (c) did not perform any error checking at all.
983 The new one does not run into the problem that (a) tried to circumvent
984 since leftover decoded data (as opposed to leftover *encoded* data) is
985 transported along the call-chain for later use. It adds a minimal set
986 of error handling ('may now see "[Invalid Base64 encoding ignored]"),
987 with more to become possible in later S-nail versions when the entire
988 layers are reworked. (Until then DOS newline sequences [CRLF]
989 embedded into base64 will no longer be decoded to Unix LF newlines.)
990 Base64 encoded lines will now be 76 characters long, as stated (as
991 a maximum value) in RFC 2045, not 72 as before.
993 The Base64 code core has been shamelessly stolen from NetBSD's
994 Mail(1), and i guess it was the second time that this happened :=).
995 (*base64-rewrite* topic branch; and reworked later on the *mime-cte*
998 - The string allocation strategy has been tweaked some more to, i think,
999 a final version (regarding algorithm).
1000 In normal non-interactive send mode it should now no longer need any
1001 dynamic memory at all (unless some dozen recipients are specified).
1002 (Several other places still use normal dynamic memory, of course.)
1003 (*dope-stringdope-again* topic branch.)
1005 - Support for NSS (Network Security Services) has been removed.
1006 I've never worked with it and are, regarding the complexity of
1007 network security, not willing to spend any time on it.
1008 SSL is installed on all systems i'm using and/or testing on by
1009 default, and so i've choosen to go this way.
1010 (It may be that sometime in the future S-nail will add support for
1011 libcurl(3) connectivity, and then it may happen that not only NSS
1012 support is reintroduced again, but also GNU TLS. All of that applies
1013 to network connectivity only, however, not to S/MIME afaik.)
1014 (*drop-nss-support* topic branch.)
1016 - I finally got a glue and understood that Sourceforge does (a) not
1017 support symbolic links and (b) doesn't like dots as regular parts of
1018 filenames. This means that all this time the promised s-nail.tar.gz
1019 symbolic link did not work, and that s-nailv13.3.tar.gz wasn't
1020 accessible either (via the web interface).
1021 In the future S-nail(1) will not provide any more symbolic links (the
1022 Sourceforge website offers a "download latest" thing which seems to
1023 work), and use underscores in filenames -- s-nailv13.3.tar.gz has been
1024 renamed to s-nailv13_3.tar.gz. The tags continue to use dot notation.
1027 - The *heirloom-plus* support branch has been removed.
1028 The code bases diverged a lot and even more to come.
1029 It doesn't make sense to put any effort in that.
1034 - Configuration on UnixWare 7.1.4 will succeed (shell issue fixed).
1036 - Even on DragonFly BSD the IMAP GSSAPI is now found
1037 (in /usr/pkg/include/krb5/gssapi/gssapi.h).
1039 - Support for pkgsrc(7) systems and automatic integration of
1040 C_INCLUDE_PATH and LD_LIBRARY_PATH path configurations.
1043 - Fixes a mortally embarassing regression that the current maintainer
1044 introduced before i really knew what i was doing, in (If *record* is
1045 set, avoid writing dead content twice.., 2012-09-14).
1046 It hit users that send through a MTA and have *record* set; in this
1047 combination data would not have reached the MTA.
1048 Interested parties may read the comment in savedeadletter() (part of
1049 the changeset) or the (Fix MTA/*record* descriptor clash..,
1050 2012-11-10) commit log.
1052 Deepest apologies to tortured users from the current maintainer!
1054 - RFC 4155 compatible MBOX file handling has been introduced, and so
1055 S-nail is now on par with (at least) NetBSD Mail in respect to this.
1056 It can be turned off with the new *posix-mbox* variable, which you may
1057 need to use since not all MUAs are capable to dig those MBOX files.
1058 E.g., less cutting-edge (.-) MUAs fail for this:
1060 |From - Thu May 10 20:40:54 2012
1061 |Date: Wed, 07 Nov 2012 11:48:30 +0100
1062 |To: super@duper.com
1067 |From - Thu May 10 20:40:54 2012
1068 |Date: Wed, 07 Nov 2012 11:48:30 +0100
1069 |To: super@duper.com
1072 |>From - Thu May 10 20:40:54 2012
1073 |From - Thu May 10 20:40:54 2012
1075 I'm not completely happy since S-nail *does* still quote those lines,
1076 how rare they may be -- it *does* modify message content. mutt(1)
1077 implements something more clever and that is quoted-printable encoding
1078 of the "F" from "From", when seen at the beginning of a line.
1079 This, when applied to just *any* "^From", will be a non-modifying and
1080 all-compatible solution.
1082 - SEND_MBOX handling has been changed to discard any Content-Length: and
1083 Lines: headers when it rewrites a message by default.
1084 I know that mutt(1) generates them (why, after
1085 http://www.jwz.org/doc/content-length.html?).
1086 Anyway, S-nail does neither use nor manage them, so that any
1087 modification renders those fields invalid, and then it seems best to
1088 discard them anyway.
1089 You may turn the new behaviour off with *keep-content-length*.
1094 The problem was that i really wanted to release on a 25th.
1095 But i have been able to improve S-nail(1) some more, so that this is
1096 possibly the first real release of it. So i'll add only things that
1097 have changed since v13 -- please see below for the complete picture.
1099 - A new CONFIG=CUSTOM make directive was added, and the new user.conf
1100 variables WANT_SCORE and WANT_DOCSTRINGS have been added. It is
1101 possible to create a floating-point free S-nail(1) now.
1104 - If a feature is disabled not even functions stubs should remain now.
1106 - Many places which will work only with local filenames do now actually
1107 check that the target is a local filename.
1109 - Space-separated lists should work again, at a few places at least.
1111 - Tilde commands will be possible, even with -r.
1113 - The *sendmail-progname* has been added after NetBSD 6 dropped the
1114 send-mail entry in mailer.conf(5), which broke S-nail(1). Now users
1117 - When editing messages via ~e or ~v file and pipe addressees will no
1120 - If recipients occur multiple times spread over lists, i.e., To:, Cc:,
1121 Bcc:, then only one occurrence remains, and in the "highest-order"
1124 - The "list" command prints the list alphabetically sorted (somewhat).
1126 - The "help" and "?" commands take an optional argument that shows
1127 a synopsis string for the given command (unless WANT_DOCSTRINGS was
1130 - String allocations are now more efficient. The situation can still be
1131 improved. However, for the first time Berkeley Mail(1) integrates
1132 harmonically into the system allocator, which may madvise(2) unused
1133 memory to the operating system as necessary and/or possible!
1138 Well, a version number 13 is anyway an ugly thing...
1140 commit 4f534bb33b7c911272cc66a0e3a9e47b73ad8deb
1141 Date: 2012-10-25 20:46:07 +0200
1143 FIX MIME quoted-printable encoding (char cast)..
1148 Well, one of the things that have already been started in v13 is
1149 the turn from using "int" when working with 8-bit characters to
1150 "unsigned char" (and as long as we do not support wide
1153 Unfortunately one very important piece of code, that is handling
1154 encoding to quoted-printable, still used integer instead of
1155 unsigned char, which caused an automatic extension cast to take
1156 place, and that resulted in a messed up output.
1162 I want to give prominence to the following people that helped to improve
1163 S-nail(1) during this development cycle, in order of appearance: Martin
1164 Neitzel, Ezequiel Garzón, Björn Persson, Paul Vojta, and, especially,
1165 John Dodson for warm words from beautiful Australia! Many thanks also
1168 After i've officially forked nail(1) aka Heirloom mailx(1) as S-nail(1)
1169 on 2012-09-18 i have been able to work five weeks almost fulltime on
1170 S-nail(1) development. The first three weeks can be characterized as
1171 hectic fireworks here and there, but then it got better and i was able
1172 to work more or less topic-centric. In the meanwhile S-nail(1) is more
1173 than 230 commits away from the Heirloom base--and drifting further apart.
1175 S-nail(1) v13 is the first release of S-nail(1), but it was forked from
1176 Heirloom mailx(1) 12.5 7/5/10 that arose from Berkeley Mail 8. unless
1177 i'm mistaken. What characterizes S-nail(1) v13?
1179 - The build system has been reworked almost completely.
1180 It is possible to fine-tune which features should be present in the
1181 binary and which don't. The name of the binary can be chosen, and
1182 that choice is reflected all through the manual and the template
1183 resource file. The manual is always complete and thus may document
1184 features that are not supported by the actual binary, though.
1185 Please see INSTALL for more.
1187 - Compiler warnings can now be used. Please see the example WARN= flags
1188 in the Makefile, but '-Wall -Wextra -pedantic' should be silent though
1189 certainly insufficient to reflect the complex work of modern compilers.
1191 - The following recipient address list combines some of the major
1192 improvements that have been made:
1194 <addr1@cdröm.de> (bier) , ./file1,
1195 Steffen Smöregäs (Humbabä) <sauer@bäüer.de> (Hummpäa) ,
1196 sabberlot@träbbel.de , (bier2) <a2@bür2.de> ,
1197 a3@b3.de (bier3) , <a4@b4.de> (bier4, und \"bier5\") ,
1198 |cat > pipe1 , (bier 6) <a6@bür6.de> , ./file2 ,
1199 (co\$mm1) abc1@düf.de (cö,bmm,2) (co\"m\"m.3) ,
1200 co\$bmm1 \"c,ömm2\" co\"m\"m.3 <abc2@däf2.de> , |cat > pipe2 ,
1203 That, on a single line, may be given to ":m" or (quoted) on the
1204 command line, or to "~c" or whatever, and it will work as expected
1205 (well, everything else would be a bug..) and result in the following
1206 sendmail(1) invocation:
1209 <-i a2@xn--br2-hoa.de a3@b3.de a4@b4.de a6@xn--br6-hoa.de abc1@xn--df-xka.de abc2@xn--df2-qla.de addr1@xn--cdrm-7qa.de moppel@xn--hppel-jua.org sabberlot@xn--trbbel-cua.de sauer@xn--ber-qla4j.de>
1211 Date: Thu, 25 Oct 2012 17:12:15 +0200
1213 Cc: Steffen =?utf-8?Q?Sm=C3=B6reg=C3=A4s?=
1214 =?utf-8?Q?_(Humbab=C3=A4)?= <sauer@xn--ber-qla4j.de> (=?utf-8?Q?Hummp=C3=A4a?=),
1215 sabberlot@xn--trbbel-cua.de, moppel@xn--hppel-jua.org,
1216 <addr1@xn--cdrm-7qa.de> (bier),
1217 co$bmm1 =?utf-8?Q?"c,=C3=B6mm2"?= co"m"m.3 <abc2@xn--df2-qla.de>,
1218 (co$mm1) abc1@xn--df-xka.de (=?utf-8?Q?c=C3=B6,bmm,2?=) (co"m"m.3),
1219 (bier 6) <a6@xn--br6-hoa.de>, <a4@b4.de> (bier4, und "bier5"),
1220 a3@b3.de (bier3), (bier2) <a2@xn--br2-hoa.de>
1221 Subject: Re: SubjectTest
1223 Content-Type: text/plain; charset=us-ascii
1224 Content-Transfer-Encoding: 7bit
1229 So list parsing has been fixed, IDNA support has been added, and it is
1230 possible to mix pipe and file recipients *and* multiple thereof, and
1231 the result is still correct for *all* of them.
1232 I think this kind of list can be given wherever a user can directly
1233 enter such a list. And i think all that is unique to S-nail(1).
1235 - When writing back edited messages the target MBOX mailbox can no
1236 longer become "corrupted" when the trailing newline was removed during
1237 the edit. Also affected FreeBSD and NetBSD mail(1).
1239 - A security fix for CVE-2011-2895 was applied.
1241 - The generated Message-Id: is now more human-friendly.
1243 - The -h command line option has been dropped. Use "-O -h XY" if your
1244 MTA really supports that.
1246 - The -O and -r command line options no longer enforce a one-shot send
1247 mode, and instead persist for the duration of the entire session.
1249 - Variables set via the -S command line option are now (un)set twice;
1250 immediately and after all the resource files have been loaded.
1252 - Other new or changed options/commands, in order of appearance:
1253 recipients-in-cc, smime-sign-include-certs, quote-fold, stealthmua,
1254 add-file-recipients, write, rfc822-no-body-from_, rfc822-show-all,
1255 mail/Mail, idna-disable, idna-strict-checks, ??
1257 - In the codebase itself an effort to reduce duplicate work and
1258 introduce caching, and to minimize the use of local variables, was
1259 started, but that is long term. A lot of improvements here and there,
1260 too, like using the well MD5 optimization from Wei Dai, Chris Torek's
1261 hash algorithm for hash tables etc.
1263 - Incredibly important: an heraldic animal was found: snailmail.jpg!
1265 The full history can be inspected by issuing the git(1) command
1267 $ git log --reverse s-nail..s-nailv13
1269 A new TODO has been introduced, and it is getting longer and longer.