Heya list,

..chirps sweet sixteen, sweetly wrapped in memory bound canaries.
I would kindly ask all port maintainers which have not yet updated
to v14.5 to directly go to v14.5.2.  It would be very kind if
i could remove the old embarrassing versions from the server as
soon as possible -- thank you.

The release tarballs can be downloaded (e.g., via 'curl -vv -L')
from, and their checksums are:

    MD5 = e76ea092d8dc26f6ad5cb1ab0deda8e8
    SHA1 = 26ad43f5f41b429d5f13a3ce73a3dff75325950c
    SHA256 = 4094252324df509931041de07c5f84689316910105b0fddc03354c0b70768aef

    MD5 = 39771209e4352c654dfa70791cfbd84a
    SHA1 = eb1999926ca749c8f78cc239ddc30a16313526e1
    SHA256 = ee347c71f902c0a65bd9185b0eb348f1c7126f58d857c7deed3b3e29953145ab

  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.4.5 and v14.5.2:

  # 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}";

v14.5.2, 2014-01-18

Thanks to Ypnose, Sunil Nimmagadda and Gavin Troy.
Gavin Troy *really* deserves special thanks for facing [next]!
And i want to dedicate the new coloured message display functionality
to John Dodson and Ypnose.  Thank you.
(And best wishes to beautiful Australia!)

ChangeLog (packager-affine)

