xbuffy (3.3.bl.3.dfsg-8) 0003-Some-small-tidy-ups.patch

Summary

 boxfile.c            |    3 --
 led.c                |    4 ++-
 libdyn/dyn.h         |    7 +++++
 libdyn/dynP.h        |    5 +++
 libdyn/dyn_append.c  |    6 +++-
 libdyn/dyn_create.c  |    5 ++-
 libdyn/dyn_delete.c  |    8 ++++--
 libdyn/dyn_insert.c  |    8 ++++--
 libdyn/dyn_put.c     |    5 ++-
 libdyn/dyn_realloc.c |    3 +-
 libdyn/dyn_size.c    |    3 --
 nntp.c               |   18 +++++---------
 xbuffy.c             |   28 ++++++++++++----------
 xbuffy.h             |   10 +++++++
 xbuffy.man           |   64 +++++++++++++++++++++++++--------------------------
 15 files changed, 106 insertions(+), 71 deletions(-)

    
download this patch

Patch contents

From aabaefc50e51725a03ef1bfe3aaf3a4ea2b0a0ac Mon Sep 17 00:00:00 2001
From: Bernhard R. Link <brlink@debian.org>
Date: Sat, 19 Dec 2009 13:07:28 +0100
Subject: Some small tidy ups
  - use stdarg instead of varargs
  - fixes of string typos and missing escapes
  - removal of unnecessary casts and definitions
  - added several #includes and declerations to avoid warnings

(based on 01_original.dpatch by Joel Rosdahl)
---
 boxfile.c            |    3 +-
 led.c                |    4 ++-
 libdyn/dyn.h         |    7 +++++
 libdyn/dynP.h        |    5 +++-
 libdyn/dyn_append.c  |    6 ++++-
 libdyn/dyn_create.c  |    5 ++-
 libdyn/dyn_delete.c  |    8 ++++-
 libdyn/dyn_insert.c  |    8 ++++-
 libdyn/dyn_put.c     |    5 ++-
 libdyn/dyn_realloc.c |    3 +-
 libdyn/dyn_size.c    |    3 +-
 nntp.c               |   18 +++++--------
 xbuffy.c             |   28 ++++++++++++---------
 xbuffy.h             |   10 ++++++++
 xbuffy.man           |   64 +++++++++++++++++++++++++-------------------------
 15 files changed, 106 insertions(+), 71 deletions(-)

diff --git a/boxfile.c b/boxfile.c
index be63bff..f15811b 100644
--- a/boxfile.c
+++ b/boxfile.c
@@ -239,8 +239,7 @@ void dumpBox(tempBox)
 
 
 
