"Completely" rework *expandaddr*..
commit8668be3dd4a03d0b422114f2a8231549d1ae993a
authorSteffen (Daode) Nurpmeso <sdaoden@users.sf.net>
Fri, 31 Jul 2015 20:37:20 +0000 (31 22:37 +0200)
committerSteffen (Daode) Nurpmeso <sdaoden@users.sf.net>
Fri, 31 Jul 2015 20:37:23 +0000 (31 22:37 +0200)
tree5f6d802174fbb93469f6f993f21b289187321a2d
parent709dadd001ae5e1a7d915ceb1ea39c9e8e1758ce
"Completely" rework *expandaddr*..

what we really want is total control of what we allow and what
not, so do so via [+-]{all,file,pipe,name,addr}, keep "restrict"
but let it allow together with "fail", and let it actually mean
"restrict,-all,+name,+addr".

Also the address tests were much too complicated, instead catch
the "restrict" OPT_INTERACTIVE|OPT_TILDE_FLAG checks already in
expandaddr_to_eaf() and adjust the test bits accordingly.. :p

TODO The codebase is still braindead: we should setup and check stuff
TODO once, eventually collect(), do minimal checking there and only on
TODO stuff that hasn't been checked yet (!), then eventually perform
TODO a deep inspection thereafter.
TODO We should in interactive mode give the user an option when
TODO something is not right with a just edited address.
TODO We should set something that can be catched from batch mode
TODO for the non-interactive case.
TODO v15 and above have work to do.

For now no longer loose *expandaddr* caused addressee "losses"
during collect() -- thus -t -- but remember them and fail later
on.  Take into account that aliases are not yet expanded when we
do those checkings, so ensure these survive the address checks
during compose mode.
collect.c
head.c
nail.1
nail.h
nailfuns.h
nam_a_grp.c
sendout.c