[comp.sources.x] v08i096: xmail, Patch2, Part01/05

michael@parns.nsc.com (Michael Wagnitz) (08/28/90)

Submitted-by: michael@parns.nsc.com (Michael Wagnitz)
Posting-number: Volume 8, Issue 96
Archive-name: xmail/patch2.01
Patch-To: xmail: Volume 7, Issue 81
Patch-To: xmail: Volume 6, Issues 41-46

The following files constitute the second official set of patches to the
X11 Mail interface program xmail.

Many things were fixed or added, such as keyboard accelerators in the Text
window for most of the command panel button actions, keyboard scroll support
for the text and index windows, cut and paste support for all text entry
windows, re-edit of the new message composition, forking of delivery and edit
operations for speed up and to allow cut and paste from the current message
text, fixes for stalled startups due to environment or .mailrc errors, and
much more.  See the CHANGES document and man page for more complete details.

After unsharing the files you will have a MANIFEST of this patch distribution
and a set of five files named Patch.02[a-e] that must be concatenated into one
patch file (PATCH.02) which is then to be applied to a patchlevel 1 set of
xmail sources using Larry Wall's patch program.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 5)."
# Contents:  MANIFEST Patch.02e
# Wrapped by michael@harley on Mon Aug 27 12:47:25 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(460 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X MANIFEST                   1	This shipping list
X Patch.02a                  3	Part 1 of 5 of patch 2 for xmail
X Patch.02b                  2	Part 2 of 5 of patch 2 for xmail
X Patch.02c                  5	Part 3 of 5 of patch 2 for xmail
X Patch.02d                  4	Part 4 of 5 of patch 2 for xmail
X Patch.02e                  1	Part 5 of 5 of patch 2 for xmail
END_OF_FILE
if test 460 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
if test -f 'Patch.02e' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Patch.02e'\"
else
echo shar: Extracting \"'Patch.02e'\" \(10080 characters\)
sed "s/^X//" >'Patch.02e' <<'END_OF_FILE'
X  other than the intended Berkeley Mail program.
X  .RE
X  .SH "MAIL VARIABLES"
X--- 591,597 ----
X  path of the process (assumed to be at least \*Q/bin /usr/bin /usr/ucb\*U).
X  If need be, the XMAILER
X  environment variable can be used to provide a specific path to the Mail
X! program.  Note: \*(xM may not work correctly with any mail program
X  other than the intended Berkeley Mail program.
X  .RE
X  .SH "MAIL VARIABLES"
X***************
X*** 545,561 ****
X  \fBscreen=\fI<value>\fR
X  For X11 Release 3, the screen limit is 100 headers.  With X11 Release 4, a
X  maximum of 500 mail message headers will be displayed, as required.
X- .TP 3
X- \fBunset\fI <variable>\fR
X- should not be used to control variable settings, as \*(xM ignores any
X- \*Qunset\*U commands it may find.  Use the \fBset no\fI<variable>\fR construct
X- to disable selected variables instead.
X  .RE
X  .SH "CHANGING VARIABLES"
X! \*(xM provides a method of altering the values of three of the Mail
X  environment variables used to control \*(xM (and Mail) operations.
X! The states of \fBalwaysignore, autoprint,\fR and
X! \fBhold\fR can now be \*Qtoggled\*U from a special menu attached to the
X  \fBpreserve\fR command button.
X  .LP
X  Pressing the right mouse button while the
X--- 654,665 ----
X  \fBscreen=\fI<value>\fR
X  For X11 Release 3, the screen limit is 100 headers.  With X11 Release 4, a
X  maximum of 500 mail message headers will be displayed, as required.
X  .RE
X  .SH "CHANGING VARIABLES"
X! \*(xM provides a mechanism for altering the values of four of the Mail
X  environment variables used to control \*(xM (and Mail) operations.
X! The states of \fBalwaysignore, autoprint, hold,\fR and
X! \fBexpert\fR can now be \*Qtoggled\*U from a special menu attached to the
X  \fBpreserve\fR command button.
X  .LP
X  Pressing the right mouse button while the
X***************
X*** 575,581 ****
X  many requests too quickly when using \*(xM.
X  .SH AUTHOR
X  .ce 3
X! Copyright 1989 - \*(nS
X  ALL RIGHTS RESERVED
X  
X  Michael Wagnitz, \*(nS, Santa Clara, CA
X--- 679,685 ----
X  many requests too quickly when using \*(xM.
X  .SH AUTHOR
X  .ce 3
X! Copyright 1989, 1990 - \*(nS
X  ALL RIGHTS RESERVED
X  
X  Michael Wagnitz, \*(nS, Santa Clara, CA
X*** ../v1.1/xmailregex.h	Mon Jun  4 09:48:46 1990
X--- xmailregex.h	Mon Aug 27 11:09:23 1990
X***************
X*** 32,38 ****
X   * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
X   * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
X   * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
X!  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
X   * PERFORMANCE OF THIS SOFTWARE.
X   *
X   * Author:  Michael C. Wagnitz - National Semiconductor Corporation
X--- 32,38 ----
X   * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
X   * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
X   * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
X!  * OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
X   * PERFORMANCE OF THIS SOFTWARE.
X   *
X   * Author:  Michael C. Wagnitz - National Semiconductor Corporation
X***************
X*** 46,52 ****
X  #define	C_DELETE	3
X  #define	C_NEWMAIL	4
X  
X! static PatternRec command_pattern[] = {
X      {"Start", NULL },
X      {"[pPcCsSw] [^\n]+\n\\|-\n\\|hold [^\n]+\n\\|m[^\n]+\n\\|n\n", NULL },
X      {"file[^%]*\n", NULL },
X--- 46,55 ----
X  #define	C_DELETE	3
X  #define	C_NEWMAIL	4
X  
X! #ifndef PARSER
X! extern PatternRec *command_pattern;
X! #else
X!        PatternRec command_pattern[] = {
X      {"Start", NULL },
X      {"[pPcCsSw] [^\n]+\n\\|-\n\\|hold [^\n]+\n\\|m[^\n]+\n\\|n\n", NULL },
X      {"file[^%]*\n", NULL },
X***************
X*** 54,59 ****
X--- 57,63 ----
X      {"file %\n\\|inc\n", NULL },
X      NULL
X  };
X+ #endif
X  
X  #define	O_BELL		0
X  #define	O_EXEC		1
X***************
X*** 60,79 ****
X  #define	O_FILE		2
X  #define	O_PRINT		3
X  
X! static PatternRec output_pattern[] = {
X      { "No \\|At \\|Unknown \\|Referencing \\|Cannot \\|Not \\|New \\|May \\|\
X  \"[^\"]+\" \\[Appended\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" \\[New file\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" No such file or directory\n\\|\
X  \"[^\"]+\" Invalid argument\n\\|\
X  [0-9]+: Inappropriate message\n\\|\
X  [0-9]+: Invalid message number\n\\|\
X  [^:]+: No such file or directory\n\\|\
X  [^:]+: Not a directory\n\\|\
X  [^:]+: not a regular file\n\\|\
X! [^:]+: empty file\n", NULL },
X      { "From \\|Message ", NULL },
X      { "\"[^\"]+\": [0-9]+ message[^\n]+\n\\|[^:]+: [^\n]+\n", NULL },
X      { "Pipe to:[^\n]+\n[^\n]+\n", NULL },
X      NULL 
X  };
X--- 64,92 ----
X  #define	O_FILE		2
X  #define	O_PRINT		3
X  
X! #ifndef PARSER
X! extern PatternRec *output_pattern;
X! #else
X!        PatternRec output_pattern[] = {
X      { "No \\|At \\|Unknown \\|Referencing \\|Cannot \\|Not \\|New \\|May \\|\
X  \"[^\"]+\" \\[Appended\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" \\[New file\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" No such file or directory\n\\|\
X  \"[^\"]+\" Invalid argument\n\\|\
X+ \"[^\"]+\" Permission denied\n\\|\
X  [0-9]+: Inappropriate message\n\\|\
X  [0-9]+: Invalid message number\n\\|\
X  [^:]+: No such file or directory\n\\|\
X  [^:]+: Not a directory\n\\|\
X  [^:]+: not a regular file\n\\|\
X! [^:]+: empty file\n\\|\
X! [^ ]+ unreadable\\|\
X! [^ ]+ not found\\|\
X! [^:]+: [^:]+: Permission denied\\|\
X! [^:]+: Permission denied\n", NULL },
X      { "From \\|Message ", NULL },
X      { "\"[^\"]+\": [0-9]+ message[^\n]+\n\\|[^:]+: [^\n]+\n", NULL },
X      { "Pipe to:[^\n]+\n[^\n]+\n", NULL },
X      NULL 
X  };
X+ #endif
X*** ../v1.1/XMail.ad	Mon Jun  4 09:46:29 1990
X--- XMail.ad	Mon Aug 27 11:09:17 1990
X***************
X*** 3,5 ****
X  #
X! # Do not use full wildcard (*) on the Geometry specification, or it will
X  # force all popups to initially anchor with those same coordinates.
X--- 3,5 ----
X  #
X! # Do not use full wildcard (*) on the geometry specification, or it will
X  # force all popups to initially anchor with those same coordinates.
X***************
X*** 6,56 ****
X  #
X! *Autograph.background:		cyan
X! *background:			yellow
X! *borderColor:			brown
X! *Cancel.background:		white
X! *Cancel.foreground:		red
X! *Cancel.borderColor:		red
X! *Cancel,.background:		white
X! *Cancel,.foreground:		magenta
X! *Cancel,.borderColor:		magenta
X! *Cc*background:			cyan
X! *Copy.foreground:		blue
X! *commandPanel.background:	goldenrod
X! *copy.background:		cyan
X! *Deliver.background:		green
X! *Deliver.foreground:		brown
X! *Deliver.borderColor:		brown
X! *delete.foreground:		red
X! *delete.background:		white
X! *exit.foreground:		blue
X! *fileWindow*background:		cyan
X! *Folder.background:		cyan
X! *foreground:			brown
X! *forward.foreground:		green3
X! *full.foreground:		red
X! *icon*background:		gold
X! *icon*foreground:		brown
X! *inc.background:		cyan
X! *indexWindow*background:	LightGoldenrod
X! *list.background:		tan
X! *logo.background:		blue
X! *logo.foreground:		white
X! *menu.background:		tan
X! *Newmail.foreground:		blue
X! *next.foreground:		green3
X! *previous.foreground:		blue
X! *quit.foreground:		red
X! *quit.background:		white
X! *replyall.background:		green
X! *Save.foreground:		blue
X! *save.background:		cyan
X! *statusWindow.background:	brown
X! *statusWindow.foreground:	yellow
X! *Subject*background:		cyan
X! *To*background:			cyan
X! *textWindow*background:		LightGoldenrod
X! *titleBar.background:		brown
X! *titleBar.foreground:		yellow
X! *undelete.foreground:		green3
X! *write.foreground:		green3
X! *Write.foreground:		red
X--- 6,84 ----
X  #
X! # colors utilized in this application defaults file:
X! #
X! # ff0000 - red		ffff00 - yellow		ffffff - white
X! # a52a2a - brown	00ffff - cyan		2e8b57 - seagreen
X! # ff00ff - magenta	0000ff - blue		00ff00 - green
X! # daa520 - goldenrod	eedd82 - lightgoldenrod	00cd00 - green3
X! # d2b48c - tan		ffd700 - gold
X! #
X! #.geometry:			+121+0
X! #*iconGeometry:			+826+0
X! #
X! *Autograph.background:		#00ffff
X! *aliasList*Background:		#ffff00
X! *alwaysignore*foreground:	#2e8b57
X! *noalwaysignore*foreground:	#ff0000
X! *autoprint*foreground:		#2e8b57
X! *noautoprint*foreground:	#ff0000
X! *background:			#ffff00
X! *borderColor:			#a52a2a
X! *Bcc.background:		#00ffff
X! *Bcc*AsciiSink*Background:	#00ffff
X! *Cancel.background:		#ffffff
X! *Cancel.foreground:		#ff0000
X! *Cancel.borderColor:		#ff0000
X! *Cancel,.background:		#ffffff
X! *Cancel,.foreground:		#ff00ff
X! *Cancel,.borderColor:		#ff00ff
X! *Cc.background:			#00ffff
X! *Cc*AsciiSink*Background:	#00ffff
X! *Copy.foreground:		#0000ff
X! *commandPanel.background:	#daa520
X! *copy.background:		#00ffff
X! *Deliver.background:		#00ff00
X! *Deliver.foreground:		#a52a2a
X! *Deliver.borderColor:		#a52a2a
X! *delete.foreground:		#ff0000
X! *delete.background:		#ffffff
X! *Drop.foreground:		#ff0000
X! *exit.foreground:		#0000ff
X! *expert*foreground:		#2e8b57
X! *noexpert*foreground:		#ff0000
X! *font:                          -adobe-courier-medium-r-normal--14-*
X! *Folder.background:		#00ffff
X! *fileWindow*background:		#00ffff
X! *foreground:			#a52a2a
X! *forward.foreground:		#00cd00
X! *full.foreground:		#ff0000
X! *helpFont:                      -adobe-courier-bold-r-normal--14-*
X! *hold*foreground:		#2e8b57
X! *nohold*foreground:		#ff0000
X! *icon*background:		#ffd700
X! *icon*foreground:		#a52a2a
X! *inc.background:		#00ffff
X! *indexWindow*background:	#eedd82
X! *list.background:		#d2b48c
X! *logo.background:		#0000ff
X! *logo.foreground:		#ffffff
X! *menu.background:		#d2b48c
X! *Newmail.foreground:		#0000ff
X! *next.foreground:		#00cd00
X! *previous.foreground:		#0000ff
X! *quit.foreground:		#ff0000
X! *quit.background:		#ffffff
X! *replyall.background:		#00ff00
X! *save.background:		#00ffff
X! *Save.foreground:		#0000ff
X! *statusWindow.background:	#a52a2a
X! *statusWindow.foreground:	#ffff00
X! *Subject.background:		#00ffff
X! *Subject*AsciiSink*Background:	#00ffff
X! *textWindow*background:		#eedd82
X! *titleBar.background:		#a52a2a
X! *titleBar.foreground:		#ffff00
X! *To.Background:			#00ffff
X! *To*AsciiSink*Background:	#00ffff
X! *undelete.foreground:		#00cd00
X! *write.foreground:		#00cd00
X! *Write.foreground:		#ff0000
END_OF_FILE
if test 10080 -ne `wc -c <'Patch.02e'`; then
    echo shar: \"'Patch.02e'\" unpacked with wrong size!
fi
# end of 'Patch.02e'
fi
echo shar: End of archive 1 \(of 5\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 5 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0

dan
----------------------------------------------------
O'Reilly && Associates   argv@sun.com / argv@ora.com
Opinions expressed reflect those of the author only.