[comp.sources.x] v02i082: X11 Release 3, Patch7

mikew@wyse.wyse.com (Mike Wexler) (01/10/89)

Submitted-by: jim@expo.lcs.mit.edu (Jim Fulton)
Posting-number: Volume 2, Issue 82
Archive-name: x11.3/patch7



		       Created on Monday, 9 January 1989

				  PART 3 of 3


Fixes 5, 6, and 7 are part of a single update to the xman program.  Together
they affect the following files:

	clients/xman/CHANGES
	clients/xman/README
	clients/xman/ScrollByL.c
	clients/xman/TODO
	clients/xman/buttons.c
	clients/xman/defs.h
	clients/xman/globals.c
	clients/xman/globals.h
	clients/xman/handler.c
	clients/xman/help.c
	clients/xman/main.c
	clients/xman/man.c
	clients/xman/man.h
	clients/xman/menu.c
	clients/xman/misc.c
	clients/xman/pages.c
	clients/xman/search.c
	clients/xman/tkfuncs.c
	clients/xman/version.h
	clients/xman/xman.help
	clients/xman/xman.man

To apply these fixes, concatenate all three files and pipe them to patch -p0
from the top of your X sources:

	%  cat fix5 fix6 fix7 | patch -p0


The following is fix7 (you will also need fix5 and fix6):



*** /tmp/,RCSt1a17111	Fri Jan  6 18:56:24 1989
--- clients/xman/CHANGES	Fri Jan  6 18:42:34 1989
***************
*** 3,56 ****
  Here is the list of changes to xman.  Unresolved bug fixes and
  neat features are listed in the TODO file.
  
  ------------------------------------------------------------
! Version 3.0 (X11R2 Tape) -> Version 3.0.2
  ------------------------------------------------------------
  
! Additional Features:
  
! 1) Startup time is now 3 times faster.
  
! 2) Manual page searches now SCREAM, speed MUCH improved.
  
! 3) -pagesize argument added and documented in manual page.
  
! 4) List widget used for directory, may new features of directory
!    a) vertical or horizontal orientation via the "verticalList" resource
!       vertical is now the default.
!       e.g  xman*verticalList:        False
  
!     b) current manual page is highlighted in the directory listing.
!     c) resizing the window now creates more columns in directory 
!        (see bug fix #4).
!     d) Pixmaps no longer created for each directory listing.
!        you people with color workstations should like this one.
  
! 5) Xman no longer uses the window widget, and it has been removed from
!    the distribution.  If you want a copy send me e-mail.
  
! Bug Fixes:
  
! 1) The height of the directory items was wrong if a different
!    font is used for the directory than for the manual pages.
  
! 2) The topBox resource for the initial "Manual Browser" box now 
!    can be specified.  This allows the geometry of this box to be 
!    set with resources.
  
!    e.g xman*topBox.geometry:      =100x100+2+2
  
! 3) Xman now handles the case of no help file correctly.
  
! 4) Resizing the directory now causes the columns to fill in the new area.
!    This causes more of the directory to be visable in wider windows, and
!    resizing narrower does not lose information.
  
  
! Know bugs yet to be resolved:
  
! 1) Resizing the man page causes the directory to grow too big.
!    and the manpage to get real small. (1 pixel).
  	
  ------------------------------------------------------------
  Version 3.0.2 -> 3.0.3
--- 3,94 ----
  Here is the list of changes to xman.  Unresolved bug fixes and
  neat features are listed in the TODO file.
  
+ I have changed this in to reverse chronological order to make it
+ easier to read.
+ 
  ------------------------------------------------------------
! Version 3.1  -> 3.1.1
  ------------------------------------------------------------
  
! Bug Fixes.
  
! 1) Manual Pages now handle text properly if partially obscured.
  
! 2) Manual Pages smaller than one screen do not cause xman to die.
  
! 3) Command line arguments and resources work properly again.
  
! 4) Scrollbars on man pages and directories are the same size by default.
  
! 5) Better handling of the decision to boldify.
  
! 6) Searching with multiple manual pages visable now works correctly.
  
! 7) Resources are all in a structure, so that machines with the MSB set
!    on pointers will do the right thing.  
!    THANKS TO: Martin Streicher
  
! 8) Default width, is no longer dependant on the width of the display,
!    but is set with #define DEFAULT_WIDTH in defs.h.  Problems may still
!    occur with displays that are not 75 dpi.
  
! 9) Fixes to man.c (internal maual page finding functions)
!    a) xman knows about "mano" by default now.
  
! 10) Right button paging in manual pages works correctly on all machines.
  
! 11) The box with the message "Would you like to save this formatted manpage"
!     comes up correctly in the center of the manual page.
  
! 12) Manual pages of the form foo.3x11.z show up as: foo(x11).
  
+ 13) Reverse video works correctly.
  
! 14) AproposFilter now uses "man -k" rather than "apropos"
!     THANKS TO:  Arthur David Olson.
  
! 15) When searching for manual pages, highlight now reflects current 
!     manual page.
! 
! FEATURES:
! 
! 1) Overstrike is now supported.  
!    THANKS TO: clyde@rutgers.edu
! 
! 2) Addition to of "no default sections" option to mandesc file, read the
!    latest man page for details.
! 
! 3) Warning messages printed to manual page window as well as stdout.
! 
! ------------------------------------------------------------
! Version 3.0.4 -> 3.1 (X11R3)
! ------------------------------------------------------------
! 
! List widget is part of Xaw and removed from this directory.
! 
! ------------------------------------------------------------
! Version 3.0.3 -> 3.0.4
! ------------------------------------------------------------
! 
! Bug fixes.
! 
! 1)  First directory now comes up with all entries when the default
!     size is used.
! 
! 2)  Command line syntax printed if an argument is not understood.
! 
! 3)  manpage rewritten.
! 
! 4)  Apropos no longer blows out with very long MANPATH's.
! 
! 5)  Better handling of mandesc file.
! 
! Features:
! 
! 1) additional command line arguments (see manpage for details):
!    a) -notopbox
!    b) -bothshown
!    c) -helpfile <filename>
  	
  ------------------------------------------------------------
  Version 3.0.2 -> 3.0.3