-void readBoxfile(boxFile)
-	char *boxFile;
+void readBoxfile(const char *boxFile)
 {
 	BoxInfo_t tempBox;
 	FILE *boxes;
diff --git a/led.c b/led.c
index 23d3456..464e032 100644
--- a/led.c
+++ b/led.c
@@ -1,6 +1,8 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <signal.h>
+#include <sys/ioctl.h>
 #include <linux/kd.h>
 #include <fcntl.h>
 
@@ -26,7 +28,7 @@ int led_num;
 
 int main(int argc, char** argv)
 {
-  int i,num,parent;
+  int i,num;
   
   if (geteuid()) {
     fprintf(stderr, "led must be run as root!\n");
diff --git a/libdyn/dyn.h b/libdyn/dyn.h
index e373ef8..48b07b2 100644
--- a/libdyn/dyn.h
+++ b/libdyn/dyn.h
@@ -8,6 +8,10 @@
  *
  * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
  * and MIT-Project Athena, 1989.
+ *
+ * Changes:
+ * 	added DynSize prototype
+ * 	moves DynObjectP from dynP.h to here
  */
 
 
@@ -51,5 +55,8 @@ int		DynAdd(), DynDelete(), DynDestroy(), DynDebug();
 int		DynInsert(), DynParanoid();
 DynPtr		DynGet();
 
+typedef struct _DynObject *DynObjectP;
+int DynSize(DynObjectP obj);
+
 #endif /* _Dyn_h */
 /* DO NOT ADD ANYTHING AFTER THIS #endif */
diff --git a/libdyn/dynP.h b/libdyn/dynP.h
index 37aee58..24bc5b6 100644
--- a/libdyn/dynP.h
+++ b/libdyn/dynP.h
@@ -8,6 +8,9 @@
  *
  * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
  * and MIT-Project Athena, 1989.
+ *
+ * Changes:
+ * DynObjectP moved to public file
  */
 
 
@@ -35,7 +38,7 @@ typedef struct _DynObject {
      DynPtr	array;
      int	el_size, num_el, size, inc;
      char	debug, paranoid;
-} DynObjectRecP, *DynObjectP;
+} DynObjectRecP;
 
 /* Internal functions */
 int _DynRealloc();
diff --git a/libdyn/dyn_append.c b/libdyn/dyn_append.c
index e4ca16b..af0d0a3 100644
--- a/libdyn/dyn_append.c
+++ b/libdyn/dyn_append.c
@@ -8,9 +8,13 @@
  *
  * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
  * and MIT-Project Athena, 1989.
+ *
+ * Changes made:
+ * 	addes strings.h include, changed some %d to %p
  */
 
 #include <stdio.h>
+#include <strings.h>
 
 #include "dynP.h"
 
@@ -20,7 +24,7 @@ int DynAppend(obj, els, num)
    int num;
 {
      if (obj->debug)
-	  fprintf(stderr, "dyn: append: Writing %d bytes from %d to %d + %d\n",
+	  fprintf(stderr, "dyn: append: Writing %d bytes from %p to %p + %d\n",
 		  obj->el_size*num, els, obj->array, obj->num_el*obj->el_size);
 
      if (obj->size < obj->num_el + num) {
diff --git a/libdyn/dyn_create.c b/libdyn/dyn_create.c
index 16890ae..d20d78d 100644
--- a/libdyn/dyn_create.c
+++ b/libdyn/dyn_create.c
@@ -12,6 +12,7 @@
  */
 
 #include <stdio.h>
+#include <stdlib.h>
 
 #include "dynP.h"
 
@@ -26,11 +27,11 @@ DynObjectP DynCreate(el_size, inc)
 {
      DynObjectP obj;
 
-     obj = (DynObjectP) malloc(sizeof(DynObjectRecP));
+     obj = malloc(sizeof(DynObjectRecP));
      if (obj == NULL)
 	  return NULL;
 
-     obj->array = (DynPtr) malloc(0);
+     obj->array = malloc(0);
      obj->el_size = el_size;
      obj->num_el = obj->size = 0;
      obj->debug = obj->paranoid = 0;
diff --git a/libdyn/dyn_delete.c b/libdyn/dyn_delete.c
index 2ec2497..bde8d61 100644
--- a/libdyn/dyn_delete.c
+++ b/libdyn/dyn_delete.c
@@ -8,9 +8,13 @@
  *
  * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
  * and MIT-Project Athena, 1989.
+ *
+ * Changes made to this:
+ * 	added strings.h, changed some %d to %p
  */
 
 #include <stdio.h>
+#include <strings.h>
 
 #include "dynP.h"
 
@@ -45,7 +49,7 @@ int DynDelete(obj, index)
      else {
 	  if (obj->debug)
 	       fprintf(stderr,
-		       "dyn: delete: copying %d bytes from %d + %d to + %d.\n",
+		       "dyn: delete: copying %d bytes from %p + %d to + %d.\n",
 		       obj->el_size*(obj->num_el - index), obj->array,
 		       (index+1)*obj->el_size, index*obj->el_size);
 	  
@@ -56,7 +60,7 @@ int DynDelete(obj, index)
 	  if (obj->paranoid) {
 	       if (obj->debug)
 		    fprintf(stderr,
-			    "dyn: delete: zeroing %d bytes from %d + %d\n",
+			    "dyn: delete: zeroing %d bytes from %p + %d\n",
 			    obj->el_size, obj->array,
 			    obj->el_size*(obj->num_el - 1));
 	       bzero(obj->array + obj->el_size*(obj->num_el - 1),
diff --git a/libdyn/dyn_insert.c b/libdyn/dyn_insert.c
index c0ed297..4eded61 100644
--- a/libdyn/dyn_insert.c
+++ b/libdyn/dyn_insert.c
@@ -8,9 +8,13 @@
  *
  * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
  * and MIT-Project Athena, 1989.
+ *
+ * changes:
+ * 	added strings.h header
  */
 
 #include <stdio.h>
+#include <strings.h>
 #include "dynP.h"
 
 int DynInsert(obj, index, els, num)
@@ -35,7 +39,7 @@ int DynInsert(obj, index, els, num)
      }
 
      if (obj->debug)
-	  fprintf(stderr,"dyn: insert: Moving %d bytes from %d + %d to + %d\n",
+	  fprintf(stderr,"dyn: insert: Moving %d bytes from %p + %d to + %d\n",
 		  (obj->num_el-index)*obj->el_size, obj->array,
 		  obj->el_size*index, obj->el_size*(index+num));
 
@@ -46,7 +50,7 @@ int DynInsert(obj, index, els, num)
 	   (obj->num_el-index)*obj->el_size);
 
      if (obj->debug)
-	  fprintf(stderr, "dyn: insert: Copying %d bytes from %d to %d + %d\n",
+	  fprintf(stderr, "dyn: insert: Copying %d bytes from %p to %p + %d\n",
 		  obj->el_size*num, els, obj->array, obj->el_size*index);
 
      bcopy(els, obj->array + obj->el_size*index, obj->el_size*num);
diff --git a/libdyn/dyn_put.c b/libdyn/dyn_put.c
index 4229f80..8e8f226 100644
--- a/libdyn/dyn_put.c
+++ b/libdyn/dyn_put.c
@@ -11,6 +11,7 @@
  */
 
 #include <stdio.h>
+#include <strings.h>
 
 #include "dynP.h"
 
@@ -34,7 +35,7 @@ DynPtr DynGet(obj, num)
      }
      
      if (obj->debug)
-	  fprintf(stderr, "dyn: get: Returning address %d + %d.\n",
+	  fprintf(stderr, "dyn: get: Returning address %p + %d.\n",
 		  obj->array, obj->el_size*num);
      
      return (DynPtr) obj->array + obj->el_size*num;
@@ -67,7 +68,7 @@ static int DynPut(obj, el, index)
      int ret;
      
      if (obj->debug)
-	  fprintf(stderr, "dyn: put: Writing %d bytes from %d to %d + %d\n",
+	  fprintf(stderr, "dyn: put: Writing %d bytes from %p to %p + %d\n",
 		  obj->el_size, el, obj->array, index*obj->el_size);
 
      if ((ret = _DynResize(obj, index)) != DYN_OK)
diff --git a/libdyn/dyn_realloc.c b/libdyn/dyn_realloc.c
index bf13910..ba6a657 100644
--- a/libdyn/dyn_realloc.c
+++ b/libdyn/dyn_realloc.c
@@ -11,6 +11,7 @@
  */
 
 #include <stdio.h>
+#include <stdlib.h>
 
 #include "dynP.h"
 
@@ -32,7 +33,7 @@ int _DynRealloc(obj, num_incs)
 		  "dyn: alloc: Increasing object by %d bytes (%d incs).\n",
 		  obj->el_size*obj->inc*num_incs, num_incs);
      
-     temp = (DynPtr) realloc(obj->array, new_size_in_bytes);
+     temp = realloc(obj->array, new_size_in_bytes);
      if (temp == NULL) {
 	  if (obj->debug)
 	       fprintf(stderr, "dyn: alloc: Out of memory.\n");
diff --git a/libdyn/dyn_size.c b/libdyn/dyn_size.c
index 773db4a..75bdee5 100644
--- a/libdyn/dyn_size.c
+++ b/libdyn/dyn_size.c
@@ -14,8 +14,7 @@
 
 #include "dynP.h"
 
-int DynSize(obj)
-   DynObjectP obj;
+int DynSize(DynObjectP obj)
 {
      if (obj->debug)
 	  fprintf(stderr, "dyn: size: returning size %d.\n", obj->num_el);
diff --git a/nntp.c b/nntp.c
index 08d469c..1fc7383 100644
--- a/nntp.c
+++ b/nntp.c
@@ -23,7 +23,8 @@
 #include <netdb.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include <varargs.h>
+#include <stdarg.h>
+#include <ctype.h>
 #include <errno.h>
 #include <sys/stat.h>
 
@@ -48,15 +49,13 @@ extern int NNTPinit;
 
 #endif
 
-void Fatal(va_alist)
+void Fatal(const char *fmt, ...)
 {
-	char *fmt;
 	extern int errno;
 	va_list p;
 
-	va_start(p);
+	va_start(p, fmt);
 
-	fmt = va_arg(p, char *);
 	vfprintf(stderr, fmt, p);
 	fputc('\n', stderr);
 	if (errno)
@@ -167,10 +166,10 @@ int getHeaders(long Article, char **from, char **subject)
 
 		q[-1] = NEWLINE;
 
-		if (strincmp(line, "From:", 5) == 0)
+		if (strncasecmp(line, "From:", 5) == 0)
 			*from = strdup(line);
 
-		if (strincmp(line, "Subject:", 8) == 0)
+		if (strncasecmp(line, "Subject:", 8) == 0)
 			*subject = strdup(line);
 
 
@@ -212,7 +211,7 @@ void readNewsrcEntry(newsBox, firstArt, lastArt)
 		char *tmp;
 		char *backp;
 
-		if (strincmp(line, newsBox->box, NEWstrlen(newsBox->box)) != 0)
+		if (strncasecmp(line, newsBox->box, NEWstrlen(newsBox->box)) != 0)
 			continue;
 
 		tmp = line + NEWstrlen(newsBox->box);
@@ -294,12 +293,9 @@ int CountNNTP(newsBox, headerString, beenTouched)
 	DynObject headerString;
 	Boolean *beenTouched;
 {
-	int sock, err, len;
 	char line[1024];
-	long ipaddr;
 	char *from;
 	char *subject;
-	long firstScanArticle;
 	long firstArticle;
 	long lastArticle;
 	long retVal;
diff --git a/xbuffy.c b/xbuffy.c
index abf18a1..0204ff1 100644
--- a/xbuffy.c
+++ b/xbuffy.c
@@ -34,6 +34,9 @@
 #include <stdlib.h>
 #include <fcntl.h>
 #include <ctype.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/wait.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <dirent.h>
@@ -42,6 +45,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #endif                          /* SYSV */
+#include "libdyn/dyn.h"
 #include "xbuffy.h"
 #ifndef USE_MOTIF
 #include <X11/Intrinsic.h>
@@ -82,7 +86,6 @@ void TimerBreakPopup();
 int CountUnixMail();
 void ParseMailPath();
 int makeBoxTitle();
-void initBox();
 Pixel convertColor();
 
 void ButtonDownHandler();
@@ -177,11 +180,7 @@ void CheckBox(i)
     int num = 0;
     Arg args[5];
     int nargs;
-    static BoxInfo_t *tempNews = 0;
     BoxInfo_t *currentBox;
-    int found;
-    static char *mailHeader = NULL;
-    int headerSize;
     Boolean beenTouched;
     Boolean isIcon = FALSE;
 
@@ -305,7 +304,6 @@ void UpdateBoxNumber(box)
 		fprintf(stderr, "Error executing led\n");
 		_exit(1);
 	      }
-	    default:
 	    }
 	}
 	else
@@ -863,9 +861,6 @@ int CountDirMail(mailBox, headerString)
 	  if (fp != NULL) {
 	    while (!found && fgets(buffer, MAX_STRING - 2, fp) != 0)
 	    {
-	      long CL;
-	      int has_CL;
-
 	      buffer[MAX_STRING - 1] = '\0';  /* just in case */
 	      if ((strchr(buffer, '\n') == NULL) && (!feof(fp)))
 	      { /* read to end of line */
@@ -965,6 +960,8 @@ int CountUnixMail(mailBox, headerString, beenTouched)
       case MHDIR:
 	count = CountDirMail(mailBox, headerString);
 	break;
+      case NNTPBOX:
+	return(0);
     }
 
 /* Restore access time of mailbox. */
@@ -1187,7 +1184,10 @@ char *EliminatePath(path)
     char *file = 0;
 
     file = (char *) strrchr(path, '/');
-    file = (file ? ++file : path);
+    if( file )
+      ++file;
+    else
+      file = path;
 
     return (file);
 }
@@ -1218,7 +1218,11 @@ void ParseNewsPath()
     {
         initBox(NEWstrdup(str), NNTPBOX, envPolltime, envHeadertime, UNDEF, 
 	    data.command, data.audioCmd, NULL, data.origMode, data.nobeep, 
-	    NULL,NULL);
+	    NULL,NULL
+#ifdef USE_LED
+	    ,-1
+#endif
+            );
         str = strtok(NULL, ":, ");
     }
 }
@@ -1648,7 +1652,7 @@ int main(argc, argv)
 #ifndef DEBUG
 #ifdef HAVE_SETPRIORITY
     if (setpriority(PRIO_PROCESS, 0, envPriority) == -1)
-        perror("Proirity change Failed");
+        perror("Priority change failed");
 #endif
     /* put ourself in the background */
     switch (pid = fork())
diff --git a/xbuffy.h b/xbuffy.h
index e831240..42a64df 100644
--- a/xbuffy.h
+++ b/xbuffy.h
@@ -127,6 +127,16 @@ typedef struct ApplicationData_s ApplicationData_t;
 #define NEWstrlen(s) (s == NULL ? 0 : strlen(s))
 #define NEWstrdup(s) (s == NULL ? NULL : strdup(s))
 
+#ifdef USE_NNTP
+int CountNNTP(BoxInfo_t *newsBox, DynObject headerString, Boolean *beenTouched);
+#endif
+void initBox(char *box, BoxType_t BoxType, int pollTime, int headerTime, BoxNameType_t BoxNameType, char *command, char *audioCmd, char *title, Boolean origMode, Boolean nobeep, char *bgName, char *fgName
+#ifdef USE_LED
+, int led
+#endif
+);
+void readBoxfile(const char *boxFile);
+
 int cmp_header(const char *, const char *);
 int cmp_header_get(const char *buffer, const char *header, const char **p);
 int proper_mailstart(const char *);
diff --git a/xbuffy.man b/xbuffy.man
index ef6cd23..ab88980 100644
--- a/xbuffy.man
+++ b/xbuffy.man
@@ -4,13 +4,13 @@
 xbuffy \- yet another biff for the X Window System
 .SH SYNOPSIS
 .B xbuffy  
-[X toolkit options] [-help] [-version] [-horiz]
-[-poll \fIseconds\fR]  [-header \fIseconds\fR] 
-[-acmd \fIsound file\fR]  [-nobeep] [-names] [-orig]
-[-priority \fIpriority\fR]
-[-command \fIcommand\fR] [-shortnames] 
-[-mail <mailbox files...>] 
-[-news <newsgroup names...>]
+[X toolkit options] [\-help] [\-version] [\-horiz]
+[\-poll \fIseconds\fR]  [\-header \fIseconds\fR]
+[\-acmd \fIsound file\fR]  [\-nobeep] [\-names] [\-orig]
+[\-priority \fIpriority\fR]
+[\-command \fIcommand\fR] [\-shortnames]
+[\-mail <mailbox files...>]
+[\-news <newsgroup names...>]
 
 .SH DESCRIPTION
 Xbuffy is based on Xmultibiff by John Reardon. 
@@ -41,17 +41,17 @@ Read on for details on what it can do.
 .SH OPTIONS
 The following options are recognized:
 .TP 10
-.B -help
+.B \-help
 Print a brief help message and exit
 .TP
-.B -version
+.B \-version
 Print the current version and exit
 .TP
-.B -poll \fIsecs\fR
+.B \-poll \fIsecs\fR
 How often the mailbox files are polled for new mail.  If this is not
 specified, it will use the \fBMAILCHECK\fR environment variable. (default: 60)
 .TP
-.B -header \fIsecs\fR
+.B \-header \fIsecs\fR
 This will display the \fBFrom:\fR and \fBSubject:\fR
 lines from incoming mail messages in a popup window
 when button 1 is pressed in the box label.  The mail
@@ -62,50 +62,50 @@ new mail arrives.  Clicking in the popup window when mail
 arrives (if the argument is non-zero) will instantly popdown
 the window.  This feature was borrowed from xpbiff.
 .TP
-.B -fill
+.B \-fill
 Makes all the boxes the same size.
 .TP
-.B -center
+.B \-center
 Centers the name of the box in the box.  This option turns on the fill option.
 .TP
-.B -acmd \fIsound command\fR
+.B \-acmd \fIsound command\fR
 This will run a command instead of ringing the bell when new mail arrives.
 For example, you could "cat meow >/dev/audio".  This option could also
 be used to automatically open a mail reader when new mail arrives.
 .TP
-.B -horiz
+.B \-horiz
 This will line up the boxes horizontally (default: vertical)
 .TP
-.B -nobeep
+.B \-nobeep
 This will disable the beep (or sound command) when new 
 mail arrives
 .TP
-.B -boxfile \fIfilename\fR
+.B \-boxfile \fIfilename\fR
 The name of a file containing configuration information for the boxes.  The
 boxfile is an alternative way of specifying what to watch.  The boxfile also
 allows each box to have different polltime, headertime, etc.
 .TP
-.B -origMode
+.B \-origMode
 This will show all messages in each mailbox.  It has no effect on 
 news groups.
 .TP
-.B -names
+.B \-names
 Will display the full pathname of all the mailboxes 
 it is watching.
 .TP
-.B -shortnames
+.B \-shortnames
 Will display the file names of all the mailboxes 
 it is watching.
 .TP
-.B -priority \fIpriority\fR
+.B \-priority \fIpriority\fR
 Nice level at which xbuffy and its child processes will run.
 .TP
-.B -command \fIcommand\fR
+.B \-command \fIcommand\fR
 This is the default command that is to be executed when Button 2 is pressed 
 on a box.
 .TP
 .B X Options
-Standard X windows options (e.g. -fn, -display, etc.)
+Standard X windows options (e.g. \-fn, \-display, etc.)
 .SH ENVIRONMENT
 The names and purpose of the some of the following environment 
 variables were borrowed from Bash, the GNU Shell.
@@ -148,11 +148,11 @@ When using a \fIboxfile\fR, only the \fIbox\fR line is required.  All options
 that are not given in the boxfile will default to the command line 
 (or built in) value.
 .TP 10
-.B box \fIfile name\fR 
+.B box \fIfilename\fR
 The filename or newsgroup for this box.  This also marks the beginning of
 a box definition.
 .TP
-.B title \fIbox title\fR
+.B title \fIboxtitle\fR
 The title that you want for this box.  This will override the shortname or 
 longname option.
 .TP
@@ -205,18 +205,18 @@ box.  Take care to escape characters correctly.
 .TP
 .B led  \fInum\fR
 Specifies a keyboard led to flash when new mail arrives. This is a
-number between 1 and 3. (1 - NumLock, 2 - CapsLock or 3 - ScrollLock).
+number between 1 and 3. (1 - NumLock, 2 - CapsLock or 3 - ScrollLock.)
 
-.B NOTE:
-This is only available on LINUX and only if compiled with --enable-led
+\fBNOTE:\fR This is only available on LINUX and only if compiled with
+\-\-enable\-led
 
-.TP 0
+.PP
 The following resources are settable on a per application basis
 in the Xresources:
 
 .TP 10
 .B horiz
-Set to TRUE or FALSE.  Same as the -horiz option.
+Set to TRUE or FALSE.  Same as the \-horiz option.
 .TP
 .B mailboxes
 Set to a colon separated list of mailboxes (files).  This
@@ -233,7 +233,7 @@ maximum flexibility on a per-box basis, I suggest using a boxfile.
 
 The following example will watch 2 mailboxes in a home directory:
 .nf
-	\fI% xbuffy -mail ~/box1 ~/box2 &\fR
+	\fI% xbuffy \-mail ~/box1 ~/box2 &\fR
 .fi
 
  boxfile:
@@ -244,7 +244,7 @@ The following example will watch 2 mailboxes in a home directory:
 
 The following example will watch a mailbox and a newsgroup:
 .nf
-	\fI% xbuffy -mail /usr/spool/mail/you -news comp.windows.x &\fR
+	\fI% xbuffy \-mail /usr/spool/mail/you \-news comp.windows.x &\fR
 .fi
 
  boxfile:
-- 
1.6.5.7