* Addressbook popup gadget is no longer in cyclechain as you can popup the
book with the standard MUI popup key (defaults to ctrl-p) -- I really
would prefer to turn it into a real Popstring gadget, but currently the
hook to open the address book require both global and local info etc.
* Each change of the recipient string will result in an attempt of
completing the address which is in front of the cursor. Earlier e.g.
deleting a character wouldn't.
* The recipient class now has a tag for "allow multiple recipients". This
is enabled for the From and Reply-To strings (which it wasn't earlier).
* The recipient class has a method to resolve the names entered. The
MakeRecipients() function setup a notify on MUIA_String_Acknowledge to
call this method.
* When resolving a list then it will recursively continue to expand
members of this list so one can have a list of lists. Though this is
currently limited to 5 recursions.
* The 'resolve' gadget has been removed (since it happens on return anyway
in the writewindow) and thus the 'focus on return' scheme has been
removed entirely.
* There's now a popup list when YAM attempts to complete what the user is
typing in a recipient string. It contain 3 columns for alias, real name
and address. The entire string of the column which match what the user
is entering is in bold, though limited to SIZE_ADDRESS characters due
to the static display hook buffer. The list is sorted accodring to which
field match and secondly alphabetically.
* Using arrow up/down when the popup list is open immidiately change the
contents of the string gadget and pressing return will act as if the
popup wasn't shown (i.e. it will be interpreted by the gadget, so
MUIA_String_Acknowledge will go high).
* As with the old class one can enter a comma while text is marked (during
a completion) and the comma will be inserted behind the marked text
instead of overwriting it.
* The alias, real name and address stringgadgets of the addressbook (new
user, new list and new group windows) no longer accept comma as a valid
character.
* The stringgadget for entering list members (in the list window of the
addressbook) is now a Recipientstring. It doesn't auto-transform on
return (since often you want the alias in the list, so that a change to
the address of this alias will also affect the list). Also, it currently
lack the addressbook gadget. This is only because I was lazy when I
added it... we could just cut'n'paste the code from MakeRecipient(), but
I want this Recipientstring to instead be a popuplist which handle the
addressbook itself.
* Put the Okay gadget in the (stupid) subject warning requester as default
(didn't I already do that?).
* Trim() now accepts a NULL pointer (returns NULL).
* Added a STR() define to YAM_utilities.h. This transforms a define into a
string. This is useful e.g. if you do sprintf and want to limit the
string length to that of a define. E.g. in the AB_PrettyPrint() function
I do the following:
static TEXT buf[SIZE_REALNAME + SIZE_ADDRESS + 4];
sprintf(buf, "%." STR(SIZE_REALNAME) "s <%." STR(SIZE_ADDRESS) "s>",
e->RealName, e->Address);
* Added DUFF define to smakefile -- I'll soon remove the define, but my
code has made a lot of functions obsolete and I'm going to wait a little
before I start to remove all this code (which is currently marked by an
#ifndef DUFF).

- fixed bug #445715. YAM should now not change the Track Message flag if a
message is going to be edit.
- WR_WriteUserInfo() now takes respect of the alternative selected From:
address of the folder the mail was created in.

* Rewrote the eventhandler of the recipient string. The new code should be
much simpler and thus more transparent.
Some functionality still lack and it needs some finetuning (e.g.
multiple recipient support)...

* Moved the Recipient String class to its own file
(classes/Recipientstring.c) and added a popup window when multiple
candidates exist for address completion. Some functionality is still
pending (you can navigate the list with arrow up/down but return just
does a DisplayBeep()) -- you need to define DUFF for this to work.

- removed possible enforcer hit in YAM_FO.c where the destructor of
the folder listtree called FO_FreeFolder and tried to remove a Object
with a InitChange where this Group doesn`t exists anymore.

- changed addressfield completion accordingly to some discussions on the
mailinglist. if you now press SHIFT+RETURN after entering a string that
matches a addressbook entry to should not complete it with the realname.
Also if you send a mail it will not complete already valid email addresses.

- changed MA_ExamineMail() to only check for uuencoded attachments if the
header itself doesn`t tell us that this mail is a MULTIPART mail.
This should speed up the "update index" as well as the download of mail
a bit.
Also removed the maximum check of the first 30 lines for a UUE check of
a mail.
- added missing status_flags to the Status group of the read window. Now it
should show all statuses accordingly to the message status.
- removed ASLFR_DoSaveMode Tag from ASLRequest call, because this will bring
up an ugly black ASL Requester and we anyway set the "Save" text
explicitly to the requester.

* Fixed some wrong RexxMsg types.
* Enhanced the output of the smake and also did other minor changes
to the smakefile (e.g. cleanall now use clean).
* Re-added Searchwindow.c with uppercase 's' to the repository.
* Added Classes.c,h to the repository, though these files are
auto-generated (so they'll go again when I add the auto-generate tool).
* Enabled Searchwindow.c in smakefile, since it should compile.
* When DEBUG is enabled NewReadArgs.c includes YAM_debug.h.