***************
*** 86,121 ****
  
  10) 	Left over highlight in menu have been fixed.
  
  ------------------------------------------------------------
! Version 3.0.3 -> 3.0.4
  ------------------------------------------------------------
  
! Bug fixes.
  
! 1)  First directory now comes up with all entries when the default
!     size is used.
  
! 2)  Command line syntax printed if an argument is not understood.n 
  
! 3)  manpage rewritten.
  
! 4)  Apropos no longer blows out with very long MANPATH's.
  
! 5)  Better handling of mandesc file.
  
! Features:
  
! 1) additional command line arguments (see manpage for details):
!    a) -notopbox
!    b) -bothshown
!    c) -helpfile <filename>
  
! ------------------------------------------------------------
! Version 3.0.4 -> 3.1 (X11R3)
! ------------------------------------------------------------
  
! List widget is part of Xaw and removed from this directory.
  
  
  						Chris D. Peterson     
  						Project Athena     
--- 124,180 ----
  
  10) 	Left over highlight in menu have been fixed.
  
+ 
  ------------------------------------------------------------
! Version 3.0 (X11R2 Tape) -> Version 3.0.2
  ------------------------------------------------------------
  
! Additional Features:
  
! 1) Startup time is now 3 times faster.
  
! 2) Manual page searches now SCREAM, speed MUCH improved.
  
! 3) -pagesize argument added and documented in manual page.
  
! 4) List widget used for directory, may new features of directory
!    a) vertical or horizontal orientation via the "verticalList" resource
!       vertical is now the default.
!       e.g  xman*verticalList:        False
  
!     b) current manual page is highlighted in the directory listing.
!     c) resizing the window now creates more columns in directory 
!        (see bug fix #4).
!     d) Pixmaps no longer created for each directory listing.
!        you people with color workstations should like this one.
  
! 5) Xman no longer uses the window widget, and it has been removed from
!    the distribution.  If you want a copy send me e-mail.
  
! Bug Fixes:
  
! 1) The height of the directory items was wrong if a different
!    font is used for the directory than for the manual pages.
  
! 2) The topBox resource for the initial "Manual Browser" box now 
!    can be specified.  This allows the geometry of this box to be 
!    set with resources.
  
+    e.g xman*topBox.geometry:      =100x100+2+2
+ 
+ 3) Xman now handles the case of no help file correctly.
+ 
+ 4) Resizing the directory now causes the columns to fill in the new area.
+    This causes more of the directory to be visable in wider windows, and
+    resizing narrower does not lose information.
+ 
+ 
+ Know bugs yet to be resolved:
+ 
+ 1) Resizing the man page causes the directory to grow too big.
+    and the manpage to get real small. (1 pixel).
+ 
+ ------------------------------------------------------------
  
  						Chris D. Peterson     
  						Project Athena     
*** /tmp/,RCSt1a17125	Fri Jan  6 18:56:26 1989
--- clients/xman/README	Fri Jan  6 18:42:35 1989
***************
*** 7,14 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: README,v 1.3 88/10/07 17:25:10 jim Exp $
!  * $Athena: README,v 3.4 88/08/31 21:14:20 kit Locked $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 7,14 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: README,v 1.4 89/01/06 18:42:34 kit Exp $
!  * $Athena: README,v 4.3 88/12/19 13:49:06 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 52,58 ****
  pain.  Oh yes, I also came up with what I think is a useful tool for all
  users who wish to browse the manual pages.  
  
! 	The ScrollByLine widget, while it looked like a good idea at t
  the time, is really a hack and for widget examples please use the widget
  set that came on the X tape, as the ScrollByLine Wiget was written about
  three months and many Xtk intrinsic revisions ago.  It still works for
--- 52,58 ----
  pain.  Oh yes, I also came up with what I think is a useful tool for all
  users who wish to browse the manual pages.  
  
! 	The ScrollByLine widget, while it looked like a good idea at
  the time, is really a hack and for widget examples please use the widget
  set that came on the X tape, as the ScrollByLine Wiget was written about
  three months and many Xtk intrinsic revisions ago.  It still works for
***************
*** 83,96 ****
  both the naive user and the experience unix hacker in mind.  Thus Xman
  is:
  
! 1) Easy to use, start it up, and click the help button to start.
! 2) Uses the same default key bindings as other Xtk applications (xmh, xmore).
! 3) Conserves Screen space, and is usable even when resized fairly small.
! 4) Readily reconfigurable, this allows the experienced user to remove most
!    information that is not necessary from his xman display.
! 5) Fast - once it has started up it has all the information in 
!           memory and can find and display formatted manual pages quite
!           quickly.
  
  	Changes from version 3.0 (Distributed with X11R2) are in the  	|
  file CHANGES. A list of bugs, and nice features is in the file TODO.	|
--- 83,98 ----
  both the naive user and the experience unix hacker in mind.  Thus Xman
  is:
  
! 1) Easy to use			Start it up, and click the help button 
! 				to start.
! 2) More or less Standard	Uses the same default key bindings as 
! 				other Xtk applications (xmh, xmore).
! 3) Conserves Screen space	Xman is usable even when resized fairly small.
! 4) Readily reconfigurable	Xman allows the experienced user to 
! 				personalize the interface (somewhat :-)
! 5) Fast 			Once it has started up it has all the 
! 				information in memory and can find and
! 				display formatted manual pages quite quickly.
  
  	Changes from version 3.0 (Distributed with X11R2) are in the  	|
  file CHANGES. A list of bugs, and nice features is in the file TODO.	|
