Wild is the wind! ..and another bugfix went in, to make S-nail SingSing. And it can only make me more confident that at the end of the day this s....y little program will rock. Just wait and see.
Dear package maintainers, i'm gonna go and remove the v14.6.3 tarballs asap. Thank you. The release tarballs can be downloaded (e.g., via 'curl -vv -L') from, and their checksums are: <https://downloads.sourceforge.net/project/s-nail/s-nail-14_6_4.tar.xz> MD5 = 24a6341142a094908d0baf432ca86726 SHA1 = f1aee095030283a75957aca0f16373ad53c28987 SHA256 = 1d67c9963ba1717310f01f3d2fdf03efb77b2fa1ed25fd95858927751fb9f113 <https://downloads.sourceforge.net/project/s-nail/s-nail-14_6_4.tar.gz> MD5 = f88b31c416c5f151af199614e6bc527b SHA1 = dfc21821e6dba8456d7b1946bbf95c9c69bc2002 SHA256 = 083b41f3a5eb4feff69c5ed1fec6161fe1239d0529dedefa0a80c58b3f0707e7 Online manual: <http://sdaoden.users.sourceforge.net/code-nail.html> [Web site : <http://sdaoden.users.sourceforge.net/code.html#s-nail>] git(1) repo : <git.code.sf.net/p/s-nail/code> (git:// or http://) git(1) browse: <http://sourceforge.net/p/s-nail/code/> The complete changelog of commits in between two versions can be inspected by using the git(1) `log' command as shown below, where `OLD' and `NEW' are the two versions to be compared, e.g., v14.5.2 and v14.6.4: # All commits: $ git log --reverse --topo-order OLD..NEW # Only topic branch headers: $ git log --oneline --merges --reverse OLD..NEW # Same, but truly accessible: $ git log --oneline --parents --merges --reverse OLD..NEW | while read c1 c2 c3 c4 c5 c6; do printf "%-24s: \$ git log --oneline --no-merges ${c1} ^${c2}\n" "${c6}"; done v14.6.4, 2014-04-07 ------------------- Many thanks to Gaetan Bisson. ChangeLog ^^^^^^^^^ - Avoid segmentation faults with -L option if s-nail is opened on non-existent mailboxes, e.g. '$ MAIL= s-nail -Lx'. (Gaetan Bisson) [e6c86da] v14.6.3, 2014-04-05 ------------------- Thanks and greetings to Gavin Troy, Gaetan Bisson and Tarqi Kazan (tarqi AT cfs DOT dyndns DOT biz). ChangeLog (packager-affine) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - WANT_AUTOCC knows that clang(1) version 1 can dig -Wstrict-overflow=5. [2f77640] - '$ make test' should work even if you are not steffen. (Gaetan Bisson, Gaetan Bisson, Gaetan Bisson, Gaetan Bisson, Gavin Troy, Gavin Troy) [8b796ba] ChangeLog ^^^^^^^^^ - *autoinc* is gone -- this is *newmail*. [07a8462] - Working with large(r) IMAP boxes should work again without causing segmentation violations. (Gavin Troy) [761dd87, b0ce180] - With our builtin getopt a.k.a. WANT_NOGETOPT=1 usage of the -L option caused segmentation violations. (Tarqi Kazan, Gaetan Bisson) [f2c2646] - The decision wether we need $PAGER or not now also incorporates the informational lines we inject for messages. [316b4cd] - Drop `defines', add `unaccount', rename `undefine'.. The `defines' command has been united with `define' -- just like `account' will list all defined accounts when used without arguments `define' will now do so for macros. And `undefine' is the new name of `undef'. The new command `unaccount' can be used to delete all given accounts, in equal spirit to `undefine' and macros. All of this is still vulnerable against recursivity, e.g., deleting an executing macro still works, but don't that. [b0b3275] - Rename `var-inspect' to `varshow'; silly oversight that `var-inspect' will try to lookup a variable "-inspect". Ouch. [afffd30] - Without HAVE_ICONV the character set iterator sofar used *charset-8bit* as the last resort, whereas it should have used *ttycharset*. Fixed. P.S.: All this still preliminary, we await the MIME and send layer rewrite to calm down the stuff for real. [edc3226, df9aefd] - During `~@' editing it is possible to leave the possibly endless character set selection loop by interrupting via ^C. In the meanwhile this effectively drops the currently edited attachment and leaves the entire attachment selection session; it doesn't make sense to make it any better until we have our signal manager and stop jumping around. This changeset should also fix dangling Content-Xy MIME information of attachments which were in the same slot before, e.g., if #1 was a message attachment and that was changed on-the-fly to be a real file attachment then the Content-Description would still have stated that it is a message attachment. [07a8462] ChangeLog (purely technical) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Since it has been decided to remain compatible to ISO C89 we cannot use the ISO C99 `z' format string modifier (printf(3)). Since quite some time we make efforts to provide our own `ZFMT' macro (in `nail.h') which provides somethint compatible, but on 32-bit platforms compilers often complain nonetheless. Therefore we now also have a compile-time assertion that proves that our `ZFMT' macro is really correct. [397e4d1] v14.6.2, 2014-03-01 ------------------- Many thanks to the perpetual Gavin Troy. - Faulty notational change of system call return values from `<0' to `==-1' caused endless waitpid(2) loop. [d6f316a; test(!): 79fd761] (Gavin Troy) - (GLibC) STD I/O overoptimizes rewind(3) so that underlaying file descriptor offset is not reset to 0. Generalize the already used `really_rewind()' hack and use it not only in `savedeadletter()' but also in `page_or_print()'. It is likely that this not also fixes `history' listing but also some other things which go through the pager, dependend on the setting of *crt* etc., and on at least GNU/Linux systems. [463660f] Note: standard I/O does NOT offer a possibility to do this in a non-hackish way. It is thus likely that S-nail will gain a completely new I/O layer in the future. That'll also be faster. P.S., 2014-03-04: This note is false: POSIX Issue 7 overloaded the meaning of fflush(3): when used on readable streams the file offset of the underlaying file descriptor is adjusted to that of the stream. (nail.h: adjust really_rewind(): POSIX Issue 7 defined a way..) uses this official approach instead if _POSIX_VERSION>=200809L. - Old shells will now correctly execute an error-condition execution path in `mk-conf.sh'. [afef55f] v14.6.1, 2014-02-22 ------------------- Thanks to Andy Switala (andy DOT switala AT gmail DOT com). And thanks to all package maintainers for their stamina. At the first workday after the release i've run into a bug that was caused by an oversight, a double-Fclose() that would be harmless if we wouldn't forcefully panic() when we encounter it! So i've spent another week on a review, and despite fixing many additional notational oversights i haven't found more oversights of newly introduced problems. On the other hand i've found and fixed some old problems during the review, and tweaked some other things: - The INSTALL file now has a `Current codebase state' section. - Commands invoked via `!' should now be interruptable. I'm afraid the exit status of such a command will not be reflected by the return value of the `!' command yet, but hey, at least `!sleep 10' can now be interrupted -- try this with another Berkeley Mail! [381ff46] - All credential prompts should now be interruptable. (Inspired from Andy Switala) [c3bb2a2] - 'make test' will now test a silly S/MIME case when WANT_DEBUG (or 'make devel') was used. [8cff17f] - *batch-exit-on-error* should now look at the exit status of *every* command when the command loop ticks. [c7e7d53] - The new `[?name-list]?search-pattern' search expression has been changed to `[@name-list]@search-pattern' -- like this it doesn't clash with the `?' help command and can thus be used on a line by itself, causing the default command (`next') to be invoked on its' result, shall there be one. Ok, yes, that was surely also an oversight. [8368f70] - *attrlist* must now be exactly 13 characters, just as it should be. An error message is printed if not. It was always komisch, but i'd buggified it somewhen in the past. Now fixed. [part of 0d4e934] - The NCL WANT_TABEXPAND feature now also works if *newfolders* is set to `maildir'. Yet, if a folder was assumed to be of maildir type, shell globbing would not occur. [part of f5c184c] - The `X-Decoding-Data' S/MIME header field was set to the epoch origin instead of NOW in v14.6. Also the `certsave' command now supports file globbing (i.e., '~/.certs/' should end up in your $HOME now). [both part of 7e0aec7] v14.6, 2014-02-15 ----------------- + With this release the S-nail codebase has been converted to my usual style of function-code-flow and notation. ?0[]$ git diff --shortstat v14.5.2..HEAD 55 files changed, 28065 insertions(+), 25356 deletions(-) ?0[]$ git diff --ignore-all-space --shortstat v14.5.2..HEAD 55 files changed, 14664 insertions(+), 11955 deletions(-) Maildir and S/MIME support have been restored, and a MIME bug that could have led to missing data in header display+ has been fixed. Ah, and users of compressed boxes should now feel luckier, too -- at least once they've realized that the compress extension is no longer appended automatically, but must be given explicitly. Thus: i hope that all those i-am-new-to-the-codebase bugs i've introduced over a year ago have been found and fixed, and that v14.6 is the true "sweet sixteen" (months of maintainership). ChangeLog (packager-affine) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - If WANT_AMALGAMATION is set, `-pipe' will be added to our CFLAGS (which are only honoured with WANT_AUTOCC, of course). [1330411] - New configuration option: WANT_IMAP_SEARCH, enabled by default. The regular expression support for IMAP-style search expressions has been removed again: it changed the IMAP search semantic in that it couldn't be executed on the server, but only local, and the syntax sucked, too. (And we have a new `?' search expression.) [402b7c6] - CONFIG=MEDIUM and CONFIG=NETSEND now both WANT_REGEX. [dee954e] - The `make test' target should *really* work gracefully, now that usage of the `-#' command line option also sets the folder to be opened to `/dev/null'. (Still no `void' box in sight.) [0119d514] - All published patches may also be found in a new [patches] branch. ChangeLog ^^^^^^^^^ - Several fixes that saw published patches (with equivalent functionality), and are thus described in NEWS, are included: . s-nail-14.5.2-sort-alt.patch Fixes a hasty commit that introduced string relaxation in a faulty way. [5e75529] . s-nail-14_5_2-mimeheader.patch Fixes data loss if multiple MIME encoded-words follow each other in header bodies. [c81afce] . s-nail-14_5_2-maildir.patch Effectively restores proper maildir support. [1c2563b, 13f325f] . s-nail-14_5_2-smime.patch Fixes an off-by-one error and, in effect, restores S/MIME sign and encryption etc. support. [e759f75] - The `screen' terminal type is by default recognized as being colour-capable. [e759f75] - With the NCL command line editor and WANT_TABEXPAND hitting <TAB> should now act as if an "implicit asterisk" had been given in case there was no expansion of the original user input; e.g., '? ls <TAB>' may exceed your line limit now ;). [0910a8f] - The S/MIME cipher list was outdated, RFC 5751 requires AES-128 as the default, the RC2 ones are long obsoleted (etc.). Also we now should handle that OpenSSL may not support individual algorithms. Note: we use the option value `des3' for `DES EDE3' from now on! (Maybe see *smime-cipher-user@host* manual entry.) *ssl-method* may now also be assigned the new (default) method `auto' explicitly. [2472670] - Messages will now be stored in a set *record* even if only file or pipe addressees were given. [a11935b] - Support for xz(1) compressed mailboxes has been added. (The `Can't canonicalize' warning for compressed boxes had the same cause that made maildir usage impossible, but i don't feel _too_ bad because looking into the code a bit revealed that the *newmail* mechanism never worked for such boxes anyway. And will for a while.) [7fd9979] - S-nail now supports nested if..else..endif conditionals. [3c22c04] - The NCL command line editor now locks its' history file when it reads and writes it, so as to protect against concurrent usage. [c3a39ce] - You can now say 'fi%', 'fi&', 'p&10' and `ghost ps '!ps axu'' followed by 'ps|grep nail'. [c3266c6] - Invocation cleanup: usage of -f and -u is mutual, -H and -u is ok, -u in send mode not. [fa0a0aa] - New message specification: `[?name-list]?search-string' will search in locally available messages. If the optional `?name-list' part is given, that specifies the (comma-separated list of) header fields to search in. The special names `body' and `text' can be used to search in message bodies alone and bodies including the headers fields, respectively. Note that "message bodies" unfortunately still means "including headers of attachments and attachments themselves", and until some later time. [61bb460] - The new command line option `-L spec-list' prints a header summary of only those messages that comply to the specification list `spec-list'. If -L and -H are used in combination, no summary is printed at all, but the exit status reports wether `spec-list' would have matched some messages or not. [934e12c] ChangeLog (purely technical) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Most of the work was changing the code-flow of the entire codebase to my usual style of programming, with a single function entry and a single function exit, including the addition of N(ot) Y(et) D(ead) points of interest, which finally enabled me to get rid of (sic!) using a debugger for S-nail development. Just compile via 'make devel', and in case of a crash you should get a nice backtrace listing. (You use IMAP, do you?) However, because practically every line of code has been touched, this caused some other changes along the way, e.g., the handling of temporary files was changed completely (the formerly used Ftemp() function has been replaced with a new Ftmp(), which handles unlinking itself as necessary etc.), it was detected that the S/MIME support was no longer compliant to any RFC, some resource leaks have been eliminated... It is likely that a change so large introduced some other flees and flaws, however. But it looks good so far. Thank you. --steffen ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees_APR _______________________________________________ S-nail-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/s-nail-users