- All utilities can now be overwritten during configuration so that
  their values are fixated in the generated makefile (`mk.mk').
  I.e., talking about MAKE=, STRIP=, awk=, cat=, chmod=, cp=, cmp=,
  grep=, mkdir=, mv=, tee=.
  rm= and sed= have to be overwritten from the command line, they're
  needed before `conf.rc' is read.
  [5c03347, 072ec65, 39a00ab, 23a1245, ?]

- The release tarball is now also available in a xz(1) version.

- New configuration option: WANT_COLOUR, by default enabled.

- 'make test' should now really work, even if the running user has
  a mailbox with content. [f223a91]

- WANT_AUTOCC is now by default enabled, so as for normal users which
  don't have the need to embed into a defined packaging environment.

- Installation no longer strip(1)s away debug symbols if WANT_DEBUG was
  enabled. [6d075c6]
  (Gavin Troy)


- Fixes to some bugs that are present since the first cvs(1) commit of
  Heirloom mailx(1); includes that *ssl-key-user@host* should now work.
  [4405a2cc, 9770c26f, 692976b9]

- Some off-by-XY fixes, thanks to the debug memory canaries.
  [19b2b0d, 202506e, 43df6e4]

- Fixes for (other) stupidisms (of mine): [1c2161f]

  This includes true implementation of in-memory history limit for the
  NCL, which was the final and real solution to a segmentation fault
  that Gavin Troy had to deal with on [next]. [1089f2b]
  (Gavin Troy)

- For completeness: new command `var-inspect' shows information about
  all given options.  Mostly ment for implementing future tests.

- The `pipe' command no longer embeds message information into the
  data passed through to the command (when *piperaw* is set).
  [ef5ecc6 (part of topic/colour)]

- Simple coloured message (header) display is now possible.  Please
  read the new manual section "Coloured message display", use
  *colour-disable* to turn it off.  (It is enabled by default if it
  knows the terminal is capable and, if used, the pager can, too.  Note
  we now set LESS=FRXi when starting PAGER and no LESS= is in the

  Dedicated to John Dodson and Ypnose.
  [topic/colour, c6e84c7]

- The `if', `else', `endif' syntax has been extended.
  You can now "if 0" (never), "if 1" (always), "if $OPTION" (boolean
  check for OPTION) and "if $OPTION == 'VALUE'" as well as "if $OPTION
  != 'VALUE'".  Unfortunately it is still not possible to use
  conditionals inside conditionals. [0fb2ae7]

- -# now also sets MBOX=/dev/null. [4be2f1e]

- The NCL command line editor now supports cursor keys when the terminal
  produces xterm(1)-compatible keycodes ('ESC' + '[' + [DACB] for left,
  up, right and down, respectively).  What a thrill, yay!!! [0cbf672]

- New (optional) command: `history': show or clear command line history,
  or select a specific command line from in there.
  History works a bit different now, and should no longer include
  command lines which include specific message numbers; more to come.
  [59c6195, topic/hist2]

  I plan to join all the history management and use only the one that is
  part of NCL now, hooking it into editline(3) and readline(3).  That
  would shrink tty.c a bit and also introduce duplicate elimination for

- The new ~u and ~U tilde escapes work like ~f and ~m, respectively, but
  don't include any header lines.  Inspired by a patch from
  Sunil Nimmagadda on openbsd-tech@.  [c37b8b3]

- The `|' command should work again -- it has stopped working on
  2013-09-09 when i've accidentally changed the command name from `|' to
  ` | '. [5a8378d]
  (Gavin Troy)

- As a rather careless last-minute change i've added string relaxation
  to threaded and sorted display, but it's really one more step towards
  lowering memory pressure -- i couldn't resist [a9b67e9] after seeing
    ?0[ /Users/steffen/src/nail.git/t.mbox]? sst
      Buffer allocs ever/max simultan. : 14/14
      Overall alloc count/bytes        : 17165/881088
      Cycle maximums: alloc count/bytes: 16906/876984+0
    ?0[ /Users/steffen/src/nail.git/t.mbox]? sst
      Buffer allocs ever/max simultan. : 0/0
      Overall alloc count/bytes        : 16515/841816
      Cycle maximums: alloc count/bytes: 16256/837712+829560

ChangeLog (purely technical)

- We now have debug canaries for all memory sources now that [8419d44]
  added them to the "string dope".

- The most work has been done on our value system, which manages the
  binary and value options, like *folder* etc.
  It is now based on enumerations, i.e., constant integers, not on
  strings.  This of course only relates to non-dynamic options.
  Anyway, this saves us key hashing and allows more compact data
  representation in general (see the new header `okeys.h' for more).

v14.5.1, 2013-12-27

ChangeLog (packager-affine)

- The build system *only* uses the automatically detected $CFLAGS and
  $LDFLAGS if WANT_AUTOCC=1.  I.e., even unset or empty $CFLAGS and
  $LDFLAGS are not touched until then.
  (We do however still set $CC if that is unset or empty or set to the
  plain string "cc".) [856625f6]


- Fixed segmentation faults / bus errors when setting *nofolder*
  / *line-editor-cursor-right* to the null string (only with WANT_NCL),
  respectively. [d1f1a19b, 21e5c285, 9f6ff25d]

- *prompt* handling is now really POSIX compliant (thus no prompting
  occurs not only for 'set noprompt', but also for setting *prompt* to
  the null string).

  This was indeed a rather large changeset that also introduced the new
  *prompt* escape character \&, which expands to `?' by default and to
  `&' if *bsdcompat* is set.

  Like that we now can simply assign "\& " to *prompt* at program
  startup, which (a) allows to do 'set noprompt' without error (once)
  and (b) allows for POSIX compliance in respect to prompt handling
  without any complicated conditional code, but (c) gives us the
  opportunity to continue to support BSD prompts.

- For completeness: new command: `features'.  (Rather useful for being
  able to implement more tests in the future, and act according to what
  is really compiled into the tested binary.

- The `-#' command line option now also sets *quiet* by itself.

- nail.1: a newly introduced empty line in the manual produced error
  messages on some systems.  Fixed.

- The return value of the `mimetypes' command has been reversed and
  should now be fixed. [acf56ac52]

- In threaded display the Subject: followup suppression no longer
  takes into account invisible messages.
  Also, rudely hack in a messages-already-written-in-this-round counter,
  so that the followup suppression knows when "the top of the screen" is
  reached, which (seems to) help(s) against missing subjects up there as
  well as after a `newmail'. [topic/subject]

- Added a WANT_REGEX=1 toggle in `conf.rc'.
  When we find regular expressions then a new regex-enabled IMAP-style
  search is available (see the manual for more) [1ec8fe68]

    ? f (/or subject ^\[S-nail (subject ^\[nail-devel))
    ? f (/subject ^\[S-nail) (/subject ^\[nail-devel)
    ? f (/subject "^\\[(S-nail|nail-devel)")

  I'm looking forward for being able to add another, simplified, syntax.

ChangeLog (purely technical)

- The cc-test.sh has seen some tweaks, for easier future extension, and
  for adding a test for [d1f1a19]. [several, mentioned: 21e5c285]

- On systems without a real wordexp(3) implementations deadlocks could
  occur because we sometimes hold_all_sigs() to avoid longjmp(3)s away
  (and will do so for quite some time, still), and that resulted in the
  SIGCHLD that reported the exit of the started subshell to be blocked,
  too (e.g., after '? *.h<Tab>': endless hang).  Fixed.

v14.5, 2013-12-19

Many thanks: Gaetan Bisson, William Yodlowsky, Gavin Troy,
Thomas (wasd AT gmx DOT net), Ypnose.
And Gavin Troy definetely deserves a very special credit.
But thank you all, and very much indeed!

ChangeLog (packager-affine)

- The `test' make target has been fixed. [f0991e14]
  (Gaetan Bisson)

- It is possible to gain a different kind of make(1) verbosity by
  using a VERBOSE=1 command line argument (this knob is not taken into
  account when deciding wether a rebuild is needed). [498e4ad0]
  (William Yodlowsky)

- On Crux 3 Linux and OpenBSD the readline(3) and editline(3),
  respectively, libraries will now be found when desired. [a7d1aa78]
  (William Yodlowsky)

- WANT_LINE_EDITOR has been renamed to WANT_NCL, *plus*.
  So now there are WANT_READLINE, WANT_EDITLINE and WANT_NLC, each of
  them can be set individually, and they are tested in the shown order.
  Also, WANT_TABEXPAND and WANT_HISTORY have been introduced and can be
  used to fine-tune functionality. [ae4e01e1, b2635feb, 9742bf40]

  (While here, i've fixed WANT_TABEXPAND code so that it is more
  sensitive to line excess; on Linux etc., where MAX_INPUT is 255,
  strange behaviour could be seen because we didn't take into account
  the length of the prompt at all.  The NCL is assumed to have only
  one remaining, but unfixable problem: backspace often is incapable
  to cross visual line boundaries; use ^A/^E + ^L, then. [e832c04a]

  Also, cursor (now ^B and ^F) and history movement (now ^P and ^N) of
  the NCL have been changed. [d7d928da])

- WANT_QUOTE_FOLD is now enabled by default.  And WANT_ASSERTS has been
  renamed to WANT_DEBUG. [1e10da1f]

- The build system has seen yet another overhaul in general.  CC, CFLAGS
  and LDFLAGS plus are now tracked and changes will force rebuilds.
  The new WANT_AUTOCC option can be used to let the build system figure
  out a compiler and choose known-to-work flags.  Use the new ADDCFLAGS=
  and ADDLDFLAGS= command line arguments to add your specific flags on
  top of those -- the final CFLAGS etc. are what is change-tracked.

  This rather massive internal rework revealed that old Bourne shells
  were yet not supported by the new build system, and so did testing
  that UnixWare installation was yet impossible due to tool
  incompatibility. [75c4b74e]

- The new WANT_AMALGAMATION option will force compilation of all the
  sources in a single compilation unit.  This requires a rather large
  amount of memory, but may produce a more compact, maybe more optimized
  binary.  (Implementing this revealed quite some bugs which could
  therefore be fixed.) [topic/amalgam]

- `nail.rc' has been pimped a bit (mostly comments, but
  *mime-counter-evidence* is now always set). [e3094ba7]

   That changeset was however buggy. [f3dcb46]
   (Gavin Troy)

- We no longer use install(1) for `install'ation make rules. [80b02cd9]


- Even '$ s-nail & fg $!' will now work with the NCL. [2a8b5c55]

- Several off-by-one (off-by-two) fixes. [32ce9836, 71e6d013, f139dc36]
  (Gavin Troy, Thomas)

- Setting *noprompt* now prevents prompting, as per POSIX. [ecefaf63]

- *prompt*: new \$ (exit status of last command) and \@ (name of
  currently active mailbox) escape sequences. [6f652046]

- One may now omit the space in '? unc' ('?unc') [05fcb383]

- New commands: `ghost' and `unghost' define command aliases (since
  `alias' is taken for a different purpose) [topic/commands]

    ? ghost ps '!ps axu'
    ? ps |grep nail

- There is now a pseudo account `null' (case-insensitive).
  Also a new `localopts' command exists; when used from within an
  `account' block, options changed will be reverted back to its former
  value when the account is left (e.g. by switching to `null'):

    define sdn_ {
       alternates sdao...@users.sf.net sdao...@users.sourceforge.net \
          sdao...@googlemail.com sdao...@gmail.com
       set Sign="\n--steffen\nForza Figa!" sign="\n--steffen"
       set smtp=smtp.gmail.com smtp-auth=plain smtp-use-starttls
    account sdn_gm {
       localopts 1
       call sdn_
       set from="Steffen \"Daode\" Nurpmeso <sdao...@gmail.com>"
    account sdn_sf {
       localopts 1
       call sdn_
       set from="Steffen \"Daode\" Nurpmeso <sdao...@users.sf.net>"

  E.g., after

    ? acc sdn_gm
    ? acc null

  neither of *Sign*, *sign*, *smtp** nor *from* should be set.
  Please see the manual for more.
  TODO - neither command-ghosts nor alternates etc. are yet tracked
  TODO - we should have a boolify() so as to say 'localopts yes' etc.

- New command: `cwd' (print current working directory).
  Also fixing the `chdir' return value. [eff4397c]

- The *ssl-method* now allows explicit setting of 'tls.1.1' and
  'tls1.2' values. [c66b4196]

- When sending to display, be aware that filenames in MIME parts may of
  course be MIME-encoded! [1454be03]

- *hostname* is now honoured even if *smtp* is not set.  (We always
  supported *from*, so why not *hostname*?)

- The `-u user' option now acts identically to setting the $USER
  environment variable and both now tend to mean something like
  "impersonate as user in some aspects".  Note that we have always used
  the latter in one or the other way, and `-u user' always ment more
  than just "open mailbox of user", so i think this change sharpens the
  edge in the right direction. [09632731]

- Filename argument quoting has been tweaked for (some) function(s which
  take a filename argument last).  The following snippet as reported by
  Gavin Troy should work now: [2bb9b80e]

    ? mv +inbox.Junk\ Mail

- The GNU implementation of wordexp(3) is also (i've added a workaround
  for the very same bug for Mac OS X in S-nail v14.3 [63273772]) buggy,
   which causes segmentation faults when expansions failed (`fi &VOID').
  (Gavin Troy)

- The `fi' command no longer uses the (possibly truncated) display
  version of a filename, but the full path. [5cd85b07]

ChangeLog (purely technical)

- Large rework of internal structure: bundle inclusion of most of the
  external and the content of most of the internal #include files in the
  new nail.h.  If that would have been done very first bugs like the
  infamous MAXPATHLEN bug as reported by Paul Vojta (see v14.4.2) would
  never have occurred. [21f3155b]

- Support for -fstrict-overflow cc(1) flags. [topic/strict-overflow]

- Fixed the quotation filter which yet allocated memory even if not
  used. [c98cdaf5]

- String relaxation reduces memory pressure rather drastically when
  working with many (especially MIME) mails at a time, e.g., when
  writing a modified mailbox.  Before all messages of a mailbox had to
  be worked without releasing any memory in between, now we give back
  memory (to our pool, not the system) after each and every message.

- The other memory source now uses bound canaries, which also found some
  errors. [3d9fe741]

- We now use the EL_PROMPT_ESC editline(3) mode for prompting, which
  should offer the possibility to use coloured prompts etc. with
  (even those) editline(3) (versions which do offer it -- older versions
  should just do fine by themselves).
  S-nail uses the special trigger control character \1. [ea30d818]

  Note however that all tested editline(3) versions are buggy and
  either don't get it right (`\1COLOR-ON\1stuff\1COLOR-OFF\1') or are
  incapable of proper repainting (`\1COLOR-ONstuffCOLOR-OFF\1').

- We now use the MD5 digest code from the OpenSSL library if that is
  usable. [893b16c0]


CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
S-nail-users mailing list

Reply via email to