####################                             ######################
####################   NOTES FOR BETA TESTERS    ######################
####################                             ######################

NOTE: The beta notes are in backwards order, so if you are a new
	tester, please page down to the 'beta 1-7' note first.

#######################################################################
####################       final release         ######################
#######################################################################

A few new features. 

The mf(headlist-sort) setting now supports multiple key sorting. Just
separate with spaces. Ex: set mf(headlist-sort) {fullname subject}

New mf(disp-font-default) and mf(disp-font-fixed) settings for the
font to use in viewer and compose when not showing MIME. These are
regular X fonts settings instead of the family/size spec used by the
mime font settings.

Xterm-piping is now supported from the MailCompose window. If the file
%F.out exists when the command is done, the contents of the pipe
(xselection, mesg, text widget) are replace with the contents of the
file. See the example.tkmailrc file to see how to use this feature 
with PGP.

New hook, mfv:bind-hook, that can be defined in ~/.tkmailrc to make
global bindings after tkmail has setup its default ones.

See the ChangeLog file for other minor changes and bug fixes.

#######################################################################
####################         beta 18             ######################
#######################################################################

Mostly various bug fixes. One change that is an IMCOMPATIBILITY with
beta17 is the handling of pipe and print commands. You must now use
Bourne shell quoting rules. Therefore were you might have had
	enscript -q {-b%S}
you now should use
	enscript -q -b"%S"

TkMail will backslash escape for you any double quotes and dollar 
signs appearing in the %S, %W, %D substitutions.

There is a new pipe option to do the pipe inside an xterm allowing
interactive piping (such as needed with PGP or Metamail).