*** /tmp/,RCSt1a17142	Fri Jan  6 18:56:31 1989
--- clients/xman/TODO	Fri Jan  6 18:42:36 1989
***************
*** 20,30 ****
     How about a "print this manpage" command that would confirm the
     printer choice and go do a psroff -man? 
  
!    One more thing.  It would be nice if "help" told you about the
     Xresources used by xman (like xman*topBox.geometry) ...
  
     show message when formatting manpage.
  
     Implement searches within manpages.
  
     Redo menus.
--- 20,32 ----
     How about a "print this manpage" command that would confirm the
     printer choice and go do a psroff -man? 
  
!    It would be nice if "help" told you about the
     Xresources used by xman (like xman*topBox.geometry) ...
  
     show message when formatting manpage.
  
+    Handle Compressed manual pages, by page and by directory.
+ 
     Implement searches within manpages.
  
     Redo menus.
***************
*** 38,40 ****
--- 40,44 ----
     on to select one of those pages without having to switch sections and
     then pick the manpage.
     
+ 
+ ** This needs to be added to the Athena List Widget.
*** /tmp/,RCSt1a17158	Fri Jan  6 18:56:37 1989
--- clients/xman/defs.h	Fri Jan  6 18:41:57 1989
***************
*** 1,8 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: defs.h,v 1.6 88/10/20 19:03:47 jim Exp $
!  * $Athena: defs.h,v 4.0 88/08/31 22:11:42 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,8 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: defs.h,v 1.7 89/01/06 18:41:55 kit Exp $
!  * $Athena: defs.h,v 4.8 89/01/06 15:56:19 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 73,85 ****
  
  #define INIT_SEARCH_STRING "xman"     /* Intial search string. */
  #define SEARCH_STRING_LENGTH 30
! 
  /*
   * The command filters for the manual and apropos searches.
   */
  
! #define APROPOSCOMMAND "apropos -M"
! #define APROPOSFILTER "pr -h Apropos"
  #define MANUALCOMMAND "man -M"
  #ifdef macII
  #define FORMAT "pcat"	/* The format command. */
--- 73,84 ----
  
  #define INIT_SEARCH_STRING "xman"     /* Intial search string. */
  #define SEARCH_STRING_LENGTH 30
! #define NO_SECTION_DEFAULTS ("no default sections")
  /*
   * The command filters for the manual and apropos searches.
   */
  
! #define APROPOSFILTER ("man -M %s -k %s | pr -h Apropos > %s")
  #define MANUALCOMMAND "man -M"
  #ifdef macII
  #define FORMAT "pcat"	/* The format command. */
***************
*** 89,103 ****
  
  #define CANCEL "Cancel"
  
! #define MAXSECT 25		/* The maximum number of sections. */
! #define FIXEDSECT 11		/* The number of predefined sections.
! 				   0 - 8 and n, and l = 11. */
  #define MAXENTRY 800		/* The maximum number of entries in one 
! 				   section. */
  #define NLINES  66		/* This is the number of lines to wait until
  				   we boldify the line again, this allows 
  				   me to bold the first line of each page.*/
  
  
  #define LMAN 3			/* Name and length of the man and cat dirs. */
  #define MAN "man"
--- 88,109 ----
  
  #define CANCEL "Cancel"
  
! #define DEFAULT_WIDTH 500	/* The default width of xman. */
! #define MAXSECT 62		/* The maximum number of sections.
! 				   one for each of (1-9) & (a-z) & (A-Z) */
! #ifdef sun
! #define MAXENTRY 2000		/* The maximum number of entries in one 
! 				   section, on a sun. */
! #else
  #define MAXENTRY 800		/* The maximum number of entries in one 
! 				   section, on other machines. */
! #endif
! 
  #define NLINES  66		/* This is the number of lines to wait until
  				   we boldify the line again, this allows 
  				   me to bold the first line of each page.*/
  
+ #define INITIAL_DIR 0		/* The Initial Directory displayed. */
  
  #define LMAN 3			/* Name and length of the man and cat dirs. */
  #define MAN "man"
***************
*** 165,173 ****
  /* man.c */
  
  int Man();
- void MatchEntries(),AddStruct(),SortAndRemove();
- Boolean GetEntry();
- void SetManNames();
  char * StrAlloc();
  
  /* menu.c is self contained */
--- 171,176 ----
***************
*** 175,181 ****
  /* misc.c */
  
  void PrintError(),PrintWarning(),KillManpage(), ChangeLabel();
! void RemovePixmaps(),PositionCenter(),AddCursor();
  FILE *FindFilename(),*Format(), *OpenEntryFile();
  
  /* pages.c */
--- 178,184 ----
  /* misc.c */
  
  void PrintError(),PrintWarning(),KillManpage(), ChangeLabel();
! void RemovePixmaps(),PositionCenter(),AddCursor(),ParseEntry();
  FILE *FindFilename(),*Format(), *OpenEntryFile();
  
  /* pages.c */
*** /tmp/,RCSt1a17166	Fri Jan  6 18:56:39 1989
--- clients/xman/globals.c	Fri Jan  6 18:41:58 1989
***************
*** 1,7 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: globals.c,v 1.2 88/09/06 17:47:38 jim Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,7 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: globals.c,v 1.3 89/01/06 18:41:57 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 20,45 ****
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: globals.c,v 4.0 88/08/31 22:11:49 kit Exp $";
  #endif
  
  #include "man.h"
  
! /* Resource manager sets these. */
  
! XmanFonts fonts;		/* The fonts used for the man pages. */
! XmanCursors cursors;		/* The cursors for xman. */
! Boolean both_shown_initial;	/* The initial state of the manual pages
! 				   show two screens or only one. */
! Boolean top_box_active;	        /* Put up the Top Box. */
! int directory_height;	        /* The default height of directory in 
! 				   both_shown mode. */
! char * help_file;		/* The name of the help file. */
  
  Widget help_widget;		/* The help widget. */
  
