🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: vmsnet.sources
Article #6

C Swing v3.6.3 patches, part 05/07

#6
From: flowers
Date: Thu, 29 Oct 1992 17:42
1499 lines
50281 bytes
Submitted-by: flowers@memstvx1.memst.edu (Harry Flowers)
Posting-number: Volume 3, Issue 216
Archive-name: cswing/patch2_05
Patch-to: cswing: Volume 3, Issue 35-52,93

-+-+-+-+-+-+-+-+ START OF PART 5 -+-+-+-+-+-+-+-+
X                        strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X--- 343,352 -----
X              `7B
X                  if (argv`5Bi`5D`5B0`5D == '.') strcpy(file,"*"); else *fil
Ve = 0;
X                  strcat(file,unix2vms(argv`5Bi++`5D));
X!                 while (expand_file_name("SYS$DISK:`5B`5D*.*",
X!                        file,
X!                        filename,
X!                        &context))
X                    `7B
X                        FILE_RING`5BNUM_FILES`5D =
X                            (char*) malloc(strlen(filename) + 1);
X**************
X*** 274,280
X                  strcat(file,unix2vms(argv`5Bi++`5D));
X                  while (expand_file_name("SYS$DISK:`5B`5D*.*",file,filename
V,&context))
X                    `7B
X!                       FILE_RING`5BNUM_FILES`5D = (char*) malloc(strlen(fil
Vename) + 1);
X                        strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X                    `7D
X              `7D
X--- 348,355 -----
X                         filename,
X                         &context))
X                    `7B
X!                       FILE_RING`5BNUM_FILES`5D =
X!                           (char*) malloc(strlen(filename) + 1);
X                        strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X                    `7D
X              `7D
X**************
X*** 278,284
X                        strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X                    `7D
X              `7D
X!           if (NUM_FILES) strcpy(file,FILE_RING`5B0`5D);
X     `20
X  #else
X            j = 0;
X--- 353,362 -----
X                        strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X                    `7D
X              `7D
X!           if (NUM_FILES)
X!             strcpy(file,FILE_RING`5B0`5D);
X! `09  else
X!             printf("%%MOST-W-NOFILES, no files found");
X     `20
X  #else
X            j = 0;
X**************
X*** 292,297
X `20
X      if (NUM_FILES) quit = 0; else quit = 1;
X      if (!quit `7C`7C piped) most(file,STARTING_LINE);
X `20
X      reset_tty();
X      reset_display();
X--- 370,377 -----
X `20
X      if (NUM_FILES) quit = 0; else quit = 1;
X      if (!quit `7C`7C piped) most(file,STARTING_LINE);
X+     exit(0);
X+ `7D /*** End code for standalone version ***/
X `20
X `20
X  #else  /*** Code for (CSWING) interface ***/
X**************
X*** 293,303
X      if (NUM_FILES) quit = 0; else quit = 1;
X      if (!quit `7C`7C piped) most(file,STARTING_LINE);
X `20
X!     reset_tty();
X!     reset_display();
X! #ifndef  VMS
X!     fputc('\n',stdout);
X! #endif   `20
X!     /* exit(0); */
X!     return (0);
X  `7D
X--- 373,467 -----
X      exit(0);
X  `7D /*** End code for standalone version ***/
X `20
X!`20
X! #else  /*** Code for (CSWING) interface ***/
X! /*
X! **  most_args`5B`5D is an array of (optionally) switches,
X! **  (optionally) extended switches, and the (required)`20
X! **  filename(s).
X! **  See most_files() in SWING_38.C for more info.
X! */ `20
X! void most_less(int num_most_args, char *most_args`5B`5D)
X! `7B
X!     char file`5B80`5D, *switches, filename`5B80`5D;
X!     int quit,i,piped,a_opt, j;
X!     unsigned long context;
X!     extern char *getenv(char *);
X!     extern int isatty(int);
X!     extern int next_file_in_ring;
X!`20
X!     /*
X!     **  intitialize options and toggles for each call to interface
X!     */
X!     MOST_A_OPT      = 0;     /* automatically choose -b if necessary
V         */
X!     MOST_B_OPT      = 0;     /* display binary File
V                          */
X!     MOST_C_OPT      = 0;     /* case-sensitive searches
V                      */
X!     MOST_D_OPT      = 0;     /* delete file mode  (see ':D')
V                 */
X!     MOST_K_OPT      = 0;     /* display 8 bit unformatted (Kanji)
V            */
X!     MOST_L_OPT      = 0;     /* use `5EL (formfeed) to clear screen
V            */
X!     MOST_S_OPT      = 0;     /* selective display
V                            */
X!     MOST_T_OPT      = 0;     /* display tab as `5EI-- valid only with V op
Vtion */
X!     MOST_V_OPT      = 0;     /* verbose-- display control chars as `5Ech
V       */
X!     MOST_W_OPT      = 0;     /* wrap lines
V                                   */
X!     STARTING_LINE   = 1;     /* starting line for initial display
V            */
X!     SEARCH_DIR      = 1;     /* for toggling direction of string searches
V    */
X!     SEARCH_STR`5B80`5D = '\0';   /* for setting starting line based on a s
Vtring  */
X!     SELECTIVE_I_DISPLAY = 0; /* selective indentation display
V                */
X!     NEXT_RING_FILE  = 1;     /* for cycling through file ring
V                */
X!`20
X!     piped = 0;
X!     switches = getenv("MOST_SWITCHES");
X!     if (switches !=  NULL)  do_switches(switches);
X!`20
X!     i = 0;
X!     quit = 0;
X!     while ((!quit) && (i < num_most_args))
X!       `7B
X!           if (most_args`5Bi`5D`5B0`5D == '-')
X!             do_switches(most_args`5Bi++`5D);
X!           else if (most_args`5Bi`5D`5B0`5D == '+')
X!             do_extended_switches(most_args`5Bi++`5D);
X!           else quit = 1;
X!       `7D
X!`20
X!     NUM_FILES = 0;
X!     context = 0;
X!`20
X!     get_terminfo();           /* set up esc sequences etc... */
X!     init_tty();`20
X!     if (MOST_B_OPT) MOST_A_OPT = 0;   /* explicit b overrides a */
X!     a_opt = MOST_A_OPT;
X!`20
X! #ifdef VMS
X!     /* note short circuit evaluation is crucial here */
X!     while(i < num_most_args)
X!       `7B
X!           if (most_args`5Bi`5D`5B0`5D == '.')
X!             strcpy(file,"*");
X!           else *file = 0;
X!           strcat(file,unix2vms(most_args`5Bi++`5D));
X!           while (expand_file_name("SYS$DISK:`5B`5D*.*",
X!                                   file,
X!                                   filename,
X!                                   &context))
X!             `7B
X!                 FILE_RING`5BNUM_FILES`5D = (char*) malloc(strlen(filename)
V + 1);
X!                 strcpy(FILE_RING`5BNUM_FILES++`5D, filename);
X!             `7D
X!       `7D
X!     if (NUM_FILES) strcpy(file,FILE_RING`5B0`5D);
X!`20
X! #else
X!     j = 0;
X!     NUM_FILES = num_most_args - i;
X!     while (i < num_most_args)
X!       `7B
X!           FILE_RING`5Bj++`5D = most_args`5Bi++`5D;
X!       `7D
X! #endif
X!`20
X!     if (NUM_FILES) quit = 0; else quit = 1;
X!     if (!quit `7C`7C piped) most(file,STARTING_LINE);
X!     return;
X  `7D
X  #endif   /*** End code for (CSWING) interface ***/
X**************
X*** 301,303
X      /* exit(0); */
X      return (0);
X  `7D
X--- 464,467 -----
X      if (!quit `7C`7C piped) most(file,STARTING_LINE);
X      return;
X  `7D
X+ #endif   /*** End code for (CSWING) interface ***/
$ CALL UNPACK MAIN_C.PAT;363 1511438572
$ create 'f'
XMOST(3.02FM)                                                     10-10-92
X
XNAME
X
X     most - browse or page through a text file
X
XSYNOPSIS
X
X     most `5B-bcklstvw`5D `5B+line`5D `5B+/string`5D `5B+d`5D filename `5Bfi
Vlename ...`5D
X
XDESCRIPTION
X
X     MOST is a paging program that displays, one windowful at a time, the
X     contents of a file on a vtxxx compatable terminal.   It pauses after
X     each windowful  and prints on the  window status line  of the screen
X     the file name, current line  number, and the percentage  of the file
X     so far displayed.
X
X     Unlike other paging   programs, MOST is  capable of  displaying   an
X     arbitrary number of windows as long as each window occupies at least
X     two screen lines.  Each  window  may  contain  the same  file  or  a
X     different file.  In addition,  each  window has its  own mode.   For
X     example, one window may display a  file with its lines wrapped while
X     another may   be truncating  the lines.   Windows  may   be `60locked'
X     together in the sense that if one of the locked windows scrolls, all
X     locked windows will scroll.  MOST is also  capable of ignoring lines
X     that are indented beyond  a  user specified value.   This  is useful
X     when viewing  computer programs to  pick  out  gross features of the
X     code.  See the `60:O' command for a description of this feature.
X
X     In addition to displaying ordinary text files, MOST can also display
X     binary files as well as files with arbitrary ascii characters.  When
X     a file is read into  a buffer, MOST  examines the first  32 bytes of
X     the file to determine if the file is a binary file and then switches
X     to the appropriate mode.  However, this feature may be disabled with
X     the  -k option.  See the  description  of the  -b,   -k,  -v. and -t
X     options for further details.
X
X     Text files  may contain  combinations   of underscore and  backspace
X     characters causing a printer  to underline or overstrike.  When MOST
X     recognizes   this, it inserts the  appropriate   escape sequences to
X     achieve  the  desired  effect  on  vtxxx  compatable terminals.   In
X     addition, some files cause the printer to overstrike some characters
X     by embedding carriage return  characters  in  the middle of a  line.
X     When this occurs, MOST displays the ovestruck character with  a bold
X     attribute.  This feature  facilitates the reading  of unix man pages
X     or a   document produced by RUNOFF.   In   particular,  viewing this
X     document with MOST should illustrate this behavior provided that the
X     underline characters have not been stripped.  This may be turned off
X     with the -v option.
X
X     By  default, lines with more  characters than the terminal width are
X     not wrapped but are instead truncated.  When truncation occurs, this
X     is indicated by a reverse video `60>' in the  far right column  of the
X     terminal screen.  The RIGHT and LEFT arrow keys may be used to  view
X     lines which extend past the margins  of the screen.  The  -w  option
X     may be used to override this feature.  When  a  window  is  wrapped,
X     the character `60\' will appear in reverse video at the  right edge of
X     the window.
X
X     Commands are listed below.
X
XOPTIONS
X
X     -b   binary mode.  Use this switch when you  want to view files
X          containing  8 bit characters.  MOST will  display the file
X          16 bytes per line in hexidecimal notation.  A typical line
X          looks like:
X
X           01000000 40001575 9C23A020 4000168D     ....@..u.#. @...
X
X          When used with the -v option, the same line looks like:
X
X           `5EA`5E@`5E@`5E@  @`5E@`5EU u 9C #A0    @`5E@`5EV8D     ....@..u.
V#. @...
X
X     -c   Make searches case sensitive.  By default, they are not.
X
X     -k   `60Kanji' option.  Ordinarily, MOST will go into binary mode
X          if the file consists of  non-ascii  characters.  Sometimes
X          this feature is not desirable since some  terminals have a
X          special interpretation for  eight bit  characters.  The -k
X          option turns off the automatic sensing.
X
X     -l   Use `5EL (formfeed) to clear screen.
X
X     -s   Squeeze.  Replace multiple blank lines with a single blank
X          line.
X
X     -t   Display tabs as reversed video `60I'.  This option  is acted
X          on only when used with the -v option.
X
X     -v   Verbose.  Display control characters in reverse video, e.g.
X          control-A is displayed as  a  reverse video 'A'.   Normally
X          MOST interprets control characters.
X
X     -w   Wrap lines within window.
X
X     +line
X          Start up at line number (first line of file is 1).
X
X     +/string
X          Start up at the line containing the first occurence of string.
X
X     +d   This switch should only be used if you want  the option to
X          delete a file while  viewing it.  This  makes it easier to
X          clean unwanted  files  out  of a  directory.   The file is
X          deleted with the interactive  key sequence  `60:D' and  then
X          confirming with `60y'.
X
XUSAGE
X  Environment
X
X    There are currently three environment variables that MOST looks for:
X
X       MOST_SWITCHES
X
X         This logical sets commonly used switches.   For example, you
X         might wish to use MOST with the  -c  option so that searches
X         are case sensitive.  Some people prefer to use MOST with the
X         -s option so that excess blank lines  are not displayed.  On
X         VMS this is normally done in the login.com through the line:
X
X                         $ define MOST_SWITCHES "-cs"
X
X      MOST_EDITOR (VMS only)
X
X         Set this logical to one of three callable editors (EDT, TPU,
X         or EMACS), or to one that can be invoked via a  spawn (e.g.,
X         SEDT).  The  default  is  EDT.  Since  VMS  does not support
X         callable EMACS, MOST will attempt to attach to a kept EMACS.
X         For this case, MOST looks for the logical name EMACS_PID and
X         attaches to the process with that pid.  It then  defines the
X         logicals EMACS_FILE_NAME and EMACS_FILE_LINE which EMACS can
X         check upon attaching to it.
X
X      MOST_HELP
X
X         This logical should point to the MOST helpfile (MOST.DOC_FM).
X         If help.c was compiled  with  the  logical  MOST_HELP_USE_DOC
X         defined the  help  command  (H or ?)  will invoke a window in
X         which the helpfile will be placed. If the compilation logical
X         was not defined, a short help summary  will be displayed, and
X         there is no need to define the MOST_HELP environment logical.
X
X  Command Usage
X
X     The  commands  take effect  immediately.  It is not necessary to
X     type a carriage return.  Command keys are case-insensitive.
X
X     In the  following commands,  #  is  a  numerical argument (1  by
X     default).   A '->' is used to indicate that a  pair  of  command
X     keys should be entered in sequence.
X
X     NEXT_SCREEN, N, CONTROL_N, SPACE
X
X               Display another windowful, or jump # windowfuls if # is
X               specified.
X
X     PREV_SCREEN, P, CONTROL_P
X
X               Skip back  #  windowfuls  and  then display a windowful.
X
X     DOWN_ARROW, D, CONTROL_D, J, CONTROL_J
X
X               Display another line, or # more lines, if specified.
X
X     UP_ARROW, U, CONTROL_U, `5E, K, CONTROL_-
X
X               Display previous line, or # previous lines, if specified.
X
X     RIGHT_ARROW, >, TAB, CONTROL_I
X
X               Scroll window left 59# columns to view lines that are
X               beyond the right margin of the window.
X
X     LEFT_ARROW, <
X
X               Scroll window right 59# columns to view lines that are
X               beyond the left margin of the window.
X
X     CONTROL_W, CONTROL_R
X
X               Redraw the window.
X
X     G         If # is not specified, then prompt for a  line number
X               then jump to that line otherwise just jump to line #.
X
X     %         If # is not specified, then prompt for a percent number
X               then jump to that  percent  of the file  otherwise just
X               jump to # percent of the file.
X
X     W         If the current screen width is  80,  make  it  132  and
X               vica-versa.  For other values, this command is ignored.
X
X     Q, RETURN, CONTROL_K->E, CONTROL_X->CONTROL_C
X
X               Exit from MOST.  On VMS, `5EZ also exits.
X
X     ?, H, CONTROL_H, HELP
X
X               Help.  Give   a  description  of  all    the MOST
X               commands.      The    MOST  environment  variable
X               MOST_HELP must be set for this to be  meaningful,
X`09       unless the short help summary has been designated
X`09       at compile time.
X
X     /, CONTROL_F, FIND
X
X               Prompt for a string and search  forward from the
X               current line for  #th distinct  line  containing
X               the string.  CONTROL_G aborts.
X
X     \         Prompt for a string and search backward  for the
X               #th  distinct   line  containing  the    string.
X               CONTROL_G aborts.
X
X     R         Search  for the   next   # lines  containing  an
X               occurrence of   the last  search string   in the
X               direction of the previous search.
X
X     M, SELECT, CONTROL_K->M, CONTROL_K->CONTROL_B
X
X               Set a mark on the current line for later reference.
X
X     PERIOD, INSERT_HERE, CONTROL_K->RETURN, CONTROL_K->CONTROL_J,
X             CONTROL_K->CONTROL_M
X
X               Set a mark on the current line but  return  to
X               previous mark.  This allows the user to toggle
X               back  and  forth  between two positions in the
X               file.
X
X     L         Toggle locking  for this window.   The window is
X               locked if there is a `60*' at the left edge of the
X               status line. Windows  locked  together,   scroll
X               together.
X
X     CONTROL_X->2
X
X               Split this window in half.
X
X     CONTROL_X->O, O
X
X               Move to other window.
X
X     CONTROL_X->0
X
X               Delete this window.
X
X     CONTROL_X->1
X
X               Delete all other windows, leaving only one window.
X
X     E         Edit this file.  MOST uses callable EDT  and  TPU or
X               spawns and editor to perform the  editing  task.  In
X`09       addition, MOST can attach to a kept editor.  See the
X`09       discussion of the environment variable, MOST_EDITOR,
X`09       above.
X
X     $, ESC->$ This is system dependent.   On VMS, this causes MOST to
X               spawn a subprocess.  When the user  exits  the process,
X               MOST is resumed.  On unix systems, MOST simply suspends
X               itself.
X
X     :N        Skip to the next filename given in the command line.  Use
X               the arrow keys to scroll  forward or backward through the
X               file list.  `60Q' or 'CONTROL_G' cancels the fetch, and any
X               other key selects the given file.
X
X     :C        Toggle case sensitive search.
X
X     :D        Delete  current   file.   This  command is  only
X               meaningful with the +d switch.
X
X     :O        Toggle various options.  With this key sequence,
X               MOST  displays a prompt  asking  the user to hit
X               one of: bistvw.     The `60b', 's', `60t',  `60v', and
X`09       `60w' options have the same meaning as the command
X               line switches.  For example, the `60w' option will
X               toggle  wrapping  on  and  off  for the  current
X               window.
X
X               The `60i'  option  must be    used  with a  prefix
X               integer #.  All lines  indented beyond # columns
X               will not be   displayed.  For example,  consider
X               the fragment:
X
X               int main(int argc, char **argv)
X                `7B
X                    int i = 0;
X
X                    while (i < argc)
X                      `7B
X                          fprintf(stdout,"%i:  %s\n",i,argv`5Bi`5D);
X                          i++;
X                      `7D `20
X                    exit(0);
X               `7D
X
X               The key  sequence  `601:Oi'  will  cause  MOST  to
X               display  the  file ignoring  all lines  indented
X               beyond  the  first column.    So for the example
X               above, MOST would display:
X
X               int main(int argc, char **argv)...
X               `7D
X
X               where the `60...'  indicates  lines follow are not
X               displayed.
X
X     CONTROL_K->G, CONTROL_X->CONTROL_F
X
X               Fetch a new file to this window.   You will be prompted
X               for the name of the  new  file.   CONTROL_G cancels the
X               fetch.  A carriage return fetches the file, and adds it
X               to the file ring  list, after those that were indicated
X               on the command line.
X
X     CONTROL_T
X
X               Show the current date and time.
X
XHINTS
X
X     Control_G aborts the commands requiring the user to type something in
X     at a prompt.  The  backquote  key  has a special meaning here.  It is
X     used to quote certain characters.   This is useful when searching for
X     the occurrence of a string with a  control  character  or a string at
X     the beginning of a line in stream files.  In the latter case, to find
X     the occurence of `60The' at the beginning of a line, enter `60`5EJThe w
Vhere
X     `60 quotes the CONTROL_J.
X
XBUGS
X
X     Almost all of  the known bugs or limitations  of  MOST  are due to  a
X     desire  to read and interpret control characters or  escape sequences
X     in files  (`5EH for underlining or bolding a character;  `5EM for boldi
Vng
X     a line;  <ESC>`5B#m for underlining, bolding,  or displaying strings in
X     reverse video).  One side effect is that they can  get  clipped  when
X     scrolling  right and left  through a file,  or when wrap mode is set.
X     When  in doubt, use  the '-v' switch or ':O v' toggle to make control
X     characters and escape sequences explicit in the display.`20
X
X     String may not work properly with binary files.
X
X     At  this  time, MOST only works  well  with  terminals understanding
X     vt100 escape sequences.  MOST does not seem to have any problem with
X     xterm.
X
X     Malloc failures  are not checked.  MOST may   crash  if there is not
X     enough room to hold the file.
X
XAUTHOR
X
X     John E. Davis
X     The Ohio State University
X     Department of Physics
X     davis@pacific.mps.ohio-state.edu
X
XAUTHOR'S ACKNOWLEDGEMENT
X
X     I would like  to thank the users  of MOST for valuable  comments and
X     criticisms.  I would especially like to  thank those individuals who
X     have contributed code to MOST:
X
X         Mats Akerberg, Henk D. Davids, and Rex O. Livingston
X
X     I would also like to thank Shinichi Hama for his valuable criticisms
X     of MOST.
X
XNOTE
X
X     MOST(3.02FM) is a modification by Foteos Macrides
X                                  (MACRIDES@WFEB2.BITNET)
X     of a modification (3.02) by Harry Flowers
X                (FLOWERS@MEMSTVX1.BITNET, FLOWERS@MEMSTVX1.MEMST.EDU)
X     of John Davis' MOST(3.01).   See header in main.c for modification
X     and copyright information.  The copyright provisions also apply to
X     this version, and to  any programs  derived from it.  Briefly, you
X     must make the source code freely available to anyone who wants it.
$ CALL UNPACK MOST.DOC_FM;363 1633581704
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dmost.c;1
X--- disk$disk1:`5Bflowers.swing.src`5Dmost.c;3
X**************
X*** 8,23
X  #include "most.h"
X  #include "search.h" `20
X `20
X! int SQUEEZE_LINES = 0;          /* switch parameters */
X! int MOST_A_OPT = 0;             /* automatically choose -b if necessary */
X! int MOST_C_OPT = 0;             /* begin pages at top of screen */
X! int MOST_V_OPT = 0;             /* display control chars */
X! int MOST_B_OPT = 0;             /* display Binary File */
X! int MOST_T_OPT = 0;             /* display tab as `5EI-- valid only with V
V option */
X! int MOST_D_OPT = 0;             /* delete file mode  (see ':D')  */
X! int MOST_L_OPT = 0;             /* use `5EL (formfeed) to clear screen */
X!`20
X! void most_less(char *file, int start)
X  `7B
X      char input_s`5B20`5D,ch,outstr`5B80`5D, *strp;
X      int line, update, quit, j, repeat, mark, piped, next, row, col, r;
X--- 8,14 -----
X  #include "most.h"
X  #include "search.h" `20
X `20
X! void most(char *file, int start)
X  `7B
X      int piped, row, col;
X      char junk`5B80`5D;
X**************
X*** 19,26
X `20
X  void most_less(char *file, int start)
X  `7B
X!     char input_s`5B20`5D,ch,outstr`5B80`5D, *strp;
X!     int line, update, quit, j, repeat, mark, piped, next, row, col, r;
X      globaldef int exit_most;
X     `20
X      init_display();
X--- 10,18 -----
X `20
X  void most(char *file, int start)
X  `7B
X!     int piped, row, col;
X!     char junk`5B80`5D;
X!     extern char *MOST_VERSION;
X      globaldef int exit_most;
X     `20
X      init_display();
X**************
X*** 26,38
X      init_display();
X      get_cdir(C_DIR);
X      exit_most = 0;
X-     MOST_A_OPT = 0;             /* automatically choose -b if necessary */
X-     MOST_C_OPT = 0;             /* begin pages at top of screen */
X-     MOST_V_OPT = 0;             /* display control chars */
X-     MOST_B_OPT = 0;             /* display Binary File */
X-     MOST_T_OPT = 0;             /* display tab as `5EI-- valid only with V
V option */
X-     MOST_D_OPT = 0;             /* delete file mode  (see ':D')  */
X-     MOST_L_OPT = 0;             /* use `5EL (formfeed) to clear screen */
X `20
X      row = col = 0;
X      if (file`5B0`5D == '\0') piped = 1; else piped = 0;
X--- 18,23 -----
X      init_display();
X      get_cdir(C_DIR);
X      exit_most = 0;
X `20
X      row = col = 0;
X      if (file`5B0`5D == '\0') piped = 1; else piped = 0;
X**************
X*** 40,46
X      find_file(file);
X      goto_line(start);
X      CURS_POS = C_POS;
X- /*
X      if (*SEARCH_STR != '\0' && (row = search(C_POS,1,&col), row > 0))
X        `7B
X            goto_line(row);
X--- 25,30 -----
X      find_file(file);
X      goto_line(start);
X      CURS_POS = C_POS;
X      if (*SEARCH_STR != '\0' && (row = search(C_POS,1,&col), row > 0))
X        `7B
X            goto_line(row);
X**************
X*** 47,53
X        `7D
X      else
X        `7B
X- */
X            row = C_LINE;
X            col = 1;
X  /*
X--- 31,36 -----
X        `7D
X      else
X        `7B
X            row = C_LINE;
X            col = 1;
X        `7D
X**************
X*** 50,56
X  */
X            row = C_LINE;
X            col = 1;
X- /*
X        `7D
X  */   `20
X      window_buffer();
X--- 33,38 -----
X        `7B
X            row = C_LINE;
X            col = 1;
X        `7D
X `20
X      window_buffer();
X**************
X*** 52,58
X            col = 1;
X  /*
X        `7D
X! */   `20
X      window_buffer();
X      CURS_ROW = WIN->curs_line = row - C_LINE + 1;
X      WIN->curs_pos = CURS_POS;
X--- 34,40 -----
X            row = C_LINE;
X            col = 1;
X        `7D
X!`20
X      window_buffer();
X      CURS_ROW = WIN->curs_line = row - C_LINE + 1;
X      WIN->curs_pos = CURS_POS;
X**************
X*** 57,62
X      CURS_ROW = WIN->curs_line = row - C_LINE + 1;
X      WIN->curs_pos = CURS_POS;
X      CURS_COL = WIN->curs_col = col;
X      redraw_window();
X      update_status(1);
X `20
X--- 39,47 -----
X      CURS_ROW = WIN->curs_line = row - C_LINE + 1;
X      WIN->curs_pos = CURS_POS;
X      CURS_COL = WIN->curs_col = col;
X+     sprintf(junk," MOST(%.*s)  Press ? or h for help if needed.",
X+                  strlen(MOST_VERSION),MOST_VERSION);
X+     most_message(junk,0);
X      redraw_window();
X      update_status(1);
X `20
X**************
X*** 64,67
X        `7B
X            execute_key();
X        `7D`20
X  `7D
X--- 49,53 -----
X        `7B
X            execute_key();
X        `7D`20
X+     return;
X  `7D
$ CALL UNPACK MOST_C.PAT;363 318848356
$ create 'f'
Xsys$share:vaxcrtl.exe/share
XIDENTIFICATION="MOST V3.02 FM"
$ CALL UNPACK MOST_OPTIONS.OPT;363 53109615
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Doptions_file.opt;1
X--- disk$disk1:`5Bflowers.swing.src`5Doptions_file.opt;2
X**************
X*** 1,2
X  sys$share:vaxcrtl.exe/share
X! IDENTIFICATION="SWING V3.6.2 HF"
X--- 1,2 -----
X  sys$share:vaxcrtl.exe/share
X! IDENTIFICATION="SWING V3.6.3 HF"
$ CALL UNPACK OPTIONS_FILE_OPT.PAT;363 2101246153
$ create 'f'
X$ WRITE SYS$OUTPUT "Edit me!"`09! Delete this line
X$ EXIT`09`09`09`09! And this one, too
X$! XPAT = "$dev:`5Bdir`5DPATCH.EXE" ! NOT the VMS PATCH prog
X$! Fix the above line to define XPAT for the patch utility
X$ XPAT AAAREADME.1ST <AAAREADME_1ST.PAT
X$ XPAT BUFFER.C <BUFFER_C.PAT
X$ XPAT CMD.C <CMD_C.PAT
X$ XPAT DESCRIP.MMS <DESCRIP_MMS.PAT
X$ XPAT EDIT.C <EDIT_C.PAT
X$ XPAT EXTERNS.H <EXTERNS_H.PAT
X$ XPAT FILE.C <FILE_C.PAT
X$ XPAT HELP.C <HELP_C.PAT
X$ XPAT KEYM.C <KEYM_C.PAT
X$ XPAT LINE.C <LINE_C.PAT
X$ XPAT LINK_V5.COM <LINK_V5_COM.PAT
X$ XPAT MAIN.C <MAIN_C.PAT
X$ XPAT MOST.C <MOST_C.PAT
X$ XPAT OPTIONS_FILE.OPT <OPTIONS_FILE_OPT.PAT
X$ XPAT SEARCH.C <SEARCH_C.PAT
X$ XPAT SWING-STARTUP.COM <SWING-STARTUP_COM.PAT
X$ XPAT SWING.C <SWING_C.PAT
X$ XPAT SWING.H <SWING_H.PAT
X$ XPAT SWING_16.C <SWING_16_C.PAT
X$ XPAT SWING_22.C <SWING_22_C.PAT
X$ XPAT SWING_24.C <SWING_24_C.PAT
X$ XPAT SWING_38.C <SWING_38_C.PAT
X$ XPAT SWING_4.C <SWING_4_C.PAT
X$ XPAT SWING_8.C <SWING_8_C.PAT
X$ XPAT SWING_9.C <SWING_9_C.PAT
X$ XPAT SWING_DEFS.H <SWING_DEFS_H.PAT
X$ XPAT SWING_REFS.H <SWING_REFS_H.PAT
X$ XPAT SYSDEP.C <SYSDEP_C.PAT
X$ XPAT WINDOW.C <WINDOW_C.PAT
X$ XPAT WINDOW.H <WINDOW_H.PAT
$ CALL UNPACK PATCH.COM;363 1648175905
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dsearch.c;1
X--- disk$disk1:`5Bflowers.swing.src`5Dsearch.c;3
X**************
X*** 3,11
X  #include "buffer.h"
X  #include "line.h"
X `20
X! int CASE_SENSITIVE = 0;
X! char SEARCH_STR`5B80`5D;
X! int SEARCH_DIR = 1;
X `20
X  #define upcase(ch) ((!CASE_SENSITIVE && (ch <= 'z') && (ch >= 'a')) ? ch &
V= 0xDF : ch)
X `20
X--- 3,9 -----
X  #include "buffer.h"
X  #include "line.h"
X `20
X! #define upcase(ch) ((!MOST_C_OPT && (ch <= 'z') && (ch >= 'a')) ? ch &= 0x
VDF : ch)
X `20
X  /* This routine returns the 1 + position of first match of key in str.
X     key is modified to match the case of str. */
X**************
X*** 7,14
X  char SEARCH_STR`5B80`5D;
X  int SEARCH_DIR = 1;
X `20
X- #define upcase(ch) ((!CASE_SENSITIVE && (ch <= 'z') && (ch >= 'a')) ? ch &
V= 0xDF : ch)
X-`20
X  /* This routine returns the 1 + position of first match of key in str.
X     key is modified to match the case of str. */
X  /* We should try to optimize this routine */
X--- 5,10 -----
X `20
X  #define upcase(ch) ((!MOST_C_OPT && (ch <= 'z') && (ch >= 'a')) ? ch &= 0x
VDF : ch)
X `20
X  /* This routine returns the 1 + position of first match of key in str.
X     key is modified to match the case of str. */
X  /* We should try to optimize this routine */
X**************
X*** 19,25
X      unsigned char *pos;
X      int key_len,j, str_len;
X `20
X!     if (CASE_SENSITIVE)
X        `7B
X            strcpy(work,key);
X            key_len = strlen(key);
X--- 15,21 -----
X      unsigned char *pos;
X      int key_len,j, str_len;
X `20
X!     if (MOST_C_OPT)
X        `7B
X            strcpy(work,key);
X            key_len = strlen(key);
X**************
X*** 76,82
X      unsigned char *pos;
X      int key_len,j, str_len;
X `20
X!     if (CASE_SENSITIVE)
X        `7B
X            strcpy(work,key);
X            key_len = strlen(key);
X--- 72,78 -----
X      unsigned char *pos;
X      int key_len,j, str_len;
X `20
X!     if (MOST_C_OPT)
X        `7B
X            strcpy(work,key);
X            key_len = strlen(key);
X**************
X*** 181,187
X           `20
X            row = -1;
X        `7D
X!     else /* if ( !MOST_T_OPT && !MOST_B_OPT) */   /* expand tabs to get co
Vl correct */
X        `7B
X            find_row_column(found_at,&row,&the_col);
X            *col = apparant_distance(found_at);
X--- 177,186 -----
X           `20
X            row = -1;
X        `7D
X!     /*
X!     **  expand tabs to get col correct
X!     */
X!     else if ( (!MOST_T_OPT `7C`7C !MOST_V_OPT) && !MOST_B_OPT)
X        `7B
X            find_row_column(found_at,&row,&the_col);
X            *col = apparant_distance(found_at);
$ CALL UNPACK SEARCH_C.PAT;363 394094524
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dswing-startup.com;1
X--- disk$disk1:`5Bflowers.swing.src`5Dswing-startup.com;3
X**************
X*** 4,10
X  $!
V                                                                          `7
VC
X  $!------------------------------------------------------------------------
V--+
X  $!
V                                                                          `7
VC
X! $!      Product:  CSWING
V                                                    `7C
X  $!
V                                                                          `7
VC
X  $!      Version:  3.6.2
V                                                     `7C
X  $!
V                                                                          `7
VC
X--- 4,10 -----
X  $!
V                                                                          `7
VC
X  $!------------------------------------------------------------------------
V--+
X  $!
V                                                                          `7
VC
X! $!      Product:  CSWING     MOST
V                                           `7C
X  $!
V                                                                          `7
VC
X  $!      Version:  3.6.3      3.02FM
V                                         `7C
X  $!
V                                                                          `7
VC
X**************
X*** 6,12
X  $!
V                                                                          `7
VC
X  $!      Product:  CSWING
V                                                    `7C
X  $!
V                                                                          `7
VC
X! $!      Version:  3.6.2
V                                                     `7C
X  $!
V                                                                          `7
VC
X  $!  Description:  This file must be invoked by SYS$MANAGER:SYSTARTUP_V5.CO
VM `7C
X  $!                or any command procedure called by it.
V                    `7C
X--- 6,12 -----
X  $!
V                                                                          `7
VC
X  $!      Product:  CSWING     MOST
V                                           `7C
X  $!
V                                                                          `7
VC
X! $!      Version:  3.6.3      3.02FM
V                                         `7C
X  $!
V                                                                          `7
VC
X  $!  Description:  This file must be invoked by SYS$MANAGER:SYSTARTUP_V5.CO
VM `7C
X  $!                or any command procedure called by it.
V                    `7C
X**************
X*** 11,17
X  $!  Description:  This file must be invoked by SYS$MANAGER:SYSTARTUP_V5.CO
VM `7C
X  $!                or any command procedure called by it.
V                    `7C
X  $!                It performs all the necessary startup procedures for
V      `7C
X! $!                CSWING
V                                                    `7C
X  $!
V                                                                          `7
VC
X  $!       Author:  Chris Butler, Ministry of Forestry, Rotorua, N.Z.
V         `7C
X  $!
V                                                                          `7
VC
X--- 11,17 -----
X  $!  Description:  This file must be invoked by SYS$MANAGER:SYSTARTUP_V5.CO
VM `7C
X  $!                or any command procedure called by it.
V                    `7C
X  $!                It performs all the necessary startup procedures for
V      `7C
X! $!                CSWING and MOST
V                                           `7C
X  $!
V                                                                          `7
VC
X  $!       Author:  Chris Butler, Ministry of Forestry, Rotorua, N.Z.
V         `7C
X  $!
V                                                                          `7
VC
X**************
X*** 26,31
X  $!`0926-Jul-91 (CB)`09Install v 3.5.3 & change name to CSWING
V             `7C
X  $!`0914-Oct-91 (CB)`09Install v 3.5.4
V                                     `7C
X  $!`0918-May-92 (CB)`09Install v 3.6
V                                       `7C
X  $!
V                                                                          `7
VC
X  $!------------------------------------------------------------------------
V--+
X  $!
X--- 26,32 -----
X  $!`0926-Jul-91 (CB)`09Install v 3.5.3 & change name to CSWING
V             `7C
X  $!`0914-Oct-91 (CB)`09Install v 3.5.4
V                                     `7C
X  $!`0918-May-92 (CB)`09Install v 3.6
V                                       `7C
X+ $!      10-Oct-92 (FM)  Also install MOST v 3.02FM
V                          `7C
X  $!
V                                                                          `7
VC
X  $!------------------------------------------------------------------------
V--+
X  $!
X**************
X*** 30,36
X  $!------------------------------------------------------------------------
V--+
X  $!
X  $! WARNING: Change all occurrences of the string 'disk:`5Bdirectory`5D' be
Vlow
X! $! to the real location of SWING
X  $!
X  $!
X  $! Check to see if they have enuff privs
X--- 31,37 -----
X  $!------------------------------------------------------------------------
V--+
X  $!
X  $! WARNING: Change all occurrences of the string 'disk:`5Bdirectory`5D' be
Vlow
X! $! to the real locations of SWING and MOST
X  $!
X  $!
X  $! Check to see if they have enuff privs
X**************
X*** 44,49
X  $! We have privileges ... all systems go
X  $!
X  $    write sys$output "---> Starting CSWING directory/file manager v3.6.2"
X  $!
X  $! Define logical pointing to Cswing help library
X  $!
X--- 45,51 -----
X  $! We have privileges ... all systems go
X  $!
X  $    write sys$output "---> Starting CSWING directory/file manager v3.6.2"
X+ $    write sys$output "          and MOST file viewer v3.02FM"
X  $!
X  $! Define logical pointing to Cswing help library
X  $!
X**************
X*** 49,56
X  $!
X  $    define/system/executive SWING$HLP`09disk:`5Bdirectory`5DCSWING
X  $!
X! $! Add CSWING.EXE as a known image or replace it if it is already installe
Vd
X! $! ("known")
X  $!
X  $    install := $install/command_mode          `20
X  $!
X--- 51,58 -----
X  $!
X  $    define/system/executive SWING$HLP`09disk:`5Bdirectory`5DCSWING
X  $!
X! $! Add CSWING.EXE and MOST.EXE as a known images or replace them if they a
Vre
X! $! already installed ("known")
X  $!
X  $    install := $install/command_mode          `20
X  $!
X**************
X*** 60,66
X  $!
X  $    install 'install_verb' disk:`5Bdirectory`5DCSWING.EXE /shared/header/
Vopen
X  $!
X! $ EXIT_CSWING_STARTUP:
X  $!
X  $    prev_privs = f$setprv(prev_privs)
X  $    exit 'status
X--- 62,69 -----
X  $!
X  $    install 'install_verb' disk:`5Bdirectory`5DCSWING.EXE /shared/header/
Vopen
X  $!
X! $    install_verb := ""
X! $    if f$file("disk:`5Bdirectory`5DMOST.EXE","known") then install_verb :
V= REPLACE
X  $!
X  $    install 'install_verb' disk:`5Bdirectory`5DMOST.EXE /shared/header/op
Ven
X  $!
X**************
X*** 62,67
X  $!
X  $ EXIT_CSWING_STARTUP:
X  $!
X  $    prev_privs = f$setprv(prev_privs)
X  $    exit 'status
X  $!
X--- 65,74 -----
X  $    install_verb := ""
X  $    if f$file("disk:`5Bdirectory`5DMOST.EXE","known") then install_verb :
V= REPLACE
X  $!
X+ $    install 'install_verb' disk:`5Bdirectory`5DMOST.EXE /shared/header/op
Ven
X+ $!
X+ $ EXIT_CSWING_STARTUP:
X+ $!
X  $    prev_privs = f$setprv(prev_privs)
X  $    exit 'status
X  $!
X**************
X*** 66,72
X  $    exit 'status
X  $!
X  $ NO_PRIVS:
X! $    write sys$error "Insufficient privileges to start CSWING."
X  $    write sys$error "Requires ", required_privs, " privileges."
X  $    status = %x10000002
X  $    goto    EXIT_CSWING_STARTUP
X--- 73,79 -----
X  $    exit 'status
X  $!
X  $ NO_PRIVS:
X! $    write sys$error "Insufficient privileges to start CSWING and MOST."
X  $    write sys$error "Requires ", required_privs, " privileges."
X  $    status = %x10000002
X  $    goto    EXIT_CSWING_STARTUP
$ CALL UNPACK SWING-STARTUP_COM.PAT;363 926805463
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dswing_16.c;1
X--- disk$disk1:`5Bflowers.swing.src`5Dswing_16.c;2
X**************
X*** 70,75
X      char editor`5BEDITOR_SIZE+1`5D;
X      char trans`5B100`5D;
X `20
X      if (editor_defn`5B0`5D)
X      `7B
X          strcpy(trans,editor_defn);
X--- 70,85 -----
X      char editor`5BEDITOR_SIZE+1`5D;
X      char trans`5B100`5D;
X `20
X+     /*
X+     **  confirm intent to Edit
X+     */
X+     sprintf(junk,"Edit %s Y/N `5BN`5D",filename);
X+     if (!confirm_user(junk,"Y"))
X+         return(FALSE);
X+`20
X+     /*
X+     **  determine editor and call it
X+     */
X      if (editor_defn`5B0`5D)
X      `7B
X          strcpy(trans,editor_defn);
$ CALL UNPACK SWING_16_C.PAT;363 1718435475
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dswing_22.c;1
X--- disk$disk1:`5Bflowers.swing.src`5Dswing_22.c;2
X**************
X*** 126,132
X  " L      list (print) selected files      M    move selected files to anot
Vher",
X  " O      show broadcast messages               directory structure",
X  #ifdef CR_RETURNS_FROM_FILE_TO_DIR_MGR
X! "`5BCR`5D,Q  quit the file manager            Y    type selected file  ",
V `20
X  #else
X  " Q      quit the file manager            Y    type selected file  ", `20
X  #endif
X--- 126,132 -----
X  " L      list (print) selected files      M    move selected files to anot
Vher",
X  " O      show broadcast messages               directory structure",
X  #ifdef CR_RETURNS_FROM_FILE_TO_DIR_MGR
X! "`5BCR`5D,Q  quit the file manager            Y    type current/selected f
Vile(s)", `20
X  #else
X  " Q      quit the file manager            Y    type current/selected file(
Vs)", `20
X  #endif
X**************
X*** 128,134
X  #ifdef CR_RETURNS_FROM_FILE_TO_DIR_MGR
X  "`5BCR`5D,Q  quit the file manager            Y    type selected file  ",
V `20
X  #else
X! " Q      quit the file manager            Y    type selected file  ", `20
X  #endif
X  " S      submit selected files to batch   R    rename selected files",`20
X  " *      snapshot the screen              U    purge this directory", `20
X--- 128,134 -----
X  #ifdef CR_RETURNS_FROM_FILE_TO_DIR_MGR
X  "`5BCR`5D,Q  quit the file manager            Y    type current/selected f
Vile(s)", `20
X  #else
X! " Q      quit the file manager            Y    type current/selected file(
Vs)", `20
X  #endif
X  " S      submit selected files to batch   R    rename selected files",`20
X  " *      snapshot the screen              U    purge this directory", `20
$ CALL UNPACK SWING_22_C.PAT;363 1074814629
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dswing_24.c;1
X--- disk$disk1:`5Bflowers.swing.src`5Dswing_24.c;2
X**************
X*** 36,41
X  #include stdio
X  #include ssdef
X  #include psldef
X  #include "more_descrip.h"
X  #include "swing.h"
X  #include "swing_refs.h"
X--- 36,42 -----
X  #include stdio
X  #include ssdef
X  #include psldef
X+ #include ctype
X  #include "more_descrip.h"
X  #include "swing.h"
X  #include "swing_refs.h"
X**************
X*** 118,124
X  add_directory_structure(directory)
X  char *directory;
X  `7B
X!     int i, status;
X      DSTRUCTURE *tmp;
X      char cur_dir`5BSPEC_SIZE+1`5D;
X      char dir`5BSPEC_SIZE+1`5D;
X--- 119,125 -----
X  add_directory_structure(directory)
X  char *directory;
X  `7B
X!     int i, j, status;
X      DSTRUCTURE *tmp;
X      char cur_dir`5BSPEC_SIZE+1`5D;
X      char dir`5BSPEC_SIZE+1`5D;
X**************
X*** 124,131
X      char dir`5BSPEC_SIZE+1`5D;
X      char name`5BSPEC_SIZE+1`5D;
X      char device`5BSPEC_SIZE+1`5D;
X!`20
X!`20
X      /*
X      **  get the root spec for this node
X      */
X--- 125,132 -----
X      char dir`5BSPEC_SIZE+1`5D;
X      char name`5BSPEC_SIZE+1`5D;
X      char device`5BSPEC_SIZE+1`5D;
X!     char cmndir`5BSPEC_SIZE+1`5D;
X!    `20
X      /*
X      **  get the root spec for this node
X      */
X**************
X*** 138,149
X          return(FALSE);
X `20
X      /*
X-     **  if this is the first translation we've made we'll record it as suc
Vh
X-     */
X-     if (!first_translation`5B0`5D)
X- `09strcpy(first_translation,directory);
X-`20
X-     /*
X      **  pick up the current device in case it wasn't specified
X      */
X      show_def(cur_dir);
X--- 139,144 -----
X          return(FALSE);
X `20
X      /*
X      **  pick up the current device in case it wasn't specified
X      */
X      show_def(cur_dir);
X**************
X*** 148,153
X      */
X      show_def(cur_dir);
X `20
X      /*
X      **  get the root spec for this node, this time with device if device
X      **  wasn't specified last time
X--- 143,167 -----
X      */
X      show_def(cur_dir);
X `20
X+     /*`20
X+     ** if device is SYS$SYSROOT, make it SYS$SPECIFIC,`20
X+     ** set up cmndir for SYS$COMMON, and set sysroot_flag
X+     */
X+     if (strstr(cur_dir,"SYS$SYSROOT")) `7B
X+ `09strcpy(junk,"SYS$SPECIFIC:");
X+ `09i = 0;
X+ `09while (directory`5Bi++`5D != '`5B');
X+         strcat(junk,&directory`5Bi-1`5D);
X+ `09strcpy(directory,junk);
X+ `09strcpy(cmndir,"SYS$COMMON:");
X+         strcat(cmndir,&directory`5B13`5D);
X+ `09get_root_dir(directory,dir,name);
X+ `09set_default(dir);
X+ `09show_def(cur_dir);
X+ `09set_default(directory);
X+ `09sysroot_flag = 1;
X+    `7D
X+`20
X      /*
X      **  get the root spec for this node, this time with device if device
X      **  wasn't specified last time
X**************
X*** 154,159
X      */
X      get_root_dir(cur_dir,dir,name);
X `20
X      tmp = fdp;
X      while(tmp)
X      `7B
X--- 168,179 -----
X      */
X      get_root_dir(cur_dir,dir,name);
X `20
X+     /*
X+     **  if this is the first translation we've made we'll record it as suc
Vh
X+     */
X+     if (!first_translation`5B0`5D)
X+ `09strcpy(first_translation,directory);
X+`20
X      tmp = fdp;
X      while(tmp)
X      `7B
X**************
X*** 164,186
X              */
X              sprintf(junk,"Directory structure %s already loaded",dir);
X              warning(junk);
X!`20
X! #ifdef extra_setdef
X!             /*
X!             **  call set_def to see if we can go to the desired directory
X!             */
X!             set_default(directory);
X!`20
X!             /*
X!             **  find where we start
X!             */
X!             set_init_position();
X!        `20
X!             /*
X!             **  repair display
X!             */
X!             refresh_display();
X! #endif       `20
X              return(TRUE);
X          `7D
X          tmp = tmp->forw_ptr;
X--- 184,191 -----
X              */
X              sprintf(junk,"Directory structure %s already loaded",dir);
X              warning(junk);
X! `09    if(sysroot_flag == 1)
X! `09        goto add_sys$common;
X              return(TRUE);
X          `7D
X          tmp = tmp->forw_ptr;
X**************
X*** 224,230
X      `7D
X `20
X      /*
X!     **  link it in
X      */
X      tmp = fdp;
X      if (tmp)
X--- 229,235 -----
X      `7D
X `20
X      /*
X!     **  fix first_translation if load_nodes_from_file changed root
X      */
X      if (!strstr(first_translation,"`5B000000") &&
X           strstr(cdp->dir_name,"`5B000000")) `7B
X**************
X*** 226,231
X      /*
X      **  link it in
X      */
X      tmp = fdp;
X      if (tmp)
X      `7B
X--- 231,251 -----
X      /*
X      **  fix first_translation if load_nodes_from_file changed root
X      */
X+     if (!strstr(first_translation,"`5B000000") &&
X+          strstr(cdp->dir_name,"`5B000000")) `7B
X+ `09i=0;j=0;
X+ `09while (strncmp(&first_translation`5Bi`5D,"`5B",1))
X+ `09    junk`5Bj++`5D = first_translation`5Bi++`5D;
X+ `09i += 1;
X+ `09strcpy(&junk`5Bj`5D,"`5B000000.");
X+ `09j += 8;
X+ `09strcpy(&junk`5Bj`5D,&first_translation`5Bi`5D);
X+ `09strcpy(first_translation,junk);
X+     `7D
X+`20
X+     /*
X+     **  link it in
X+     */
X      tmp = fdp;
X      if (tmp)
X      `7B
X**************
X*** 247,253
X      */
X      load_lines();
X `20
X! #ifdef extra_setdef
X      /*
X      **  call set_def to go to desired directory
X      */
X--- 267,273 -----
X      */
X      load_lines();
X `20
X! add_sys$common:
X      /*
X      **  if node was in SYS$SYSROOT and sysroot_flag is set to 1,
X      **  add node for SYS$COMMON and increment sysroot_flag to
X**************
X*** 249,255
X `20
X  #ifdef extra_setdef
X      /*
X!     **  call set_def to go to desired directory
X      */
X      set_default(directory);
X `20
X--- 269,277 -----
X `20
X  add_sys$common:
X      /*
+-+-+-+-+-+-+-+-  END  OF PART 5 +-+-+-+-+-+-+-+-
Technical Details
Message-ID: <8880507@MVB.SAIC.COM>
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!news.hawaii.edu!s.u-tokyo!kekux!rcnpvx!ccsparc01!icspub!wnoc-kyo!sh.wide!wnoc-tyo-news!nec-tyo!nec-gw!sgiblab! swrinde!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!hamblin.math.byu.edu!arizona.edu!mvb.saic.com!vmsnet-sources

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!news.hawaii.edu!s.u-tokyo!kekux!rcnpvx!ccsparc01!icspub!wnoc-kyo!sh.wide!wnoc-tyo-news!nec-tyo!nec-gw!sgiblab! swrinde!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!hamblin.math.byu.edu!arizona.edu!mvb.saic.com!vmsnet-sources
Newsgroups: vmsnet.sources
Subject: C Swing v3.6.3 patches, part 05/07
Message-ID: <8880507@MVB.SAIC.COM>
From: flowers@memstvx1.memst.edu
Date: 29 Oct 92 17:42:14 GMT
Organization: Memphis State University
Approved: Mark.Berryman@Mvb.Saic.Com
Lines: 1499