The {TCL Eval X Sel} is now done at global scope (#0 level).

The Replace feature in the search dialog should now work for Compose.

#######################################################################
####################         beta 17             ######################
#######################################################################

Extensive changes to signal handling code. Please test killing tkmail
in various ways (expect SIGKILL) to see if it can handle it properly.

Installation configuration is now solely done in the Makefile, though
some code editing in the tkmail file may be necessary to handle multi-
platform setups.

Forwards and current message insertion in the compose window will 
attach the message as a MIME message/rfc822 subpart if mime parsing
is turned on.

New User category in the Options Editor that allows one to edit their
mfuser() settings inside TkMail. This has made necessary that mfuser()
settings be placed in the same place as mf() settings in the
~/.tkmailrc file so that a save opertation knows how to write them.

#######################################################################
####################         beta 16             ######################
#######################################################################

See the ChangeLog for all the bug fixes.

New setting mf(insert-always-sign) to say whether you want tkmail to
sign all messages that haven't already been signed at send time.

Pressing mouse button 3 on the "Sign" button in the compose window
will signal to tkmail that the message has been signed without
actually inserting a signature.

#######################################################################
####################         beta 15             ######################
#######################################################################

As always, several bug fixes. The big change is the replacement of the
following options

	  mf(compose-fcc-list)	     \
	  mf(compose-fcc-bysender)    \____  mf(compose-fcc-folder)
	  mf(compose-fcc-default)     /
	  mf(compose-fcc-directory)  /

	  mf(menu-sender-full)   \___  mf(mail-archive-folder)
	  mf(menu-sender-list)   /

where mf(compose-fcc-folder) / mf(mail-arhcive-folder) are normally
just the default folders for saving outgoing / incoming messages.
However, if the first character of this settings is '@', the rest of
the option is taken as the name of a procedure to call which will
return the folder name to use. See the help.txt file and the example
~/.tkmailrc file for more information.

The mf(insert-signature) supports a similar structure where the 
returned string is the file to insert as a signature. Allows one
to have local and remote signature files.

IMPORTANT: because of changes in the printing code, edits in the
message window will not be propagates in the Print Mesg.

Other changes:

* new Pipe Mesg menu item. Pipes can take the same printf-style
  placeholders as Print.

* once a composition is signed, the "Sign" button disappears

* if a MIME composiiton is started, a "Sign" will append the 
  signature as a valid MIME text/plain part

* moved New... from File menut to Viewer menu to avoid confusion
  on what it does

* new mfv:display-mesg-hook which will be called when ever a message
  is displayed in viewer. Passed two arguments: the pathname of the
  viewer and the pathname of the text widget containing the message

* using mouse button 3 on the compose entry push buttons will clear
  the associated entry

#######################################################################
####################         beta 14             ######################
#######################################################################

Again mostly bug fixes. The biggest change is that now Perl
passes message text and large summary lits through a temporary file. 

Here are some highlights:

* MIME richtext support

* new mf(headlist-reverse-moveup) settings which should be set
	to 0 for users who want to read mail in reverse
	chronological order

* mf(bind-alt-key) will now take a simple modifier like "Alt"
	as well as a complete keyseq like "<Control-C>"
	Be careful!

* <Shift-1> on a MIME item button should force a request to
	save to file no matter what the external viewer setting


#######################################################################
####################         beta 13             ######################
#######################################################################

Pretty much only bug fixes. Here are the few additions:

+ Ability to toggle reverse video of mesg and compose text widgets

+ Option menu reorganized so it is clear what is a viewer specific
  option and thus not saved between sessions

+ New mf(disp-default-fixed) settings so that fixed font is toggled
  on by default

+ New mf(option-editor-geometry) settings to one can size the thing
  so that children fit properly according for their settings. The
  default is to have no set geometry so that each category resizes
  the window to itself. Annoying but I can't think of a better way at
  this point.

+ New stack trace ability in tkmail error dialogs.

Bug fixes for printing, scrollbars, auto-alt-editor, Alt-F

As far as I know, all non-MIME bugs except the freezing up on long
mail messages (for some peoplem, never happens to me) should be 
fixed now. If not, please mail me a new bug report.

Some users have expressed dissatisfaction with the way the 
mf(mime-font-*) settings prevent them from getting any font they
want for non-MIME messages. I will probably change the way this works
to accomodate them.

Another user complained that Alt-S is a bad binding for Send in the
compose window as he accidently presses it a lot trying to save the
message to a file. I will probably add the ability to save to file
to the compose widget with the Alt-S binding and give Send the Alt-T
binding for transmit for non-emacs binders and C-c C-c for emacs binders.

#######################################################################
####################         beta 12             ######################
#######################################################################

It would seem that for most systems, the normal X window exit of
exiting the last application run from ~/.xinitrc, usually the window
manager causes a kill -9 to be sent to all X apps still running which
I cannot capture. The only options seem to be to remember to quit
TkMail yourself before quiting X windows or to use a program like
xmexit. I don't like this situation so if anyone has a suggestion,
I would like to hear it.

The biggest change this version is a totally new options editor.
Check it out and tell me what you think.

New option mf(compose-fcc-directory) which, if not empty, will be used
instead of mf(mail-directory) for the default root of FCC files.
Also, if mf(compose-fcc-default) is set to some value and the sendto
address is not found in either the mf(menu-sender-list) or
mf(compose-fcc-list), then mf(compose-fcc-default) will be used
instead of the sendto address for FCC: file

Mouse B1 on the "Insert Mesg" button will insert most recently viewed
message. B3 now insert the original message replied to.

Rebuilding menus will now take into account any changes to the
mf(menu-quick-send) setting. If mf(menu-quick-send) is set to
@aliases, then your aliases will be used to build the menu.

Autosave should be smart enough now to only save when needed.

Keeps track of last message read when returning to a folder in the
same session.

Support for x-compress64 encoding in reading MIME messages.

And other various bug fixes.

For beta 13, I will mostly be working on MIME issues and possibly
compressed folder support.

#######################################################################
####################         beta 11             ######################
#######################################################################

A quick run down of major changes:

The ability to save a folder in sorted order. Since I have also added
the ability to sort on time received, one will be able to regain
"Normal" order in folders that have gotten out of sync.

The mf() sorting settings now only serve as the default sort for new
viewers.  The items for sorting in the Options menu now affect only
that viewer.

The reverse option is now also viewer specific but does not affect the
way a folder is saved when "Save Sorted" is chosen.

The following settings have been renamed:
  mf(mail-record)         -> mf(compose-fcc-default)        
  mf(mail-record-swap)    -> mf(compose-fcc-swap)   
  mf(mail-record-forward) -> mf(compose-fcc-forward)

The behavior of compose-fcc-list and menu-sender-list is "fixed" so
that folder paths in the list without a leading "/" or "./" are
considered to be relative to the mail-directory.

The new option mf(compose-fcc-bysender) has been added which
will set the FCC file in the same way as the <Sender> file for
the move and copy menus. This will also use the menu-sender-list
so there will be no need to duplicate menu-sender-list in 
compose-fcc-list if you use this new setting.

Viewers now have a "paned window" feature for easier resizing of the
headlist box.

The setting mail-alias-case controls whether aliases are case
sensitive or not.

Emacs-style autosaving is also implemented. Default is 10 minutes
between saves.

The first argument to the send hook is now the text widget containing
the text that will sent to sendmail. It is no longer the compose
window toplevel. This was done to make it easier for me to send messages
without destroying the compose window (press mouse button 3 on the 
Send button)

Give tkmail the '-debug' command line option to get it to print
debugging messages to stderr.

#######################################################################
####################         beta 10             ######################
#######################################################################

Basic MIME composition is here!

I do mean basic.  From the compose window's File menu, select the
MIME Attach item.  This will popup a dialog for you to enter the
MIME specification of what you want to attach.  This will help you
in building a proper MIME message with the appropriate headers.
You are still responsible for filling in the body of the attachment
unless it is just a file in which case you can specify it in the
popup. 

Embedding multipart types inside the overall multipart/mixed type is
not supported.  Splitting of inclusions into message/partials is not
yet supported either.  However, for attaching a image file or octet-
stream, it is very easy to use, I believe.

If anyone has ideas on how to do the user interface to handing 
nested multiparts, I would like to know.

By demand of one of my coworkers but against my better judgement,
I have extensively reworked the incorporation system so as to support
mail messages that get appended to open folders by means unknown
to tkmail such as elm's filter. Theoretically it should work fine,
though there is a small window when closing a folder that could 
case mail to get lost.  You probably couldn't create this situation
though yourself in a hundred tries though.

Previously, have the CC: field in compose set to be shown implied
a Reply All (i.e. the CC: field would be filled with additional 
addresses).  Since there is now a Reply All command, I have removed
this behavior.  Make a bit more since now. Complaints?

Assigning '@prompt' as an external viewer in the mime-external-viewers 
setting will bring forth a prompt for a file to save the contents to.
I believe this makes it more readable.

Concerning the hanging on large folder issue: I have tried opening tkmail
on a 5MB+ folder (210 messages) with no problem. Took about twice as long
as Mail itself which I think is pretty code for uncompiled code. I might
be forced into saying it a system problem for those experiencing hangs.
Frustrating since getting rid of system dependent problem was the major
reason for me switching to Perl.  It might be still be something in the
files themselves. I might have to ask those experiencing hangs to make
the folders available to me to try out.

Please get me bug report ASAP as I plan to make beta 11 a more general
release I will announce on comp.lang.tcl and comp.lang.perl and would
like it to be as stable as possible.

#######################################################################
####################         beta 9              ######################
#######################################################################

Mostly bug fixes to beta 8 to make this the truly stable beta. However,
I did extensive work with key bindings so there could easily be some
bugs introduced there.

IMPORTANT!!! 
    - The meaning of mf(menu-key) has been replaced with mf(bind-alt-key).
      It's default value is <Control-c>. See below for use.
    - One must now set mf(bind-use-meta) to zero prevent bindings
      to the Meta key (ATTENTION FOREIGN KEYBOARD USERS!)

The meaning of the mf(bind-alt-key) depends on the setting of the
mf(bind-emacs) and mf(bind-use-meta) settings.
     1) if you have mf(bind-emacs) set to 0 and mf(bind-use-meta) set
	to 1, then the mf(bind-alt-key) is not used. Menu accelerators
	are accessed with the Control key and dialog buttons with
	the Meta key
     2) if you have mf(bind-emacs) set to 1 then both menu accelerators
	and dialog buttons are accessed using mf(bind-alt-key) as a
	prefix key
     3) if you have mf(bind-emacs) set to 0 and mf(bind-use-meta) set
        to zero, then menu accelerators are accessed with the Control
	key and the dialog buttons with the mf(bind-alt-key) prefix

