Hello s-nail-users,

unfortunately another subminor/update is needed for bugfixing
crashes.  I wished she would have lingered a bit longer, but well.
One day she will.

I'll include some other well-tested changes, and also a (rather
today only) change series for attachment selection+ and character
set iteration fixes.

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_3.tar.xz>
    MD5 = 30b4b7bf3a6c25952013079ca03ca78d
    SHA1 = 2112b07598776d0f608abe2898fb0a3764cdfd27
    SHA256 = d683013207b0581f309d087ce1aab9fe0459738a1c9c985dc6dfc0f0e62c13e6

  <https://downloads.sourceforge.net/project/s-nail/s-nail-14_6_3.tar.gz>
    MD5 = e529caf20c2ad992482a66cce69bd323
    SHA1 = ede73dd3f83a0801c3791c4f36150214c0586c83
    SHA256 = 3fa0b636df160dd6c9681d81484a3403e1f38257296db16c5190f46859ccf40e

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

  # 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.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

------------------------------------------------------------------------------
_______________________________________________
S-nail-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/s-nail-users

Reply via email to