- /* bookkeeping global variables. */
- 
  int default_height,default_width; /* Approximately the default with and
  					    height, of the manpage when shown,
  					    the the top level manual page 
--- 20,36 ----
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: globals.c,v 4.5 88/12/19 13:46:53 kit Exp $";
  #endif
  
  #include "man.h"
  
! Xman_Resources resources;	/* Resource manager sets these. */
  
! /* bookkeeping global variables. */
  
  Widget help_widget;		/* The help widget. */
  
  int default_height,default_width; /* Approximately the default with and
  					    height, of the manpage when shown,
  					    the the top level manual page 
***************
*** 51,53 ****
--- 42,45 ----
  int man_pages_shown;		/* The current number of manual
  				   pages being shown, if 0 we exit. */
  
+ Widget initial_widget;		/* The initial widget, never realized. */
*** /tmp/,RCSt1a17176	Fri Jan  6 18:56:41 1989
--- clients/xman/globals.h	Fri Jan  6 18:41:59 1989
***************
*** 1,8 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: globals.h,v 1.2 88/09/06 17:47:41 jim Exp $
!  * $Athena: globals.h,v 4.0 88/08/31 22:11:54 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,8 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: globals.h,v 1.3 89/01/06 18:41:58 kit Exp $
!  * $Athena: globals.h,v 4.5 88/12/19 13:46:58 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 22,42 ****
  
  #include "man.h"
  
! /* Resource manager sets these. */
  
! extern XmanFonts fonts;			/* The fonts used for the man pages. */
! extern XmanCursors cursors;		/* The cursors for xman. */
! extern Boolean both_shown_initial;      /* The initial state of the manual 
! 				         pages show two screens or only one. */
! extern Boolean top_box_active;	        /* Put up the Top Box. */
! extern int directory_height;	        /* The default height of directory in 
! 				            both_shown mode. */
! extern char * help_file;		/* The name of the help file. */
  
  extern Widget help_widget;		/* The help widget. */
  
- /* bookkeeping global variables. */
- 
  extern int default_height,default_width; /* Approximately the default with and
  					    height, of the manpage when shown,
  					    the the top level manual page 
--- 22,33 ----
  
  #include "man.h"
  
! extern Xman_Resources resources;	/* Resource manager sets these. */
  
! /* bookkeeping global variables. */
  
  extern Widget help_widget;		/* The help widget. */
  
  extern int default_height,default_width; /* Approximately the default with and
  					    height, of the manpage when shown,
  					    the the top level manual page 
***************
*** 47,50 ****
  extern Manual manual[MAXSECT];		/* The manual structure. */
  extern int sections;			/* The number of manual sections. */
  
! 
--- 38,41 ----
  extern Manual manual[MAXSECT];		/* The manual structure. */
  extern int sections;			/* The number of manual sections. */
  
! extern Widget initial_widget;	      /* The initial widget, never realized. */
*** /tmp/,RCSt1a17190	Fri Jan  6 18:56:45 1989
--- clients/xman/help.c	Fri Jan  6 18:42:04 1989
***************
*** 1,7 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: help.c,v 1.2 88/09/06 17:48:01 jim Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,7 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: help.c,v 1.3 89/01/06 18:42:03 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 55,61 ****
  
    XtManageChild( man_globals->manpagewidgets.manpage );
    XtRealizeWidget(  help_widget );
!   AddCursor( help_widget, cursors.manpage);
  
    return(TRUE);
  }
--- 55,61 ----
  
    XtManageChild( man_globals->manpagewidgets.manpage );
    XtRealizeWidget(  help_widget );
!   AddCursor( help_widget, resources.cursors.manpage);
  
    return(TRUE);
  }
***************
*** 85,92 ****
  {
    FILE * help_file_ptr;
  
!   if( (help_file_ptr = fopen(help_file, "r")) == NULL ) {
!     PrintWarning("Could not open help file, NO HELP WILL BE AVALIABLE.");
      return(FALSE);
    }
    InitManpage(man_globals, man_globals->manpagewidgets.manpage, help_file_ptr);
--- 85,93 ----
  {
    FILE * help_file_ptr;
  
!   if( (help_file_ptr = fopen(resources.help_file, "r")) == NULL ) {
!     PrintWarning(man_globals,
! 		 "Could not open help file, NO HELP WILL BE AVALIABLE.");
      return(FALSE);
    }
    InitManpage(man_globals, man_globals->manpagewidgets.manpage, help_file_ptr);
*** /tmp/,RCSt1a17213	Fri Jan  6 18:56:52 1989
--- clients/xman/man.h	Fri Jan  6 18:42:19 1989
***************
*** 1,8 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: man.h,v 1.2 88/09/06 17:48:12 jim Exp $
!  * $Athena: man.h,v 4.0 88/08/31 22:12:43 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,8 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: man.h,v 1.3 89/01/06 18:42:18 kit Exp $
!  * $Athena: man.h,v 4.6 89/01/06 12:17:38 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 80,109 ****
      directory,			/* The widget in which all directories will
  				   appear. */
      box[MAXSECT];		/* The boxes containing the sections. */
-   Boolean created_box[MAXSECT];	/* Has this box been created yet?. */
  } ManPageWidgets;
  
  /*
!  * How we store each entry such as cat.1, sh.1 etc.
   */
  
- struct entry {
-   char *label;			/* The filename of the entry. */
-   char *path;			/* The path for this entry. */
-  /* So that't why this is a structure, good thinking Barry. */
- };
- 
- /*
-  * the manual sections and entries
-  */
  typedef struct tManual {
    char * blabel;		/* The button label. */
!   char * sect;			/* the section man directory. */
!   struct entry *entries;    /* the individual man page file names and paths*/
    int nentries;			/* how many */
-   int longest;			/* The length (in pixels) of the longest
-                                    entry. */
-   int ncols,nrows;		/* The number of rows and columns */
  } Manual;
  
  /* 
--- 80,95 ----
      directory,			/* The widget in which all directories will
  				   appear. */
      box[MAXSECT];		/* The boxes containing the sections. */
  } ManPageWidgets;
  
  /*
!  * The manual sections and entries
   */
  
  typedef struct tManual {
    char * blabel;		/* The button label. */
!   char ** entries;		/* the individual man page file names. */
    int nentries;			/* how many */
  } Manual;
  
  /* 
***************
*** 133,139 ****
      put_up_manpage,		/* The button that puts up the manpage. */
      put_up_directory,		/* The button that puts up the directory. */
      text_widget;		/* text widget containing search string. */