Right now I have to use capital letters in dialogs to advertise
which key to use, however Tk 4.0 will support underlines in buttons.

Non-emacs users now have the following key bindings:
Text and Entry
	Control-x		Cut
	Control-c		Copy
	Control-v		Paste
	Control-<number>	Set repeat for next non-number key
Text Only
	Control-z		Undo
	Control-a		Select All
	Control-f		Search
	Control-g		Search Again
	Control-.		Set Fill Column
	Control-j		Format Paragraph
	Shift-<movement key>	Selection

Obviously, the entry bindings need some work to catch up.
There is no longer a separate tkmail and X selection.

#######################################################################
####################         beta 8              ######################
#######################################################################

I believe this is the most stable beta yet, but if I get several bug reports
to the contrary, expect beta 9 soon.

Most notible new (or renewed) features in beta 8:
	1) ability to compress and uuencode include files in Compose
	2) ability to undelete arbitrary message numbers
	3) mf(mail-auto-incorp) IS BACK!

If you have your mf(mail-mbox) file opened and viewed on your screen,
tkmail will ignore your mf(mail-auto-incorp) and you still must press
the Incorp button.

IMPORTANT IMCOMPATIBILITY CHANGE!!!!
	1) ~/.tkmail renamed to ~/.tkmailrc
	2) hook procedure names changed (see Changelog below)

