v07i085: xmail -- Mail front end for X11, Patch1, Part05/06

news news at sun.Eng.Sun.COM
Fri Jun 1 13:42:10 AEST 1990


Submitted-by: parns.nsc.com!michael (Michael C. Wagnitz)
Posting-number: Volume 7, Issue 85
Archive-name: xmail/patch1.05
Patch-To: xmail: Volume 6, Issue 41-46

#! /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 5 (of 5)."
# Contents:  Patch.01e
# Wrapped by michael at harley on Tue May 29 10:33:52 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Patch.01e' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Patch.01e'\"
else
echo shar: Extracting \"'Patch.01e'\" \(47241 characters\)
sed "s/^X//" >'Patch.01e' <<'END_OF_FILE'
X  char	*pgm;
X  {
X   Cardinal	buttonSpace, i = 0;
X-  char		*txt;
X  
X!  HelpNames[i++] = "Cc";		HelpNames[i++] = "copy";
X!  HelpNames[i++] = "delete";	HelpNames[i++] = "Deliver";
X!  HelpNames[i++] = "file";	HelpNames[i++] = "folder";
X!  HelpNames[i++] = "hold";	HelpNames[i++] = "index";
X!  HelpNames[i++] = "Newmail";	HelpNames[i++] = "Print";
X!  HelpNames[i++] = "quit";	HelpNames[i++] = "read";
X!  HelpNames[i++] = "reply";	HelpNames[i++] = "save";
X!  HelpNames[i++] = "Send";	HelpNames[i++] = "status";
X!  HelpNames[i++] = "Subject";	HelpNames[i++] = "text";
X!  HelpNames[i++] = "title";	HelpNames[i++] = "To";
X!  HelpNames[i++] = "Autograph";	HelpNames[i]   = NULL;
X  
X   strcpy(Command, "Start");		/* let parser know we've started */
X!  Recipient[0] = SubjBuf[0] = CcBuf[0] = '\0';
X  
X   INDEXSIZE = 10000;
X   IndexBuf = (char *) XtMalloc(INDEXSIZE);
X  
X!  txt = GetMailrc("prompt");
X!  if (! txt)
X!     strcpy(MailPrompt, "& ");
X!  else {
X!     strcpy(MailPrompt, txt);
X!     XtFree(txt);
X!    }
X  
X   sprintf(tmpName, "/tmp/xmail%d", getpid());
X  /*
X--- 163,191 ----
X  char	*pgm;
X  {
X   Cardinal	buttonSpace, i = 0;
X  
X!  HelpNames[i++] = "Bcc";	HelpNames[i++] = "Cc";
X!  HelpNames[i++] = "copy";	HelpNames[i++] = "delete";
X!  HelpNames[i++] = "Deliver";	HelpNames[i++] = "file";
X!  HelpNames[i++] = "folder";	HelpNames[i++] = "preserve";
X!  HelpNames[i++] = "index";	HelpNames[i++] = "Newmail";
X!  HelpNames[i++] = "Print";	HelpNames[i++] = "quit";
X!  HelpNames[i++] = "read";	HelpNames[i++] = "reply";
X!  HelpNames[i++] = "save";	HelpNames[i++] = "Send";
X!  HelpNames[i++] = "status";	HelpNames[i++] = "Subject";
X!  HelpNames[i++] = "text";	HelpNames[i++] = "title";
X!  HelpNames[i++] = "To";		HelpNames[i++] = "Autograph";
X!  HelpNames[i]   = NULL;
X  
X   strcpy(Command, "Start");		/* let parser know we've started */
X!  Recipient[0] = SubjBuf[0] = CcBuf[0] = BccBuf[0] = '\0';
X  
X   INDEXSIZE = 10000;
X   IndexBuf = (char *) XtMalloc(INDEXSIZE);
X+  strcpy(IndexBuf, "");
X  
X!  if (! (MailPrompt = GetMailrc("prompt")))
X!     MailPrompt = XtNewString("& ");
X  
X   sprintf(tmpName, "/tmp/xmail%d", getpid());
X  /*
X***************
X*** 201,208 ****
X       XMail.textFont = XtNewString("9x15");
X  
X   if (! (TextFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.textFont))) {
X!     fprintf(stderr, "%s: Can't open text font %s\n", pgm, XMail.textFont);
X!     exit(-1);
X     }
X  
X   if (XMail.helpFont == NULL)
X--- 195,210 ----
X       XMail.textFont = XtNewString("9x15");
X  
X   if (! (TextFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.textFont))) {
X!     fprintf(stderr, "%s: Could not open text font %s", pgm, XMail.textFont);
X!     if (strcmp(XMail.textFont, "9x15") == 0) {
X!        fprintf(stderr, "\n");
X!        exit(-1);
X!       } else {
X!        XMail.textFont = XtNewString("9x15");
X!        if ((TextFontStr = XLoadQueryFont(XtDisplay(toplevel),XMail.textFont)))
X!           fprintf(stderr, "; using %s\n", XMail.textFont);
X!        else exit(-1);
X!       }
X     }
X  
X   if (XMail.helpFont == NULL)
X***************
X*** 209,216 ****
X       XMail.helpFont = XtNewString("8x13bold");
X  
X   if (! (HelpFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.helpFont))) {
X!     fprintf(stderr, "%s: Can't open help font %s\n", pgm, XMail.helpFont);
X!     exit(-1);
X     }
X  /*
X  ** Compute all window dimensions based on extents of the specified fonts.
X--- 211,226 ----
X       XMail.helpFont = XtNewString("8x13bold");
X  
X   if (! (HelpFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.helpFont))) {
X!     fprintf(stderr, "%s: Could not open help font %s", pgm, XMail.helpFont);
X!     if (strcmp(XMail.helpFont, "8x13bold") == 0) {
X!        fprintf(stderr, "\n");
X!        exit(-1);
X!       } else {
X!        XMail.helpFont = XtNewString("8x13bold");
X!        if ((TextFontStr = XLoadQueryFont(XtDisplay(toplevel),XMail.helpFont)))
X!           fprintf(stderr, "; using %s\n", XMail.helpFont);
X!        else exit(-1);
X!       }
X     }
X  /*
X  ** Compute all window dimensions based on extents of the specified fonts.
X***************
X*** 219,236 ****
X  */
X   XMail.commandHSpace    = 10;
X   XMail.commandVSpace    = 10;
X!  XMail.buttonHeight	= TEXTHEIGHT *  1.6;
X!  XMail.buttonWidth	= TEXTWIDTH  *  8.5;
X         buttonSpace      = XMail.buttonWidth + XMail.commandHSpace + 2;
X   XMail.shellWidth       = (8 * buttonSpace) + 24;    /*  8 buttons per row */
X   XMail.fileBoxWidth     = (4 * buttonSpace) + XMail.buttonWidth + 2;
X!  XMail.helpHeight       = HELPHEIGHT * 14;           /* 14 lines long by */
X!  XMail.helpWidth        = HELPWIDTH  * 60;           /* 60 characters wide */
X   XMail.helpX		= (XMail.shellWidth - XMail.helpWidth) / 2;
X   XMail.helpY            = 70;
X!  XMail.indexHeight      = 240;
X!  XMail.textHeight       = 450;
X!  XMail.textMinHeight    = 150;
X   XMail.commandMinHeight = (XMail.buttonHeight*2) + (XMail.commandVSpace*3) + 4;
X   XMail.menuX            = 15;
X   XMail.menuY            = 7;
X--- 229,246 ----
X  */
X   XMail.commandHSpace    = 10;
X   XMail.commandVSpace    = 10;
X!  XMail.buttonHeight	= TEXTHEIGHT + (TextFontStr->ascent / 2);
X!  XMail.buttonWidth	= XTextWidth(TextFontStr, " Newmail ", 9);
X         buttonSpace      = XMail.buttonWidth + XMail.commandHSpace + 2;
X   XMail.shellWidth       = (8 * buttonSpace) + 24;    /*  8 buttons per row */
X   XMail.fileBoxWidth     = (4 * buttonSpace) + XMail.buttonWidth + 2;
X!  XMail.helpHeight       = HELPHEIGHT * 14;           /* 14 lines by 60 chars */
X!  XMail.helpWidth        = XTextWidth(HelpFontStr, "X11Windows", 10) * 6;
X   XMail.helpX		= (XMail.shellWidth - XMail.helpWidth) / 2;
X   XMail.helpY            = 70;
X!  XMail.indexHeight      = XMail.buttonHeight * 12;
X!  XMail.textHeight       = XMail.buttonHeight * 23;
X!  XMail.textMinHeight    = XMail.textHeight / 3;
X   XMail.commandMinHeight = (XMail.buttonHeight*2) + (XMail.commandVSpace*3) + 4;
X   XMail.menuX            = 15;
X   XMail.menuY            = 7;
X***************
X*** 245,257 ****
X  */
X  SetHints()
X  {
X-  Arg		args[MAXARGS];
X-  Cardinal	n;
X   Display	*dpy;
X   XSizeHints	size_hints;
X!  XWMHints	wm_hints, *hints;
X!  int		scn, depth;
X!  CommandWidget  nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "commandPanel"), "Newmail");
X  
X  
X   dpy = XtDisplay(toplevel);
X--- 255,265 ----
X  */
X  SetHints()
X  {
X   Display	*dpy;
X   XSizeHints	size_hints;
X!  XWMHints	wm_hints;
X!  int		scn, depth, x, y, width, height;
X!  CommandWidget  nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "commandPanel"), "Newmail");
X  
X  
X   dpy = XtDisplay(toplevel);
X***************
X*** 265,294 ****
X                  cross_weave_bits, cross_weave_width, cross_weave_height,
X                  nm->label.foreground,
X                  nm->core.background_pixel, depth);
X- 
X-  size_hints.flags = PSize | PMinSize;
X-  size_hints.width = XMail.shellWidth;
X-  size_hints.min_width = size_hints.max_width = size_hints.width;
X-  size_hints.height = XMail.indexHeight + XMail.textHeight +
X-                      XMail.commandMinHeight +  (2 * XMail.buttonHeight) + 6;
X-  size_hints.min_height = size_hints.max_height = size_hints.height;
X- 
X-  XSetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints);
X  /*
X  ** Notify the window manager about our icon window
X- ** Use XGetWMHints to retain icon initial_state and position
X  */
X-  hints = XGetWMHints(XtDisplay(toplevel),
X-                      XtWindow(XtNameToWidget(toplevel, "icon")));
X- 
X   wm_hints.input = True;
X-  wm_hints.initial_state = hints->initial_state;	/* take care of iconic state */
X-  wm_hints.icon_x = hints->icon_x;		/* restore icon position */
X-  wm_hints.icon_y = hints->icon_y;
X-  wm_hints.flags  = InputHint | StateHint;
X  
X!  XFree(hints);
X  
X  #ifndef PIXMAP_ICON
X   wm_hints.flags |= IconWindowHint;
X   wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
X--- 273,295 ----
X                  cross_weave_bits, cross_weave_width, cross_weave_height,
X                  nm->label.foreground,
X                  nm->core.background_pixel, depth);
X  /*
X  ** Notify the window manager about our icon window
X  */
X   wm_hints.input = True;
X  
X!  wm_hints.initial_state = (XMail.iconic) ? IconicState : NormalState;
X  
X+  x = RootWidth - 58;			/* provide some reasonable defaults */
X+  y = 83;				/* slightly down the right side top */
X+  if (XMail.iconGeometry)
X+     XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height);
X+ 
X+  wm_hints.icon_x = x;
X+  wm_hints.icon_y = y;
X+ 
X+  wm_hints.flags  = InputHint | StateHint | IconPositionHint;
X+ 
X  #ifndef PIXMAP_ICON
X   wm_hints.flags |= IconWindowHint;
X   wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
X***************
X*** 299,305 ****
X--- 300,322 ----
X  #endif
X  
X   XSetWMHints(dpy, XtWindow(toplevel), &wm_hints);
X+ /*
X+ ** Set starting position and default geometry
X+ */
X+  if (! XGetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints)) {
X+     size_hints.x = 56;
X+     size_hints.y = 56;			/* slightly off from top left corner */
X+    }
X  
X+  size_hints.width = XMail.shellWidth;
X+  size_hints.height = XMail.indexHeight + XMail.textHeight +
X+                      XMail.commandMinHeight +  (2 * XMail.buttonHeight) + 6;
X+  size_hints.min_width = size_hints.max_width = size_hints.width;
X+  size_hints.min_height = size_hints.max_height = size_hints.height;
X+ 
X+  size_hints.flags = USPosition | USSize | PMinSize;
X+ 
X+  XSetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints);
X  } /* SetHints */
X  
X  
X***************
X*** 310,318 ****
X  int	argc;
X  char	**argv;
X  {
X-  Arg args[2];
X- 
X- 
X   toplevel = XtInitialize(*argv, "XMail", Opts, XtNumber(Opts), &argc, argv);
X  
X   XtGetApplicationResources(toplevel, &XMail, resrcs, XtNumber(resrcs), NULL, 0);
X--- 327,332 ----
X***************
X*** 329,337 ****
X  
X   CreateSubWindows(toplevel);
X  
X!  XtSetArg(args[0], XtNinput, (XtArgVal) True);
X!  XtSetArg(args[1], XtNiconWindow, XtWindow(XtNameToWidget(toplevel, "icon")));
X!  XtSetValues(toplevel, args, TWO);
X  
X   XtRealizeWidget(toplevel);
X  
X--- 343,349 ----
X  
X   CreateSubWindows(toplevel);
X  
X!  XSync(XtDisplay(toplevel), False);
X  
X   XtRealizeWidget(toplevel);
X  
X*** ../v1.0/xmail.man	Tue May 29 09:58:54 1990
X--- xmail.man	Tue May 29 10:09:09 1990
X***************
X*** 1,5 ****
X  .\"
X! .\" @(#)xmail.l 1.0 90/02/20 NSC;
X  .\"
X  .\" Copyright 1990 by National Semiconductor Corporation.
X  .\"
X--- 1,5 ----
X  .\"
X! .\" @(#)xmail.l 1.1 90/05/29 NSC;
X  .\"
X  .\" Copyright 1990 by National Semiconductor Corporation.
X  .\"
X***************
X*** 24,45 ****
X  .\" Author:  Michael C. Wagnitz - National Semiconductor Corporation
X  .\"
X  .ds nS National Semiconductor Corporation
X! .ds xM \fBxmail\fP
X  .\"
X! .TH XMAIL 1 "March 20, 1990" "NSC"
X  .SH NAME
X  xmail \- X11 visual interface to the mail program
X  .SH SYNOPSIS
X! .B xmail
X  .RB "[\|" \-\fItoolkitoptions\fP "\|]"
X  .RB "[\|" \-\fIxmailoptions\fP "\|]"
X  .SH DESCRIPTION
X! \*(xM
X! is the X11 visual interface to the
X! .B mail
X  program.  It offers functionality similar to the SunView mailtool, but with
X! some enhancements.
X  
X  The \*(xM shell appearance is similar in layout to mailtool.
X  A title bar decorates the top of the shell, and carries the name and
X  version of the program, as well as information about the current mail folder
X--- 24,114 ----
X  .\" Author:  Michael C. Wagnitz - National Semiconductor Corporation
X  .\"
X  .ds nS National Semiconductor Corporation
X! .ds xM xmail
X! .if n .ds Q \&"
X! .if n .ds U \&"
X! .if t .ds Q ``
X! .if t .ds U ''
X  .\"
X! .TH XMAIL 1 "May 29, 1990" "NSC"
X  .SH NAME
X  xmail \- X11 visual interface to the mail program
X  .SH SYNOPSIS
X! .B \*(xM
X  .RB "[\|" \-\fItoolkitoptions\fP "\|]"
X  .RB "[\|" \-\fIxmailoptions\fP "\|]"
X  .SH DESCRIPTION
X! .B \*(xM
X! is an X11 window based visual interface to the
X! .B Mail
X  program.  It offers functionality similar to the SunView mailtool, but with
X! some enhancements. 
X  
X+ Users may use mouse button actions in the index window to select a message for
X+ further processing (by pressing left mouse button), and automatically read the
X+ selected message (by pressing the right mouse button).
X+ 
X+ Folder specification is aided by a selection menu which can walk down through
X+ the user's folder directory hierarchy. 
X+ 
X+ Message composition and modification is provided by the user's preferred
X+ visual editor (vi by default).  Editor preference can be specified using the
X+ process or Mail environment variable VISUAL.
X+ 
X+ Help is available for any window or command button by pressing the middle
X+ mouse button on the window or command button while holding down the Shift key.
X+ .SH OPTIONS
X+ A non-existent or illegal command line option specification will cause
X+ display of the usage statement and \*(xM termination.
X+ .TP
X+ \fB\-toolkitoptions\fR
X+ All standard X11 toolkit options are accepted on the command line.
X+ .TP
X+ \fB\-xmailoptions\fR
X+ \*(xM also accepts the following additional options:
X+ .RS
X+ .TP
X+ \fB-iconGeometry \fI+XOff+YOff\fR
X+ provides a command line option for specifying the preferred geometry
X+ location for the \*(xM icon window.  This overrides any \*(xM resource
X+ specification for \*Q\fB*iconGeometry: \fI+XOff+YOff\fR\*U.
X+ .TP
X+ \fB\-nb\fR
X+ tells \*(xM to \fBnot\fR ring the terminal bell when issuing status and
X+ error messages.  This is equivalent to the \*(xM resource specification
X+ \*Q\fB*bellRing: \fIFalse\fR\*U.
X+ .TP
X+ \fB\-helpfont \fIfontname\fR
X+ specifies the font to use when displaying help text.  This option overrides
X+ the \*(xM resource specification \*Q\fB*helpFont: \fIfontname\fR\*U.
X+ .TP
X+ \fB\-n\fR
X+ tells Mail to \fBnot\fR initialize from the system default Mail.rc file.
X+ This option is actually a Mail program option, which is passed on to it during
X+ startup from \*(xM.
X+ The option can also be specified as an \*(xM resource
X+ using the specification \*Q\fB*mailopt_n: \fITrue\fR\*U.
X+ .TP
X+ \fB\-U\fR
X+ tells Mail to convert internet style addresses into uucp format.
X+ This option also is a Mail option, passed on to it during startup.
X+ The option can also be specified as an \*(xM resource
X+ using the specification \*Q\fB*mailopt_U: \fITrue\fR\*U.
X+ .TP
X+ \fB\-f\ \fI+foldername\fR
X+ tells Mail to start by processing the specified folder.
X+ This is also a Mail program option, passed to it during startup.
X+ The option can also be specified as an \*(xM resource
X+ using the specification \*Q\fB*MFileName: \fI+foldername\fR\*U.
X+ .TP
X+ \fB\-ls\fR
X+ tells \*(xM to \fBnot\fR show the last message of a folder by default.  This
X+ option is equivalent to setting the \*(xM resource \fB*Show_Last\fR to
X+ \fIFalse\fR.  If disabled, \*(xM (actually Mail) will display the default
X+ (usually first) message of a folder when switching to or re-reading a folder.
X+ By default, \*(xM attempts to read the latest (or last) message of a folder.
X+ .RE
X+ .SH USAGE
X  The \*(xM shell appearance is similar in layout to mailtool.
X  A title bar decorates the top of the shell, and carries the name and
X  version of the program, as well as information about the current mail folder
X***************
X*** 50,57 ****
X  is indicated by highlight of the number of a particular message.
X  New and unread mail are prefixed with 'N' and 'U' characters.  Deleted
X  messages not yet removed from the index list have the letter 'D' preceding
X! the message number.  Messages marked for saving (via the save button) will
X! display an asterisk (*) in front of their index number.
X  
X  Below the index
X  window, a status window displays status and error messages.  The terminal
X--- 119,125 ----
X  is indicated by highlight of the number of a particular message.
X  New and unread mail are prefixed with 'N' and 'U' characters.  Deleted
X  messages not yet removed from the index list have the letter 'D' preceding
X! the message number.
X  
X  Below the index
X  window, a status window displays status and error messages.  The terminal
X***************
X*** 59,68 ****
X  disabled from the command line or user resource file.
X  
X  The center portion of the
X! shell displays a panel with a selection of commonly used mail commands.
X! Pressing and then releasing (\fIalso known as '\fBclicking\fP')\fR
X  the \fBleft\fR mouse button while the cursor is within a
X! particular command button box invokes that mail command.
X  
X  Each button in the command panel also offers an expanded menu of choices.
X  Pressing the \fBright\fR mouse button presents the user with the
X--- 127,136 ----
X  disabled from the command line or user resource file.
X  
X  The center portion of the
X! shell displays a panel with a selection of commonly used Mail commands.
X! Pressing and then releasing (\fIalso known as \*Q\fBclicking\fP\*U)\fR
X  the \fBleft\fR mouse button while the cursor is within a
X! particular command button box invokes that Mail command.
X  
X  Each button in the command panel also offers an expanded menu of choices.
X  Pressing the \fBright\fR mouse button presents the user with the
X***************
X*** 84,90 ****
X  Message text is displayed in the bottom window of the \*(xM shell.
X  Like the index window above, scroll bars provide easy access to any portion of
X  the text.  Because the reading of a very large message can take more than a few
X! moments, \*(xM decides when starting mail or changing folders that a
X  message longer
X  than 65,000 characters will \fBnot\fR be automatically displayed.
X  
X--- 152,158 ----
X  Message text is displayed in the bottom window of the \*(xM shell.
X  Like the index window above, scroll bars provide easy access to any portion of
X  the text.  Because the reading of a very large message can take more than a few
X! moments, \*(xM decides when starting Mail or changing folders that a
X  message longer
X  than 65,000 characters will \fBnot\fR be automatically displayed.
X  
X***************
X*** 104,171 ****
X  During command execution, the cursor is changed to a watch face
X  to indicate that \*(xM is busy.  Upon completion of the activity, the
X  cursor is restored to its previous value.
X! .SH OPTIONS
X! A non-existent or illegal option command line specification will cause
X! display of the usage statement and \*(xM termination.
X! .TP
X! \fB\-toolkitoptions\fR
X! All standard X11 toolkit options are accepted on the command line.
X! .TP
X! \fB\-xmailoptions\fR
X! \*(xM also accepts the following additional options:
X! .RS
X! .TP
X! \fB\-nb\fR
X! tells \*(xM to \fBnot\fR ring the terminal bell when issuing status messages.
X! .TP
X! \fB\-helpfont \fIfontname\fR
X! tells \*(xM to use the following font specification when displaying help text.
X! .TP
X! \fB\-n\fR
X! tells mail to \fBnot\fR initialize from the system default Mail.rc file.
X! .TP
X! \fB\-U\fR
X! tells mail to convert internet style addresses into uucp format.
X! .TP
X! \fB\-f\ \fI+foldername\fR
X! tells mail to start by processing the specified folder.
X! .TP
X! \fB\-s\ \fIsubject\fR
X! tells \*(xM to set the subject string (for the next send request) to
X! the indicated subject.  Setting the subject string here does not automatically
X! invoke the send mechanism.  That must still be invoked via the \fIsend\fR
X! command button.
X! .TP
X! \fB\-ls\fR
X! tells \*(xM to \fBnot\fR show the last message of a folder by default.  This
X! option is equivalent to setting the \*(xM resource \fIShow_Last\fR to False.
X! .RE
X  .SH "SENDING MESSAGES"
X! All Send and reply operations invoke the user's preferred editor (as
X! defined by the user's \fBEDITOR\fR environment variable) to create or modify
X  the message prior to delivery.  An appropriate xterm window will be created
X  to contain the edit session.  The \fIdefault\fR editor will be \fBvi\fR, if no
X! EDITOR or VISUAL (mail) environment variable definition exists.
X  
X  Upon completion of the send/reply editing session, a smaller window will be
X! displayed which contains \fITo:\fR, \fISubject:\fR, and \fICc:\fR fields for
X! the current message composition.  Help is available for each of these popup
X! shell window fields, by pressing the middle mouse button while holding down
X! either Shift key.  A menu of user defined mail aliases is available from
X! either the To: or Cc: windows.  Pressing the right mouse btton while the
X! cursor is in either of these input fields will display the alias names
X! menu.  If the user has no mail aliases defined, the terminal bell will be rung
X! to indicate that no alias names menu is forthcoming.
X  
X! Like the \fIFile:\fR window which is used to enter file and folder names, the
X  content of the send window popup fields may be modified by the user as needed.  
X! The backspace and delete keys remove the previous character, the control_W
X! combination deletes
X! the previous word, and the control_U combination deletes the entire
X! line of information.  Pressing the Return key in any of these three
X  fields causes the cursor to automatically warp to the next field.
X  
X! Users may append their \fISign\fP or \fIsign\fP autograph (see \fBmail(1)\fR)
X  once only to the end of the message text.
X  Pressing the \fIDeliver\fR button causes the message
X  to be delivered, while the right mouse button displays a menu for the Deliver,
X--- 172,254 ----
X  During command execution, the cursor is changed to a watch face
X  to indicate that \*(xM is busy.  Upon completion of the activity, the
X  cursor is restored to its previous value.
X! .SH ICONIFICATION
X! \*(xM establishes access to a dummy mail folder whenever the application is
X! iconified.
X! This is done to prevent potential corruption of a real mail folder, should the
X! user choose to read their mail from another process while \*(xM is running.
X! Because of this action, iconifying \*(xM \fBalways\fI COMMITS\fR any changes
X! made to the current folder, prior to switching to the dummy folder.
X! 
X! The original folder being read by the user will be 
X! automatically reinstated as current whenever \*(xM is again de-iconified.
X! This action will flush any deleted messages from the index headers and renumber
X! the remaining messages in the folder.  The last message in the folder will then
X! become the current message displayed (unless \*(xM was started with the
X! \fB*Show_Last\fR resource option disabled, in which case the first message
X! would be made current).
X! 
X! If the \*Qcurrent\*U folder was the user's system folder, any new mail
X! received since the iconification would be automatically included by the
X! re-access.  If some other folder were current (\fIor no folder, due to initial
X! conditions of no mail for the user\fR), de-iconification would not cause the
X! reading of any new mail.  Under those circumstances the user must press the
X! \fBNewmail\fR command button to read the new mail (and change to the system
X! mail folder).
X! 
X! Iconification is typically promoted by user definable button events which are
X! particular to the window manager in use at the time.  The \*(nS logo
X! displayed at the left of the title bar will also make a window manager
X! request to iconify, under X11 Release 4.  (\fIUnder Release 3, it will simply
X! ring the terminal bell, as R3 did not support client iconification requests.\fR)
X  .SH "SENDING MESSAGES"
X! All send and reply operations invoke the user's preferred editor (\fIas
X! defined by the user's \fBVISUAL\fP environment variable\fR) to create or modify
X  the message prior to delivery.  An appropriate xterm window will be created
X  to contain the edit session.  The \fIdefault\fR editor will be \fBvi\fR, if no
X! VISUAL (\fImailrc or process\fR) environment variable definition exists.
X!   
X! Resources for this edit window must be specified in the user's
X! \*Q\fB/.Xdefaults\fR\*U file, as opposed to the \*(xM application default file,
X! because the editor invocation is actually an \fBxterm\fR window, not a widget
X! of \*(xM.
X! User's may specify resources for this xterm message composition window using
X! the \*(xM Class identifier followed by the xterm terminal resources identifier
X! \*Qvt100\*U, as in \*Q\fBXMail*vt100.\fI<resource: value>\fR\*U.
X! For example, the author uses the following resource definitions in a
X! \&~/.Xdefaults file to control message composition windows.
X! .sp
X! .RS
X! .nf
X! XMail*vt100.geometry:           80x27+30+100
X! XMail*vt100.font:               fg-22
X! XMail*vt100.foreground:         white
X! XMail*vt100.background:         blue
X! XMail*vt100.mouse:              white
X! .fi
X! .RE
X  
X  Upon completion of the send/reply editing session, a smaller window will be
X! displayed containing \fITo:\fR, \fISubject:\fR, \fICc:\fR, and \fIBcc:\fR
X! fields for
X! the current message composition.  Help is available for each of these 
X! fields by pressing the middle mouse button while holding down either keyboard
X! Shift key.
X  
X! A menu of user defined mail aliases is available for any of the
X! To:, Cc:, or Bcc: windows.  Pressing the right mouse button while the
X! cursor is in any of these input fields causes the alias names menu to be
X! displayed.  If the user has not defined any mail aliases, the terminal bell
X! will be rung instead, to indicate that no alias names menu is available.
X! 
X! Like the \fIFile:\fR window used to enter file and mail folder names, the
X  content of the send window popup fields may be modified by the user as needed.  
X! Backspace and delete keys remove the previous character, control_W
X! deletes the previous word, and control_U deletes the entire
X! line of information.  Pressing the Return key in any of these four
X  fields causes the cursor to automatically warp to the next field.
X  
X! Users may append their \fISign\fP or \fIsign\fP autograph (see \fBMail(1)\fR)
X  once only to the end of the message text.
X  Pressing the \fIDeliver\fR button causes the message
X  to be delivered, while the right mouse button displays a menu for the Deliver,
X***************
X*** 172,185 ****
X  \fICancel\fR (and delete), and Cancel (and save in your dead.letter file)
X  commands.
X  
X! Mail forwarded to another user will be bracketed by a '\fIBegin Forwarded
X! Message/End Forwarded Message\fR' string
X! pair when using the '\fIforward message\fR' Send command menu option.  Also 
X! included will be a '\fIForwarded: Mail from ...\fR' line in the mail header.
X  
X! Reply messages will include a '\fIIn-Reply-To: Mail from ...\fR' string in the
X! mail
X! header.  Like the '\fIForwarded:\fR' header described above, it will include
X  the name of the original sender, as well as the date the original message was
X  received.
X  .SH FOLDERS
X--- 255,268 ----
X  \fICancel\fR (and delete), and Cancel (and save in your dead.letter file)
X  commands.
X  
X! Mail forwarded to another user will be bracketed by a \*Q\fIBegin Forwarded
X! Message/End Forwarded Message\fR\*U string
X! pair when using the \*Q\fIforward message\fR\*U Send command menu option.  Also 
X! included will be a \*Q\fIForwarded: Mail from ...\fR\*U line in the mail header.
X  
X! Reply messages will include a \*Q\fIIn-Reply-To: Mail from ...\fR\*U string
X! in the mail
X! header.  Like the \*Q\fIForwarded:\fR\*U header described above, it will include
X  the name of the original sender, as well as the date the original message was
X  received.
X  .SH FOLDERS
X***************
X*** 207,213 ****
X  disappear, without making a selection.  Re-clicking the left mouse button on
X  the directory folder redisplays the nested menu.
X  
X! The first request for the folder menu extracts (from mail or the system) the
X  necessary information to create the menu.  Subsequent requests simply redisplay
X  that menu.  To force \*(xM to recalculate the folder menu content, press
X  the \fBNewmail\fR button, which causes \*(xM to destroy the current folder
X--- 290,296 ----
X  disappear, without making a selection.  Re-clicking the left mouse button on
X  the directory folder redisplays the nested menu.
X  
X! The first request for the folder menu extracts (from Mail or the system) the
X  necessary information to create the menu.  Subsequent requests simply redisplay
X  that menu.  To force \*(xM to recalculate the folder menu content, press
X  the \fBNewmail\fR button, which causes \*(xM to destroy the current folder
X***************
X*** 214,336 ****
X  menu and re-display your system mail folder.
X  This provides access to folders created after the start of \*(xM.
X  .SH FONTS
X! \*(xM supports a variety of fixed width fonts, adjusting its window dimensions
X! accordingly.  The user is free to enlarge the window, but may not shrink it
X! beyond a minimum usable display.  The default font for text is specified as
X! 9x15, and the default font for help information is 8x13bold.  Text font can
X! be specified on the command line using the standard toolkit font options -fn
X! or -font.  The helpfont can be specified on the command line using the -helpfont
X! option.  The fixed width font 'fixed' also works well within the \*(xM program.
X! Some alternative font selections, particularly those with variable widths, may
X! promote shell sizes that make \*(xM effectively unusable, and should be avoided.
X  .SH RESOURCES
X! \*(xM allows resource definitions for each of its component windows and
X! command buttons.  Color may be added (on a color display device) to enhance
X! the visual display.
X  
X! The following resources names are recognized:
X  .RS
X! .TP
X! \fB*bellRing\fR
X  Normally true, this boolean enables ringing of the terminal bell during
X  status and error message display.
X! .TP
X! \fB*helpFont\fR
X  denotes a preferred font to use when displaying help information.
X! .TP
X! \fB*mailopt_n\fR
X  duplicates the effect of the \fI-n\fR command line option.
X! .TP
X! \fB*mailopt_U\fR
X  duplicates the effect of the \fI-U\fR command line option.
X! .TP
X! \fB*MFileName\fR
X  duplicates the effect of the \fI-f folder\fR command line option.
X! .TP
X! \fB*SubjectStr\fR
X! duplicates the effect of the \fI-s subject\fR command line option.
X! .TP
X! \fB*Show_Last\fR
X  Normally true, this boolean enables display of the last message in a folder,
X  providing no other is newer or unread.  Setting this resource to false causes
X  folder displays to start with the first (or new or unread) message.
X! .TP
X  \fB*icon\fR
X  controls resources for the \fIicon\fR window.  In addition to 
X  specifications of foreground and background colors, it is possible
X  to also specify mailWatch widget resources, such as the following:
X  .RS
X! .TP
X! \fB*icon*reverseVideo\fR
X  If set to true, reverses the foreground and background colors for the icon.
X! .TP
X! \fB*icon*update\fR
X! Specifies the update interval for checking new mail (default is 30 seconds)
X! .TP
X! \fB*icon*bell\fR
X  If set to False, prevents the mailWatch widget from ringing the bell when
X! new mail arrives
X  .RE
X! .TP
X  \fB*titleBar\fR
X  controls resources for the \fItitleBar\fR window
X! .TP
X  \fB*indexWindow\fR
X  controls resources for the \fIindex\fR window
X! .TP
X  \fB*statusWindow\fR
X  controls resources for the \fIstatus\fR window
X! .TP
X  \fB*commandPanel\fR
X  controls resources for the \fIcommand panel\fR
X! .TP
X  \fB*fileWindow\fR
X  controls resources for the \fIfile window\fR within the command panel
X! .TP
X  \fB*textWindow\fR
X  controls resources for the \fItext\fR window
X! .TP
X  \fB*list\fR
X  controls resources for the \fIfolder list\fR popup window
X! .TP
X! \fB*save\fR
X! controls resources for the \fIsave\fR command button
X! .TP
X! \fB*Folder\fR
X! controls resources for the \fIFolder\fR command button
X! .TP
X! \fB*copy\fR
X! controls resources for the \fIcopy\fR command button
X! .TP
X! \fB*quit\fR
X! controls resources for the \fIquit\fR command button
X! .TP
X  \fB*menu\fR
X  controls resources for all of the command button popup menus
X! .TP
X  \fB*To\fR
X  controls resources for the \fITo:\fR entry window
X! .TP
X  \fB*Subject\fR
X  controls resources for the \fISubject:\fR entry window
X! .TP
X  \fB*Cc\fR
X  controls resources for the \fICc:\fR entry window
X! .TP
X! \fB*Autograph\fR
X! controls resources for the \fIAutograph\fR command button
X! .TP
X! \fB*Deliver\fR
X! controls resources for the \fIDeliver\fR command button
X! .TP
X! \fB*Cancel\fR
X! controls resources for the \fICancel\fR command button
X  .RE
X  
X! A set of default resource definitions is provided in the
X! file \fB/usr/lib/X11/app-defaults/XMail\fR.  The user may wish to include the
X! appropriate resource definitions in their ~/.Xdefaults file, to tailor their
X! preference for colors and/or fonts.
X  .SH AUTHOR
X  .ce 3
X  Copyright 1989 - \*(nS
X--- 297,578 ----
X  menu and re-display your system mail folder.
X  This provides access to folders created after the start of \*(xM.
X  .SH FONTS
X! \*(xM now supports a wider variety of font styles, such as \fICourier\fR and 
X! \fInew century schoolbook\fR.
X! Previous restrictions to a small set of fixed width fonts have been eliminated.
X! Certain font styles (\fIsuch as Helvetica\fR) still produce unusable
X! results, as \*(xM
X! attempts to use the font metrics to determine the initial window dimensions
X! fail, producing a window with more width than needed or desired.
X  .SH RESOURCES
X! \*(xM recognizes resource definitions for each of its component windows and
X! command buttons.  Wherever possible, button resources have been named for the
X! label (or first word in the label) of the command button.  (\fIThe exception
X! is the preserve \*Qset\*U menu, whose resources are identified by the second
X! word in each label.\fR)
X! Thus :
X! .RS
X! .TP 3
X! \fB*read\fR
X! specifies resources for the \fIread\fR command button
X! .TP 3
X! \fB*save\fR
X! specifies resources for the \fIsave\fR command button
X! .TP 3
X! \fB*autoprint\fR
X! specifies resources for the \fIset autoprint\fR command button, and
X! .TP 3
X! \fB*noautoprint\fR
X! specifies resources for the \fIset noautoprint\fR command button.
X! .RE
X! .LP
X! Color may be added (on a color display device) to enhance
X! the appearance of \*(xM.  Resources in the application defaults file may be
X! overridden by designations in the user's \&./Xdefaults file, or (\fIin some
X! cases\fR) by command line options.
X! Resources specified in the user's \&./Xdefaults file should be preceded with
X! either the \fB\*(xM\fR application or \fBXMail\fR Class resource identifier.
X  
X! In addition to those resources named for a particular \*(xM command button,
X! the following additional resource names are recognized:
X  .RS
X! .TP 3
X! \fB\&.geometry: \fI+XOff+YOff\fR
X! This resource defines the initial startup location for the \*(xM window.
X! Note the dot (.) just in front of the geometry resource name.
X! Users are cautioned to \fBnot\fR specify this resource with the
X! wildcard (*) designation, as this would force all popup windows (help, menus,
X! and send/reply) to orient to that same starting location, rather than be
X! anchored to the intended window.
X! .TP 3
X! \fB*iconic: \fI<boolean>\fR
X! This boolean defines whether the \*(xM application should be started in
X! iconic state or not.  It is highly recommended that only the application
X! resource identifier be used if specifying this resource.
X! Use of the \fBXMail\fR Class identifier would also constrain any
X! message entry windows to be started iconic, which could prove confusing
X! to the unaware user.
X! .TP 3
X! \fB*iconGeometry: \fI+XOff+YOff\fR
X! This resource defines an initial location for the icon, whenever the
X! \*(xM application is iconified.
X! .TP 3
X! \fB*bellRing: \fI<boolean>\fR
X  Normally true, this boolean enables ringing of the terminal bell during
X  status and error message display.
X! .TP 3
X! \fB*helpFont: \fI<fontname>\fR
X  denotes a preferred font to use when displaying help information.
X! .TP 3
X! \fB*mailopt_n: \fI<boolean>\fR
X! Normally false, this resource
X  duplicates the effect of the \fI-n\fR command line option.
X! .TP 3
X! \fB*mailopt_U: \fI<boolean>\fR
X! Normally false, this resource
X  duplicates the effect of the \fI-U\fR command line option.
X! .TP 3
X! \fB*MFileName: \fI<foldername>\fR
X! Normally null, this resource
X  duplicates the effect of the \fI-f folder\fR command line option.
X! .TP 3
X! \fB*Show_Last: \fI<boolean>\fR
X  Normally true, this boolean enables display of the last message in a folder,
X  providing no other is newer or unread.  Setting this resource to false causes
X  folder displays to start with the first (or new or unread) message.
X! .TP 3
X  \fB*icon\fR
X  controls resources for the \fIicon\fR window.  In addition to 
X  specifications of foreground and background colors, it is possible
X  to also specify mailWatch widget resources, such as the following:
X  .RS
X! .TP 3
X! \fB*icon*reverseVideo: \fI<boolean>\fR
X  If set to true, reverses the foreground and background colors for the icon.
X! .TP 3
X! \fB*icon*update: \fI<seconds>\fR
X! Specifies the update interval for checking new mail (default is 30 seconds).
X! .TP 3
X! \fB*icon*bell: \fI<boolean>\fR
X  If set to False, prevents the mailWatch widget from ringing the bell when
X! new mail arrives.  See also the \&.mailrc variable setting for \fIbell\fR.
X  .RE
X! .TP 3
X  \fB*titleBar\fR
X  controls resources for the \fItitleBar\fR window
X! .TP 3
X  \fB*indexWindow\fR
X  controls resources for the \fIindex\fR window
X! .TP 3
X  \fB*statusWindow\fR
X  controls resources for the \fIstatus\fR window
X! .TP 3
X  \fB*commandPanel\fR
X  controls resources for the \fIcommand panel\fR
X! .TP 3
X  \fB*fileWindow\fR
X  controls resources for the \fIfile window\fR within the command panel
X! .TP 3
X  \fB*textWindow\fR
X  controls resources for the \fItext\fR window
X! .TP 3
X  \fB*list\fR
X  controls resources for the \fIfolder list\fR popup window
X! .TP 3
X  \fB*menu\fR
X  controls resources for all of the command button popup menus
X! .TP 3
X  \fB*To\fR
X  controls resources for the \fITo:\fR entry window
X! .TP 3
X  \fB*Subject\fR
X  controls resources for the \fISubject:\fR entry window
X! .TP 3
X  \fB*Cc\fR
X  controls resources for the \fICc:\fR entry window
X! .TP 3
X! \fB*Bcc\fR
X! controls resources for the \fIBcc:\fR entry window
X! .TP 3
X! \*Q\fBXMail*vt100.\fI<resource: value>\fR\*U.
X! definitions control resources for the send or reply \fImessage entry\fR windows
X  .RE
X  
X! A set of default resource definitions are provided in the
X! file \fB/usr/lib/X11/app-defaults/XMail\fR.  User's may wish to include
X! appropriate alternate definitions in their ~/.Xdefaults file, to tailor
X! preferences for colors and/or fonts.
X! .SH "ENVIRONMENT"
X! Several process environment variables are of potential interest to \*(xM.
X! .sp
X! .RS
X! .TP 3
X! \fBDEAD\fR
X! Normally specified in the user's \&.mailrc file,
X! this variable indicates the name of the file to use when storing dead letters.
X! If unspecified, it defaults to \*Qdead.letter\*U in the user's HOME directory.
X! .TP 3
X! \fBHOME\fR
X! Defines the path to the user's home directory, and is used in determining
X! the complete path for mail folder and dead letter files.
X! .TP 3
X! \fBMAILRC\fR
X! If defined, denotes the full name of the user preferred Mail program startup
X! file, used to define various mail state variables.  By default, Mail (and
X! \*(xM) will look for the file \&.mailrc, in your home directory.
X! .TP 3
X! \fBMBOX\fR
X! Normally specified in the user's \&.mailrc file,
X! this variable denotes the preferred file to use when storing letters that are
X! no longer to be preserved in the system mail folder, and letters copied or
X! saved to no other specific file.
X! .TP 3
X! \fBUSER\fR
X! Defines the login name of the current user, and is used in determining the
X! name of the author of any message compositions.
X! .TP 3
X! \fBVISUAL\fR
X! Normally specified in the user's \&.mailrc file,
X! this variable denotes the preferred editor to use when composing messages in
X! \*(xM.
X! .TP 3
X! \fBXMAILER\fR
X! If defined, points to the particular executable to be used as the Mail
X! program.  Normally, \*(xM establishes connections with Mail in the default
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 will not work correctly with any mail program
X! other than the intended Berkeley Mail program.
X! .RE
X! .SH "MAIL VARIABLES"
X! \*(xM also uses the existence and value of several Mail environment
X! variables (\fIdefined in the user's \&.mailrc file\fR) to aid in controlling
X! it's operation.
X! .sp
X! .RS
X! .TP 3
X! \fBalwaysignore\fR
X! If set, causes \*(xM to ignore those header fields specified with the
X! \fIignore\fR \&.mailrc environment variable, when printing messages 
X! or when including message text in a send/reply composition.  This variable
X! can be altered during the execution of \*(xM.  (See the section below
X! on \fIChanging Variables\fR.)
X! .TP 3
X! \fBautoprint\fR
X! If enabled, causes the current message text to be displayed when deleting or
X! undeleting messages.  If \fInot\fR enabled, users must select or read the
X! desired
X! message.  This variable can also be altered within the current \*(xM execution.
X! .TP 3
X! \fBbell=\fIvalue\fR
X! If defined, determines the number of times the terminal bell would be rung to
X! indicate the arrival of new mail.  A minimum of once and a maximum of five
X! times is the permissible range.  Whether the terminal bell rings at all when
X! new mail arrives is controlled by the \*Q\fB*icon*bell: \fI<boolean>\fR\*U
X! resource (\fIor \fB\-nb\fP command line option\fR) described above.
X! .TP 3
X! \fBhold\fR
X! Like mailtool, \*(xM sets \*Qhold\*U on the user's system mail folder,
X! unless \*Qnohold\*U has been \fIexplicitly\fR specified in the user's
X! \&.mailrc file.  This variable can also be altered during \*(xM execution.
X! .TP 3
X! \fBprintmail=\fIprinter command\fR
X! This variable, originally created for the Sunview mailtool, allows the user
X! to specify a preferred command to use when printing messages.  The default
X! command is \*Qlpr -p\*U.
X! .TP 3
X! \fBsendmail=\fIshell-command\fR
X! If set, specifies an alternate procedure to use in lieu of the default
X! \&/usr/lib/sendmail for delivering mail. User supplied procedures must be
X! prepared to search the message file for recipients and ignore or process
X! unexpected options (which ultimately must be passed on to the real sendmail
X! program).
X! .RE
X! .LP
X! Some Mail variables have no effect on \*(xM operation, and are in fact ignored
X! if found to be set.
X! .RS
X! .TP 3
X! \fBreplyall\fR
X! has no effect on the meaning of commands within \*(xM.  This prevents confusion
X! due to a difference between how a command is labeled, and how it reacts in use.
X! .TP 3
X! \fBcrt=\fI<value>\fR
X! is ignored, and always defaults to \fBnocrt\fR.  This prevents user specified
X! paging mechanisms from interfering with full message delivery to \*(xM.
X! .TP 3
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! mouse pointer is within the preserve command button box presents a
X! menu of \*Qset\*U
X! commands which indicate the state the environment variables would be changed
X! to,
X! if the mouse button were released while one of these commands was highlighted.
X! .LP
X! Changing the state of the variable alters the next presentation of the menu,
X! such that the opposite state will always be presented as the command option.
X! .SH "SEE ALSO"
X! Mail(1)
X! .SH BUGS
X! Repeated pressings of a command button prior to its completion of an
X! operation may cause \*(xM to crash.  Users are cautioned against imposing too
X! many requests too quickly when using \*(xM.
X  .SH AUTHOR
X  .ce 3
X  Copyright 1989 - \*(nS
X***************
X*** 350,367 ****
X  .RS
X  used as the \*(xM icon window.
X  .RE
X- .SH "SEE ALSO"
X- mail(1)
X- .SH BUGS
X- Due to non-ICCCM compliance between the R3 release of X11 window managers
X- and the X11 sun server, the following bug is known to exist when using \*(xM
X- under X11 Release 3.
X- 
X- Keyboard input focus in the \fIFile:\fP window \fBmay\fP be lost for a
X- period of time after a folders menu list creation (\fIsee \fBFOLDERS\fP
X- above\fR).
X- This input focus loss will prevent keyboard modification to any file or folder
X- specifications in that window.  The pasting of folder menu selections and
X- the use of the folder button are not affected by this loss.
X- Destroying the folder menu list (\fIby selecting the Newmail command\fP) should
X- relieve the input problem (until the folder menu list is again created).
X--- 592,594 ----
X*** ../v1.0/xmailregex.h	Sun May 27 21:05:54 1990
X--- xmailregex.h	Sun May 27 21:10:06 1990
X***************
X*** 48,57 ****
X  
X  static PatternRec command_pattern[] = {
X      {"Start", NULL },
X!     {"p [^\n]+\n\\|c [^\n]+\n\\|C [^\n]+\n\\|s [^\n]+\n\\|S [^\n]+\n\\|\
X! w [^\n]+\n\\|W [^\n]+\n\\|-\n\\|hold [^\n]+\n\\|m[^\n]+\n\\|n\n", NULL },
X      {"file[^%]*\n", NULL },
X!     {"d[^\n]*\n\\|u[^\n]*\n", NULL },
X      {"file %\n\\|inc\n", NULL },
X      NULL
X  };
X--- 48,56 ----
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!     {"[du][^\n]*\n", NULL },
X      {"file %\n\\|inc\n", NULL },
X      NULL
X  };
X***************
X*** 62,76 ****
X  #define	O_PRINT		3
X  
X  static PatternRec output_pattern[] = {
X!     { "No more messages\n\\|\
X! At EOF\n\\|\
X! No applicable messages from \{[^\}]+\}\n\\|\
X! No applicable messages\n\\|\
X! No new mail for [^\n]+\n\\|\
X! No mail for [^\n]+\n\\|\
X! Unknown command: \"[^\"]+\"\n\\|\
X! Referencing before first message\n\\|\
X! Cannot \"[^\"]+\" in edit mode\n\\|\
X  \"[^\"]+\" \\[Appended\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" \\[New file\\] [0-9]+/[0-9]+\n\\|\
X  \"[^\"]+\" No such file or directory\n\\|\
X--- 61,67 ----
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***************
X*** 80,95 ****
X  [^:]+: No such file or directory\n\\|\
X  [^:]+: Not a directory\n\\|\
X  [^:]+: not a regular file\n\\|\
X! [^:]+: empty file\n\\|\
X! Not in system mailbox\n\\|\
X! No message [^\n]+\n\\|\
X! No messages to [^\n]+\n\\|\
X! No recipients specified\n\\|\
X! No recipients specified\n[^\n]+\n\\|\
X! New mail has arrived\n", NULL },
X! 
X      { "From \\|Message ", NULL },
X      { "\"[^\"]+\": [0-9]+ message[^\n]+\n\\|[^:]+: [^\n]+\n", NULL },
X!     { "Pipe to: \"lpr -p\"\n\"lpr -p\" [0-9]+/[0-9]+\n", NULL },
X      NULL 
X  };
X--- 71,79 ----
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  };
END_OF_FILE
if test 47241 -ne `wc -c <'Patch.01e'`; then
    echo shar: \"'Patch.01e'\" unpacked with wrong size!
fi
# end of 'Patch.01e'
fi
echo shar: End of archive 5 \(of 5\).
cp /dev/null ark5isdone
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.
    echo Now ...
    echo "concatenate these five Patch.01? files (in order) into one file ..."
    echo "and apply to a set of virgin xmail sources, using 'patch'."
    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 at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.



More information about the Comp.sources.x mailing list