Tell all the people
She lives on love street, lingers long on love street.

At the first workday after the release v14.6 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 also tweaked some
other things.

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.tar.xz>
    MD5 = 3418f5a829315f40f3d0a7bdaeb765b6
    SHA1 = b46808c716c5ae04f0ff51e7f9f4049a7f1dc5c8
    SHA256 = d1a16e4020782217032252f837d1d4f6d640a39f9ea11655fe2354312accf883

  <https://downloads.sourceforge.net/project/s-nail/s-nail-14_6.tar.gz>
    MD5 = 0109e91496f704e44865bef9bd83d133
    SHA1 = 2315d0c8a28649be72da3df5a88daef6e35b74fe
    SHA256 = a02e66d54d717380a4f1a6c29d7608204798225ed46b235bd49f90ecb0b29bdc

  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.1:

  # 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.1, 2014-02-22
-------------------

Thanks to Andy Switala (andy DOT switala AT gmail DOT com).
And thanks to all package maintainers for their stamina.

- The INSTALL file now has a `Current codebase state' section.
  (Also on my webpage.)

- 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]

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

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
S-nail-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/s-nail-users

Reply via email to