!   char * search_string;		/* The search string. */
    char manpage_title[80];	/* The label to use for the current manpage. */
    char filename[80];		/* the name of the file that we are
  				   currently looking at.*/
--- 119,125 ----
      put_up_manpage,		/* The button that puts up the manpage. */
      put_up_directory,		/* The button that puts up the directory. */
      text_widget;		/* text widget containing search string. */
!   char search_string[SEARCH_STRING_LENGTH];	/* The search string. */
    char manpage_title[80];	/* The label to use for the current manpage. */
    char filename[80];		/* the name of the file that we are
  				   currently looking at.*/
***************
*** 151,153 ****
--- 137,153 ----
  				   this manpage. */
  
  } ManpageGlobals;
+ 
+ 
+ /* Resource manager sets these. */
+ 
+ typedef struct _Xman_Resources {
+   XmanFonts fonts;		/* The fonts used for the man pages. */
+   XmanCursors cursors;		/* The cursors for xman. */
+   Boolean both_shown_initial;	/* The initial state of the manual pages
+ 				   show two screens or only one. */
+   Boolean top_box_active;	        /* Put up the Top Box. */
+   int directory_height;	        /* The default height of directory in 
+ 				   both_shown mode. */
+   char * help_file;		/* The name of the help file. */
+ } Xman_Resources;
*** /tmp/,RCSt1a17227	Fri Jan  6 18:56:57 1989
--- clients/xman/menu.c	Fri Jan  6 18:42:21 1989
***************
*** 1,7 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: menu.c,v 1.2 88/09/04 20:27:31 swick Exp $
   * $oHeader: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
--- 1,7 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: menu.c,v 1.3 89/01/06 18:42:20 kit Exp $
   * $oHeader: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
***************
*** 21,27 ****
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $";
  #endif
  
  /* std headers */
--- 21,27 ----
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: menu.c,v 4.2 88/12/19 13:47:51 kit Exp $";
  #endif
  
  /* std headers */
*** /tmp/,RCSt1a17241	Fri Jan  6 18:57:00 1989
--- clients/xman/pages.c	Fri Jan  6 18:42:27 1989
***************
*** 1,7 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: pages.c,v 1.2 88/09/06 17:48:20 jim Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,7 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: pages.c,v 1.3 89/01/06 18:42:26 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 20,26 ****
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: pages.c,v 4.0 88/08/31 22:13:10 kit Exp $";
  #endif
  
  #include <ctype.h>
--- 20,26 ----
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: pages.c,v 4.5 88/12/19 13:48:09 kit Exp $";
  #endif
  
  #include <ctype.h>
***************
*** 179,184 ****
--- 179,186 ----
   *	Returns: none.
   */
  
+ /* ARGSUSED */
+ 
  void
  PrintManpage(w,struct_pointer,data)
  Widget w;
***************
*** 237,258 ****
   * export the font height.
   */
  
!   height = (fonts.normal->max_bounds.ascent + 
! 		   fonts.normal->max_bounds.descent); 
  
    bold_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,bold_gc,(unsigned long) fgcolor);
!   XSetFont(disp,bold_gc,fonts.bold->fid);
  
    normal_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,normal_gc,(unsigned long) fgcolor);
!   XSetFont(disp,normal_gc,fonts.normal->fid);
  
    italic_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,italic_gc,(unsigned long) fgcolor);
!   XSetFont(disp,italic_gc,fonts.italic->fid);
  
!   width =  XTextWidth(fonts.normal,"        ",8); /* Width of a tab stop. */
  
  /*
   * Because XDrawString uses the bottom of the text as a position
--- 239,261 ----
   * export the font height.
   */
  
!   height = (resources.fonts.normal->max_bounds.ascent + 
! 		   resources.fonts.normal->max_bounds.descent); 
  
    bold_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,bold_gc,(unsigned long) fgcolor);
!   XSetFont(disp,bold_gc,resources.fonts.bold->fid);
  
    normal_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,normal_gc,(unsigned long) fgcolor);
!   XSetFont(disp,normal_gc,resources.fonts.normal->fid);
  
    italic_gc = XCreateGC(disp,window,0,NULL);
    XSetForeground(disp,italic_gc,(unsigned long) fgcolor);
!   XSetFont(disp,italic_gc,resources.fonts.italic->fid);
  
!  /* Width of a tab stop. */
!   width =  XTextWidth(resources.fonts.normal,"        ",8);
  
  /*
   * Because XDrawString uses the bottom of the text as a position
***************
*** 260,266 ****
   * to the ScollByLine position reference.
   */
  
!   y_loc = scroll_info->location + fonts.normal->max_bounds.ascent;
  
  /*
   * Ok, here's the more than mildly heuristic man page formatter.
--- 263,269 ----
   * to the ScollByLine position reference.
   */
  