Some outstanding issues:
	1) tkmail hangs on large folders/messages
	2) tkmail hangs randomly at startup and Perl is alive
	3) tkmail can't handle a filename with XXX characters
	4) MIME reading is not fully tested (I have had few
	      bug reports or feedback on this)

If you are still experiencing (1) or (3), please email me to say so.
Problems (2) and (4) are a mystery to me right now, but if you think
you have any insight, please tell me.

Still to add before official v2.0 release:
	1) MIME composition
	2) PGP
	3) make keybindings sane again (Emacs & Mac-like)
	4) full handling of MIME external messages

My plan right now for keybindings for Emacs binding users
is to map the menu accelerator keys to the Control-C prefix
like an emacs mode to prevent them from interferring with the
normal key bindings. For those who will use Mac-like bindings,
please send me suggestions for how to handle the conflict.

Some other features in the works that might come later:
	1) auto archiving of messages during incorporation due to
	   special matching on headers (a la procmail)
	2) smart highlighting of only special parts of the header
	3) simple interface to customizing button bar (a la Quicken)
	4) smart chosing of FCC entry from To: or Subject: fields
	5) autosave
	6) a true bounce
	7) better citing ( a la SuperCite )
	8) global searches on multiple messages/folders
	9) templates
       10) threading
       11) option to record only select headers of outgoing messages

If you don't see a feature you have requested above, I have probably
forgot it. Email me and I will add it or tell you why I resist doing it.

#######################################################################
####################         beta 1 - 7          ######################
#######################################################################

>>> PERL <<<
The main purpose of the beta release is to get feedback on how the
perl/tcl interaction works.  The BSD Mail program is no longer used
and has been replaced by a combination of Perl and Tcl scripts.  The
main tkmail file is a Perl scripts which forks a Perl and wish
process. The Perl process acts as a Mail server and the wish side as
GUI.  Each processes stdout/stdin is used for communication between
the process so it is very important NOT TO WRITE TO STDOUT in any of
your ~/.tkmailrc files or other sourced scripts. Write to stderr.

>>> FILE LOCKING <<<
Also important is finding the proper way to lock spool files on as
many systems as possible. The default way is to try both using 
flock on the file and to create a $USER.lock file in the spool
directory. Unfortunately, this will not work on most systems since
they either do not support flock or will not allow normal users to
create new files in the spool directory. If your Perl does not
support flock(), you will need to edit the Makefile to set USEFLOCK
to 0. If neither of these methods work to lock your spoolfile (the
make test below tests this), you must use Emacs' movemail or procmail's
lockfile. (NOTE: these programs will only be used with your spoolfile,
not your normal folders)

To use movemail from the Emacs distribution, edit the top of the
maildb.pl file so $usemovemail is set to 1 and $movemail is set to
the path to the movemail executable. Note that on some systems movemail
must be suid root (or mail) and that simply installing emacs doesn't
guarantee this. 

You can also use the lockfile program from procmail. Set the
$uselockfile variable at the top of maildb.pl to 1 and set the
$lockfile variable to the location of the executable. On many systems,
lockfile must also be installed suid root (or mail).

In this release, the debug option is turned on by default. The Perl
side will write all of its debug messages to stderr. The wish side
will write most of its messages to a special Debug window with some
messages going to stderr prefaced by VIEWER.  The Debug window
includes an entry widget for typing in Tcl commands that can be run by
presing the Eval button.  The What? button will print out the last
Tk/Tcl error in the wish interpreter (not tkmail). The Quit button
obviously quits the program.  For bug reports, please send the last
several lines in both the Debug window and stderr.

If the Perl side of things fails early in starting the program, the
wish side can be left running, even if no window ever shows up.
Therefore, after every error, do a ps to check that both processes
have been killed.

As far as actual use of the program, there are no significant
differences to TkMail v1.6p5. In fact, some features of the later are
not available yet.  There are two new settings: mf(headlist-format)
and mf(header-retain).  The mf(mail-cmd) setting is of course now
gone.  Once I have established that this Perl/Tcl system is going to
work, I will start adding MIME, PGP, and a long list of other
features.

Almost forgot. One major new feature is the ability to have more than
one viewer (and thus folder) open at one time using the New menu item.
This opens up a Pandora's box of complications in copying, moving, and
deleting messages to/in open folders. Please test this with vigor.

All beta users should JOIN THE MAILING LIST tkmail-dev. To do this,
send a message to

	   listserv@mailbox.slac.stanford.edu

in which the first line of the BODY is

	subscribe tkmail-dev <your_address>

Obviously, <your_address> should be replaced with your address.