!   y_loc = scroll_info->location + resources.fonts.normal->max_bounds.ascent;
  
  /*
   * Ok, here's the more than mildly heuristic man page formatter.
***************
*** 334,340 ****
  	XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
        bufp = buf; 
        italicflag = 0;
!       cur_pos = XTextWidth(fonts.normal,buf,strlen(buf)) + col;
        col = cur_pos - (cur_pos % width) + width;
        break;
  
--- 337,343 ----
  	XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
        bufp = buf; 
        italicflag = 0;
!       cur_pos = XTextWidth(resources.fonts.normal,buf,strlen(buf)) + col;
        col = cur_pos - (cur_pos % width) + width;
        break;
  
***************
*** 342,347 ****
--- 345,406 ----
        c++;			/* should always be esc-x */
        break;
  
+ /* 
+  * Overstrike code supplied by: cs.utexas.edu!ut-emx!clyde@rutgers.edu 
+  * Since my manual pages do not have overstrike I couldn't test this.
+  */
+ 
+     case BACKSPACE:		/* Backspacing for nroff bolding */
+       if (c[-1] == c[1] && c[1] != BACKSPACE) {	/* overstriking one char */
+ 	*--bufp = '\0';		/* Zap 1st instance of char to bolden */
+ 	if (bufp > &buf[0]) {
+ 	  if (italicflag) {
+ 	    XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
+ 	    col += XTextWidth(resources.fonts.italic,buf,strlen(buf));
+ 	  }
+ 	  else {
+ 	    XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
+ 	    col += XTextWidth(resources.fonts.normal,buf,strlen(buf));
+ 	  }
+ 	  bufp = buf;
+ 	}
+ 	/*
+ 	 * It is painful writing one bold char at a time but
+ 	 * it is the only safe way to do it.  We trust that the library
+ 	 * buffers these one-char draw requests and sends one large
+ 	 * request packet.
+ 	 */
+ 	*bufp = c[1];
+ 	XDrawString(disp,window,bold_gc,col,y_loc,bufp,1);
+ 	col += XTextWidth(resources.fonts.bold,bufp,1);
+ 	*bufp = '\0';
+ 	first = FALSE;
+ 
+ 	/*
+ 	 *     Nroff bolding looks like:
+ 	 *	 	     C\bC\bC\bCN...
+ 	 * c points to ----^      ^
+ 	 * it needs to point to --^
+ 	 */
+ 	while (*c == BACKSPACE && c[-1] == c[1])
+ 	  c += 2;
+ 	c--;		/* Back up to previous char */
+       }
+       else {
+ 	if ((c[-1] == 'o' && c[1] == '+')          /* Nroff bullet */
+ 	    || (c[-1] == '+' && c[1] == 'o')) {	   /* Nroff bullet */
+ 	  /* I would prefer to put a 'bullet' char here */
+ 	  *bufp++ = 'o';
+ 	  c++;
+ 	}
+ 	else {		/* 'real' backspace - back up output ptr */
+ 	  bufp--;
+ 	}
+       }
+       break;
+ 
+ /* End of contributed overstrike code. */
+   
     case '_':			/* look for underlining [italicize] */
        c++;
        if(*c != BACKSPACE) {
***************
*** 354,360 ****
  	  *bufp = '\0';
  	  XDrawString(disp,window,normal_gc,col,y_loc,
  		      buf,strlen(buf));
! 	  col += XTextWidth(fonts.normal,buf,strlen(buf));
  	  bufp = buf;
  	  *bufp = '\0';
  	  italicflag = 1;
--- 413,419 ----
  	  *bufp = '\0';
  	  XDrawString(disp,window,normal_gc,col,y_loc,
  		      buf,strlen(buf));
! 	  col += XTextWidth(resources.fonts.normal,buf,strlen(buf));
  	  bufp = buf;
  	  *bufp = '\0';
  	  italicflag = 1;
***************
*** 368,374 ****
        if(italicflag) {			/* font change? */
  	*bufp = '\0';
  	XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
! 	col += XTextWidth(fonts.italic,buf,strlen(buf));	
  	bufp = buf;
  	*bufp = '\0';
  	italicflag = 0;
--- 427,433 ----
        if(italicflag) {			/* font change? */
  	*bufp = '\0';
  	XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
! 	col += XTextWidth(resources.fonts.italic,buf,strlen(buf));	
  	bufp = buf;
  	*bufp = '\0';
  	italicflag = 0;
***************
*** 400,406 ****
  
    length = strlen(sp);
    for (sp_pointer = sp, count = 0; count < length; sp_pointer++,count++) 
!     if (islower(*sp_pointer))
        return(0);
    return(1);
  }
--- 459,465 ----
  
    length = strlen(sp);
    for (sp_pointer = sp, count = 0; count < length; sp_pointer++,count++) 
!     if ( !isupper(*sp_pointer) && !isspace(*sp_pointer) )
        return(0);
    return(1);
  }
*** /tmp/,RCSt1a17256	Fri Jan  6 18:57:04 1989
--- clients/xman/tkfuncs.c	Fri Jan  6 18:42:31 1989
***************
*** 1,7 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: tkfuncs.c,v 1.2 88/09/06 17:48:23 jim Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,7 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: tkfuncs.c,v 1.3 89/01/06 18:42:30 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 20,26 ****
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: tkfuncs.c,v 4.0 88/08/31 22:13:27 kit Exp $";
  #endif
  
  #include <X11/X.h>
--- 20,26 ----
   */
  
  #if ( !defined(lint) && !defined(SABER))
!   static char rcs_version[] = "$Athena: tkfuncs.c,v 4.5 88/12/19 13:48:24 kit Exp $";
  #endif
  
  #include <X11/X.h>
***************
*** 141,147 ****
  				 also the parent of the lable.*/
    Widget w;
    XtGeometryResult answer;	/* result of geometery test. */
!   Cardinal awidth,aheight;	/* The height and width of the reply. */
    int width = 0;		/* The width of the biggest button */
    int i;
  
--- 141,147 ----
  				 also the parent of the lable.*/
    Widget w;
    XtGeometryResult answer;	/* result of geometery test. */
!   Dimension awidth,aheight;	/* The height and width of the reply. */
    int width = 0;		/* The width of the biggest button */
    int i;
  
*** /tmp/,RCSt1a17261	Fri Jan  6 18:57:06 1989
--- clients/xman/version.h	Fri Jan  6 18:42:32 1989
***************
*** 1,8 ****
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: version.h,v 1.2 88/09/06 17:48:28 jim Exp $
!  * $Athena: version.h,v 4.0 88/08/31 22:13:33 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
--- 1,8 ----
  /*
   * xman - X window system manual page display program.
   *
!  * $XConsortium: version.h,v 1.3 89/01/06 18:42:31 kit Exp $
!  * $Athena: version.h,v 4.5 88/12/19 13:48:30 kit Exp $
   *
   * Copyright 1987, 1988 Massachusetts Institute of Technology
   *
***************
*** 20,24 ****
   * Created:   July 18, 1988 
   */
  
! #define XMAN_VERSION "Xman_Version 3.1"
  
--- 20,24 ----
   * Created:   July 18, 1988 
   */
  
! #define XMAN_VERSION "Xman_Version 3.1.1"
  
*** /tmp/,RCSt1a17267	Fri Jan  6 18:57:07 1989
--- clients/xman/xman.help	Fri Jan  6 18:42:38 1989
***************
*** 2,16 ****
  XMAN is an X Window System manual browsing tool, built upon the XToolkit.
  
  
! CREDITS:
  
!     Version 3.1
      Based Upon: Xman for X10 by Barry Shein - Boston Univ.
      Written By: Chris Peterson - MIT Project Athena.
      Copyright 1988 Massachusetts Institute of Technology 
  
  
! GETTING STARTED:
  
    By default, XMAN starts by creating a small window that contains
  three "buttons" (places on which to click a mouse button).  Two of
--- 2,16 ----
  XMAN is an X Window System manual browsing tool, built upon the XToolkit.
  
  
! CREDITS
  
!     Version 3.1.1
      Based Upon: Xman for X10 by Barry Shein - Boston Univ.
      Written By: Chris Peterson - MIT Project Athena.
      Copyright 1988 Massachusetts Institute of Technology 
  
  
! GETTING STARTED
  
    By default, XMAN starts by creating a small window that contains
  three "buttons" (places on which to click a mouse button).  Two of
***************
*** 31,37 ****
  the middle button returns you to the manual page previously on the
  screen.
  
! SCROLLING TEXT:
  
    The scrollbars are similar to xterm, xmh, and xmore scrollbars;
  clicking the left or right mouse buttons with the pointer at the
--- 31,37 ----
  the middle button returns you to the manual page previously on the
  screen.
  
! SCROLLING TEXT
  
    The scrollbars are similar to xterm, xmh, and xmore scrollbars;
  clicking the left or right mouse buttons with the pointer at the
***************
*** 46,52 ****
  down or up one page, respectively.  You may also type 'f' or
  <space bar> to scroll down one page, and 'b' to scroll up one page.
  
! RESIZING THINGS:
  
    You can resize any of the windows in xman with your favorite window
  manager, and xman will to the best it can to resize everything
--- 46,52 ----
  down or up one page, respectively.  You may also type 'f' or
  <space bar> to scroll down one page, and 'b' to scroll up one page.
  
! RESIZING THINGS
  
    You can resize any of the windows in xman with your favorite window
  manager, and xman will to the best it can to resize everything
***************
*** 60,71 ****
  the mouse button is released xman will move the pane boundry to the
  newly specified location.
  
! FOR FURTHER INFORMATION:
  
  Information on customizing xman through resource and command line
  options can be found in the xman manpage.
  
! SUMMARY OF BASIC ACTIONS:
  
  Any time:
  
--- 60,71 ----
  the mouse button is released xman will move the pane boundry to the
  newly specified location.
  
! FOR FURTHER INFORMATION
  
  Information on customizing xman through resource and command line
  options can be found in the xman manpage.
  
! SUMMARY OF BASIC ACTIONS
  
  Any time:
  
***************
*** 90,96 ****
  CLICK RIGHT:			Move Up - more if pointer is near bottom
  					of window, less if at top.
  
! EXTENDED COMMANDS:
  
    To reach the extended commands simply move the mouse over the label
  at the top of the manual page display window; this will activate the
--- 90,96 ----
  CLICK RIGHT:			Move Up - more if pointer is near bottom
  					of window, less if at top.
  
! EXTENDED COMMANDS
  
    To reach the extended commands simply move the mouse over the label
  at the top of the manual page display window; this will activate the
*** /tmp/,RCSt1a17274	Fri Jan  6 18:57:08 1989
--- clients/xman/xman.man	Fri Jan  6 18:42:39 1989
***************
*** 1,6 ****
  .TH XMAN 1 "24 October 1988" "X Version 11"
  .SH NAME
! xman - display manual pages
  .SH SYNOPSIS
  .B xman
  [-options ...]
--- 1,6 ----
  .TH XMAN 1 "24 October 1988" "X Version 11"
  .SH NAME
! xman - Manual page display program for the X Window System.
  .SH SYNOPSIS
  .B xman
  [-options ...]
***************
*** 18,50 ****
  help information.  The rest of this manual page will discuss
  customization of \fIxman\fP.
  .PP
  .I Xman
! accomodates new manual sections by the use of the environment variable
! MANPATH and by directory description files named \fImandesc\fP.
! .I Xman
! will search each directory specified in the environment variable
! MANPATH for the following subdirectories only: man0, man1, ..., man8,
! manl (local), and mann (new).
! (It usually ignores the
! information in man0 unless there is a \fImandesc\fP file that specifically
! tells it not to.)
! These subdirectories each represent
! a separate section of the manual.  These subdirectories should contain 
! man pages.  Any manual section can be renamed by an optional
! \fImandesc\fP file.
  .PP
! As an example, if MANPATH was set to \fI/usr/man:/usr/sipb/man\fP
! and there was no \fImandesc\fP file in /usr/man, \fIxman\fP
! would put all of the files in the default section names
! (e.g. manl gets a section name of local).
! But if there were a \fImandesc\fP file in
! /usr/sipb/man which contained the line \fIlSIPB Programs\fP,
! then \fIxman\fP would put all files in the
! manl subdirectory in a new section
! called ``SIPB Programs''.  \fIXman\fP will search the \fImandesc\fP file until
! there are no more lines of information.  This flexibility is ideal
! for courses that have their own manual pages. 
  .PP
  .I Xman
  creates temporary files in /tmp for all unformatted man pages and all apropos
  searches.
--- 18,130 ----
  help information.  The rest of this manual page will discuss
  customization of \fIxman\fP.
  .PP
+ .sh "CUSTOMIZING XMAN"
+ .PP
  .I Xman
! allows customization of both the directories to be searched for manual pages,
! and the name that each directory will map to in the \fIManual Sections\fP
! menu.  Xman determines which direcories it will
! search by reading the \fIMANPATH\fP environment variable.  This enviroment
! is expected to be a colon seperated list of directories for xman to search.
! .nf
! 
! setenv MANPATH /mit/kit/man:/usr/man
! .fi
  .PP
! By default,
! .I xman
! will search each of the following directories (in each of the directories 
! specified in the users MANPATH) for manual pages.  If manual pages exist
! in that directory then they are added to list of manual pages for 
! the corrosponding menu item.
! A menu item is only displayed for those sections that actually contain
! manual pages.
! .ta 1.5i
! .nf
! 
! Directory	Section Name
! ---------	------------
! man1	User Commands       (1)    
! man2	System Calls        (2)
! man3	Subroutines         (3)
! man4	Devices             (4)
! man5	File Formats        (5)
! man6	Games               (6)
! man7	Miscellaneous       (7)
! man8	Sys. Administration (8)
! manl	Local               (l)
! mann	New                 (n)
! mano	Old                 (o)
! 
! .fi     
! For instance, a user has three directories in her manual path and each
! contain a directory called \fIman3\fP.  All these manual pages will appear
! alphabetically sorted when the user clicks on the menu item called
! \fISubroutines (3)\fP.  If there is no directory called \fImano\fP in
! any of the directories in her MANPATH, or there are no manual pages
! in any of the directories called \fImano\fP then no menu item will be
! displayed for the section called \fIOld (o)\fP.
  .PP
+ .sh "THE MANDESC FILE"        
+ .PP
+ By using the \fImandesc\fP file a user or system manager is able to 
+ more closely control which manual pages will appear in each of the sections
+ represented by menu items in the \fIManual Sections\fP menu.  This 
+ functionality is only avaliable on a section by section basis, and individual
+ manual pages may not be handled in this manner (Although generous use of 
+ symbolic links - ln(1) - will allow almost any configuration you can imagine).
+ The format of the mandesc file is a character followed by a label.  The
+ character determines which of the sections will be added under this label.
+ For instance suppose that you would like to create an extra menu item that 
+ contains all programmer subroutines.  This label should contain all manual
+ pages in both sections two and three.  The \fImandesc\fP file
+ would look like this.
+ .nf     
+         
+ 2Programmer Subroutines
+ 3Programmer Subroutines
+ 
+ .fi
+ This will add a menu item to the \fIManual Sections\fP menu that would
+ bring up a listing of all manual pages in sections two and three of
+ Unix Programmers Manual.  Since the label names are \fIexactly\fP the
+ same they will be added to the same section. Note, however, that the
+ original sections still exist.
+ .PP
+ If you want to completely ignore the default sections in a manual directory
+ the add the line:
+ .nf
+ 
+ no default sections
+ 
+ .fi
+ Anywhere in your mandesc file.  This keeps xman from searching
+ the default manual sections \fIIn that directory only\fP.  As an example,
+ suppose you want to do the same thing as above, but you don't think that
+ it is useful to have the \fISystem Calls\fP or \fISubroutines\fP sections
+ any longer.  You would need to duplicate the default entries, as well as
+ adding your new one.
+ .nf
+ 
+ no default sections
+ 1User Commands       (1)
+ 2Programmer Subroutines
+ 3Programmer Subroutines
+ 4Devices             (4)
+ 5File Formats        (5)
+ 6Games               (6)
+ 7Miscellaneous       (7)
+ 8Sys. Administration (8)
+ lLocal               (l)
+ nNew                 (n)
+ oOld                 (o)
+ 
+ .fi
+ Xman will read any section that is of the from \fIman<character>\fP, where
+ <character> is an upper or lower case letter (they are treated distinctly) or
+ a numeral (0-9).  Be warned, however, that man(1) and catman(8) will 
+ not search directories that are non-standard.
+ .PP
  .I Xman
  creates temporary files in /tmp for all unformatted man pages and all apropos
  searches.
***************
*** 186,192 ****
  mandesc
  .PP
  .SH "SEE ALSO"
! X(1), X(8C), man(1), apropos(1)
  .PP
  .SH ENVIRONMENT
  DISPLAY - the default host and display to use.
--- 266,272 ----
  mandesc
  .PP
  .SH "SEE ALSO"
! X(1), X(8C), man(1), apropos(1), catman(8)
  .PP
  .SH ENVIRONMENT
  DISPLAY - the default host and display to use.
-- 
Mike Wexler(wyse!mikew)    Phone: (408)433-1000 x1330
Moderator of comp.sources.x