#-h- acat            1213  asc  22-jul-83 17:04:31  sventek (joseph sventek)


    Acat (1)                   11-Mar-82                        Acat (1)


    NAME
        Acat - concatenate nested archive entries on standard output

    SYNOPSIS
        acat archive`module[`module...] ...

    DESCRIPTION
        `acat'  performs  the  equivalent  function  to `cat' on archive
        files created by the `ar' utility.  The  true  power  of  `acat'
        lies  in  its  ability to extract the modules from within nested
        archives.  Some examples may help clarify its use. 

        Suppose the file arch1 consists of the modules mod1a, mod1b  and
        mod1c.   In  addition, mod1c is itself an archive, consisting of
        modules mod2a and mod2b.  The command line

        % acat arch1`mod1a

        is equivalent to the `ar' command

        % ar p arch1 mod1a

        More importantly, if the user desires to see mod2a in  mod1c  in
        arch1, the command

        %acat arch1`mod1a`mod2a

        will do the trick. 

    FILES
        

    SEE ALSO
        ar - archive file maintainer
        cat - concatenate files

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        








                                    -1-

#-h- admin           1471  asc  22-jul-83 17:04:33  sventek (joseph sventek)


    Admin (1)                  14-Sep-81                       Admin (1)


    NAME
        Admin - administer TCS file. 

    SYNOPSIS
        admin -ifile file.tcs

    DESCRIPTION
        Admin  -i  enters  a text file into the TCS system for the first
        time.  File is the source file to be entered  into  the  system.
        Local  convention  is  to  use  the  name  "file.tcs"  for files
        maintained by TCS. 
        
        The file is tagged as Version #1.1 and the user is prompted  for
        initial comments concerning the development of the file. 
        
        The  date,  time  and  user  ID  are  recorded in the statistics
        portion of the file. 

    FILES
        A scratch file is used while creating the output file and  moved
        upon completion of input. 

    SEE ALSO
        delta, get

    DIAGNOSTICS
        usage:  admin -ifile file.tcs
                  Correct   calling   format  is  provided  when  called
                  without arguments. 
        
        - flag missing
                  Incorrect calling procedure. 
        
        -i... filename missing
                  The input  filename  is  expected  to  be  immediately
                  adjacent to the -i flag.  (no white-space)
        
        Invalid flag
                  -i is the only valid flag at present. 

    AUTHORS
        Neil Groundwater at ADI. 

    BUGS/DEFICIENCIES








                                    -1-

#-h- alist           1138  asc  22-jul-83 17:04:34  sventek (joseph sventek)


    Alist (1)                  11-Jan-79                       Alist (1)


    NAME
        Alist - generate paginated listing of source archive

    SYNOPSIS
        alist [file] ...

    DESCRIPTION
        `alist'  generates  a  paginated  listing  of  archive files.  A
        table of contents with the relative page number in  the  listing
        is  displayed  first,  with  each  element  of  the archive file
        starting on  a  new  page.   The  second  page  of  the  listing
        contains  a  sorted  index  of  entries,  with the starting page
        number.  If no  files  are  specified,  the  standard  input  is
        read.   `alist' considers each line which starts with the string
        "#-h-" to be the beginning  of  a  new  entry,  so  that  nested
        archives  will  be handled reasonably.  The listing is displayed
        on standard output, and may be piped into lpr to  queue  to  the
        printer. 

    FILES

    SEE ALSO
        pr - print files

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES






















                                    -1-

#-h- apropos         1191  asc  22-jul-83 17:04:35  sventek (joseph sventek)


    Apropos (1)                22-Jul-83                     Apropos (1)


    NAME
        Apropos   -   locate   manual  entries  matching  user-specified
        patterns

    SYNOPSIS
        apropos pattern [pattern] ...

    DESCRIPTION
        apropos searches the on-line documentation  system  for  entries
        which  match  the  regular  expression  patterns supplied in the
        command line.  For each entry so found, a one-line  synopsis  of
        the  entry (similar to the one displayed by the tool `intro') is
        displayed on standard output, with the section where  the  entry
        may  be  found.   The `man' utility can then be used to retrieve
        more information on the topic. 

    EXAMPLES
        To get a list of all entries having anything to do with the mail system,
        type the following command:
        
                        apropos mail

    FILES
        Accesses  the  known  files  for  each  section  in   the   ~man
        directory. 

    SEE ALSO
        The tools 'intro' and 'man'; the Unix command 'man'

    DIAGNOSTICS

    AUTHORS
        Joe Sventek. 



















                                    -1-

#-h- ar             10215  asc  22-jul-83 17:04:38  sventek (joseph sventek)


    Ar (1)                     11-Oct-79                          Ar (1)


    NAME
        Ar - archive file maintainer 

    SYNOPSIS
        ar {dpstux}[v/1] arcname [file] ...

    DESCRIPTION
        Ar  collects  sets  of  arbitrary  files  into  one big file and
        maintains that file as an 'archive'.   Files  can  be  extracted
        from  the  archive,  new  ones  can  be  added,  old ones can be
        deleted or replaced by updated versions,  and   data  about  the
        contents can be listed. 
        
        If  a  minus  sign  ('-')  is given as a file name, further file
        names are read from  the  standard  input,  one  file  name  per
        line. 
        
        Files  that  are  to be added to an archive must exist as  files
        with the name given.  Files that are extracted from  an  archive
        will  be  put  onto  files  with the name given.  Files that are
        added  to  archives   can,   of   course,   be   archive   files
        themselves.   There  is no (theoretical) limit to the number  of
        files that can  be  nested  this  way.   Thus  Ar  provides  the
        utility    necessary    to    maintain   tree-structured    file
        directories. 
        
        Ar is invoked by the command line 
        
                  Ar command archname [optional filenames] 
        
        where   'command'   is   any   one   of   'uxtpds',   optionally
        concatenated   with  'v'  or  '1',  specifying what operation to
        perform on the  archive file  named  'archname'.   The  possible
        commands are: 
        
                  u  -  Update named archive by replacing existing files
                  or adding new  ones at end.   If  the  'v'  option  is
                  used,  file  names  will  be  printed on the  standard
                  output as  files  are  written  to  the  new  archived
                  file. 
                  
                  x  -  Extract named files from archive.  Put onto file
                  of the  same name.  If the 'v' option is  added,  file
                  names  will  be  printed  on  the   standard output as
                  files are extracted. 
                  
                  d - Delete named  files  from  archive.   If  the  'v'
                  option  is  used,  file  names will be printed on  the
                  standard  output  as  they  are   deleted   from   the
                  archive. 


                                    -1-


    Ar (1)                     11-Oct-79                          Ar (1)


                  
                  p  -  Print named files on standard output.  Using the
                  'v' option will cause the file  name  to  precede  the
                  file. 
                  
                  t  -  Print  table of archive contents.  Normally, the
                  table will contain only the file  name.   If  the  'v'
                  option  is  used,  the  table  will  also contain  the
                  file's  length,  type,  and  date  and  time  of  last
                  change.   By  default,  if  the  standard  output is a
                  terminal, ar will pack five  names  per  line  in  the
                  non-verbose  mode.   If  the  optional  '1'  option is
                  used, the output is force to single column,  which  is
                  the  default  is  standard  output  is not a terminal.
                  For example,
                  
                  ar t archive
                  
                  might generate the following output:
                  
                  a               b               c               d
                  
                  whereas
                  
                  ar t1 archive
                  
                  would generate
                  
                  a
                  b
                  c
                  d
                  
                  
                  s - Salvage.  This command may be used  to  recover  a
                  damaged   archive    whose  character  counts  do  not
                  reflect  the  correct  number  of  characters  in  the
                  file.   The  's'  command  extracts all files from the
                  archive, ignoring characters  counts,  date  and  time
                  stamps,  etc.  on  the archive header lines; it simply
                  uses '#-h-, which begins each archive member, and  the
                  file  name  which  follows  it.   The  files  are then
                  replaced in  the  archive,  with  corrected  character
                  counts.   Thus,  the  's' flag is useful for salvaging
                  the contents of 'alien' archive files and  for  saving
                  damaged   archives.    It  does  not  work  on  nested
                  archives (i.e. archives within archives). 
                  
                  v - Verbose.  This command may be concatenated to  any
                  of  the  above  commands,  and will cause the archiver


                                    -2-


    Ar (1)                     11-Oct-79                          Ar (1)


                  to  print  additional  information,   generally   file
                  names,  on  the  standard output.  Its specific action
                  for each command has already been described. 
        
        The optional filenames in the command  line  specify  individual
        files  that  may  participate  in  the  action.  If no files are
        named, the action is done on ALL files in the archive,   but  if
        any  files  are  explicitly  named,  they are the ONLY ones that
        take  part  in   the   action.    (The   'd'   command   is   an
        exception--files  may  be  deleted  only  by   specifying  their
        names.) 

    FILES
        A file 'arctemp' is created and subsequently  deleted  for  each
        run. 

    SEE ALSO
        The Unix commands 'ar' and 'ls' in the Unix manual 
        `rar' - rearrange archive

    DIAGNOSTICS
        archive not in proper format 
                  The  basic  problem  is  that  archive  didn't  find a
                  header line where one was expected.   Typical  reasons
                  include  misspelling  the file name, using an existing
                  file (not in archive format) on a  creation  run,  and
                  referencing  an  archive  file  that has been modified
                  directly (say with the editor). 
        
        delete by name only 
                  For user protection, files are allowed to  be  deleted
                  from an archive  only by specifying each file name. 
        
        duplicate file name 
                  A  file  was  listed  more  than once when calling the
                  archiver 
        
        fatal errors-archive not altered 
                  This message is generated whenever one or more of  the
                  other   errors  have  been  detected.   An  archive is
                  never altered unless  EVERYTHING has run properly. 
        
        too many file names 
                  At the present the user may call the archiver with  no
                  more than  25 files at a time. 
        
        usage:  ar [dptuxsv] arcname [files] 
                  The  command  line passed to the archiver is in error.
                  Possibly the command is wrong  or  the  archived  file
                  name  has not been given. 


                                    -3-


    Ar (1)                     11-Oct-79                          Ar (1)


        
        'filename': can't add 
                  The  file  specified  by  'filename'  doesn't exist or
                  can't be opened (e. g. is locked). 
                  
        'filename': can't create 
                  The archiver could not generate a local  file  by  the
                  name    of   'filename'.    Probably   the  archiver's
                  internal file  buffer space has been exceeded. 
                  
        'filename': not in archive 
                  The archiver could not locate the  file  specified  by
                  'filename' in  the archived file. 
                  

    AUTHORS
        Original  code  from  Kernighan  and Plauger's 'Software Tools',
        with modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES
        On some systems only text files can be archived. 
        
        When the update and print  commands  are  used,  the  files  are
        updated  or  printed  in  the  order they appear on the archived
        file, NOT the order listed on  the command line. 
        
        The 's' salvage command works only on unnested archives. 
        
        The  Unix  archiver  allows  files  to  be  positioned  in   the
        archive,  rather  than simply added at the end as Ar does.  This
        is done by adding the following commands: 
                  
                  m - Move specified files to end of archive 
                  
                  ma posname - Move specified files  to  position  after
                  file 'posname' 
                  
                  mb  posname  - Move specified files to position before
                  file 'posname' 
                  
                  r - Replace  specified  files  and  place  at  end  of
                  archive 
                  
                  ra  posname  -  Replace  files  and  place  after file
                  'posname' 
                  
                  rb posname -  Replace  files  and  place  before  file
                  'posname' 
        
        There  are  some  discrepancies  between  the Unix version of Ar


                                    -4-


    Ar (1)                     11-Oct-79                          Ar (1)


        and   this  version.   Unix   uses   'r'--replace   instead   of
        'u'--update.    Unix  also  requires  the  user  to  specify  an
        additional command 'n'  when creating a new archive. 

















































                                    -5-

#-h- args            1905  asc  22-jul-83 17:04:44  sventek (joseph sventek)


    Args (1)                   25-Aug-80                        Args (1)


    NAME
        Args - use standard input as arguments for command

    SYNOPSIS
        args [-v] tool [arguments]

    DESCRIPTION
        Args  reads  the  standard input file and concatenates the words
        found there onto the arguments passed to  it.   It  then  spawns
        the  tool  "tool"  with  those arguments.  The first argument to
        Args which does not start with a "-" is taken to be the name  of
        the  tool  to be invoked.  Args uses the same search path as the
        shell, and if "tool" is a script file, a copy of the shell  will
        be  spawned reading that file for its commands.  The optional -v
        argument causes Args  to  display  the  final  command  line  on
        ERROUT before spawning the sub-process. 
        
        The  most common use of Args is as a form of argument explosion,
        as in the following example:
        
             Suppose you wish to delete all files which have the  string
             "tst"  somewhere in the filename.  This may be accomplished
             with the following shell command line:

             % ls tst | args rm -v

             All of the files matching the pattern "tst" will be fed  to
             Args,  which  will  concatenate the names onto Rm's command
             line.  Rm will then be spawned, and will print the name  of
             each file as it is deleted. 
             
        If  the  information found on standard input is so voluminous as
        to cause the argument string to be too large, the  command  line
        is displayed on ERROUT and the process is NOT spawned. 
        

    FILES
        none

    SEE ALSO
        sh - command line interpreter (for search path rules)

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES






                                    -1-

#-h- asam            1167  asc  22-jul-83 17:04:48  sventek (joseph sventek)


    Asam (1)                   11-Mar-82                        Asam (1)


    NAME
        Asam - generate index for archive file

    SYNOPSIS
        asam <input_archive

    DESCRIPTION
        `asam'  generates  the  same  type  of index as `isam', with the
        exception that index lines are generated only  for  the  archive
        header  lines.   The generated index appears on standard output,
        and may be sorted or whatever  necessary  for  the  application.
        The  primary  key  output  in  the index line is the name of the
        module.   Unlike  `isam',  there  are  no  switches  for  output
        control  in  the  generated  index  lines.   The  module name is
        output,  followed  by  a  blank  character,  followed   by   the
        formatted linepointer. 

        `asam'  is  used  specifically  to  generate the indices for the
        manual sections found in ~man. 

    FILES
        

    SEE ALSO
        isam - generate index for indexed-sequential access

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        


















                                    -1-

#-h- asplit          2200  asc  22-jul-83 17:04:54  sventek (joseph sventek)


    Asplit (1)                 25-Aug-80                      Asplit (1)


    NAME
        Asplit - salvage garbaged archive files

    SYNOPSIS
        asplit [-tstring] [-v]

    DESCRIPTION
        asplit   reads  the  standard  input  file,  looking  for  lines
        beginning with the archive header flag  (#-h-).   Upon  locating
        such  a line, the next word after the header is used to generate
        a file name, and all lines read up  to  the  next  pseudo-header
        line  are  written  onto  that  file.   When generating the file
        name, only the characters found before a  left  parenthesis  are
        used,  if  one  is  found.  If the -t switch is used, the string
        appended to the -t is appended to  each  file  name  before  the
        file  is  created,  thus  permitting  a  fixed  tag string to be
        formatted into the file name.  If the -v  option  is  specified,
        the  name  of  each  file is reported on ERROUT as it is opened.
        Any lines found at the beginning of the file  before  the  first
        pseudo-header line is copied to standard output. 
        
        asplit  is  commonly  used  to salvage an archive which has been
        garbaged, or to take a monster fortran source program  file  and
        break  it  up  into subroutines.  A script file (breakup) may be
        found on the  tools  binary  directory  which  will  cause  each
        subprogram  of  the  form  "subroutine  snarf"  or "... function
        snarf" to be placed on a file of the name "snarf.qq".  The  only
        side  effect  of  this transformation is that the source will be
        in lower case,  and  may  be  remedied  by  modifying  the  file
        breakup. 
        

    FILES
        none

    SEE ALSO
        ar  -  file  archiver:  the  -s switch does essentially the same
        thing as asplit, except that it  tries  to  rebuild  the  source
        file   as   a  new  archive,  which  does  not  always  work  in
        pathological cases. 
        sepfor - split FORTRAN programs into multiple files

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES






                                    -1-

#-h- axref           2099  asc  22-jul-83 17:04:57  sventek (joseph sventek)


    Axref (1)                  11-Mar-82                       Axref (1)


    NAME
        Axref - cross reference symbols in archive files

    SYNOPSIS
        axref [-fr] [file] ...

    DESCRIPTION
        `axref'  produces a cross-reference list of the symbols found in
        each of the named files on the standard output.  Each symbol  is
        listed  followed  by  the  numbers  of  the  lines  in  which it
        appears.  If  no  files  are  specified,  of  the  file  "-"  is
        specified, `axref' reads the standard input. 

        `axref'  differs  from  `xref'  in  that it generates a separate
        cross-reference list for each module found  within  an  archive.
        Module  boundaries  are  defined  to  be those lines which start
        with the string "#-h-",  as  generated  by  the  file  archiver.
        Each module is preceded with the label

        file/module_name:

        on the standard output. 

        A  symbol  is  defined  as  a  string  of  letters,  digits  and
        underlines that  begins with a  letter.   Symbols  exceeding  an
        internal  limit  are truncated.  This limit is determined by the
        MAXTOK definition in the source code, and is  currently  set  to
        15. 

        By   default,   `axref'   differentiates   between   upper-  and
        lower-case letters.  The `-f' option causes all  letters  within
        symbols to be folded to a single case. 

        Normally,  the  line  numbers  specified in the symbol table are
        relative to the current file being processed.  The  `-r'  option
        causes  the  line  numbers specified to be relative to the start
        of the current archive module. 

    FILES
        

    SEE ALSO
        xref - make a cross reference of symbols

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek



                                    -1-


    Axref (1)                  11-Mar-82                       Axref (1)


    BUGS/DEFICIENCIES
        


















































                                    -2-

#-h- banner          1032  asc  22-jul-83 17:05:00  sventek (joseph sventek)


    Banner (1)                 16-Mar-82                      Banner (1)


    NAME
        Banner - generate large banner lines

    SYNOPSIS
        banner [string]

    DESCRIPTION
        `banner'  formats  the  specified text strings into large banner
        lines on standard output.  If a command argument  is  specified,
        then  that  string is output; otherwise, standard input is read,
        with each line being displayed on standard output, until an  EOF
        is  detected.  Each character is printed in a 7 x 7 window, with
        the character occupying the central 5 x  5  portion.   The  file
        `~bin/bigchar'  can be consulted for the format of the character
        file. 

    FILES
        ~bin/bigchar

    SEE ALSO
        

    DIAGNOSTICS
        If a character is detected which has no  correspondence  in  the
        character file, a blank is displayed. 

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        





















                                    -1-

#-h- bargraph        2713  asc  22-jul-83 17:05:03  sventek (joseph sventek)


    BarGraph (1)               11-Nov-81                    BarGraph (1)


    NAME
        BarGraph - draw a 0-100% bargraph of integer data

    SYNOPSIS
        bargraph -[cfFhmrRsw] file ...

    DESCRIPTION
        BarGraph  draws  a  simple  graph  of  integer  data  scaled  to
        0-100%.  Each line of input is expected to contain  two  fields,
        a  label  and  a  number,  both  in  ASCII.   The  label and its
        associated numeric value should be  separated  by  one  or  more
        BLANKs  or a TAB.  There are several options for controlling the
        appearance of the graph:

            -c<c> use <c> as the character  for  plotting  the  ordinate
                  instead of ``|'' (the default)

            -f<c> use <c> to fill the area under the bar

            -F<c> use <c> to fill the area over the bar

            -h    output column headers

            -m[c] display   the   mean  of  the  data,  using  ``c''  if
                  specified instead of ``.'' (the default)

            -r[c] display ruling every 10% under the  bar,  using  ``c''
                  if specified instead of ``:'' (the default)

            -R[c] display  ruling every 10% over the bar, using ``c'' if
                  specified instead of ``:'' (the default)

            -s    plot the running sum of the data  values  rather  than
                  the values themselves

            -w    make the graph 132 columns wide rather than 80

    EXAMPLES
                            bargraph -h -f* -w file

        would  make  a  132-column  wide  graph of the data in ``file'',
        with column headers  and  ``*''  characters  filling  under  the
        bar. 

                         d "-f16n 9c" | bargraph "-f|"

        would  graph  the  sizes  of  all files in the current directory
        using ``|'' as the fill character below the bar.  Note  that  it
        is  necessary  to  put  quotes  around  character  specification
        options when specifying  characters  that  are  special  to  the


                                    -1-


    BarGraph (1)               11-Nov-81                    BarGraph (1)


        shell (the "-f|" in the above example). 

    FILES
        none

    SEE ALSO
        

    DIAGNOSTICS
        ? Too much data: increase TABLE_SIZE

    AUTHORS
        Dave Martin (Hughes Aircraft)

    BUGS/DEFICIENCIES
        There  is  an  upper  limit to the number of points which may be
        graphed.  This limit may be raised by increasing  the  value  of
        TABLE_SIZE.   Numeric  values  are currently limited to 7 digits
        or less. 

































                                    -2-

#-h- box             1842  asc  22-jul-83 17:05:06  sventek (joseph sventek)


    Box (1)                    23-Jul-81                         Box (1)


    NAME
        Box - draw boxes around block structure of RatFor or C programs

    SYNOPSIS
        box [-e] [-d{device}] [-] file ...

    DESCRIPTION
        Box  draws boxes around statement groups (beginning with "{" and
        ending with "}") to make them more legible.  It is  designed  to
        be  used  as  a  pretty-printer  for  RatFor  or  C code that is
        indented as follows:
        
                level 0
                {
  level 1
  {
    level 2
  }
  level 1
                }
                level 0
                
                For this input, box generates:
                
                level 0
                +-------------+
                | level 1     |
                | +---------+ |
                | | level 2 | |
                | +---------+ |
                | level 1     |
                +-------------+
                level 0
                
        The alignment of the "{" and "}" characters and the  indentation
        of  2  spaces  per  level are required for proper operation.  If
        TABs are present in the input, they are  replaced  with  blanks,
        on  the  assumption  of 8 spaces per TAB.  The "-d" option takes
        advantage  of  the  line-drawing  character  sets   on   certain
        devices;   currently  the  DEC  vt100  and  the  Heath  h19  are
        supported. 

    EXAMPLES
        box -dvt100 myfile
        
        box the file "myfile" to STDOUT (assumed to be a vt100)

    AUTHORS
        Dave Martin (Hughes Aircraft)



                                    -1-


    Box (1)                    23-Jul-81                         Box (1)


    BUGS/DEFICIENCIES



















































                                    -2-

#-h- cat             1469  asc  22-jul-83 17:05:10  sventek (joseph sventek)


    Cat (1)                    16-Feb-78                         Cat (1)


    NAME
        Cat - concatenate and print text files 

    SYNOPSIS
        cat [-v] [file] ...

    DESCRIPTION
        `cat'  reads each file in sequence and writes it on the standard
        output.  Thus 

             cat file 

        prints the file, and 

             cat file1 file2 >file3 

        concatenates the first two files and places the  result  on  the
        third. 

        If  no  argument  or  '-'  is  given,  `cat'  reads the standard
        input. 
        
        If the '-v' option is  specified,  all  control  characters  are
        displayed  as  '^C', where C is the character that must be typed
        with the CTRL key when entering the character.  If any  DEL(RUB)
        characters  are  found,  they  are  displayed as '^?'.  A dollar
        sign character ('$') is displayed at the end  of  each  line  to
        aid in location of trailing blanks in lines. 

    FILES
        none

    SEE ALSO
        The "Software Tools" book, p. 77. 
        The UNIX tools cat, PR, CP

    DIAGNOSTICS
        A  message  is  printed  if  a  file  cannot be opened;  further
        processing is terminated. 

    AUTHORS
        Dennis Hall, Debbie Scherrer and Wen-Sue Gee. 

    BUGS/DEFICIENCIES
        Using the same file for output  as  well  as  input  may   cause
        strange results. 






                                    -1-

#-h- ccnt             834  asc  22-jul-83 17:05:12  sventek (joseph sventek)


    Ccnt (1)                   11-Jan-79                        Ccnt (1)


    NAME
        Ccnt - character count

    SYNOPSIS
        ccnt [file] ...

    DESCRIPTION
        ccnt  counts  characters  in  the  named  file(s).  Newlines are
        counted as characters.  If no file  name  or  the  file  '-'  is
        given, standard input will be read. 

    FILES
        none

    SEE ALSO
        wcnt - count words
        lcnt - count lines
        the Unix command `wc'

    DIAGNOSTICS
        A  message is printed if an input file cannot be opened; further
        processing is terminated. 

    AUTHORS
        Original from Kernighan and  Plauger's  'Software  Tools',  with
        minor modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES
























                                    -1-

#-h- cd              1031  asc  22-jul-83 17:05:14  sventek (joseph sventek)


    Cd (1)                     02-May-81                          Cd (1)


    NAME
        Cd - change working directory

    SYNOPSIS
        cd [directory]

    DESCRIPTION
        `cd'  changes  the  working  directory  to  `directory'.   If no
        argument is given, the  working  directory  is  changed  to  the
        previous working directory. 

        Since  a  new  process  is created to execute each command, `cd'
        would be ineffective if it were written  as  a  normal  command.
        As a result, it is recognized and executed by the shell. 

        Valid forms of the directory on RSX-11M/IAS are

                                 /ddnn/ggg,mmm
                                    /ggg,mmm
                                 ddnn:[ggg,mmm]
                                   [ggg,mmm]

    FILES
        None

    SEE ALSO
        pwd - print working directory

    DIAGNOSTICS
        

    AUTHORS
        

    BUGS/DEFICIENCIES
        
















                                    -1-

#-h- ch              5665  asc  22-jul-83 17:05:17  sventek (joseph sventek)


    Ch (1)                     7-Apr-78                           Ch (1)


    NAME
        Ch - make changes in text files 

    SYNOPSIS
        ch [-ax] [expression] ... fromexpr [toexpr]

    DESCRIPTION
        ch  copies  each  line  of  the  standard  input to the standard
        output, globally substituting  the  text  pattern  "toexpr"  for
        "fromexpr"   on  each  line  that  satisfies  matching  criteria
        defined  by  the  leading  expressions  "expression"   and   the
        switches.   (A   text   pattern   is  a  subset  of  a  "regular
        expression"--see the "ed" writeup for a  complete  description.)
        Three  possible  courses  of action are taken depending upon the
        number of text patterns(n) found in the command line:

        n=1  The text pattern is assumed to be "fromexpr"  with  a  null
             "toexpr"; it is equivalent to the ed command
                       g/fromexpr/s///g
        n=2  The  first  text  pattern  is  "fromexpr",  the  second  is
             "toexpr"; it is equivalent to the ed command
                       g/fromexpr/s//toexpr/g
        n>=3 The (n-1)th pattern is "fromexpr", the nth is "toexpr"  and
             patterns  1...n-2  are  used  to  determine  the lines upon
             which to perform the substitution.   The  default  is  that
             any   line  which  matches  any  one  of  the  n-2  leading
             expressions are eligible for substitution.  If the -a  flag
             is  specified,  only  lines  which  match  all  n-2 leading
             expressions in any order are eligible.  If the -x  flag  is
             specified,   all   lines  which  don't  satisfy  the  above
             criteria are eligible. (See the writeup on  find  for  more
             information.)  In particular, if n=3, 
                       ch expr from to
             is equivalent to the ed command
                       g/expr/s/from/to/g
                       ch -x expr from to
             is equivalent to the ed command
                       x/expr/s/from/to/g

        The  substitution string "toexpr" may be a string of replacement
        characters, null to effect a deletion, or  it  may  include  the
        special  "ditto" character "&" to put back the "fromexpr" string
        and  thus  effect  an  insertion.   It  may  also  contain   the
        expressions  `$1' ... `$9', which cause the corresponding tagged
        pattern in the input to be inserted.  If a deletion  is  desired
        with  the  multiple  leading  tag  expressions, a "toexpr" of ""
        -i.e. quotes around an empty string may be used. 
        
        A text pattern consists of the following elements: 
        


                                    -1-


    Ch (1)                     7-Apr-78                           Ch (1)


        c      literal character 
        ?      any character except newline 
        %      beginning of line 
        $      end of line (null string before newline) 
        [...]  character class (any one of these characters) 
        [!...] negated character class (all but these characters) 
        {expr} tagged pattern (referenced by $1 ... $9)
        *      closure (zero or more occurrences of previous pattern) 
        +      anchored closure (one or more occurrences of previous pattern)
        @c     escaped character (e.g., @%, @[, @*) 
        
        Any special meaning of characters in  a  text  pattern  is  lost
        when  escaped, inside [...], or for: 
        
        %         not at beginning 
        $         not at end 
        *         at beginning 
        +         at beginning
        
        A  character  class  consists  of  zero or more of the following
        elements, surrounded by [ and ]: 
        
        c         literal character 
        a-b       range of characters (digits, lower or upper case) 
        !         negated character class if at beginning 
        @c        escaped character (@! @- @ @]) 
        
        Special meaning of characters  in  a  character  class  is  lost
        when  escaped or for 
        
        !         not at beginning 
        -         at beginning or end 
        
        An  escape  sequence  consists  of the character @ followed by a
        single  character: 
        
        @f        formfeed
        @l        linefeed
        @n        newline 
        @r        return
        @t        tab 
        @OOO      the octal digit representation for an ASCII character
                  for example, @001 for the ASCII character SOH
        @c        c (including @) 
        
        For  a  complete  description,  see   "Software   Tools"   pages
        135-154.   Care  should be taken when using the characters % $ [
        ] ! * + @ and  any shell characters in the text pattern.  It  is
        often  necessary  to enclose the  entire substitution pattern in
        quotes. 


                                    -2-


    Ch (1)                     7-Apr-78                           Ch (1)


    FILES
        none

    SEE ALSO
        The UNIX tool GRES
        The tools find and ed
        xch - extended change utility

    DIAGNOSTICS
        An error message is printed if the pattern given is illegal. 

    AUTHORS
        'CH' was originally implemented on BKY by Debbie  Scherrer  from
        Kernighan  and Plauger's "Software Tools".   Major modifications
        were performed by Joe Sventek. 

    BUGS/DEFICIENCIES
        A minus sign(dash[-]) may not start an expression. 


































                                    -3-

#-h- chd              972  asc  22-jul-83 17:05:22  sventek (joseph sventek)


    Chd (1)                    12-Mar-82                         Chd (1)


    NAME
        Chd - change working disk and directory from MCR

    SYNOPSIS
        chd dev:[dir]  OR  chd /dev/dir

    DESCRIPTION
        `chd',  when  installed  as "...CHD", permits the user to change
        both disk device and directory at one  time  from  MCR,  in  the
        same  manner as the `cd' command to the shell.  If the change is
        successful, `chd' will display the new  disk  and  directory  to
        the  user  before  exiting.   If the disk name is not specified,
        then only the directory (UIC) will be changed.  Note that  `chd'
        will  NOT  permit  you to change to a directory (UIC) which does
        not exist. 

    FILES
        

    SEE ALSO
        cd - change working directory

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        






















                                    -1-

#-h- cmp             1215  asc  22-jul-83 17:05:24  sventek (joseph sventek)


    Cmp (1)                    6-Mar-78                          Cmp (1)


    NAME
        Cmp - compare two files

    SYNOPSIS
        cmp file1 [file2] 

    DESCRIPTION
        file1  is  compared  line-by-line  with  file2.  If file2 is not
        specified, standard input is used.  If  any  lines  differ,  cmp
        announces  the  line  number  and  prints  each file's offending
        line. 

    FILES
        none

    SEE ALSO
        comm
        The UNIX commands cmp, diff, and comm 

    DIAGNOSTICS
        If the end of one file is reached before the end of  the  other,
        a  message is printed. 

    AUTHORS
        Acquired  from  "Software  Tools" by Kernighan and Plauger, with
        minor modifications made by Debbie Scherrer. 

    BUGS/DEFICIENCIES
        If  either  file  is  binary,  spurious   results    should   be
        expected. 
        
        Cmp  cannot  handle  offset  lines:  line  n of file1  is simply
        compared to line n of file2. 
        
        Trailing blanks are significant, which  will  cause  some  lines
        to  appear similar to the user which are actually different. 
















                                    -1-

#-h- comm            1405  asc  22-jul-83 17:05:26  sventek (joseph sventek)


    Comm (1)                   11-Jan-79                        Comm (1)


    NAME
        Comm - print lines common to two files

    SYNOPSIS
        comm [-123] file1 [file2]

    DESCRIPTION
        comm  reads  file1  and  file2,  which  should  be  sorted,  and
        produces a three column output: lines only in file1, lines  only
        in  file2,  and lines in both files.  The filename '-' means the
        standard input.   If there is  only  one  file  argument,  file2
        refers to the standard input. 
        
        The  optional  arguments  -1, -2, and -3 specify the printing of
        only the corresponding column.  Thus "comm -3" prints  only  the
        lines  common  to  both files, and "comm -12" prints lines which
        are in either file, but not in both.  The default is -123. 

    FILES
        none

    SEE ALSO
        cmp - compare two files
        the Unix tool "diff"

    DIAGNOSTICS
        A message is printed if an input file cannot be opened. 

    AUTHORS
        Debbie Scherrer

    BUGS/DEFICIENCIES
        The flags used by this tool are the reverse  of  those  used  by
        the  Unix  'comm'.   In  Unix,  the  flags  1, 2, and 3 suppress
        printing of the corresponding column.  Kernighan,  on  page  126
        of 'Software Tools' suggests the version used above. 
















                                    -1-

#-h- cpress           856  asc  22-jul-83 17:05:28  sventek (joseph sventek)


    Cpress (1)                 15-Jan-79                      Cpress (1)


    NAME
        Cpress - compress input files

    SYNOPSIS
        cpress [file] ...

    DESCRIPTION
        cpress  compresses  runs  of  repeated  characters  in the input
        files.  The output file can  eventually  be  expanded  with  the
        tool 'expand'. 
        
        If  no input files are given, or the filename '-' appears, input
        will be from the standard input. 

    FILES
        none

    SEE ALSO
        expand

    DIAGNOSTICS
        A message is printed if an input file cannot be opened;  further
        processing is terminated. 

    AUTHORS
        From  Kernighan & Plauger's 'Software Tools', with modifications
        by Debbie Scherrer. 

    BUGS/DEFICIENCIES























                                    -1-

#-h- crt             1367  asc  22-jul-83 17:05:29  sventek (joseph sventek)


    Crt (1)                    15-Nov-81                         Crt (1)


    NAME
        Crt - copy files to terminal a screen at a time

    SYNOPSIS
        crt [-n] [file] ...

    DESCRIPTION
        crt  is  similar  to  'cat'  except  that it prints only n lines
        (default 22) at a time.  After each set of  lines  are  printed,
        crt  will  wait for instructions from the user.  Hitting a SPACE
        or RETURN will cause the next n lines to appear, hitting  a  'q'
        (quit)  will  cause  crt to skip over to the next input file (if
        any), and hitting an end-of-file character (^Z) will  cause  crt
        to stop immediately. 
        
        If  no  files  are  specified,  or if the filename '-' is given,
        lines will be read from the standard input. 
        
        The flag -n may be given, where n specifies the number of  lines
        desired at a time. 
        
        crt  will  stop  at  the  end of each file (except the last), as
        well as after each n lines. 

    FILES
        none

    SEE ALSO
        cat

    DIAGNOSTICS
        A message is printed if an input file cannot be opened;  further
        processing is terminated. 

    AUTHORS
        Debbie Scherrer; Modified to use RARE i/o by Dave Martin. 

    BUGS/DEFICIENCIES














                                    -1-

#-h- crypt           1259  asc  22-jul-83 17:05:31  sventek (joseph sventek)


    Crypt (1)                  15-Jan-79                       Crypt (1)


    NAME
        Crypt - crypt and decrypt standard input

    SYNOPSIS
        crypt key

    DESCRIPTION
        crypt  encrypts  characters  on  the  standard  input  by  using
        'key'.  The file can eventually be decrypted by running it  back
        through  crypt with the same key.  Double encryption (encrypting
        a file with first one key and then another)  is  allowable,  but
        on  some  systems  the  decryption  must  be  done  in the exact
        reverse order as encryption was done. 
        
        The encryption algorithm used by 'crypt' is  not  a  complicated
        one,  so users requiring a great degree of protection should not
        rely on this tool. 

    FILES
        none

    SEE ALSO

    DIAGNOSTICS

    AUTHORS
        Original from  Kernighan  &  Plauger's  'Software  Tools',  with
        modifications   by   Debbie   Scherrer.   (NOTE:   the  original
        encryption algorithm has been altered slightly.)

    BUGS/DEFICIENCIES
        On IAS and VMS systems, double encryption must be  decrypted  in
        the exact reverse order as the encryption. 



















                                    -1-

#-h- date             712  asc  22-jul-83 17:05:33  sventek (joseph sventek)


    Date (1)                   13-Jun-79                        Date (1)


    NAME
        Date - print the date

    SYNOPSIS
        date [-n]

    DESCRIPTION
        The  current  day  of  the  week,  date, time, and time zone are
        printed in the format:
        
                            day dd-mmm-yy hh:mm:ss zone

        if the -n switch is used the date is  output  in  the  following
        format:
        
                            day mm/dd/yy hh:mm:ss zone

    FILES
        none

    SEE ALSO
        The Unix command 'date'

    DIAGNOSTICS
        none

    AUTHORS
        Debbie Scherrer

    BUGS/DEFICIENCIES






















                                    -1-

#-h- dc              5129  asc  22-jul-83 17:05:35  sventek (joseph sventek)


    Dc (1)                     20-Jul-80                          Dc (1)


    NAME
        Dc - desk calculator

    SYNOPSIS
        dc [file] ...

    DESCRIPTION
        dc  evaluates  integer  expressions  from  the source files, one
        expression per input line.  If no input files are given, or  the
        filename '-' is specified, dc reads from the standard input. 
        
        Ordinarily   dc   operates   on   decimal   integer   arithmetic
        expressions, but the user may specify an input base  and  output
        base other than decimal. 
        
        Expressions  may be simple arithmetic expressions or replacement
        expressions.  The values of simple expressions are   written  on
        standard   output   when   they   are   evaluated.   Replacement
        expressions are used to  hold  temporary  values,  and  are  not
        automatically printed. 
        
        A  simple  expression  is  a  normal arithmetic expression using
        numbers, variables, parentheses, and  the  following  operators,
        listed in order of precedence:
        
             +  -          unary plus and negation operators.  These may  
                          only appear at the start of a simple
                          expression or after a "("
             
             **            exponentiation
             
             *   /   %     multiply, divide, modulo (remainder)
             
             +   -         add, subtract
             
             == !=         relations - equals, not equal to,
             >  >=         greater than, greater than or equal to,
             <  <=         less than, less than or equal to
                       (!=, ^=, ~= all treated as "not equal")
             
             !             unary logical not (also ~ and ^)
             
             |   &         logical or, and
             
        The  logical operators ! | & and the relational operators result
        in the values 1 for true and 0 for false. 
        
        A replacement expression is:

                            name = simple expression


                                    -1-


    Dc (1)                     20-Jul-80                          Dc (1)


        where 'name' is a character string of  (virtually)  any  length,
        starting  with  a  letter  and  consisting  of  only letters and
        digits.  (The characters a-f should not  be  considered  letters
        when    operating    in   hexadecimal   mode.)   Variables   are
        automatically declared when they first appear to   the  left  of
        an  "=" sign, and they should not be used in a simple expression
        until they have been declared. 
        
        Radix Control
             Radix control is available in 2 ways:
             1) There are  default  radix  values  for  both  input  and
             output  which  may  be  changed  by  setting the predefined
             variables 'ibase' (input base) and 'obase'  (output  base).
             (Radix   10   is  always  used  to  evaluate  and/or  print
             radix-defining expressions.) For example,

                       ibase = 2
                       obase = 16

             would  accept  input  in  binary  and  print   results   in
             hexadecimal. 
             
             2)   The  radix  of  individual  numbers  may be explicitly
             given by following the number with an underscore  character
             and then the desired radix.  For example,

                                       100_16

             would specify the hex number 100 (256 in decimal). 

    EXAMPLES
                       10 + (-64 / 2**4)
        would print the answer "6"

                       temp = 101_2
                       temp == 5
        would print the answer "1" (true)
        
                       ibase = 16
                       obase = 2
                       1a + f
        would print the answer "101001"

                       ibase = 16
                       numa = 100_10
                       numb = 100
                       numa + numb
        would print the answer "356"




                                    -2-


    Dc (1)                     20-Jul-80                          Dc (1)


    FILES
        none 

    SEE ALSO
        macro, the UNIX M4 macro package
        The UNIX tools dc and bc

    DIAGNOSTICS
        arith evaluation stack overflow
           arithmetic  expressions  have  been  nested  too deeply.  The
           size of the stack is set by the MAXSTACK  definition  in  the
           source code. 
           
        number error
           an  input  number  has  a  number/character  bigger  than the
           current radix

        expression error
           invalid arithmetic expression

    AUTHORS
        Philip H. Scherrer (Stanford U.)

    BUGS/DEFICIENCIES
        dc only works with integers
        
        The maximum value allowed depends on the  host  machine  and  is
        the largest Fortran integer
























                                    -3-

#-h- delta           3511  asc  22-jul-83 17:05:38  sventek (joseph sventek)


    Delta (1)                  14-Sep-81                       Delta (1)


    NAME
        Delta - make an TCS delta

    SYNOPSIS
        delta revision history [newhistory]

    DESCRIPTION
        Delta  integrates  the current "revision" of a file into its TCS
        "history"  file  or  into  a  "newhistory"  file.    Differences
        between  this  version  and  the preceeding version are computed
        and the TCS file will be able to reproduce  either  version  (or
        earlier versions) by means of the GET command. 
        
        The  user  is  requested  to  provide  a  reason-for-change when
        prompted by  "History?".   Multiple  lines  may  be  entered  to
        describe changes and terminated by '.' on a line by itself. 

    FILES
        A  scratch  file  is created during processing, then copied onto
        the "history".  If a "newhistory" is given, the result  will  be
        moved there instead. 

    SEE ALSO
        admin, get

    DIAGNOSTICS
        usage:  delta revision history [newhistory]
                  Correct   calling   format  is  provided  when  called
                  without arguments. 
                  
        TCS Version Number corrupted. 
        Unexpected EOF on history-info scan. 
        Unexpected EOF on history-data scan. 
                  The TCS code seems to be present but  garbled.   Refer
                  to a guru. 
                  
        Sudden death in input
                  An  end-of-file  was  detected  while  requesting  the
                  "reason for change". 
                  
        Revision file is empty
                  Perhaps an incorrect filename was given. 
                  
        History file is empty
                  The first formal version is entered by  means  of  the
                  ADMIN command. 
                  
        Files are too big to handle
                  The  DIFF  algorithm  table-size  has  been  exceeded.
                  Current  version  supports  files   of   approximately


                                    -1-


    Delta (1)                  14-Sep-81                       Delta (1)


                  15000-lines. 
                  
        Cannot locate TCS history file. 
                  Unable  to  read  filename  specified  as  the history
                  file. 
                  
        Temp file error: (filename)
                  The   tempoary   file   created   during    processing
                  disappeared unexpectedly. 
                  

    AUTHORS
        An  Algorithm  for  Differential File Comparison by J.W.Hunt and
        M.D.McIlroy  (BTL  Computing  Science  Technical  Report   #41).
        Original  code  by  Wil  Baden;  converted  from MORTRAN by Dave
        Murray.  Modifications and conversion to BTL-SCCS style by  Neil
        Groundwater   at  ADI.   The  Source  Code  Control  System  was
        introduced by Marc J.  Rochkind  in  the  December,  1975,  IEEE
        Transactions on Software Engineering. 

    BUGS/DEFICIENCIES
        File  permissions  are  NOT  manipluated  to restrict users from
        disturbing the maintained files. 
        
        Version numbering ranges from 1.1 to  1.N  where  N  is  a  very
        large  number.  Provision to increment the "primary" number upon
        demand is scheduled. 
        
        Branching capabilities are scheduled to be implemented. 























                                    -2-

#-h- detab            989  asc  22-jul-83 17:05:40  sventek (joseph sventek)


    Detab (1)                  12-Aug-81                       Detab (1)


    NAME
        Detab - convert tabs to spaces

    SYNOPSIS
        detab [<t1>...] [+<n>] [file] ...

    DESCRIPTION
        detab  converts tab characters (control-i) to equivalent strings
        of blanks.  Tab stops are indicated by <t1>...  (default 8,  16,
        ...),  while  +<n>  indicates tab stops every <n> columns.  Thus
        the command
        
           detab 5 21 +5
        
        supplies blanks for tabs terminating at column positions 5,  21,
        26,  etc.   If  no  files  are  specified, the standard input is
        read.  An  isolated  minus  sign  also  indicates  the  standard
        input. 

    SEE ALSO
        entab
        lpr

    AUTHORS
        Original  from  Kernighan  &  Plauger's  'Software  Tools', with
        modifications by Dennis Hall and Debbie Scherrer. 

    BUGS/DEFICIENCIES
























                                    -1-

#-h- diff            4542  asc  22-jul-83 17:05:42  sventek (joseph sventek)


    Diff (1)                   20-Mar-80                        Diff (1)


    NAME
        Diff - isolate differences between files

    SYNOPSIS
        diff [-{c|d|r|s|v}] old_file [new_file]

    DESCRIPTION
        'Diff'  compares  the  contents  of two files and reports on the
        differences between them.  The default behavior is  to  describe
        the   insert,   delete,  and  change  operations  that  must  be
        performed on `old_file' to convert its contents  into  those  of
        `new_file'. 

        The  second  file  name  argument  is optional.  If omitted, the
        standard input is read for the text of the `new_file'. 

        The options currently available are:

             -c   Perform   a   simple   line-by-line   comparison.
                  'Diff'  will  compare  successive  lines  of  the
                  input files; if any corresponding  lines  differ,
                  or  if one file is shorter than the other, 'diff'
                  prints the message  "different"  and  exits.   If
                  the  files  are  the  same,  'diff'  produces  no
                  output.  When the  "-v"  option  (see  below)  is
                  specified,  'diff'  prints  the lines that differ
                  along with their line number in the  input  file,
                  and  notifies  the  user  if  one file is shorter
                  than the other. 

             -d   List the "differences" between the two files,  by
                  highlighting   the   insertions,  deletions,  and
                  changes  that  will   convert   `old_file'   into
                  `new_file'.   This is the default option.  If the
                  "verbose" option "-v" (see below)  is  specified,
                  unchanged text will also be listed. 

             -r   Insert   text  formatter  requests  to  mark  the
                  `new_file'  with  revision  bars   and   deletion
                  asterisks.   This  option  is particularly useful
                  for  maintenance   of   large   documents,   like
                  Software  Tools  reference manuals.  (At present,
                  only  GT's  version  of  'format'   can   produce
                  revision bars.)

             -s   Output  a  "script"  of  commands  for  the  text
                  editor 'ed' that  will  convert  `old_file'  into
                  `new_file'.   This is handy for preparing updates
                  to large programs or data files, since  generally
                  the  volume  of  changes  required  will  be much


                                    -1-


    Diff (1)                   20-Mar-80                        Diff (1)


                  smaller than the new text in its entirety. 

             -v   Make output "verbose."  This  option  applies  to
                  the  "-c"  and  "-d" options discussed above.  If
                  not selected, 'diff' produces  "concise"  output;
                  if selected, 'diff' produces more verbiage. 

        'Diff'  is  based  on the algorithm found in Heckel, P., "A
        Technique for Isolating Differences Between  Files",  _C_o_m_m_.
        _A_C_M 21, 4 (April 1978), 264-268. 

    EXAMPLES
        To print the differences between two files on your terminal:

   diff -cv file maybe_the_same_file
        does a simple line-by-line comparison on the two files, 
        printing lines which differ.
        (Expects no missing or extra lines.)
        Same as 'cmp file1 file2'.

   diff -s old_version new_version | ed - old_version
        make an ed script which changes 'old_version' into 'new_version'

   diff -r old_manual.fmt new_manual.fmt | format
        to mark changes in a document.
        Useful only if your version of 'format' has this capability.

   diff -s old new >>update_old_to_new
        to keep a list of changes made to an original source file


DIAGNOSTICS
   "<file>:   can't open" if either `new_file' or `old_file' is not
   readable. 

   "Usage: diff . . ." for illegal options. 

AUTHORS
   Allen Akin and friends, Georgia Institute of Technology

BUGS/DEFICIENCIES
   The algorithm used has one quirk: a line or  a  block  of  lines
   which  is  not  unique  within  a  file  will  be  labeled as an
   insertion (deletion) if its immediately adjacent neighbors  both
   above and below are labeled as insertions (deletions). 

   Fails on very large files (> 10000 lines on VMS). 





                                    -2-

#-h- e               1846  asc  22-jul-83 17:05:44  sventek (joseph sventek)


    E (1)                      12-Aug-81                           E (1)


    NAME
        E - extended version of "ed" with command editing & history

    SYNOPSIS
        e [-] [-pprompt] [-n] [-v] [file]

    DESCRIPTION
        e  is an extended version of ed which uses virtual memory rather
        than a scratch  file  for  its  text  storage.   This  makes  it
        considerably  faster  than  ed.   In addition, command editing &
        history are  supported;  see  the  writeup  on  "esh"  for  more
        information. 

        Other  commands  and features which may not have found their way
        into ed:

          1. There is a terse help command, invoked via `h'. 

          2. One can cause the current contents  of  the  buffer  to  be
             roffed  by  issuing  the  "typeset"  command via `t'.  This
             causes  format  to  be  spawned,  formatting   the   buffer
             contents  to  the  terminal.   The  buffer contents are not
             affected.   If  more  sophisticated  use   of   format   is
             necessary,  or  you  deires  to  spawn something other than
             format, see the ed writeup for the `^' command. 

          3. A command is available to  see  how  much  of  the  virtual
             memory  array  space has been used via `%'.  If you exhaust
             the array space with many changes, simply writing the  file
             followed   by   the   enter   command  will  cause  garbage
             collection to occur. 

        For information on the other commands to e, consult  the  manual
        entry for ed. 

    FILES

    AUTHORS
        The  extra  features  of  e  above  those  of ed are due to Dave
        Martin. 

    SEE ALSO
        ed - text editor

    BUGS/DEFICIENCIES







                                    -1-

#-h- echo             583  asc  22-jul-83 17:05:46  sventek (joseph sventek)


    Echo (1)                   7-Jul-78                         Echo (1)


    NAME
        Echo - echo command line arguments 

    SYNOPSIS
        echo [arg] ... 

    DESCRIPTION
        Echo  writes  its  arguments  in order as a line on the standard
        output   file.   It  is  useful  for  producing   messages   and
        diagnostics in command  files. 

    FILES
        none 

    SEE ALSO
        The Unix command "echo"

    DIAGNOSTICS
        none 

    AUTHORS
        Debbie Scherrer 






























                                    -1-

#-h- ed             23775  asc  22-jul-83 17:05:50  sventek (joseph sventek)


    Ed (1)                     21-Apr-78                          Ed (1)


    NAME
        Ed - line-oriented text editor

    SYNOPSIS
        ed [-] [-pstring] [-n] [-v] [file] 

    DESCRIPTION
        Ed  is a text editor.  If the 'file' argument is given, the file
        is read into ed's  buffer so that it  can  be  edited   and  its
        name  is  remembered  for possible future use.  Ed operates on a
        copy of any file it is editing; changes made  in the  copy  have
        no effect on the file until a w (write)  command is given. 
        
        The  optional  '-' suppresses the printing of line counts by the
        e (edit),  r (read), and w (write) commands. 
        
        The -p flag may be used to  specify  ed's  prompt  string.   The
        default  is ": ".  If prompting is not desired, a bare -p in the
        command line will turn it off. 
        
        The -n  flag  indicates  that  you  want  to  see  line  numbers
        prepended to each line of the buffer. 
        
        The  -v  flag  indicates  that  each  command is to be echoed on
        error output as it is executed. 
        
        Ed accepts commands from script files as  well  as  a  terminal.
        To  do  this,  invoke ed and substitute the script file name for
        the standard input, as follows - 
        
                        ed [file] <script 
        
        Commands to ed have a simple and regular structure: zero ,  one,
        or  two   line addresses followed by a single character command,
        possibly  followed by parameters to the command.  The  structure
        is: 
        
               [line],[line]command <parameters> 
        
        The  '[line]'  specifies a line number or address in the buffer.
        Every command which requires addresses  has  default  addresses,
        so the addresses can often be omitted. 
        
        Line addresses may be formed from the following components: 
        
        
           17           an integer number 
           .            the current line 
           $            the last line in the buffer 
           .+n          "n" lines past the current line 


                                    -1-


    Ed (1)                     21-Apr-78                          Ed (1)


           .-n          "n" lines before the current line 
           /<pattern>/  a forward context search 
           \<pattern>\  a backward context search 
        
        Line  numbers  may  be  separated  by  commas  or semicolons;  a
        semicolon sets the current line to the previous address   before
        the  next  address is interpreted.  This feature can  be used to
        determine the starting line for forward  and   backward  context
        searches ("/" and "\"). 
        
        
                              REGULAR EXPRESSIONS 
        
        Ed  includes  some  additional  capabilities such as the ability
        to  search for patterns that match classes of  characters,  that
        match   patterns only at particular positions on a line, or that
        match   text  of  indefinite  length.   These   pattern-seaching
        capabilities   include  a  class  of  patterns  called   regular
        expressions.  Regular  expressions  are  used  in  addresses  to
        specify  lines  and in the  s  command to specify a portion of a
        line which is to be replaced.  To be able to express these  more
        general    patterns,    some    special     characters   (called
        metacharacters) are used.  The regular  expressions  allowed  by
        ed are constructed as follows: 
        
        1.   An ordinary character (not one of those discussed below) is
        a  regular expression and matches that character. 
        
        2.  A percent "%" at  the  beginning  of  a  regular  expression
        matches  the empty string at the beginning of a line. 
        
        3.   A  dollar  sign  "$"  at  the  end  of a regular expression
        matches  the null character at the end of a line. 
        
        4.  A question mark "?" matches any character except  a  newline
        character. 
        
        5.   A  regular  expression  followed by an asterisk "*" matches
        any  number of adjacent  occurrences  (including  zero)  of  the
        regular  expression it follows. 
        
        6.   A  regular expression followed by a plus "+" matches one or
        more   adjacent  occurrences  of  the  regular   expression   it
        follows (anchored closure). 
        
        7.   A  string  of  characters enclosed in square brackets "[ ]"
        matches  any  character  in  the  string  but  no  others.   If,
        however,  the  first   character of the string is an exclamation
        point  "!"  the  regular   expression  matches   any   character
        except  the characters in the string (and the newline). 


                                    -2-


    Ed (1)                     21-Apr-78                          Ed (1)


        
        8.   A  string of regular expressions enclosed in braces "{}" is
        known as a tagged pattern, and can  be  referenced  positionally
        as $1...$9 in the replacement side of a substitute command. 
        
        9.   The  concatenation  of  regular  expressions  is  a regular
        expression  which  matches  the  concatenation  of  the  strings
        matched by the components  of the regular expression. 
        
        10.  The null regular expression standing alone is equivalent to
        the  last regular expression encountered. 
        
        If  it  is  desired  to  use  one  of  the  regular   expression
        metacharacters   as an ordinary character, that character may be
        escaped  by preceding it with an atsign "@". 





                                   COMMANDS 
        
        Following is a list  of  ed  commands.   Default  addresses  are
        shown  in parentheses: 
        
        (.)a 
        <text> 
        . 
             The  append  command  reads  the  given text and appends it
             after the addressed  line.  '.' is left on  the  last  line
             input,  if  there  were  any,  otherwise  at  the addressed
             line. 
        
        (.)b[+/./-][<screensize>]
             The browse command is a shorthand command to  print  out  a
             screenful  of data.  It has three basic forms, any of which
             may  have  a  number("screensize")  appended  to  it.   The
             default  screensize  is  23.   The  b-  form will print the
             screen of text  preceding  (and  including)  the  addressed
             line;  b. prints the screen centered on the addressed line;
             and b or b+ prints the current line and  the  screen  after
             it.    "."  is  left  at  the  last  line  printed.   If  a
             screensize is specified, it becomes the default  screensize
             for  the  rest  of  the  editing  session  or until changed
             again. 
        
        (.,.)c 
        <text> 
        . 
             The  change  command  deletes  the  addressed  lines,  then


                                    -3-


    Ed (1)                     21-Apr-78                          Ed (1)


             accepts  input  text   which  replaces these lines.  '.' is
             left at the last line input, if  there were any,  otherwise
             at the first line not deleted. 
        
        (.,.)d 
             The  delete  command  deletes  the addressed lines from the
             buffer.  The line originally AFTER the  last  line  deleted
             becomes  the  current  line;  however, if the lines deleted
             were originally at the end, the new last line  becomes  the
             current line. 
        
        e filename 
             The  edit  command causes the entire contents of the buffer
             to be deleted  and then the named file to be read in.   '.'
             is  set  to  the  last  line  of the buffer.  The number of
             lines  read  is  typed.   'Filename'  is   remembered   for
             possible  use  as  a  default file name in  a subsequent  r
             or  w  command.  If changes have been made to  the  current
             file  since  the  last  write command, you will be asked to
             repeat the edit command. 
             
        f filename 
             The filename command prints the currently  remembered  file
             name.   If  'filename'  is  given, the currently remembered
             file name is  changed to 'filename'. 
        
        (1,$)g/regular expression/command 
             In the global command, the given command  is  executed  for
             every   line  which  matches  the given regular expression.
             Multiple commands may be executed  by  placing  each  on  a
             preceding  line and terminated each command except the last
             with an atsign '@'. 
             
        h
             The help command causes a synopsis of the  commands  to  be
             displayed  on  standard  output.   If no help is available,
             that fact is noted on error output. 

        (.)i 
        <text> 
        . 
             The insert  command  inserts  the  given  text  BEFORE  the
             addressed  line.  '.' is left at the last line input, or if
             there were none, at  the   addressed  line.   This  command
             differs  from  the   a   command  only  in the placement of
             text. 
        
        (.,.+1)j
             The join command joins the specified lines into  one  line.
             '.'  is  left  at the new line created by the join.  If the


                                    -4-


    Ed (1)                     21-Apr-78                          Ed (1)


             join  would  result  in  a   line   longer   than   MAXLINE
             characters,  an  error  is reported and no changes are made
             to the file.  A trailing p or l may be given  on  the  join
             command to cause the merged line to be printed or listed. 

        (.,.)k<address>
             The  kopy  command copies the range of lines after the line
             specified by <address>.   The  last  of  the  copied  lines
             becomes the current line. 
        
        (.,.)l 
             The  list command prints the addressed lines, expanding all
             ASCII characters with values between 1 and 31 (^A - ^_)  as
             the  appropriate  two character digraph, ^(character).  The
             end of line is also indicated by a '$'.   '.'  is  left  at
             the   last  line  listed.   The  l command may be placed on
             the same line after any other command  to cause listing  of
             the last line affected by the command. 
             
        (.,.)m<address> 
             The  move command repositions the addressed lines after the
             line  specified by   <address>.   The  last  of  the  moved
             lines becomes the current line. 

        n[+/-/=][value]
             This  command manipulates the number register maintained by
             ed.  A bare `n' causes the current value  of  the  register
             to  be  displayed.   The  `='  function  causes  the number
             register to be set to the value specified, or to 0 if  left
             null.   The  `+' and `-' functions cause the register to be
             incremented/decremented by `value', or by  1  if  value  is
             null. 
        
        (.,.)p 
             The  print command prints the addressed lines.  '.' is left
             at the  last line printed.  The  p  command may  be  placed
             on  the  same  line  after  any  other  command   to  cause
             printing of the last line affected by the command. 
        
        q 
             The quit command causes ed to exit.  No automatic write  of
             the  file  is  done.   If  changes  have  been  made to the
             current file since the last  write  command,  you  will  be
             asked to repeat the quit command. 
        
        (.)r filename 
             The  read  command  reads  in  the  given  file  after  the
             addressed line.  If no file name is given,  the  remembered
             file  name  is  used  (see   e   and   f   commands).   The
             remembered file name is not changed.  Address '0' is  legal


                                    -5-


    Ed (1)                     21-Apr-78                          Ed (1)


             for  this command and causes the file to be  read in at the
             beginning of the buffer.  If the read  is  successful,  the
             number  of  lines  read  is typed.  '.' is left at the last
             line read in from the file. 
        
        (.,.)s/regular expression/replacement/       or, 
        (.,.)s/regular expression/replacement/g 
             The substitute command searches each addressed line for  an
             occurrence   of  the specified regular expression.  On each
             line in which a match is found,  the  first  occurrence  of
             the   expression  is replaced by the replacement specified.
             If the global replacement indicator  g  appears  after  the
             command,  all  occurrences  of  the regular  expression are
             replaced.  Any character other than space  or  newline  may
             be  used  instead  of  the slash '/' to delimit the regular
             expression  and  replacement.   A  question  mark  '?'   is
             printed   if  the  substitution  fails  on  all   addressed
             lines.  '.' is left at the last line substituted. 
             
             An ampersand '&' appearing in the replacement  is  replaced
             by   the  string  matching  the  regular  expression.  (The
             special meaning of '&' in this context  may  be  suppressed
             by  preceding it by '@'.) 
             
             The  strings  '$n',  '$n+[d]' and '$n-[d]' appearing in the
             replacement string cause the current value  of  the  number
             register  to  be placed in the line.  The optional trailing
             increment/decrement syntax cause the number register  value
             to  incremented/decremented  by  `d'  AFTER  the  value  is
             placed in the string.  If `d' is omitted, a value of  1  is
             used. 
             
             Lines  may  be  split or merged by using the symbol '@n' to
             stand  for the newline character at the end of a line. 
             
             
        t [format arguments]
             This command allows one to  `typeset'  the  current  buffer
             without  leaving  the  editor.  The current contents of the
             buffer are written to  a  scratch  file,  and  `format'  is
             invoked  with a command line consisting of the scratch file
             name plus any trailing arguments in the `t'  command  line.
             For example:
             
             t +5 -7
             
             causes  format  to  be  invoked  on  the buffer and pages 5
             through 7 to be output.  The value of '.'  is  not  changed
             and the buffer is left intact. 
             


                                    -6-


    Ed (1)                     21-Apr-78                          Ed (1)


             
        (.)u
             This  causes  the  last  line  or range of lines which were
             deleted, either  via  a  delete  command  or  a  substitute
             command,  to  be  undeleted after the specified line.  This
             is NOT an undo command.  The last  line  or  set  of  lines
             deleted  are  kept  in a special place before recycling the
             line pointers, and may be recalled. 
        
        
        (1,$)w [>[>]]filename 
             The write command  writes  the  addressed  lines  onto  the
             given  file.   If  the  file does not exist, it is created.
             The remembered file name is   not   changed.   If  no  file
             name  is  given, the remembered file name is used (see  the
             e  and  f  commands).   '.'  is  left  unchanged.   If  the
             command  is  successful,  the  number  of  lines written is
             typed.  The form `>file' is  equivalent  to  `file',  while
             `>>file' causes the lines to be appended to `file'. 
        
        (1,$)x/regular expression/command 
             The  except  command  is  the  same  as  the global command
             except  that  the   command  is  executed  for  every  line
             except  those matching the regular expression. 
             
        (.)= 
             The  line  number  of  the addressed line is typed.  '.' is
             left unchanged. 
        
        # comment
             The remainder of the line after the "#" is  a  comment  and
             ignored  by  the  editor.   This  allows  ed  scripts to be
             commented for future enlightenment. 
        
        ^shell command
             The remainder of the line after the  "^"  is  sent  to  the
             shell  as  a command.  If there is nothing else on the line
             but a bare "^", the  shell  will  be  spawned,  allowing  a
             number  of commands to be performed; when that shell quits,
             the terminal is  returned  to  the  editor.   "."  is  left
             unchanged. 
        
        (.+1)<carriage return> 
             An  address alone on a line causes the addressed line to be
             printed.  A blank line alone is  equivalent  to  '.+1'  and
             thus  is  useful   for  stepping through text.  A minus '-'
             followed by a carriage return is equivalent to '.-1'. 

        <file[ -v]
             The current input is stacked,  `file'  is  opened  at  READ


                                    -7-


    Ed (1)                     21-Apr-78                          Ed (1)


             access,  and  commands are read from `file' until an EOF is
             encountered.  If the optional -v flag  is  specified,  each
             command  is  echoed on error output as it is executed.  The
             normal search path is used to locate `file', and  a  suffix
             of  ".ed"  is  assumed.  This facility is especially useful
             for canned procedures to be executed. 

        (1,$)|shell command
             The remainder of the line after the "|"  is  spawned,  with
             the  lines  specified  fed  to  the command as its standard
             input.   When  the  command  completes,  the  terminal   is
             returned to the editor.  "." is left unchanged. 

        %
             The   percent  of  linepointers  used  is  displayed.   For
             in-memory versions  of  the  editor,  the  percent  of  the
             in-memory character storage is also displayed. 


                         SUMMARY OF SPECIAL CHARACTERS 
        
        The following are special characters used by the editor: 
        
 Character       Usage 
 ---------       ----- 
        
    ?            Matches any character (except newline) 
        
    %            Indicates beginning of line 
        
    $            Indicates end of line or end of file 
        
    [...]        Character class (any one of these characters) 
        
    [!...]       Negated character class (any character except these 
                 characters) 
        
    {expression} tagged pattern
        
    *            Closure (zero or more occurrences of previous 
                 pattern)
        
    +            Anchored closure (one or more occurrences)
        
    @            Escaped character (e.g. @%, @[, @*) 
        
    &            Ditto, i.e. whatever was matched 
        
    c1-c2        Range of characters between c1 and c2 
        


                                    -8-


    Ed (1)                     21-Apr-78                          Ed (1)


    @f           Formfeed character
        
    @l           Linefeed character
        
    @n           Specifies the newline character at the end of a line 
        
    @r           Carriage return character
        
    @t           Specifies a tab character 
        

    FILES
        A  temporary  file  is  used to hold the text being edited.  Two
        other temporary files, known as  $1  and  $2,  may  be  used  as
        parameters  for  the  r, w, and @ commands.  For example, if the
        current date and time  are  desired  at  the  top  of  the  text
        buffer, perform the following:
        
             * ^date >$1
             * 0r $1
             
        As  another  example,  if  you  wish to make a copy of lines 1,5
        after the last line in the buffer, do the following:
        
             * 1,5w $1
             * $r $1
             

    SEE ALSO
        The Unix command "ed" in the Unix manual 
        The software tools tutorial "Edit"
        "Edit is for Beginners" by David A. Mosher (available from 
             UC Berkeley Computer Science Library) 
        "Edit:  A Tutorial" (also available from the 
             UC Berkeley Computer Science Library) 
        "A Tutorial Introduction  to  the  ED  Text  Editor"  by  B.  W.
        Kernighan 
             (UC Berkeley Computer Science Library) 
        Kernighan and Plauger's "Software Tools", pages 163-217 

    DESCRIPTION
        The  error  message  "?"  is  printed  whenever  an edit command
        fails or is not understood. 

    AUTHORS
        Original code by Kernighan and Plauger  with  modifications   by
        Debbie Scherrer, Dennis Hall, Joe Sventek and Dave Martin. 

    BUGS/DEFICIENCIES
        At   the  present  time  the  editor  is  still  in  a  somewhat


                                    -9-


    Ed (1)                     21-Apr-78                          Ed (1)


        experimental  There  is  a  compiled-in  limit  to  the  maximum
        number  of  lines  which  a  file being edited may contain.  The
        line limit  applies  to  all  lines  read  in  and  subsequently
        changed.   This  problem  can be partly alleviated by writing (w
        command) and  re-editing (e command) the file  after  a  lot  of
        lines have  been changed. 
        
        There  are  several discrepancies between this editor and Unix's
        ed.  These include: 
        
             1.  Unix uses 'v' instead of 'x' for the except command. 
             
             2.  Unix uses '^' instead of '%' for the  beginning-of-line
             character. 
             
             3.   Unix  uses  '.'  instead of '?' to indicate a match of
             any character. 
             
             4.  Unix uses  '^' instead of '!' to indicate exclusion  of
             a  character class. 
             
             5.    Unix   uses   '\'  instead  of  '@'  for  the  escape
             character. 
             
             6.  Unix uses '?' instead of  '\'  to  delimit  a  backward
             search pattern. 
             
             7.   The  Unix  'r' command uses the last line of the file,
             instead  of the current line, as the default address. 
             
             8.  The  Unix  editor  prints  the  number  of  characters,
             rather  than   lines  read  or  written  when  dealing with
             files. 
             
             

















                                    -10-

#-h- entab           1058  asc  22-jul-83 17:06:09  sventek (joseph sventek)


    Entab (1)                  12-Aug-81                       Entab (1)


    NAME
        Entab - convert spaces to tabs and spaces

    SYNOPSIS
        entab [<t1>...] [+<n>] [file] ...

    DESCRIPTION
        Entab   replaces   strings   of   blanks  with  equivalent  tabs
        (control-i) and blanks.  It  can  be  used  to  read  files  and
        produce  typewriter-like  text,  reducing  file size.  Tab stops
        are indicated by <t1> ...  (default  8,  16,  ...),  while  +<n>
        indicates tab stops every <n> columns.  Thus the command
        
           entab 5 21 +5
        
        would  insert  tab stops at columns 5, 21, 26, etc.  If no files
        are specified, the standard input is read.   An  isolated  minus
        sign also indicates the standard input. 

    SEE ALSO
        detab
        lpr

    AUTHORS
        Original  from  Kernighan  &  Plauger's  'Software  Tools', with
        modifications by Dennis Hall. 

    BUGS/DEFICIENCIES
























                                    -1-

#-h- expand           768  asc  22-jul-83 17:06:11  sventek (joseph sventek)


    Expand (1)                 15-Jan-79                      Expand (1)


    NAME
        Expand - uncompress input files

    SYNOPSIS
        expand [file] ...

    DESCRIPTION
        Expand  expands  files previously compressed by 'cpress'.  If no
        input files are given, or if the  filename  '-'  appears,  input
        will be read from the standard input. 

    FILES

    SEE ALSO
        cpress

    DIAGNOSTICS
        A  message is printed if an input file cannot be opened; further
        processing is terminated. 

    AUTHORS
        Original from  Kernighan  &  Plauger's  'Software  Tools',  with
        minor modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES



























                                    -1-

#-h- fb              4111  asc  22-jul-83 17:06:14  sventek (joseph sventek)


    Fb (1)                     28-May-80                          Fb (1)


    NAME
        Fb - search blocks of lines for text patterns

    SYNOPSIS
        fb [-acix] [-ln] [-sexpr [-sexpr]] expr [expr] ...

    DESCRIPTION
        "Fb"  (find  block) searches blocks or groups of lines in a file
        for text patterns.  It is similar to 'find'  except  that  if  a
        pattern  is  found,  the  entire  block  of  lines  is copied to
        standard output, rather  than  simply  the  line  in  which  the
        pattern  occurred.   Thus  it  is  useful  for searching mailing
        lists, bibliographies, and similar  files  where  several  lines
        are grouped together to form cohesive units. 
        
        The  search  patterns may be any regular expression as described
        in the 'ed' and 'find' writeups. 
        
        "Fb" assumes the blocks of lines are separated by an empty  line
        or  a  line containing only blanks.  When "fb" is called without
        any options, standard input is read and each line is checked  to
        see  if  it  matches  any  of  the  regular expressions given as
        arguments.  If any  matches  are  found,  the  entire  block  is
        printed on standard output. 
        
        Other options include:
        
          -a      Only  print  the  block if ALL the arguments are found
                  within it
                  
          -x      Only print the block if  none  of  the  arguments  are
                  found within it
                  
          -c      Only  print  a  COUNT  of  the  number of blocks found
                  which match/don't match the expressions
                  
          -i      Perform the pattern matches ignoring case. 
                  
          -sexpr  Use 'expr' as the block separator (instead of a  blank
                  or  empty  line).   "Expr" can be a regular expression
                  just as the search arguments can. 
                  
                  If two "-sexpr" arguments are given, the first one  is
                  considered  to  be  the  pattern  which starts a block
                  (e.g. -ssubroutine) and the second is  considered  the
                  pattern  which  ends a block  (e.g. -send).  If the -i
                  flag has been seen  before  the  -s  flags,  then  the
                  start and end expressions will be case-independent. 
                  
          -ln     prints  only  the first 'n' lines of the block; if the


                                    -1-


    Fb (1)                     28-May-80                          Fb (1)


                  block contains less  than  'n'  lines,  the  block  is
                  padded out with blank lines. 
        
        Care  should  be  taken  when using the characters % $ [ ] ! * @
        and  any shell characters in  the  text  pattern.  It  is  often
        necessary   to  enclose  the   entire  substitution  pattern  in
        quotes. 

    FILES
        A scratch file ("fbt") is  used  if  the  internal  line  buffer
        becomes full. 

    SEE ALSO
        find
        ed
        
        For   a   complete   description  of  regular  expressions,  see
        "Software Tools" pages 135-154. 

    DIAGNOSTICS
        Error messages are given if:
           a)  One of the patterns given is illegal
           b)  Too many separators are given (2 are allowed)
           c)  The maximum number of  expressions  is  exceeded  (9  are
           allowed)
           d)   There  are  problems  opening the scratch file (when the
           block line buffer fills up). 
           
        If the following  messages  show  up,  something  is  dreadfully
        wrong:
           a)  "Illegal default separator"
           b)  "Block buffer overflow"

    AUTHORS
        Debbie Scherrer (Lawrence Berkeley Laboratory)

    BUGS/DEFICIENCIES
        An expression may not start with a minus sign (-). 
        
        Regular expressions cannot span line boundaries. 












                                    -2-

#-h- fc              2246  asc  22-jul-83 17:06:18  sventek (joseph sventek)


    Fc (1)                     13-Dec-82                          Fc (1)


    NAME
        Fc - fortran compiler

    SYNOPSIS
        fc [-cdmov] file ...

    DESCRIPTION
        fc  is  the  fortran  compiler  callable from the software tools
        shell.  It accepts the following types of arguments:
        
        1. Files whose names end in  '.f'  are  assumed  to  be  fortran
           source  programs.     They  are compiled, and the object file
           is left on a file whose name  is  that  of  the  source  with
           '.obj' substituted for '.f'. 
           
        2. Other  arguments (except for the flags listed in 3 below) are
           assumed  to  be  either  loader  flags,  or   object   files,
           typically  created  by  an  earlier  fc run.  These programs,
           together with the results of  any  compilations,  are  loaded
           (in the order given) to produce an executable program. 
           
        3. The flags which affect the actions of the compiler are:
           
           -c suppress  the loading phase, as does any compilation error
              in any routine
              
           -d do whatever is necessary to prepare the object  files  for
              the  system-specific  debugger.  This flag is passed on to
              `ld' if the -c switch is not specified. 
              
           -m passed on to `ld' to cause a load map to be produced. 
              
           -o generates a fortran listing for 'file.f' on 'file.l'
              
           -v verbose option; prints additional  information  about  the
              compilation process

    SEE ALSO
        
        rc,   the  ratfor  compiler,  which  provides  a  more  pleasant
        programming dialect and environment
        
        ld, the loader, for descriptions of  loader  flags  and  process
        naming conventions
        

    AUTHORS
        Joe  Sventek  wrote  the  interface  of  fc  to  the DEC ForTran
        compiler. 



                                    -1-


    Fc (1)                     13-Dec-82                          Fc (1)


    BUGS/DEFICIENCIES



















































                                    -2-

#-h- fd               857  asc  22-jul-83 17:06:21  sventek (joseph sventek)


    Fd (1)                     11-Mar-82                          Fd (1)


    NAME
        Fd - fast directory list in sort order

    SYNOPSIS
        fd [path] ...

    DESCRIPTION
        `fd'  lists  the  files  matching  the specified pattern in sort
        order, packed in 5 columns across the page.  The packing  occurs
        regardless  of  whether standard output is a terminal or not, in
        contrast to the actions of `ls'.  If  no  `path'  arguments  are
        specified,  all  files  in  the  current  working  directory are
        listed.  The forms of `path' are identical to those for `ls'. 

    FILES
        

    SEE ALSO
        ls - general directory listing tool

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        
























                                    -1-

#-h- fell            1094  asc  22-jul-83 17:06:23  sventek (joseph sventek)


    Fell (1)                   25-Aug-80                        Fell (1)


    NAME
        Fell - fell a process tree

    SYNOPSIS
        fell [process-id]
        
        ^C
        MCR>FELL<ESCAPE>

    DESCRIPTION
        `fell'  fells the process tree hanging from `process-id'.  If no
        `process-id' is specified,  the  tree  growing  from  the  shell
        invoked  from MCR is felled.  In this latter case, the user will
        see  termination  messages  of  the  subprocesses  as  they  are
        felled,  followed  by  the  shell's  prompt.  If the terminal is
        currently operating in half duplex and  the  bottom  process  in
        the  tree  is reading the terminal, the user may have to type an
        extra carriage return in order to  cause  the  tree  to  topple.
        Using   an  escape  as  the  terminator  for  the  FELL  command
        eliminates an extra MCR prompt which garbages up the screen. 

    SEE ALSO
        

    AUTHORS
        fell was written by Joe Sventek


























                                    -1-

#-h- field           2781  asc  22-jul-83 17:06:25  sventek (joseph sventek)


    Field (1)                  10-Jul-80                       Field (1)


    NAME
        Field - manipulate fields of data

    SYNOPSIS
        field [-t[c] | fieldlist] outputformat [file] ...

    DESCRIPTION
        field  is  used to manipulate data kept in formatted fields.  It
        selects data from certain fields of the input files  and  copies
        it to certain places in the standard output. 
        
        The  'fieldlist'  parameter  is used to describe the interesting
        columns on the input file.  Fields are specified by  naming  the
        columns  in which they occur (e.g. 5-10) or the columns in which
        they start and an indication of their length (e.g. 3+2,  meaning
        a  field  which  starts  in column 3 and spans 2 columns).  When
        specifying more than one field, separate the specs  with  commas
        (e.g.  5-10,16,72+8)  Fields  may  overlap,  and  need not be in
        ascending numerical order (e.g. 1-25,10,3 is OK). 
        
        If input fields do not fall in certain columns, but  rather  are
        separated  by  some  character  (such  as  a  blank or a comma),
        describe the fields by using the '-tc' flag, replacing 'c'  with
        the appropriate separator (a tab character is the default). 
        
        Once  fields have been described with either the '-tc' flag or a
        fieldlist, they can be arranged on output by the  'outputformat'
        argument.   This  argument  is  actually  a  picture of what the
        output line should look like.  Fields from  input  are  referred
        to  as  $1, $2, $3, etc., referring to the first, second, third,
        etc. fields that were specified.  (Up to 9 fields  are  allowed,
        plus  the  argument $0 which refers to the whole line.) These $n
        symbols are placed in the output  format  wherever   that  field
        should  appear,  surrounded by whatever characters desired.  For
        example, an outputformat of:
                                 "$2 somewords $1"
        would produce an output line such as:
                              field2 somewords field1
        
        If no input files are specified,  or  if  the  filename  '-'  is
        found, field will read from the standard input. 

    DIAGNOSTICS
        illegal field specification
             The  fieldlist specification was in error, probably because
             it contained letters or some other illegal characters

    SEE ALSO
        sedit



                                    -1-


    Field (1)                  10-Jul-80                       Field (1)


    AUTHORS
        David Hanson and friends (U. of Arizona)


















































                                    -2-

#-h- find            4017  asc  22-jul-83 17:06:30  sventek (joseph sventek)


    Find (1)                   3-Mar-78                         Find (1)


    NAME
        Find - search a file for text patterns 

    SYNOPSIS
        find [-acix] expression [expression] ...

    DESCRIPTION
        find  searches  the  standard  input file for lines matching the
        text patterns "expression" (up to 9 patterns may  be  specified)
        according  to  the matching criterion specified by the switches.
        (A text pattern is a subset of a "regular  expression"--see  the
        writeup   on   "ed"   for  a  complete  description  of  regular
        expressions.)  Unless the -c option is specified, each  matching
        line is copied to the standard output. 
        
        By  default,  any  line which matches any one of the expressions
        is considered a matching line.  If the  -a  flag  is  specified,
        only  lines  which  match  all  expressions  in  any  order  are
        considered to match.  If the -x flag  is  specified,  all  lines
        which  don't  satisfy the above criteria are considered matching
        lines.  If the  -c  option  is  specified,  matching  lines  are
        counted  instead of being copied to the standard output, and the
        final count is written to the standard output.  Finally, if  the
        -i  option  is  specified,  the  pattern  matching  becomes case
        insensitive. 
        
        A text pattern consists of the following elements: 
        
        c      literal character 
        ?      any character except newline 
        %      beginning of line 
        $      end of line (null string before newline) 
        [...]  character class (any one of these characters) 
        [!...] negated character class (all but these characters) 
        *      closure (zero or more occurrences of previous pattern) 
        +      anchored closure (one or more occurrences of previous pattern)
        @c     escaped character (e.g., @%, @[, @*) 
        
        Any special meaning of characters in  a  text  pattern  is  lost
        when  escaped, inside [...], or for: 
        
        %         not at beginning 
        $         not at end 
        *         at beginning 
        +         at beginning 
        
        A  character  class  consists  of  zero or more of the following
        elements, surrounded by [ and ]: 
        
        c         literal character, including [ 


                                    -1-


    Find (1)                   3-Mar-78                         Find (1)


        a-b       range of characters (digits, lower or upper case) 
        !         negated character class if at beginning 
        @c        escaped character (@! @- @ @]) 
        
        Special meaning of characters  in  a  character  class  is  lost
        when  escaped or for 
        
        !         not at beginning 
        -         at beginning or end 
        
        An  escape  sequence  consists  of the character @ followed by a
        single  character: 
        
        @f        formfeed
        @l        linefeed
        @n        newline 
        @r        carriage return
        @t        tab 
        @c        c (including @) 
        
        For  a  complete  description,  see   "Software   Tools"   pages
        135-154.   Care  should be taken when using the characters % $ [
        ] ! * + @ and  any shell characters in the text pattern.  It  is
        often  necessary  to enclose the  entire substitution pattern in
        quotes. 

    FILES
        none 

    SEE ALSO
        tr, ed, ch and the UNIX grep command. 
        xfind - extended find utility

    DIAGNOSTICS
        An error message is printed if one  of  the  patterns  given  is
        illegal. 

    AUTHORS
        Originally  from  Kernighan  &  Plauger's "Software Tools", with
        major modifications by Joe Sventek. 

    BUGS/DEFICIENCIES
        An expression may not start with a minus sign(-). 









                                    -2-

#-h- form            3439  asc  22-jul-83 17:06:33  sventek (joseph sventek)


    Form (1)                   1-Mar-79                         Form (1)


    NAME
        Form - produce form letter by prompting user for information

    SYNOPSIS
        form [-c] [+c] file ...

    DESCRIPTION
        Form  reads  input files and writes them to the standard output.
        Any time it  encounters  some  characters  surrounded  by  angle
        brackets  ('<'  and  '>')  it  prints  the  string  between  the
        characters as a prompt to the user.   It  then  reads  from  the
        standard  input  and replaces the bracketed string with what was
        read. 
        
        Normally only one line of input is accepted  from  the  standard
        input.   However,  a  response  can  be  continued on succeeding
        lines by terminating each line to  be  continued  with  a  minus
        ('-'). 
        
        Multi-line   input  will  also  be  accepted  if  the  left-most
        bracketing character of the prompt is immediately followed by  a
        minus  ('-')  as  in <-long prompt>.  Upon detection of a prompt
        of this form, the input can only be terminated by typing a  bare
        period  ('.') on a line, as in the editor.  This fact is brought
        to the user's attention when the prompt is displayed. 
        
        The prompts inside the file may also span line boundaries if  so
        desired. 
        
        The  user's  answers  to  prompts  are  remembered, so duplicate
        prompts are replaced without repeating the prompt to the user. 
        
        If the  standard  input  is  not  a  terminal,  no  prompts  are
        issued. 
        
        The  '-c'  flag  may  be  used  to  reset  the initial character
        signalling a prompt.  The character 'c' then replaces the '<'. 
        
        The '+c' flag may be used to reset the terminating character  of
        a prompt.  The character 'c' then replaces '>'. 
        
        It  is  possible  to  have  `form'  ask for and fill in repeated
        fields in your document.  If a prompt of the form

                                 <REPEAT label>

        is detected, all of the lines up to one  consisting  of  <label>
        will  be  repeated.  The number of repetitions is requested from
        the user by the prompt



                                    -1-


    Form (1)                   1-Mar-79                         Form (1)


                             Count for REPEAT label
        
        REPEAT loops may be nested up to a depth of five (5).  If if  is
        necessary  to  specify a prompt <REPEAT> which does not have the
        special meaning of starting a  loop,  <\REPEAT>  will  have  the
        leading   '\'   stripped  off,  and  the  prompt  will  be  used
        normally. 
        
        It is necessary to place the <REPEAT label>  starting  directive
        and the <label> terminating directive on lines by themselves. 

    FILES
        Your terminal is opened at READ access. 

    SEE ALSO
        The Unix form-letter tool

    DIAGNOSTICS
        If  an  input  file  cannot  be opened, a message is printed and
        execution is terminated. 
        
        A message is also printed if either the prompt or  the  response
        is too long for the tool's internal buffer. 
        

    AUTHORS
        Debbie Scherrer

    BUGS/DEFICIENCIES























                                    -2-

#-h- format          9169  asc  22-jul-83 17:06:38  sventek (joseph sventek)


    Format (1)                 23-Dec-81                      Format (1)


    NAME
        Format - format (roff) text

    SYNOPSIS
        format [+n] [-n] [-s] [-pon] [file] ...

    DESCRIPTION
        Format  formats  text according to request lines embedded in the
        text of the given files  or  standard  input  if  no  files  are
        given.   If  nonexistent  filenames  are  encountered  they  are
        ignored.  The optional flags are as follows:

        +n   Start printing at the first page with number "n". 

        -n   Stop printing at the first page numbered higher than "n". 

        -s   Stop before each page,  including  the  first  (useful  for
             paper  manipulation).   The  prompt "Type return to begin a
             page" is given just once before the first page.   For  each
             page  thereafter,  the  terminal  bell  is rung to indicate
             that another sheet of paper is needed. 

        -pon Move the entire document  "n"  spaces  (default=0)  to  the
             right ("page offset"). 

        Input   consists   of   intermixed  text  lines,  which  contain
        information to be formatted, and request  lines,  which  contain
        instructions  about how to format the text lines.  Request lines
        begin with a  distinguishing  "control  character",  normally  a
        period. 

        Output  lines  are  automatically "filled"; that is, their right
        margins are justified, without  regard  to  the  format  of  the
        input  text  lines.   (Right  justification may be turned on and
        off through the use of the ".ju" and  ".nj"  commands,  though.)
        Strings  of embedded spaces are retained so that the output line
        will contain at least as many spaces between words as the  input
        line.   However,  input  lines beginning with a space are output
        without modification. 
        
        Line "breaks" may be  caused  at  specified  places  by  certain
        commands,  or  by  the  appearance  of an empty input line or an
        input line beginning with a space. 

        Because  of  the  nature  of  its  output  (backspace  and   tab
        characters  and  a  fixed  number  of  lines  per  page),  it is
        generally necessary to have  a  tool  developed  especially  for
        printing  the  output  on  the  local printers.  On most systems
        this is a combination of the tools 'os' and 'detab',  plus  some
        sort  of  page  eject  control  of the printer.  If such as tool


                                    -1-


    Format (1)                 23-Dec-81                      Format (1)


        exists, it should be described in Section 3 of this manual. 

        The  capabilities  of  format  are  specified  in  the  attached
        Request  Summary.   Numerical  values are denoted by "n", titles
        by "t", and single characters by "c".  Numbers may be  signed  +
        or  -,  in  which  case  they  signify  relative  changes  to  a
        quantity; otherwise they signify an absolute  setting.   Missing
        "n"  fields  are ordinarily taken to be 1, missing "t" fields to
        be empty, and "c" fields to shut  off  the  appropriate  special
        interpretation. 

        Running  titles  may appear at the top and bottom of every page.
        A title line consists of a line with three distinct fields:  the
        first  is  text  to  be  placed  flush with the left margin, the
        second centered, and the third  flush  with  the  right  margin.
        The  first  non-blank character in the title will be used as the
        delimiter to separate the three fields.  Any "#"  characters  in
        a  title   are  replaced by the current page number, and any "%"
        characters are replaced by the current date. 

        The ".nr" defines  number  registers;  there  are  26  registers
        named  a-z.   The command ".nr x m" sets number register x to m;
        ".nr x +m" increments number register  by  m;  and  ".nr  x  -m"
        decrements  x by m.  The value of number register x is placed in
        the text by the appearance of @nx; a literal @ may  be  inserted
        using @@. 

        Additional   commands  may  be  defined  using  ".de  xx".   For
        example,

           .de PG
           .sp
           .ti +3
           .en

        defines a "paragraph" command PG.  Defined commands may also  be
        invoked  with  arguments.   Arguments are separated by blanks or
        tabs.  Within the definition of  a  defined  command,  arguments
        are  referenced  using  $1,  $2,  etc.   There is a maximum of 9
        arguments.  Omitted arguments default to the  null  string.   $0
        references  the command name itself.  For example, the following
        version of the paragraph command uses the argument to  determine
        the amount of indentation. 

           .de PG
           .sp
           .ti +$1
           .en

        This command could be invoked by


                                    -2-


    Format (1)                 23-Dec-81                      Format (1)


           .PG 3

        to get the same effect as the previous version. 

        The  ".so  file"  command  causes  the  contents  of  file to be
        inserted in place of the ".so" command; ".so"  commands  may  be
        nested. 

    FILES
        none

    SEE ALSO
        Kernighan & Plauger's "Software Tools", pages 219-250
        whatever tool has been devised for printing formatted output
        The roff and nroff/troff UNIX commands
        The  "nroff" and "troff" users manuals by Joseph F. Ossana, Bell
        Laboratories, Murray Hill, New Jersey

    DIAGNOSTICS
        invalid number register name
           names of number registers must be a single letter a-z
           
        missing name in command definition
           a macro was defined using the '.de' command, but no  2-letter
           name for it was given
           
        so commands nested too deeply
           the  limit  for  nesting  included  source files is dependent
           upon  the  MAXOFILES  definition  in  the  standard   symbols
           definition file
           
        too many characters pushed back
           the  buffer  holding  input characters has been exceeded; its
           size is determined by the BUFSIZE definition  in  the  source
           code

    AUTHORS
        Original  version  by  Kernighan and Plauger, with modifications
        by David Hanson and friends (U. of  Arizona),  Joe  Sventek  and
        Debbie Scherrer (Lawrence Berkeley Laboratory)












                                    -3-


    Format (1)                 23-Dec-81                      Format (1)



                            REQUEST SUMMARY

Request Initial Default Break Meaning

.##                           start of comment line
.bd n           n=1     no    boldface the next n lines
.bp n     n=1   n=+1    yes   begin new page and number it n
.br                     yes   break
.cc c     c=.   c=.     no    control character becomes c
.ce n           n=1     yes   center the next n input lines
.cu n           n=1     no    continuously underline in the next n
.de xx                  no    command xx; ends at .en
.ef t     t=""  t=""    no    foots on even pages are t
.eh t     t=""  t=""    no    heads on even pages are t
.en                     no    terminate command definition
.fi       yes           yes   begin filling output lines
.fo /l/c/r f="" f=""    no    foot titles are l(eft), c(enter), r(ight)
.he /l/c/r t="" t=""    no    head titles are l(eft), c(enter), r(ight)
.in n     n=0   n=0     yes   set left margin to column n+1
.ju       yes   yes     no    begin justifying filled lines
.ls n     n=1   n=1     no    set line spacing to n
.m1 n     n=3   n=3     no    space between top of page and head
.m2 n     n=2   n=2     no    space between head and text
.m3 n     n=2   n=2     no    space between text and foot
.m4 n     n=3   n=3     no    space between foot and bottom
.ne n           n=0     y/n   need n lines; break if new page
.nf       no            yes   stop filling
.nj       no            no    stop justifying
.nr x m   x=0   m=0     no    set number register x to m,
                              -m, +m for decrement, increment
.of t     t=""  t=""    no    foots on odd pages are t
.oh t     t=""  t=""    no    heads on odd pages are t
.pl n     n=66  n=66    no    set page length to n lines
.po n     n=0   n=0     no    set page offset to n spaces
.rm n     n=65  n=65    no    set right margin to column n
.so file                no    switch input to file
.sp n           n=1     yes   space n lines, except at top of page
.st n           n=0     yes   space to line n from top; -n
                              spaces to line n from bottom
.ti n           n=0     yes   temporarily indent next output
                              line n spaces
.ul n           n=1     no    underline words in the next n
                              input lines








                                    -4-

#-h- get             3270  asc  22-jul-83 17:06:46  sventek (joseph sventek)


    Get (1)                    14-Sep-81                         Get (1)


    NAME
        Get - get generation from TCS file

    SYNOPSIS
        get [-h][-rM.N] historyfile

    DESCRIPTION
        Get  retrieves  earlier  versions of text from "historyfile"  as
        computed by DELTA. 
        
        The possible flags are:
        
                  (none)  -  The  latest  version   of   the   file   is
                  retrieved. 
                  
                  -h  -  Print  out  the  history information associated
                  with the versions.  The dates,  times,  and  user  IDs
                  will  be  retrieved,  along  with  the  comments added
                  while performing the DELTAs. 
                  
                  -rM.N - Retrieve the specified version M.N. 
        
        The retrieved version of the file will be sent to  the  standard
        output.  History information is always sent to the terminal. 

    FILES

    SEE ALSO
        admin, delta

    DIAGNOSTICS
        usage:  get [-h][-rM.N] historyfile
                  Correct   calling   format  is  provided  when  called
                  without arguments. 
                  
        Unexpected EOF on history-info scan. 
        The source file does not contain the code  which  identifies  it
                  as  a  TCS  history file.  The code may be entered via
                  the ADMIN command. 
                  
        Unexpected EOF on history-data scan. 
                  The file format has  been  tampered  with  and  is  no
                  longer recognizable.  Refer to a guru for repair. 
                  
        - missing from keyletter
                  First   argument   is   expected  to  qualify  whether
                  versions and/or histories are to be extracted. 
                  
        Illegal keyletter
                  Only 'h' and 'r' are valid keys. 


                                    -1-


    Get (1)                    14-Sep-81                         Get (1)


                  
        Nonexistant revision level requested. 
                  The version number specified is not contained  in  the
                  history.   Try  "get -h file.tcs" to view the versions
                  available. 
                  
        Invalid history file
                  The  history  file  specifies  impossible  line-number
                  correlations.   Either out-of-sequence changes or line
                  numbers in descending order. 
                  
        Cannot locate TCS history file. 
                  Could not find file supplied for historyfile. 
                  

    AUTHORS
        An Algorithm for Differential File Comparison  by  J.W.Hunt  and
        M.D.McIlroy   (BTL  Computing  Science  Technical  Report  #41).
        Original code by Wil  Baden;  converted  from  MORTRAN  by  Dave
        Murray.   Modifications and conversion to BTL-SCCS style by Neil
        Groundwater  at  ADI.   The  Source  Code  Control  System   was
        introduced  by  Marc  J.   Rochkind  in the December, 1975, IEEE
        Transactions on Software Engineering. 

    BUGS/DEFICIENCIES



























                                    -2-

#-h- grep            1513  asc  22-jul-83 17:06:48  sventek (joseph sventek)


    Grep (1)                   2-May-81                         Grep (1)


    NAME
        Grep - search file[s] for a pattern

    SYNOPSIS
        grep [-chilx] expression [file] ...

    DESCRIPTION
        `grep'  searches  the names files (or standard input if none are
        specified) for occurrences of the expression.  The set of  valid
        expressions  are  the  same  as those for `find', `ch' and `ed'.
        The manual entries for those tools may  be  consulted  for  full
        details.   The output of `grep' is dependent upon which switches
        are selected:

        None When one or more occurrences of the  expression  are  found
             in  a  file,  the file name is displayed, with each line in
             which the expression occurs listed below the file name. 

          -c Only  the  number  of  matching  lines  in  each  file   is
             displayed. 

          -h Do not display the file names. 

          -i Make comparisons case insensitive. 

          -l Only  the  names  of files which contain matching lines are
             displayed, one per line. 

          -x Display (or count) only those lines which  do  NOT  contain
             the expression. 

    FILES
        none

    SEE ALSO
        find - find groups of expressions in a file
        ch - globally change expressions within a file
        ed - text editor

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES







                                    -1-

#-h- hsh             9328  asc  22-jul-83 17:06:50  sventek (joseph sventek)


    Hsh (1)                    2-May-81                          Hsh (1)


    NAME
        Hsh - shell with history and editing functions

    SYNOPSIS
        hsh [-cdnvx] [file [arguments]]

    DESCRIPTION
        `hsh'  is identical to `sh' with the exception that a history is
        kept of commands typed; recall  and  editing  functions  on  the
        history  are  permitted and described below.  Consult the manual
        entry for `sh' for more information on the common functions. 
        
        A history of the commands input  to  `hsh'  are  maintained  for
        each  session.  The user may invoke special history manipulating
        functions by starting a command line with  an  exclamation  mark
        (!  -  also known as a BANG) in column 1.  If is is necessary to
        send a line starting with a BANG to the  shell,  lines  starting
        with  "@!"  have  the "@" stripped off, and the remainder of the
        line is given to the shell. 
        
        Lines starting with BANG enable the user to communicate  with  a
        miniature  version of the editor `ed'.  At any time, the last 25
        commands  are  available  for  recall  and  manipulation.    The
        current  line concept of `ed' is supported, although the current
        line is ALWAYS the last command in the history.   Legal  history
        commands are:
        
          1. history display
             
             !h[istory] [n][l]
             
             This  is  the  equivalent  of a browse command in `ed'.  !h
             will display the last screenful  of  commands,  along  with
             their  line  numbers.  The screensize, which defaults to 22
             lines, may be changed by specifying a BLANK  and  a  number
             following  the !h[istory] string (!h 10, for example).  The
             new screensize is remembered and used in  all  !h  commands
             as  the default screensize.  Specifying a screensize larger
             than 25 has the effect of setting  the  size  to  25.   The
             optional  trailing `l' (list) will cause control characters
             in the commands to be displayed as `^<char>', where  <char>
             is  the character one needs to type in conjunction with the
             CTRL key to generate the control character. 
             
             !b[rowse] [n][l]
             
             This command is a synonym for history.  It is  included  to
             increase the similiarity of function with the editor. 
             
             


                                    -1-


    Hsh (1)                    2-May-81                          Hsh (1)


          2. history recall
             
             ![line_number][;line_number]... 
             
             This  command  permits  the  recall  of  a command from the
             history for  re-execution.   The  command  so  recalled  is
             displayed  to  the user and then passed on to the shell for
             execution.  This command is then entered at the  bottom  of
             the history. 
             
             Valid  line_numbers  are  the same as those for the editor.
             For example, a line_number may be the  number  listed  next
             to  the  command  in  the history display, a pattern of the
             form "\pattern[\]", which indicates a  backward  search  in
             the  25  line  history  window,  or  a  pattern of the form
             "/pattern[/]", indicating a  search  forward,  wrapping  to
             the  start  of the 25 line window.  The trailing '\' or '/'
             are  optional  when  specifying  a  single  pattern.    The
             semi-colon  syntax  is the same as that in `ed', indicating
             that the search for the second pattern is to start  at  the
             line where the first pattern was found. 
             
             If  the  pattern  specified was illegal, or a line matching
             the pattern could not be found, or an  invalid  line_number
             was specified, a comment is displayed to the user
             
             # invalid line number
             
             and  the  user  is prompted for more input.  The history is
             not modified in this case. 
             
             All sequences  of  patterns  resolve  into  a  single  line
             number.   It  is  not  possible to request a range of lines
             from the history. 
             
             It should be noted that the  line_numbering  is  completely
             regular  with `ed'.  In particular, "!" followed by nothing
             maps into  a  fetch  of  the  current  line  (last  command
             typed).   See  the  writeup on `ed' for more details on the
             specification  of line_numbers. 
             
             
          3. history recall and modification
             
             ![line_number]s/pat/repl[/[g]]
             
             Upon successfully recalling a command from the history,  it
             may  be  modified  before  it  is  passed  on  to `hsh' for
             execution.  This is performed with the 's'  command,  which
             is  exactly  the same as that for `ed'.  The delimiters for


                                    -2-


    Hsh (1)                    2-May-81                          Hsh (1)


             `pat' and `repl'  may  be  any  character,  the  remembered
             pattern  feature  is  available, and the trailing delimiter
             after the replacement pattern is  optional.   The  optional
             trailing  'g' indicates substitution for all occurrences of
             'pat' in the line.  See the  `ed'  manual  entry  for  more
             information on the substitute command. 
             
             If  the  substitution  fails  for  any reason, a comment is
             displayed to the user
             
             # illegal substitution
             
             and the user is prompted for more input.   The  history  is
             not modified in this case. 
             
             
          4. history archiving
             
             !w[rite] [>[>]]file
             
             This  command permits the user to archive (save) the entire
             transcript of activity to a file.  It also  passes  an  EOF
             to  `hsh',  which causes `hsh' to terminate execution.  The
             commands
             
             !w file
             !w >file
             
             both cause `file' to be overwritten  with  the  transcript,
             while  >>file  causes  the  transcript  to  be  appended to
             `file'. 
             
             It should be noted that the !w command causes  ALL  of  the
             input  given to `hsh' in this session to be saved, not just
             the current 25 line window.   It  also  passes  an  EOF  to
             `hsh', which will terminate execution. 
             
             
          5. history deletion
             
             !q[uit]
             ^Z
             
             These  commands  cause  an  EOF to be sent to `hsh' and the
             deletion of the log of activity. 
             
             





                                    -3-


    Hsh (1)                    2-May-81                          Hsh (1)


        Lines consisting solely of a carriage return are NOT  logged  in
        the  history.   If  the user needs to perform several edits on a
        command before having it executed, he can exploit the fact  that
        lines  beginning  with  a  sharp  (#) are comments to the shell.
        For example:
        
             !\%ed\s/%/#/                           <make it a comment>
             !s/pat1/repl1/                         <still a comment  >
                   .                                      .
                   .                                      .
                   .                                      .
             !s/patn/repln/                         <still a comment  >
             !s/%#//                                <now execute it   >
        
        All of the intermediate comment lines  will  be  placed  in  the
        history,  displacing  other  lines  from  the  window  which may
        possibly be needed.  Of course, it may be simpler in such  cases
        to just enter the command by hand. 

    FILES
        Creates   a   scratch   file   ~tmp/pid.log   for   the  command
        transcript. 

    SEE ALSO
        sh - command line interpreter
        esh - shell with file recognition and RAW tty I/O
        ed - text editor

    DIAGNOSTICS
        # invalid line number
        # invalid substitution

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        Due to address space limitations on some systems  (RSX-11M,  for
        example),  the  history  shell  will  not  have  support for the
        following shell internal commands:

        alias ask param unalias unparam source
        
        For those systems  where  the  `source'  command  is  supported,
        commands  read  from alternate input files (login.sh, `source'ed
        files) are NOT logged in the history. 







                                    -4-

#-h- incl            1721  asc  22-jul-83 17:06:54  sventek (joseph sventek)


    Incl (1)                   10-Jul-78                        Incl (1)


    NAME
        Incl - expand included files 

    SYNOPSIS
        incl [file] ... 

    DESCRIPTION
        Include   copies   the  input  files  to  the  standard  output.
        Whenever an input  line begins with 
        
                               include filename 
        
        the entire contents of filename will be copied to  the  standard
        output.   If no input files are specified, the standard input is
        copied.   An  included  file  may  include   further   includes.
        Multiple  input  files are allowed.  Include is used to bring in
        much-used routines, common declarations   or  definitions,  thus
        insuring use of the same version by all programs. 

    FILES
        none 

    SEE ALSO
        Kernighan and Plauger's "Software Tools", pages 74-77. 
        The software tools "ratfor" tutorial

    DIAGNOSTICS
        includes nested too deeply 
              The  depth of included files allowed is dependent upon the
              maximum number of open  files  allowed  in  the  following
              manner:  
                                    MAXOFILES - 3

        filename:  can't open 
              File  could  not  be  located  or maximum number of opened
              files was exceeded. 


    AUTHORS
        Original code by Kernighan  and  Plauger  in  "Software  Tools",
        with modifications by Ardith Kenney. 

    BUGS/DEFICIENCIES
        The  depth  of  included  files  allowed  is  dependent upon the
        maximum number of open files allowed by the implementor  of  the
        primitives. 






                                    -1-

#-h- intro            804  asc  22-jul-83 17:06:55  sventek (joseph sventek)


    Intro (1)                  11-Jan-79                       Intro (1)


    NAME
        Intro - list on-line documentation

    SYNOPSIS
        intro [-s<section]

    DESCRIPTION
        Intro  lists  a  short  synopsis  of  each manual entry which is
        available  for  the  specified  section  (section   1   is   the
        default).   Valid section names are described in the writeup for
        `man'.  These documents  can  then  be  accessed  via  the  tool
        'man'. 

    FILES
        Intro   accesses   the   archive   file   containing   the  user
        documentation. 

    SEE ALSO
        man; the Unix tool 'help'

    DIAGNOSTICS
        none

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES

























                                    -1-

#-h- isam            1224  asc  22-jul-83 17:06:56  sventek (joseph sventek)


    Isam (1)                   29-Oct-80                        Isam (1)


    NAME
        Isam - generate index for pseudo-indexed-sequential access

    SYNOPSIS
        isam [-d<dif>] [-w<width>] [-j<l/r>]

    DESCRIPTION
        isam  is used to generate an index for a text file such that the
        index may be used later to permit indexed-sequential  access  to
        the  file.   isam  reads  every `dif'th line (default is 1) from
        the standard input, noting its  disk  address  with  a  call  to
        note.   It  uses  getwrd  to  retrieve the first "word" from the
        line and uses this as the primary key to the record.   This  key
        is  then  output  to  standard  output  in  a field `width' wide
        (default is  25)  and  justified  according  to  the  -j  switch
        (default  left).   The two-word address from note is then output
        as decimal integers before the index record is flushed. 

    FILES

    SEE ALSO
        spell - spelling error finder; uses an isam-generated index
        asam - generate index for archives

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES






















                                    -1-

#-h- kwic            1083  asc  22-jul-83 17:06:58  sventek (joseph sventek)


    Kwic (1)                   15-Jan-79                        Kwic (1)


    NAME
        Kwic - make keyword in context index

    SYNOPSIS
        kwic [file] ...

    DESCRIPTION
        kwic  rotates  lines  from  the input files so that each word in
        the sentence appears at the beginning of a line, with a  special
        character  marking  the  original  position  of  the  end of the
        line.  The output from kwic is typically sorted with 'sort'  and
        then  unrotated  with  'unrot'  to  produce a keyword-in-context
        index. 
        
        If no input files are given, or if  the  filename  '-'  appears,
        lines will be read from standard input. 

    FILES

    SEE ALSO
        unrot; sort

    DIAGNOSTICS
        A  message is printed if an input file cannot be opened; further
        processing is terminated. 

    AUTHORS
        Original from Kernighan and  Plauger's  'Software  Tools',  with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES





















                                    -1-

#-h- lam             2190  asc  22-jul-83 17:06:59  sventek (joseph sventek)


    Lam (1)                    30-Jul-79                         Lam (1)


    NAME
        Lam - laminate files

    SYNOPSIS
        lam { -string | file } ...

    DESCRIPTION
        Lam  laminates the named files to the standard output.  That is,
        the first output line is the result of concatenating  the  first
        lines  of  each  file,  and  so  on.  If the files are different
        lengths, null lines are  used  for  the  missing  lines  in  the
        shorter files. 

        The  "-string"  arguments  are  used  to  place  strings in each
        output line.  Each "string" is placed in  the  output  lines  at
        the point it appears in the argument list.  For example,

           lam -file1: foo1 "-, file2:" foo2

        results in output lines that look like

           file1: a line from foo1, file2: a line from foo2

        The  escape  sequences  described in find (and change) are valid
        in "string" arguments.  Thus

           lam foo1 -@n foo2

        results in the lines from foo1 and foo2 being interleaved. 

        Files and string specifications may appear in any order  in  the
        argument list. 

        If  no  file  arguments  are  given,  or  if  the  file  "-"  is
        specified, lam reads the standard input. 

    FILES
        none

    SEE ALSO
        comm, tail

    DIAGNOSTICS
        too many arguments
           The maximum number of  command  line  arguments  allowed  has
           been  exceeded.   It  is set by the MAXARGS definition in the
           source code. 

        too many strings
           The max number of characters in a string has  been  exceeded.


                                    -1-


    Lam (1)                    30-Jul-79                         Lam (1)


           It is set by the MAXBUF definition in the source code. 

        output buffer exceeded
           The  size of the output line buffer has been exceeded.  It is
           set by the MAXOBUF definition in the source code. 

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES










































                                    -2-

#-h- lcnt             964  asc  22-jul-83 17:07:01  sventek (joseph sventek)


    Lcnt (1)                   11-Jan-79                        Lcnt (1)


    NAME
        Lcnt - line count

    SYNOPSIS
        lcnt [file] ...

    DESCRIPTION
        lcnt  counts  the  number  of  lines  of text in the named input
        files, or the  standard input if  no  files  are  given  or  the
        filename  '-'  appears.   A  line  is  zero  or  more characters
        terminated by a NEWLINE marker. 
        
        lcnt could also be implemented as a shell script file:
        
                                tr '!@n' | ccnt

    FILES

    SEE ALSO
        ccnt; wcnt; the Unix command 'wc'

    DIAGNOSTICS
        A message is printed if an  input  file  could  not  be  opened;
        processing is terminated. 

    AUTHORS
        Original  from  Kernighan  and  Plauger's 'Software Tools', with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES






















                                    -1-

#-h- ld              2906  asc  21-oct-83 14:14:53  sventek (joseph sventek)


    Ld (1)                     13-Dec-82                          Ld (1)


    NAME
        Ld - loader

    SYNOPSIS
        ld [-dmv] [-l[libname]] [-ptaskname] [-xo<TKB-option>] name ...

    DESCRIPTION
        ld  links  together  the  named  modules  in  the  order  given,
        searches the system libraries to resolve global  references  and
        generates an executable process. 
        
        ld understands the following flags:
        
        -d causes  `ld'  to  do  whatever  is necessary to incorporate a
           system-specific debugger into the image. 
           
        -l signifies that the filename concatenated to  the  flag  is  a
           library   name.   -l  alone  stands  for  the  ratfor  system
           library, `rlib'.  The default extension for  a  library  file
           is   `.olb'.    A  library  is  searched  when  its  name  is
           encountered, so the placement of -l is significant.   If  the
           ratfor  system  library  is  not  explicitly mentioned, it is
           searched  after  all  other  files  have  been  linked.   The
           fortran system library is searched at the very end. 
           
        -m causes  `ld'  to  do  whatever  is  necessary  to  generate a
           system-specific load map. 
           
        -p signifies that the file name concatenated to the flag  is  to
           be  the  process  name.  If this option is not specified, the
           process name is determined in one of two ways:
           
           1. The  first  non-library  file  name  (eg.  format.obj)  is
              found,  and  the  file's  extension  is replaced by `.tsk'
              (format.tsk).  This is then the resulting process name. 
              
           2. Failing 1 (implying that all files listed in the  argument
              list  are  libraries),  the process image is placed on the
              file a.out, overwriting  the  previous  contents  of  that
              file. 
              
        -v verbose  option;  output  additional  information  about  the
           loading process. 
           
        -x operating system specific loader options.  The legal  options
           are:

           o the  string  concatenated  to  the -xo flag is a TKB option
             line to be included  in  the  TKB  command  file  used   to
             build the image.  For example


                                    -1-


    Ld (1)                     13-Dec-82                          Ld (1)


                                   -xoTASK=FOOBAR
             will  cause  the  resulting task image to be built with the
             task name FOOBAR in the header. 

    SEE ALSO
        rc, fc

    AUTHORS
        Joe Sventek wrote the interface of ld to the DEC linker. 

    BUGS/DEFICIENCIES









































                                    -2-

#-h- ll               745  asc  22-jul-83 17:07:04  sventek (joseph sventek)


    Ll (1)                     15-Sep-78                          Ll (1)


    NAME
        Ll - print line lengths

    SYNOPSIS
        ll [file] ...

    DESCRIPTION
        ll  prints  the lengths of the shortest and longest lines in the
        named files.  The name "-" may be used to refer to the  standard
        input.  If no files are given, ll reads the standard input. 
        
        NEWLINE  characters  are  not counted as part of the length of a
        line. 

    FILES
        none

    DIAGNOSTICS
        A message is issued if a named file could not be opened. 

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES




























                                    -1-

#-h- ls              2852  asc  22-jul-83 17:07:06  sventek (joseph sventek)


    Ls (1)                     27-Jul-81                          Ls (1)


    NAME
        Ls - list contents of directory

    SYNOPSIS
        ls [-1dhnrtv] [-fstring] [pathname] ...

    DESCRIPTION
        Ls   lists  information  about  each  file  argument.   When  no
        argument is given, the default directory is  listed.   The  file
        arguments  may  include  any  of  the  legal regular expressions
        described in the man  entry  for  the  editor,  with  the  added
        feature  that  the  comparisons  will  be  case insensitive.  By
        default, the files are listed in the order  in  which  they  are
        found in the directory.  There are seven options:
        
        -1 force  single  column output to the terminal.  The default is
           multi-column output to the terminal, single to a disk file. 
        -d print only directory files found in this directory
        -h print a header at the top of verbose listings
        -n sort the directory by name
        -v list in verbose format
        -t sort by time modified (oldest first)
        -r reverse the sense of the sort
           
        -f use `string' to specify the output format as follows:
           
           
              b  size of file in blocks (normally 512 characters)
              
              c  size of file in characters
              
              m  modification date and time (dd-mmm-yy hh:mm:ss)
              
              n  filename
              
              o  file owner's username
              
              p  protection codes (oooo|gggg|wwww)
              
              t  file type (asc|bin|dir)
              
           The `b', `c', `n' and `o' options accept  an  integer  prefix
           which specifies the field width to be used. 
           
           The   verbose  option  formats  its  output  as  if  you  had
           specified "-f17n p  m  6b  o" as a format string. 
           
           It is necessary to surround the string (including  the  `-f')
           with quotes if it contains any BLANKs or TABs. 
        


                                    -1-


    Ls (1)                     27-Jul-81                          Ls (1)


    EXAMPLES
        The  following command will cause all of the files which contain
        the string tst anywhere in the file name to be deleted:
        
           % ls tst | args rm

    FILES
        lstemp1, lstemp2

    AUTHORS
        Ls was written by Joe Sventek.  The `-f'  option  was  added  by
        Dave Martin. 

    SEE ALSO
        ed - text editor for description of regular expressions
        args - argument exploder
        d - directory lister (with different default format)
        fd - fast directory lister in sort order


































                                    -2-

#-h- lsd             1100  asc  22-jul-83 17:07:07  sventek (joseph sventek)


    Lsd (1)                    12-Mar-82                         Lsd (1)


    NAME
        Lsd - list alpha-numeric directory names

    SYNOPSIS
        lsd [-lv] [device]

    DESCRIPTION
        `lsd'  lists  the  alpha-numeric directory names which have been
        established through the use of the  `mkd'  utility.   Given  the
        device  to  list  (or  SY: if not specified), `lsd' simply lists
        the full path for all known alpha-numeric directories.   If  the
        `-l'  option  is  specified,  the  names  are displayed in local
        format  (ddn:[name])  instead  of  the   default   path   format
        (/ddn/name).   Specification  of  the  `-v'  option  causes  the
        corresponding UIC to be displayed to the right of the  directory
        name. 

    FILES
        ddn:[0,377]*.dir

    SEE ALSO
        mkd - establish alpha-numeric directory
        prd - print current alpha-numeric directory name

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        




















                                    -1-

#-h- macro           9264  asc  22-jul-83 17:07:10  sventek (joseph sventek)


    Macro (1)                  20-May-78                       Macro (1)


    NAME
        Macro - process macro definitions 

    SYNOPSIS
        macro [file] ... 

    DESCRIPTION
        Macro  reads  the  source  file(s)  and writes onto the standard
        output  a new file with the macro definitions  deleted  and  the
        macro   references  expanded.   If  no file names are specified,
        the standard  input is read. 
        
        Macros are generally used to extend some underlying language  to
        perform  a  translation from one language to another; that is, a
        macro  processor allows one  to  define  symbolic  constants  so
        that  subsequent   occurrences  of  the constant are replaced by
        the defining  string of characters.  The general format is: 
        
                         define(name,replacement text) 
        
        All subsequent  occurrences  of  "name"  in  the  file  will  be
        replaced   by  "replacement  text".   Blanks are significant and
        may occur only  inside the replacement text.   Upper  and  lower
        case  letters  are  also significant.  Nesting of definitions is
        allowed, as is recursion.  The definition may be more  than  one
        line long. 
        
        An elementary example of a macro is: 
        
                                define(EOF,-1) 
        
        Thereafter,  all  occurrences  of  "EOF"  in  the  file would be
        replaced  by "-1". 
        
        Macros with arguments may also  be  specified.   Any  occurrence
        in   the  replacement  text of "$n", where n is between 1 and 9,
        will  be  replaced  by  the  nth  argument  when  the  macro  is
        actually  called.  For example, 
        
                define(copen,$3 = open($1,$2) 
                             if ($3 == ERR) 
                                  call cant($1)) 
        
        would  define  a  macro which, when called by "copen(name, READ,
        fd)"  would expand into: 
        
                fd = open(name,READ) 
                if (fd == ERR) 
                     call cant(name) 
        


                                    -1-


    Macro (1)                  20-May-78                       Macro (1)


        If  a  macro  definition  asks  for  an  argument  that   wasn't
        supplied,  the "$n" will be ignored. 
        
        Macros   can  be  nested,  and  any  macros  encountered  during
        argument  collection are expanded immediately--unless  they  are
        surrounded   by brackets "[]".  That is, any input surrounded by
        [ and ] is  left absolutely alone, except that one  level  of  [
        and  ] is  stripped off.  Thus it is possible to write the macro
        "d" as 
        
                           define(d,[define($1,$2)]) 
        
        The replacement text for  "d",  protected  by  the  brackets  is
        literally "define($1,$2)" so one could say 
        
                                    d(a,bc) 
        
        and  be  assured that "a" would be defined to be "bc".  Brackets
        must  also  be  used  when  it  is  desired   to   redefine   an
        identifier: 
        
                                  define(x,y) 
                                  define(x,z) 
        
        would  define  "y"  in  the  second  line, instead of redefining
        "x".  To avoid redefining "y", the operation must  be  expressed
        as 
        
                                 define(x,y) 
                                 define([x],z) 
        
        The  macro  processor also includes a conditional test, with the
        built-in function "ifelse".  The input 
        
                                ifelse(a,b,c,d) 
        
        compares "a" and "b" as character  strings.   If  they  are  the
        same,   "c"  is  pushed back onto the input; if they differ, "d"
        is pushed  back.  As a simple example, 
        
                    define(compare,[ifelse($1,$2,yes,no)]) 
        
        defines "compare" as a two-argument  macro  returning  "yes"  if
        its   arguments  are  the  same,  and "no" if they are not.  The
        brackets prevent the "ifelse" from being evaluated too soon. 
        
        Another  built-in  function  available  is  "incr".    "incr(x)"
        converts   the  string  "x"  to  a  number,  adds one to it, and
        returns that as  its replacement text (as a  character  string).
        "x"   had   better   be    numeric,   or   the  results  may  be


                                    -2-


    Macro (1)                  20-May-78                       Macro (1)


        undesireable.  "incr" can be used  for tasks like 
        
                   define(MAXCARD,80) 
                   define(MAXLINE,[incr(MAXCARD)]) 
        
        which makes two parameters with values 80 and 81. 
        
        The third built-in function available  in  the  macro  processor
        is a function to take substrings of strings. 
        
                                substr(s, m, n) 
        
        produces  the  substring  of  "s"  which  starts at position "m"
        (with origin  one), of length "n".  If "n"  is  omitted  or  too
        big,  the  rest  of  the  string is used, while if "m" is out of
        range the result is a null  string.  For example, 
        
                               substr(abc, 2, 1) 
        
        results in "b", 
        
                                substr(abc, 2) 
        
        results in "bc", and 
        
                                 substr(abc,4) 
        
        is empty. 
        
        
        The last built-in function available in the macro  processor  is
        one to perform simple arithmetic functions:
        
                          arith(operand1,op,operand2)
        
        where  the  operation  specified  by  'op'  may  be  +  (add), -
        (subtract), * (multiply), or / (divide).  Negative  numbers  are
        not handled yet.  Thus,
        
                            define(add,[arith($1,+,$2)])
                            add(5,3)
        
        would produce the result '8'. 
        
        As  a  final  example, here is a macro which computes the length
        of a character string: 
        
             define(len,[ifelse($1,,0,[incr(len(substr($1,2)))])]) 
        
        Note the recursion, which is perfectly permissible.   The  outer


                                    -3-


    Macro (1)                  20-May-78                       Macro (1)


        layer  of brackets prevents all evaluation as the  definition is
        being copied into an internal table.  The inner  layer  prevents
        the  "incr"  construction  from  being done as the  arguments of
        the  "ifelse"  are  collected.   The  value  of  a  macro   call
        "len(abc)" would be 3. 

    FILES
        none 

    SEE ALSO
        Kernighan and Plauger's "Software Tools", pages 251-283 

    DIAGNOSTICS
        arg stack overflow 
            The  maximum  number  of  total arguments has been exceeded.
            Currently  this is 100. 
            
        call stack overflow 
            The  maximum  level  of  nesting  of  definitions  has  been
            exceeded.  Currently this is 130. 
            
        EOF in string 
            An  end-of-file  has  been  encountered  before  a bracketed
            string has  been terminated. 
            
        evaluation stack overflow 
            The total number of characters  for  name,  definition,  and
            arguments  has been exceeded.  Currently this is 500. 
            
        unexpected EOF 
            An  end-of-file  was reached before the macro definition was
            terminated. 
            
        filename: cant open 
            For some reason, the file specified  could  not  be  opened.
            This  is  an  unlikely error to occur; if it does show up it
            probably  indicates a problem with the low-level  primitives
            being used  by the system. 

    AUTHORS
        From  "Software  Tools"  by  Kernighan  and  Plauger, with minor
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES
        There  can  be  no  space   between   the   "define"   and   the
        left-parenthesis  following it. 
        
        Keywords  (e.g.  define, ifelse, etc.) in the input file must be
        surrounded  by  brackets   if   they   are   not   part   of   a
        macro--otherwise   they  will  be stripped out by the processor.


                                    -4-


    Macro (1)                  20-May-78                       Macro (1)


        Likewise, if brackets  are desired anywhere in  the  input  file
        other  than  in  a  macro,  they  must be surrounded by brackets
        themselves. 
        
        The  error  messages  generated  by  the  ratfor  compiler  when
        processing   macros  do  not  seem to show up in this processor.
        Examples are  "definition too long", "missing comma in  define",
        and "non-alphanumeric  name". 












































                                    -5-

#-h- man             5322  asc  22-jul-83 17:07:14  sventek (joseph sventek)


    Man (1)                    24-Jun-82                         Man (1)


    NAME
        Man - display section of users manual

    SYNOPSIS
        man [-<pagelen>] [-s<section>] [-a] [name] ...

    DESCRIPTION
        man  locates  and displays the manual entries for the particular
        utility or function names found in the  argument  list.   If  no
        names  are supplied, a list of those entries known to man in the
        section specified is displayed.  If no section name is  supplied
        (i.e. "-s") a list of available manual sections is displayed. 

        The manual as delivered consists of four sections:

        1 The  writeups  for  the utilities are contained here.  This is
          the default section if none is  specified.   A  valid  synonym
          for `1' is `cmd'. 

        2 The  writeups  for the primitive functions are contained here.
          The primitive functions are those which represent the  virtual
          system  calls for the Software Tools Virtual Machine.  A valid
          synonym for `2' is `prim'. 

        3 The writeups for the portable library functions are  found  in
          this  section.   Routines  for  manipulating  archive modules,
          in-memory storage, push-back  stacks,  pattern  matching,  and
          many  others  are  described here.  Many times a problem which
          you are trying to solve has been solved before, with the  code
          for  the  solution  appearing in the library.  A valid synonym
          for `3' is `lib'. 

        4 Primers for using various  utilities  and  function  libraries
          appear here.  A valid synonym for `4' is `primer'. 

        In  addition,  site-dependent  sections can be added by creating
        the necessary known files in ~man.  The section on  FILES  below
        describes the structure of the known files. 

        By  default,  man  will search through all sections for an entry
        describing `name';  the  sections  are  searched  in  the  order
        specified  in  the  file  `~man/mpath'.   The  first entry found
        along this search  path  is  displayed;  the  remainder  of  the
        sections  are  scanned to see if other entries describing `name'
        can be found.  If more are found, a note describing the  section
        containing the additional entry is displayed to the user. 

        If  the  -a flag is specified, all of the manual entries for the
        particular section are displayed  on  standard  output.   If  no
        section  is specified, this results in the display of the entire


                                    -1-


    Man (1)                    24-Jun-82                         Man (1)


        manual. 

        When displaying to the terminal, excess white space  is  removed
        from  the entries.  The output is also paged when to a terminal,
        with the default page length being 22 lines.  This value may  be
        changed  through the use of the '-<pagelen>' option.  Specifying
        a pagelength of 0 turns the paging off.  When  in  paging  mode,
        the  user  will  be  asked  if the next screenful of the current
        entry is desired.  In addition,  if  more  than  one  entry  was
        requested, the user is asked if the next entry is desired. 

    EXAMPLES
        To get a listing of all manual sections available:
        
                        man -s
        
        To get a listing of all entries in section (1):
        
                        man -s1
        
        To get the entry for the "format" utility:
        
                        man format
        
        To get the primer for the "ed" text editor:
        
                        man -sprimer ed
        
        To get the entry for the library routines "scopy" and "strcpy":
        
                        man scopy strcpy

    FILES
        Accesses   the   known  files  for  each  section  in  the  ~man
        directory. 

        Each section consists of two files in ~man:

        * s<section-name> is an archive of  the  `format'  output  files
          for  each  entry,  with each archive module having the name of
          the entry.  For example, s1 has the entries for the  commands,
          with the entry for `ar' being ar. 

        * i<section-name>  is  an index of the s-file above generated by
          `asam'.  This index must be sorted, and is generated by

          asam <s<section-name> | sort >i<section-name>

        There is no restriction of `<section-name>'  to  integers,  such
        that  if  one  wishes  to  create  a  local  man section, simply


                                    -2-


    Man (1)                    24-Jun-82                         Man (1)


        archive the formatted entries in ~man/slocal  and  generate  the
        index  in  ~man/slocal.  The section name `local' should then be
        added to the search path file, `~man/mpath'. 

    SEE ALSO
        The tools 'intro' and 'apropos'; the Unix command 'man'

    DIAGNOSTICS
        A message is printed if the entry specified by 'name' cannot  be
        located. 

    AUTHORS
        Joe Sventek.  The "bare -s" option was added by Dave Martin. 







































                                    -3-

#-h- mcol            2842  asc  22-jul-83 17:07:17  sventek (joseph sventek)


    Mcol (1)                   1-Oct-78                         Mcol (1)


    NAME
        Mcol - multicolumn formatting

    SYNOPSIS
        mcol [-cn] [-ln] [-wn] [-gn] [-dn] [file] ...

    DESCRIPTION
        mcol  reads  the  named  files and formats them into multicolumn
        output on the standard output.  If the filename  "-"  is  given,
        or no files are specified, the standard input is read. 
        
        The options are as follows. 

        -cn  Format the output into "n" columns.  Default is 2. 

        -ln  Set  the output page size to "n".  Mcol produces its output
             in pages, but does not place separators between  the  pages
             on  the  assumption  that some subsequent processor will do
             that.  (The default page length is 55.)

        -wn  Set the column width to "n" characters.  Lines longer  than
             "n"  characters  are  truncated.  (The default column width
             is 60.)

        -gn  Set the "gutter" width to "n".  The  gutter  is  the  white
             space between columns.  (The default gutter width is 8.)

        -dn  Assume  output is to be printed on a display terminal.  The
             column size is set to "n" characters and the page  size  is
             set  to  24  lines.  The number of columns and gutter width
             are computed to maximize the amount  of  information  on  a
             single  screen.   If  "n"  is omitted, 10 is used, which is
             useful for displaying lists of file names. 


    FILES
        none

    SEE ALSO

    DIAGNOSTICS
        invalid column count
        invalid page size
        invalid column width
        invalid gutter width
           The value of one of the option flags is  invalid  or  exceeds
           the limitations of mcol. 

        ignoring invalid flag
           A  command  argument  option flag was given which mcol didn't


                                    -1-


    Mcol (1)                   1-Oct-78                         Mcol (1)


           recognize. 

        insufficient buffer space
           Mcol could not buffer an entire page.  This  is  usually  the
           result  of  options  that  specify  a large page size or many
           columns.  The buffer size is set by the MAXBUF definition  in
           the source code. 

        too many lines
           The  number  of  lines  per  page times the number of columns
           exceeded mcol's line buffer space.   The  maximum  number  of
           lines  allowed  is set by the MAXPTR definition in the source
           code. 

    BUGS/DEFICIENCIES

    AUTHORS
        Original by David Hanson  and  friends  (U.  of  Arizona),  with
        modifications by Debbie Scherrer (LBL). 

































                                    -2-

#-h- mcrbck          1243  asc  22-jul-83 17:07:19  sventek (joseph sventek)


    Mcrbck (1)                 12-Mar-82                      Mcrbck (1)


    NAME
        Mcrbck - spawn MCR commands in the background

    SYNOPSIS
        mcrbck "MCR command line"

    DESCRIPTION
        `mcrbck',  when  installed  with  a "...XXX" style name, permits
        MCR commands to be spawned in the background.   This  capability
        already  exists  in  the shell, since any command can be spawned
        in the background just by appending  an  ampersand  (&)  to  the
        command.   If  the  spawn  was  successful,  the command will be
        redisplayed to the user.  If any embedded blanks are  needed  in
        the  MCR command, the command must be surrounded by quotes.  For
        example, if mcrbck is installed as "...MBK", then

                        >mbk "pip vd3.lst=vd3:[*,*]/li"

        will cause the pip command to be performed  in  the  background,
        permitting the requestor to continue with other work. 

    FILES
        

    SEE ALSO
        sh  -  the  writeup  on  the shell for information on background
        processing

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        
















                                    -1-

#-h- mkd             3695  asc  22-jul-83 17:07:22  sventek (joseph sventek)


    Mkd (1)                    12-Mar-82                         Mkd (1)


    NAME
        Mkd - make alpha-numeric directory for ODS-1

    SYNOPSIS
        mkd name g,m

    DESCRIPTION
        `mkd'  permits  the  association of an alph-numeric name with an
        UIC.  After this association, the tools I/O system  is  able  to
        reference  files  as  dd:[name]filespec instead of using the G,M
        UIC format.  This association  is  made  WITHOUT  modifying  any
        RSX-11M  software,  and  only  uses  the  capability of creating
        directory entries which point to existing files. 

        The UIC [0,377] on the current disk (SY:) is used  to  keep  two
        types of files:

        1. name.dir,  which  has  been  created  via  the  following pip
           command

           pip [0,377]name.dir=[0,0]gggmmm.dir/en

           This simply  causes  a  directory  entry  in  [0,377]  to  be
           created which points to the directory file in [0,0]. 

        2. mkd.cmd,  which  is  a  composite  of  all  of  the above pip
           commands used, to permit regeneration of  the  aliases  after
           backups (see below). 

        To make an alias for a directory, issue the following command:

                                  mkd name g,m

        Upon receiving the command, `mkd' performs the following steps:

        1. Check  to see if sy:[0,377] exists.  If not, format up an UFD
           command to execute and display to the  requestor.   The  user
           is  prompted  if he/she wishes to continue.  If the answer is
           affirmative,  UFD  is  spawned  and  waited  for  to   create
           [0,377]. 

        2. Check  to see if sy:[g,m] exists.  If not, the procedure in 1
           is repeat, only for [g,m]. 

        3. Format up the pip command and display to the  requestor.   If
           the  user  specifies that he/she wishes to continue, then the
           pip command to create the alias is spawned  and  waited  for,
           as   well   as   the   pip   command   is  also  appended  to
           sy:[0,377]mkd.cmd. 



                                    -1-


    Mkd (1)                    12-Mar-82                         Mkd (1)


        The only "gotcha" to this whole procedure concerns BRU  backups,
        since  BRU  does  not  handle  multiple directory entries to the
        same file in a coherent fashion.  This is the  reason  that  the
        file  sy:[0,377]mkd.cmd  is  kept.   When  doing  a  backup, the
        suggested procedure is as follows:

        1. Run the following pip command
           
           >pip sy:[0,377]*.dir/rm
           
           Note the use of the "rm" switch and NOT the "de"  switch,  as
           this  only  removes the directory entry and NOT the directory
           itself, which could be critical. 

        2. Do whatever backups you wish. 

        3. After backup completion, execute  the  following  command  on
           the disks which been created as well as the source disk

           >asn ddn:=sy:
           >@[0,377]mkd

           This   should   be   performed  for  each  such  disk.   This
           re-establishes the aliases on the disks. 

        This procedure is NOT needed for DSC, as it  is  intelligent  in
        its handling of file aliases, whatever other faults it has. 

    FILES
        sy:[0,377]mkd.cmd
        sy:[0,377]name.dir

    SEE ALSO
        lsd - list alpha-numeric directories
        prd - print current working alpha-numeric directory

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        








                                    -2-

#-h- mubld           2226  asc  22-jul-83 17:07:25  sventek (joseph sventek)


    Mubld (1)                  2-May-81                        Mubld (1)


    NAME
        Mubld - build a multi-user task for RSX-11M

    SYNOPSIS
        mubld [-dv] task

    DESCRIPTION
        `mubld'  builds  a  multi-user  task for RSX-11M.  It does so by
        manipulating the task image label blocks as  discussed  by  Eric
        Levy  of  JPL  in  the  April  1981  issue  of the Multi-tasker.
        `mubld' requires one input  file  (`task'mu.tsk)  and  generates
        three    output    files    (mu`task'.tsk,    ro`task'.tsk   and
        ro`task'.stb).  ro`task'.tsk is  a  resident  common  containing
        all  of the read-only code and data of `task', with ro`task'.stb
        being its symbol table  file.   mu`task'.tsk  is  a  task  image
        which  contains  the  impure  data  of `task' and is mapped over
        ro`task'.tsk  as  a  resident  common  for  its  code.   To  use
        mu`task',  one  must  VMR a partition for ro`task' with the name
        ro`task' into your system image and  install  ro`task'.tsk  into
        it.   Then  one  may use mu`task' at will.  A file `mushbld.cmd'
        is provided in [307,31] for building  a  multi-user  version  of
        the shell. 
        
        Switches:
          -v Causes  verbose  mutterings  at  the  user's terminal while
             `mubld' is working.  It is  suggested  that  one  use  this
             switch,  since  one of the gems of wisdom appearing on your
             terminal is the size of the  common  partition  needed  for
             ro`task'. 
             
          -d Debug  option:  causes  all files created during the run to
             be kept around on the current UIC. 

    FILES
        `task'mu.tsk,mu`task'.tsk,ro`task'.tsk,ro`task'.stb

    SEE ALSO
        objfix - Fortran object module fixer

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        Once I get a chance to experiment with the  LDLIB  package  from
        the  Fall  '80  DECUS  SIG  tape,  `mubld'  will  be enhanced to
        generage images which can participate in the dynamic loading  of
        the shared common regions. 


                                    -1-

#-h- mv               785  asc  22-jul-83 17:07:26  sventek (joseph sventek)


    Mv (1)                     11-Jan-79                          Mv (1)


    NAME
        Mv - move (or rename) a file

    SYNOPSIS
        mv old new

    DESCRIPTION
        mv  changes  the  name  of  `old'  to  `new'.   If `new' already
        exists, it is removed before `old' is renamed.  On  networks  or
        other  systems  where  a  simple rename is impossible, mv copies
        the file and then deletes the original. 

    FILES
        none

    SEE ALSO
        The Unix command 'mv'

    DIAGNOSTICS
        A message is printed if `old' does not exist. 

    AUTHORS
        Joe Sventek, Debbie Scherrer

    BUGS/DEFICIENCIES
        Mv may only be used with ASCII files on many systems. 


























                                    -1-

#-h- number          1017  asc  22-jul-83 17:07:27  sventek (joseph sventek)


    Number (1)                 21-Oct-81                      Number (1)


    NAME
        Number - number lines

    SYNOPSIS
        number [-f] [-z] [-i<n>] [-s<n>] [-d<n>] [-] file ...

    DESCRIPTION
        Number  copies  its input to STDOUT, adding line numbers to each
        line.  The options are:

          -     read input from STDIN. 

          -f    (Fortran) start numbers in column 73.  Default is 1. 
      The number of digits is set to 8 ("-d8"). 

          -z    zero-fill numbers. Default is blank-fill. 

          -i<n> set line number increment to <n>. 

          -s<n> start numbering with <n>. 

          -d<n>  make numbers <n> digits long. default is 7. 

    FILES
        none

    DIAGNOSTICS
        none

    AUTHORS
        Dave Martin (Hughes Aircraft)

    BUGS/DEFICIENCIES
        Tabs are assumed to be 8 spaces wide starting in column 9. 
        The -f option assumes lines are less than 73 columns long. 

















                                    -1-

#-h- objfix          1235  asc  22-jul-83 17:07:28  sventek (joseph sventek)


    Objfix (1)                 2-May-81                       Objfix (1)


    NAME
        Objfix - fixup object modules for building multi-user tasks

    SYNOPSIS
        objfix <input.obj >output.obj [psect_file] ...

    DESCRIPTION
        `objfix'  converts  one  object  module  to another, flagging as
        read-only those psects which have been specified  in  the  psect
        files  specified  in  the  command line.  Each psect name, along
        with its attributes,  is  displayed  on  error  output  as  each
        record is written to standard output. 

        The  format  of  the  psect files are quite simple: each line is
        taken to be the name of one psect to be flagged as read only. 

        `objfix' can be used to list the psects and their attributes  of
        an object file using the following command line:

                            objfix <object_file >nl:

        You  can  cause `objfix' to stop reporting the psect information
        by typing control-O (^O). 

    FILES
        None

    SEE ALSO
        mubld - build a multi-user task

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES















                                    -1-

#-h- os               989  asc  22-jul-83 17:07:30  sventek (joseph sventek)


    Os (1)                     16-Jan-79                          Os (1)


    NAME
        Os - convert backspaces into multiple lines for "printers"

    SYNOPSIS
        os [file] ...

    DESCRIPTION
        os  (overstrike)  looks  for  backspaces  in the files specified
        and  generates a sequence of print lines with  carriage  control
        codes to reproduce the effect of the backspaces. 
        
        If  no  files  are  given, or the filename '-' appears, input is
        taken from the standard input. 

    FILES

    SEE ALSO
        lpr - queue file to line printer
        ul - process overstrikes for "terminals"

    DIAGNOSTICS
        A message is printed if an input file cannot be opened;  further
        processing is terminated. 

    AUTHORS
        Original  from  Kernighan  &  Plauger's  'Software  Tools', with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES























                                    -1-

#-h- pack            1004  asc  22-jul-83 17:07:31  sventek (joseph sventek)


    Pack (1)                   29-Oct-80                        Pack (1)


    NAME
        Pack - pack words into columns

    SYNOPSIS
        pack [-n] [file] ...

    DESCRIPTION
        pack  takes  the words (groups of characters separated by blanks
        or tabs) found on the specified files (standard  input  if  none
        are  specified)  and outputs them to standard output in columns,
        16 spaces wide, ordered from  left  to  right.   The  characters
        used  to  achieve  the separation of columns are TAB characters,
        such that those terminals which support  hardware  tabs  can  be
        driven   efficiently.    By   default,   five  (5)  columns  are
        generated;  this   value   can   be   overridden   through   the
        specification of the -n switch, where n is a decimal number. 

    FILES

    SEE ALSO

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES

























                                    -1-

#-h- pl              1997  asc  22-jul-83 17:07:32  sventek (joseph sventek)


    Pl (1)                     18-Sep-79                          Pl (1)


    NAME
        Pl - print specified lines/pages in a file

    SYNOPSIS
        pl [-pn] numbers [file] ...

    DESCRIPTION
        pl  prints  the  specified lines from each of the named files on
        the standard output.  If no files are given, or if the name  "-"
        is specified, pl reads the standard input. 

        The  "numbers"  argument  is a list of line numbers separated by
        commas, e.g. 

           pl 4,5,26,55 foo bazrat

        prints lines 4, 5, 26, and 55 in file "foo" and  "bazrat".   The
        line  numbers may be given in any order.  Repeated numbers cause
        the specified lines to be printed once for  each  occurrence  of
        the  line  number.   Line  number ranges can also be given, e.g.
        4-15. 

        The "-p" option causes pl to print pages instead of  lines,  and
        the  numbers  refer  to page numbers.  If an integer follows the
        "-p", it  is  taken  as  the  page  size;  the  default  is  23.
        Repeated  numbers  cause  the specified pages to be printed once
        for each occurrence of the page number. 

    DIAGNOSTICS
        bad page size
             Invalid page size specified after '-p' flag
        bad number
             Invalid number given as argument
        bad range
             Invalid range given as argument
        too many numbers
             Number of  lines/pages  specified  overflowed  the  buffer.
             Maximum  number  of  lines  is  determined  by the MAXLINES
             definition in the source code. 
        ignoring invalid argument
             An invalid flag was specified.   Processing continues. 

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES
        There is a limit to the size of pages  which  can  be  buffered.
        This is set by the MAXBUF definition in the source code. 




                                    -1-

#-h- pr              1545  asc  22-jul-83 17:07:34  sventek (joseph sventek)


    Pr (1)                     15-Jan-77                          Pr (1)


    NAME
        Pr - paginate files to standard output

    SYNOPSIS
        pr [-l<n>] [file] ...

    DESCRIPTION
        pr  paginates  the named files to standard output.  Each file is
        printed as a sequence of pages.  Each page  is  60  lines  long,
        including  a 3-line header and no footer. This gives 57 lines of
        text. The default format matches the  printer  control  used  on
        most   line  printers.   The  header  includes  the  file  name,
        possibly the date, and the page number. 
        
        If the file '-' is specified, or no file names  are  given,  the
        standard input is read. 
        
        Option flags include:
              -l<n>   Sets  the  page  length  to  '<n>'.   Default page
                   length is 60. 

    SEE ALSO
        os, detab, mcol, format, cat

    DIAGNOSTICS
        ignoring invalid argument
           An option flag was specified which pr did not understand
           
        A message is printed if an input file could not be opened

    AUTHORS
        Original from the Kernighan-Plauger 'Software Tools' book,  with
        modifications  by  David  Hanson and friends (U. of Arizona) and
        Debbie Scherrer (LBL)

    BUGS/DEFICIENCIES
        The header and trailer spacing  can  be  modified  by  adjusting
        the   MARGIN1,  MARGIN2,  and  BMARGIN definitions in the source
        code. 













                                    -1-

#-h- prd              893  asc  22-jul-83 17:07:35  sventek (joseph sventek)


    Prd (1)                    12-Mar-82                         Prd (1)


    NAME
        Prd - print current working directory in alpha-numeric mode

    SYNOPSIS
        prd [-l]

    DESCRIPTION
        `prd'  displays  the  current  working  disk  and  directory  on
        standard output.  If the current directory has an  alpha-numeric
        alias  created  by  `mkd', that name is displayed instead of the
        UIC.  If the `-l' option is specified, the output  is  formatted
        as ddn:[name] instead of the default /ddn/name. 

    FILES
        sy:[0,377]*.dir

    SEE ALSO
        mkd - make an alpha-numeric directory
        lsd - list alpha-numeric directories
        pwd - print current working directory

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        























                                    -1-

#-h- printf          3717  asc  22-jul-83 17:07:37  sventek (joseph sventek)


    Printf (1)                 27-Nov-82                      Printf (1)


    NAME
        Printf - justify fields of data in fixed-width fields

    SYNOPSIS
        printf [-t[c] | fieldlist] outputformat [file] ...

    DESCRIPTION
        printf  is used to manipulate data kept in formatted fields.  It
        selects data from certain fields of the input files  and  copies
        it  into fixed-width fields, with justification, in the standard
        output. 
        
        The 'fieldlist' parameter is used to  describe  the  interesting
        columns  on  the input file.  Fields are specified by naming the
        columns in which they occur (e.g. 5-10) or the columns in  which
        they  start and an indication of their length (e.g. 3+2, meaning
        a field which starts in column 3 and  spans  2  columns).   When
        specifying  more  than one field, separate the specs with commas
        (e.g. 5-10,16,72+8) Fields may  overlap,  and  need  not  be  in
        ascending numerical order (e.g. 1-25,10,3 is OK). 
        
        If  input  fields do not fall in certain columns, but rather are
        separated by some character  (such  as  a  blank  or  a  comma),
        describe  the fields by using the '-tc' flag, replacing 'c' with
        the appropriate separator (a tab character is the default). 
        
        Once fields have been described with either the '-tc' flag or  a
        fieldlist,  they can be arranged on output by the 'outputformat'
        argument.  This argument is  actually  a  picture  of  what  the
        output  line  should  look  like.   Fields  from  the  input are
        referred to as "%[-][n]s", with the following meanings  for  the
        optional characters:
        
         n The  next  input  field  is  to  be  output  in  a  field `n'
           characters wide, right justified in the field. 
           
         - The input field is to be  left  justified  in  the  specified
           field. 
           
        If  a  percent  character  is  to be output, it can be specified
        either as  %%  or  as  @%.   A  percent  character  followed  by
        anything  other  than  %  or  [-][n]s  is  a syntax error in the
        outputformat argument.  For example, an outputformat of:
                          "%-10s is equivalent to %s"
        would produce an output line such as:
                       field1     is equivalent to field2
        
        If no input files are specified,  or  if  the  filename  '-'  is
        found, field will read from the standard input. 
        


                                    -1-


    Printf (1)                 27-Nov-82                      Printf (1)


        If  re-ordering  of  a set of fields before output is necessary,
        the `field' tool can be used prior to `printf':
        
        field "$3@t$2@t$1" | printf "%-15s | %-15s | %s" >outfile

    DIAGNOSTICS
        Field specification error. 
             The fieldlist specification was in error, probably  because
             it contained letters or some other illegal characters

        Incorrectly formatted string. 
             The   outputformat  specification  contains  an  illegal  %
             contruct. 

        Too many fields for internal storage. 
             The   fieldlist   specification   or    the    outputformat
             specification   provides  for  more  fields  than  internal
             storage can handle.  The program can be recompiled  with  a
             larger value for the symbol MAXFIELDS. 

    SEE ALSO
        sedit(1), field(1)

    AUTHORS
        Joe Sventek



























                                    -2-

#-h- prlabl          1394  asc  22-jul-83 17:07:39  sventek (joseph sventek)


    Prlabl (1)                 11-Mar-82                      Prlabl (1)


    NAME
        Prlabl - format labels for printing

    SYNOPSIS
        prlabl [-width] <label_file

    DESCRIPTION
        `prlabl'  formats  addresses  (or other block data) for printing
        on sticky label forms.  The default behavior assumes  that  each
        label  is  9 lines wide, which corresponds to 1.5 inch labels on
        a 6 pitch printer  or  terminal.   If  the  `-width'  option  is
        specified,  `width'  is  taken  to  be  the  number of lines per
        label.  The code forces a blank line  on  either  side  of  each
        block  of  data, thus limiting the data blocks to ({width | 9} -
        2) lines.  If a particular data block contains  more  than  this
        limit,  the  extra  lines are discarded.  The data block will be
        centered in the window. 

        The format of the address files is quite simple: all  contiguous
        non-blank  lines  between  blank  lines  are considered a single
        block.  Any lines in the block which start  with  the  character
        '#'  are  considered to be comments, and excluded from the block
        when printing. 

    FILES
        

    SEE ALSO
        

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        














                                    -1-

#-h- pwd              808  asc  22-jul-83 17:07:40  sventek (joseph sventek)


    Pwd (1)                    12-Aug-81                         Pwd (1)


    NAME
        Pwd - print working directory name on standard output

    SYNOPSIS
        pwd [-l]

    DESCRIPTION
        pwd  prints  the  pathname  of  the  working  (current  default)
        directory.  If the -l switch is  present,  the  current  working
        directory  is printed out in the local parlance.  This path name
        is of the form

        /device/directory

        For example,

                                   /u/usrlib

        is equivalent to

                                   u:[usrlib]

        on VMS


    SEE ALSO
        cd - change working directory

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES


















                                    -1-

#-h- rar             1553  asc  22-jul-83 17:07:41  sventek (joseph sventek)


    Rar (1)                    2-May-81                          Rar (1)


    NAME
        Rar - rearrange archive

    SYNOPSIS
        rar [-cv] archive

    DESCRIPTION
        `rar'  permits  the  rearrangement of the modules of an archive,
        `archive'.  `rar'  opens  `archive'  and  notes  the  names  and
        starting  address  of  each  module.  It then reads the names of
        modules  from  standard  input  and  outputs  each   module   so
        indicated   to  standard  output.   Upon  detecting  an  EOF  on
        standard input, any modules not yet output are  written  out  in
        the order found in the original archive. 

        Switches:

          -c Suppresses  the  output  of  modules  not  specified on the
             standard input.  This  permits  the  selection  of  only  a
             subset of the original archive's modules. 
             
          -v Print  the name of each module on error output after it has
             been successfully output to the standard output. 

        Example of use:

             Suppose that you wish to create a new version (newarch)  of
             an  archive  (oldarch)  with  all  of the modules sorted by
             name.  The following shell command will suffice:
             
             ar t oldarch | sort | rar -v oldarch >newarch
             

    FILES
        none

    SEE ALSO
        ar - archive file maintainer

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES







                                    -1-

#-h- ratfor         32333  asc  22-jul-83 17:07:48  sventek (joseph sventek)


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


    NAME
        Ratfor - RatFor preprocessor

    SYNOPSIS
        ratp1 [-n] [file] ... | ratp2 >outfile

        ratfor [-n] [file] ... >outfile

        rat77 [-n] [file] ... >outfile

    DESCRIPTION
        Ratfor  translates  the  ratfor programs in the named files into
        Fortran.  If no input files  are  given,  or  the  filename  '-'
        appears, the standard input will be read. 
        
        Unless  the  '-n'  flag  has  been  specified, a file containing
        general purpose  software  tools  definitions  (e.g.  EOF,  EOS,
        etc.)  will  be automatically opened and processed before any of
        the files specified are read. 


        Syntax:
        
        Ratfor has the following syntax:
           prog:   stmt
                   prog stmt
           stmt:   if (expr) stmt
                   if (expr) stmt else stmt
                   while (expr) stmt
                   repeat stmt
                   repeat stmt until (expr)
                   for (init clause; test expr; incr clause) stmt
                   do expr stmt
                   do n expr stmt
                   break
                   break n
                   next
                   next n
                   return (expr)
                   switch (expr) {
                     case expr: stmt
                     ...
                     default: stmt
                     }
                   digits stmt
                   { prog }  or  [ prog ]
                   other
           other:  anything unrecognizable (i.e. fortran)
           clause: other
                   clause, other


                                    -1-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        
        where 'stmt' is any Fortran or Ratfor  statement.   A  statement
        is terminated by an end-of-line or a semicolon. 

        Character Translation:

        The following character translations are performed:
             <       .lt.
             <=      .le.
             ==      .eq.
             !=      .ne.         ^=      .ne.         ~=      .ne.
             >=      .ge.
             >       .gt.
             |       .or.
             &       .and.
             !       .not.        ^       .not.        ~       .not.


        Included files:
        
        The statement
        
                       include file        or
                       include "file"
        
        will  insert  the contents of the specified file into the ratfor
        input  in  place  of  the  'include'  statement.   Quotes   must
        surround  the  file  name  if  it contains characters other than
        alphanumerics or underscores. 


        Macro Definitions:
        
        The statement
        
                       define(name,replacement text)
        
        defines 'name' as a  macro  which  will  be  replaced  with  the
        indicated  text  when  encountered  in  the  source  files.  Any
        occurrences of the strings '$n' in the replacement  text,  where
        1  <=  n  <=  9, will be replaced with the nth argument when the
        macro is actually invoked.  For example:
        
                       define(bump, $1 = $1 + 1)
        
        will cause the source line
        
                       bump(i)
        
        to be expanded into


                                    -2-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        
                       i = i + 1
        
        The names of macros may contain letters,  digits  and  underline
        characters,  but  must  start  with a letter.  Upper case is not
        equivalent to lower case in macro names. 
        
        The replacement text is copied directly into  the  lookup  table
        with  no  intepretation of the arguments, which differs from the
        procedure  used  in   the   macro   utility.    This   "deferred
        evaluation"   has   the  effect  of  eliminating  the  need  for
        bracketing strings to  get  them  through  the  macro  processor
        unchanged.   A  side  effect  of the deferred evaluation is that
        defined names cannot be forced through the processor - i.e.  the
        string  "define"  will  never  be  output from the preprocessor.
        The inequivalence of upper and lower case in macro names may  be
        used  in  this  case  to  force the name of a user defined macro
        onto the output - i.e. if the user has  defined  a  macro  named
        mymac,  the replacement text may contain the string MYMAC, which
        is not defined, and will pass through the processor. 
        
        (For compatibility, an "mdefine" macro call  has  been  included
        which  interprets  definitions before stacking them, as does the
        macro tool.  When using this  version,  use  "$("  and  "$)"  to
        indicate  deferred  evaluation, rather than the "[" and "]" used
        by the macro tool.)
        
        In  addition  to  define,  several  other  built-in  macros  are
        provided:
        
         arith(x,op,y)   performs  the "integer" arithmetic specified by
                         op (+,-,*,/,**) on  the  two  numeric  operands
                         and returns the result as its replacement. 
         incr(x)         converts  the string x to a number, adds one to
                         it, and returns the value  as  its  replacement
                         (as a character string). 
         ifelse(a,b,c,d) compares  a and b as character strings; if they
                         are the same, c is pushed back onto the  input,
                         else d is pushed back. 
         substr(s,m,n)   produces  the  substring  of  s which starts at
                         position m (with origin one), of length n.   If
                         n  is  omitted  or  too  big,  the  rest of the
                         string is used, while if m is out of range  the
                         result is a null string. 
         lentok(str)     pushes   the  length  of  the  argument  (#  of
                         characters)  onto  the  input  as  a  character
                         string. 
         undefine(sym)   removes  the  definition  for the symbol `sym',
                         if it is defined. 
        


                                    -3-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        Note: the statement
        
                       define name text
        
        may also be used, but will  not  always  perform  correctly  for
        macros  with  parameters  or  multi-line  replacement text.  The
        functional form is preferred. 
        
        
        Conditional Preprocessing:
        
        The statements
        
                  ifdef(macro)                      ifnotdef(macro)
                        .                                   .
                        .                                   .
                        .                                   .
                  elsedef                           elsedef
                        .                                   .
                        .                                   .
                        .                                   .
                  enddef                            enddef
        
        conditionalize the preprocessing  upon  whether  the  macro  has
        been  previously  defined or not.  The `elsedef' portions of the
        conditionals  may  be  omitted,  if  desired.   The  conditional
        bodies may be nested, up to 10 levels deep. 
        
        
        String Declarations:
        
        The statements
        
                  string name "character string"          or
                  string name(size) "character string"
                  
        declare   'name'   to  be  a  character  array  long  enough  to
        accomodate the ascii codes for the given character  string,  one
        per   array   element.    The  array  is  then  filled  by  data
        statements.  The last word  of  'name'  is  initialized  to  the
        symbolic  parameter EOS, and indicates the end of a string.  EOS
        must be defined either in the standard definitions  file  or  by
        the  user.   If  a  size  is  given,  name  is  declared to be a
        character  array  of  'size'  elements.    The   normal   escape
        sequences  are  supported  in  strings;  in addition, to embed a
        quote (") in the string, one must type @". 






                                    -4-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)




        String Literals:
        
        The  processing  of  in-line  quoted  strings  ("..."  appearing
        outside  of  the  scope  of a `string' declaration) is dependent
        upon which version of the processor you are using:

        ratfor "str" is converted to 3Hstr.  This  action  is  identical
               to previous versions of the pre-processor. 

         ratp1 "str"  is  converted  to an appropriate declaration for a
               `character' array, and the  appropriate  data  statements
               are  output.   The  variable  name  will  be  of the form
               STNNNZ, where NNN is  replaced  by  a  rotating  sequence
               number.   The array will be declared long enough to place
               the value of EOS in the last element,  just  as  for  the
               `string'   declaration.   Since  these  declarations  are
               output immediately, the resulting FORTRAN  code  must  be
               run  through  the program `ratp2', which will reorder the
               code to be ANSI-66 compliant. 

         rat77 "str" is converted to the FORTRAN-77 constant 'str'.   It
               is  expected  that  this version of the preprocessor will
               NOT automatically load the standard  symbols  file,  thus
               permitting the use of `rat77' to preprocess F77 code. 

        Regardless   of   the  version  used,  string  literals  can  be
        continued across line  boundaries  by  ending  the  line  to  be
        continued  with  an underline.  The underline is not included as
        part of the literal.  Leading blanks and tabs on the  next  line
        are  ignored.   If  a quote (") is to be embedded in the string,
        it must be escaped, as in

                           "a quote (@") in a string"

        In addition, the normal escape sequences are  supported  in  the
        `ratp1' version. 


        Character Literals:
        
        Character  constants  of  the  form  'c'  are  converted  to the
        decimal integer representation of that character  in  the  ASCII
        character set.  For example:
        
             call putc('!')
             
        would become
             


                                    -5-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


             call putc(33)

        The   normal   escape  characters  are  supported  as  character
        constants.  For example

             '@n'

        is a NEWLINE (10). 

        Note that this capability pre-empts the use of  apostrophes  for
        delimiting  string  literals.   Attempts to pre-process programs
        utilitizing  apostrophes  for  string  literals  will   generate
        syntax errors of the form:

                    missing apostrophe in character literal

        An  utility  `ratfix'  is  available for quickly correcting such
        code. 


        Integer Constants:
        
        Integer constants in bases other than decimal may  be  specified
        as  n%dddd...  where 'n' is a decimal number indicating the base
        and 'dddd...' are digits in that base.  For bases > 10,  letters
        are  used  for  digits  above 9.  Examples include:  8%77 (=63),
        16%2ff (=767), 2%0010011 (=19).  The number is converted to  the
        equivalent  decimal  value  using multiplication; this may cause
        sign problems if the number has too many digits. 


        Lines and Continuation:
        
        Input is free-format; that is, statements  may  appear  anywhere
        on  a  line, and the end of the line is generally considered the
        end  of  the  statement.   However,  lines  ending  in   special
        characters  such  as  comma,  +,  -,  and  *  are  assumed to be
        continued on the next  line.   An  exception  to  this  rule  is
        within  a  condition; the line is assumed to be continued if the
        condition does not fit on one line.   Explicit  continuation  is
        indicated  by  ending  a  line  with an underline character (_).
        The underline character is not copied to the output file. 


        Comments:
        
        Comments are preceded by '#' signs and may  appear  anywhere  in
        the code. 




                                    -6-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        Literal (unprocessed) Lines:
        
        Lines  can  be  passed through ratfor without being processed by
        putting a percent "%" as the first character on the  line.   The
        percent  will  be  removed  and the line shifted one position to
        the left, but otherwise will be output  without  change.   Macro
        invocations,  long  names,  etc., appearing in the line will not
        be processed. 


        Literal (unprocessed) Character Sequences:
        
        Sequences of characters can be  passed  through  the  processor,
        thus  avoiding  processing,  by surrounding then with the tokens
        %(...%).  The surrounding %[()] tokens will be removed  and  the
        character   sequence  will  be  output  without  change.   Macro
        invocations,  long  names,  etc.  appearing  in  the   character
        sequence will NOT be processed. 


        Long Variable Name Processing:

        An  optional  capability  available  in the pre-processor, which
        may be enabled by your local tools support  individual,  is  the
        capability  of  converting long variable names (those consisting
        of more than 6 alpha-numerics, embedded  underscores,  or  both)
        to  6  character  ANSI-66  compliant  variable  names.   If this
        option is available, and has been used in a pre-processing  run,
        a  sequence  of FORTRAN comment statements are output at the end
        of the generated FORTRAN code, with the mapping  of  long  names
        to generated names. 

        It  should  be  noted  that  this  mapping  is not deterministic
        across separate compilations; as such,  if  `get_next_input'  is
        compiled   and  placed  in  a  library,  source  invocations  of
        `get_next_input' would not map into  the  identical  6-character
        name.   To  permit users to preload the long name table with the
        names of external  routines,  the  `linkage'  statement  may  be
        used:

                        linkage long_name external_name

        The  pair  of  names  is  entered  into  the table of known long
        variable names, preventing any generated names  for  local  long
        variables   from   colliding   with   the  external  name.   The
        programmer must provide accurate information via this  statement
        to  permit  access to routines with "long variable names" across
        compilations. 

        If long variable name processing has not been enabled  for  your


                                    -7-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        site, linkage is synonymous with define. 

        NOTE:  since  long variable name processing is optional, its use
        will generate code that is inherently non-portable to sites  not
        desiring  this capability.  Users wishing to write portable code
        should avoid long variable names. 




    CHANGES
        This ratfor preprocessor differs from the original (as  released
        by Kernighan and Plauger) in the following ways:
        
        The code has been rewritten and reorganized. 
        
        Hash   tables  have  been  added  for  increased  efficiency  in
        searching for macro definitions and Ratfor keywords. 
        
        The 'string' declaration has been included. 
        
        The define processor has been augmented to support  macros  with
        arguments. 
        
        Conditional  preprocessing  upon the definition (or lack therof)
        of a symbol has been included. 
        
        Many extraneous gotos have been avoided. 
        
        Blanks  have  been  included  in  the   output   for   increased
        readability. 
        
        Multi-level 'break' and 'next' statements have been included. 
        
        The Fortran 'DO' is allowed, as well as the ratfor one. 
        
        The  capability  of  specifying integer constants in bases other
        than decimal has been added. 
        
        Underscores have been allowed in names. 
        
        The 'define' syntax has  been  expanded  to  include  the  form:
        define name value
        
        The 'return(value)' feature has been added. 
        
        Quoted  file  names  following  'include'  statements  have been
        added to allow for special characters in file names. 
        
        A method for allowing lines to  pass  through  un-processed  has


                                    -8-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        been added. 
        
        The 'switch' control statement has been included. 
        
        Continuation lines have been implemented. 
        
        Brackets  have  been allowed to replace braces (but NOT '$(' and
        '$)' )
        
        Character constants are now supported. 
        
        Groups of FORTRAN statements  are  permitted  in  the  init  and
        re-init clauses of the for statement. 
        
        A  method  for  allowing  character  sequences  to  pass through
        un-processed has been added. 
        
        An `undefine' command  has  been  added  to  permit  removal  of
        symbol definitions. 
        
        Three  types  of  literal  character  string  processing are now
        possible.  The default action permanently eliminates  the  usage
        of Hollerith constants in portable tools. 
        
        Long   variable  names  processing  can  now  be  enabled  as  a
        site-dependent option. 
        

    FILES
        A generalized definition file (e.g. 'ratdef')  is  automatically
        opened and read. 

    SEE ALSO
        Kernighan and Plauger's "Software Tools"
        Kernighan's "RATFOR - A Preprocessor for a Rational Fortran"
        The Unix command rc in the Unix Manual
        The tools 'incl' and 'macro'

    DIAGNOSTICS
        (The  errors  marked with asterisk '*' are fatal; all others are
        simply warning messages.)

        * arg stack overflow
             The  argument  stack  for  the  macro  processor  has  been
             exceeded.   The  size  of  the  stack  is determined by the
             symbol ARGSIZE in the source definitions file. 
        o arith error
             An error occurred  while  evaluating  the  built-in  macro,
             `arith'. 
        * buffer overflow


                                    -9-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


             One  of  the  preprocessor's  internal  buffers overflowed,
             possibly, but not necessarily, because the  string  buffers
             were    exceeded.    The   definition   SBUFSIZE   in   the
             preprocessor  symbols  file  determines  the  size  of  the
             string buffers. 
        * call stack overflow
             The  call  stack  (used  to store call frames) in the macro
             processor has been exceeded.  The  definition  CALLSIZE  in
             the  source  definition  file  determines  the size of this
             stack. 
        * cannot make identifier unique
             All attempts to generate an unique short variable name  for
             the  long  variable  name  being  processed  failed.   This
             message will  only  be  seen  if  the  long  variable  name
             processing has been enabled. 
        o cannot open standard definitions file
             The   special   file   containing  general  purpose  ratfor
             definitions could not be opened, possibly  because  it  did
             not  exist or the user did not have access to the directory
             on which it resides. 
        o can't open include
             File to be included could not be located, the user did  not
             have  privilege  to  access  it,  or  the file could not be
             opened due to some problem in the local primitives. 
        o conditional processing still active at EOF
             A sufficient number of "enddef" directives  have  not  been
             encountered before detecting EOF on the input file. 
        * Conditionals nested too deeply
             The  stack  for  nested  conditionals  has overflowed.  The
             size  of  the  stack  is  specified   by   the   value   of
             COND_STACK_DEPTH   defined   in  the  preprocessor  symbols
             file. 
        * definition too long
             The  number  of  characters  in  the  name  to  be  defined
             exceeded   Ratfor's  internal  array  size.   The  size  is
             defined  by  the  MAXTOK  definition  in  the  preprocessor
             symbols file. 
        o duplicate case label
             Two case labels with identical values were detected. 
        * EOF in string
             The  macro  processor  detected an EOF in the current input
             file while evaluating a macro. 
        * evaluation stack overflow
             The evaluation stack  for  the  macro  processor  has  been
             exceeded.   This  stack's  size is determined by the symbol
             EVALSIZE in the source definition file. 
        * for clause too long
             The internal buffer used to hold the clauses for the  'for'
             statement  was exceeded.  Size of this buffer is determined
             by the MAXFORSTK definition  in  the  preprocessor  symbols


                                    -10-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


             file. 
        * getdef is confused
             There  were  horrendous  problems when attempting to access
             the definition table
        o illegal break
             Break did not occur  inside  a  valid  "while",  "for",  or
             "repeat" loop
        o illegal case or default
             A  "case" or "default" statement was detected which was not
             in the scope of a "switch" statement. 
        o illegal case syntax
             The case label  was  not  of  the  correct  form.   It  may
             consist   of   comma-separated   constants   or  ranges  of
             constants. 
        o illegal else
             Else clause probably did not follow an "if" clause
        * Illegal enddef encountered
             An "enddef" directive  was  encountered  while  conditional
             preprocessing was inactive. 
        o illegal next
             "Next"  did  not  occur  inside  a valid "for", "while", or
             "repeat" loop
        o illegal range in case label
             A case label specifying a range  of  values  (of  the  form
             m-n) was detected in which m > n. 
        o illegal right brace
             A right brace was found without a matching left brace
        o in entdef: no room for new definition
             There  is  insufficient  memory for macro definitions, etc.
             Increase the MEMSIZE definition in the preprocessor. 
        o includes nested too deeply
             There is a limit  to  the  level  of  nesting  of  included
             files.   It  is dependent upon the maximum number of opened
             files  allowed  at  a  time,  and  is  set  by  the  NFILES
             definition in the preprocessor symbols file. 
        o invalid case label
             The  upper  limit  of  a  case label specifying a range was
             non-numeric. 
        * invalid conditional token
             The  token  given  as  the  argument  to  an   "ifdef"   or
             "ifnotdef" directive was not alpha-numeric. 
        o invalid for clause
             The  "for"  clause did not contain a valid init, condition,
             and/or increment section
        o invalid string size
             The string format 'string name(size) "..."' was  used,  but
             the size was given improperly. 
        * missing `(' in conditional
             The   first   non-blank   token  following  an  "ifdef"  or
             "ifnotdef" directive was NOT a left parenthesis. 


                                    -11-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        * missing `)' in conditional
             An  "ifdef"  of  "ifnotdef"  directive  was  not   properly
             terminated with a right parenthesis. 
        * missing `)' in define
             A  define(...)  was  not  properly  terminated with a right
             parenthesis. 
        * missing `(' in undefine
             The first non-blank token following an "undefine"  was  NOT
             a left parenthesis. 
        * missing `)' in undefine
             An  "undefine" directive was not properly terminated with a
             right parenthesis. 
        o missing apostrophe in character literal
             An apostrophe-delimited string NOT of the form 'c' or  '@c'
             was encountered. 
        * missing colon in case or default label
             The  list  of  case  labels,  or the default label were not
             followed by a colon. 
        * missing comma in define
             Definitions of the form  'define(name,defn)'  must  include
             the comma as a separator. 
        o missing function name
             There was an error in declaring a function
        o missing left brace in switch statement
             The  left  brace  indicating the start of the block of case
             labels for the "switch" statement was not encountered. 
        o missing left paren
             A parenthesis was expected, probably in an "if"  statement,
             but not found
        o missing literal quote
             The  terminating  "%)" to a literally quoted string was not
             found. 
        o missing parenthesis in condition
             A right parenthesis  was  expected,  probably  in  an  "if"
             statement, but not found
        o missing quote
             A quoted string was not terminated by a quote
        o missing right paren
             A  right  parenthesis was expected in a Fortran (as opposed
             to Ratfor) statement but not found
        o missing string token
             No array name was given when declaring a string variable
        * multiple defaults in switch statement
             More than one "default" statements  were  detected  in  the
             scope of a single "switch" statement. 
        o No room for generated variable name
             The  table space used for generated long variable names has
             been exhausted.  Increase the  MEMSIZE  definition  in  the
             preprocessor.   This  message cannot appear unless the long
             variable name processing has been enabled. 


                                    -12-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


        o No room for linkage external name
             The table space used for generated external names has  been
             exhausted.    Increase   the   MEMSIZE  definition  in  the
             preprocessor.  This message cannot appear unless  the  long
             variable name processing has been enabled. 
        * non-alphanumeric name
             Definitions  may  contain  only alphanumeric characters and
             underscores. 
        * stack overflow in parser
             Statements were nested at too  deep  a  level.   The  stack
             depth   is   set   by   the   MAXSTACK  definition  in  the
             preprocessor symbols file. 
        * switch table overflow
             More case labels were specified than the  internal  storage
             can   handle.    The   size  of  the  internal  storage  is
             determined  by  the  value  of  MAXSWITCH  defined  in  the
             preprocessor symbols file. 
        o token too long
             A  token (word) in the source code was too long to fit into
             one of Ratfor's internal arrays.  The maximum size  is  set
             by  the  MAXTOK  definition  in  the  preprocessor  symbols
             file. 
        * too many characters pushed back
             The source code has illegally specified a  Ratfor  command,
             or  has used a Ratfor keyword in an illegal manner, and the
             parser has attempted but failed to make sense  out  of  it.
             The  size  of the push-back buffer is set by BUFSIZE in the
             preprocessor symbols file. 
        o unbalanced parentheses
             Unbalanced parentheses detected in a  Fortran  (as  opposed
             to Ratfor) statement
        o unexpected EOF
             An  end-of-file  was  reached  before  all  braces had been
             accounted for.  This is usually caused by unmatched  braces
             somewhere deep in the source code. 
        o warning:  possible label conflict
             This  message  is  printed  when  the  user  has  labeled a
             statement with a label in the  23000-23999  range.   Ratfor
             statements  are  assigned  in this range and a user-defined
             one may conflict with a Ratfor-generated one. 
        * "file":  cannot open
             Ratfor could not open an input file specified by  the  user
             on the command line. 

    AUTHORS
        Original  by  B.  Kernighan and P. J. Plauger, with rewrites and
        enhancements by David Hanson and friends (U.  of  Arizona),  Joe
        Sventek  and Debbie Scherrer (Lawrence Berkeley Laboratory), and
        Allen Akin (Georgia Institute of Technology). 



                                    -13-


    Ratfor (1)                 21-Dec-81                      Ratfor (1)


    BUGS/DEFICIENCIES
        Missing  parentheses  or  braces  may  cause  erratic  behavior.
        Eventually     Ratfor    should    be    taught   to   terminate
        parenthesis/brace checking at the end of each subroutine. 

        Although one bug was fixed which caused line  numbers  in  error
        messages  to  be  incorrect,  they  still  aren't  quite  right.
        (newlines in macro text are difficult to handle properly).   Use
        them only as a general area in which to look for errors. 

        Extraneous  'continue'  statements  are generated within Fortran
        'do' statements.  The 'next' statement does  not  work  properly
        when used within Fortran 'do' statements. 

        There  is  no  way  to  explicitly cause a statement to begin in
        column  6  (i.e.  a  Fortran  continued   statement),   although
        implicit continuation is performed. 

        Ratfor  is  very  slow,  principally  in  the  lexical analysis,
        character  input,  and  macro  processing  routines   (in   that
        order).   Attempts  to  speed  it  up  should concentrate on the
        routines  'gtok',  'ngetch',  and  'deftok'.   An  even   better
        approach  would  be  to  re-work the lexical analyzer and parser
        completely. 




























                                    -14-

#-h- ratp2            827  asc  22-jul-83 17:07:58  sventek (joseph sventek)


    Ratp2 (1)                  10-May-83                       Ratp2 (1)


    NAME
        Ratp2 - Ratfor second pass processor

    SYNOPSIS
        ratp2 [file] ... >outfile

    DESCRIPTION
        `ratp2'  is  the  second  pass  of  the new pre-processor.  It's
        function is to re-order the output  of  the  first  pass  to  be
        ANSI-66  compliant.   It's input is simply FORTRAN code, and all
        statements between successive  END  statements  are  re-ordered.
        If  filename  arguments are not provided, it reads from standard
        input. 

    SEE ALSO
        ratfor,  the  ratfor  preprocessor,  for  descriptions  of   the
        language. 

    AUTHORS
        Phil Scherrer wrote ratp2. 

    BUGS/DEFICIENCIES






























                                    -1-

#-h- rc              2588  asc  21-oct-83 14:15:27  sventek (joseph sventek)


    Rc (1)                     13-Dec-82                          Rc (1)


    NAME
        Rc - RatFor compiler

    SYNOPSIS
        rc [-cdfmorv] file ...

    DESCRIPTION
        rc  is  the  ratfor compiler.  It accepts the following types of
        arguments:
        
        1. Files whose names end  in  '.r'  are  assumed  to  be  ratfor
           source  programs;  they  are  preprocessed  into  fortran and
           compiled.  The preprocessed file  for  name.r  is  placed  on
           name.f  and  the  compiled  object  code appears on name.obj.
           The name.f file  is  removed  unless  -f  is  specified  (see
           below). 
           
        2. The flags which affect the actions of the compiler are:
           
           -c suppress  the  loading phase, as does any preprocessing or
              compilation error
              
           -d do whatever is necessary to prepare the fortran files  for
              the  system  debugger.  In addition, pass the -d on to fc.
              The -d implies -f also. 
              
           -f save fortran intermediate  files;  usually  for  debugging
              purposes
              
           -m passed  on  to  fc  and  ld.   Produce  a load map of some
              sort. 
              
           -o generates fortran listing for name.f on name.l
              
           -r ratfor only; don't compile fortran; implies -f and -c
              
           -v verbose option; prints additional  information  about  the
              compilation process
              
        3. Files  whose  names  end  in  '.f'  are assumed to be fortran
           source programs,  and  are  compiled.   Other  arguments  are
           assumed  to  be  loader  flags,  or  object  files, typically
           created by an earlier rc or fc run.   These  files,  together
           with  the  results of any compilations, are loaded to produce
           an executable process. 
           

    SEE ALSO
        ratfor,  the  ratfor  preprocessor,  for  descriptions  of   the
        language   and   for  a  more  general  way  of  performing  the


                                    -1-


    Rc (1)                     13-Dec-82                          Rc (1)


        preprocessing. 
        fc, the fortran compiler
        ld, the loader, for loader flags and process naming conventions

    AUTHORS
        Joe Sventek wrote the interface of rc to ratfor, fc, and ld. 

    BUGS/DEFICIENCIES












































                                    -2-

#-h- rev              592  asc  22-jul-83 17:08:01  sventek (joseph sventek)


    Rev (1)                    11-Jul-79                         Rev (1)


    NAME
        Rev - reverse lines

    SYNOPSIS
        rev [file] ...

    DESCRIPTION
        Rev  copies  the  named  files to the standard output, reversing
        the order of the characters in every line. 
        
        If no files are given, or the filename  '-'  is  specified,  rev
        reads from the standard input. 

    AUTHORS
        David Hanson and friends (U. of Arizona)

    DIAGNOSTICS

    BUGS/DEFICIENCIES

































                                    -1-

#-h- rm              1206  asc  22-jul-83 17:08:03  sventek (joseph sventek)


    Rm (1)                     29-Oct-81                          Rm (1)


    NAME
        Rm - remove files

    SYNOPSIS
        rm [-fiv] [file] ...

    DESCRIPTION
        rm  removes  the  files  specified.   If  none are specified and
        standard input is not a terminal, `rm' reads the  names  of  the
        files to delete from the standard input.  The options are:

             -v (verbose) display each file's name as it is deleted

             -f (force) attempt deletion regardless of protection

             -i (interactive)  prompt  for  confirmation before deleting
                unless the "-f" option is in effect. 

        If a file is protected from delete access, you are asked if  you
        want  to  try anyway.  If you respond with a "y", rm will try to
        unprotect the file and then delete it. 

    FILES

    SEE ALSO
        The Unix command 'rm'

    DIAGNOSTICS
        A message is printed if the file could not be removed. 

    AUTHORS
        Joe Sventek (DEC machines); Debbie Scherrer (CDC  machines)  The
        "-f" and "-i" options were added by Dave Martin. 

    BUGS/DEFICIENCIES

















                                    -1-

#-h- ruler            747  asc  22-jul-83 17:08:04  sventek (joseph sventek)


    Ruler (1)                  29-Oct-80                       Ruler (1)


    NAME
        Ruler - display ruler on terminal screen

    SYNOPSIS
        ruler [n]

    DESCRIPTION
        ruler  displays  a  ruler  on  the terminal.  This is especially
        useful  when  using  field  or  other  utilities  which  require
        knowledge  of  the  column  positions of portions of the screen.
        The optional numeric argument  indicates  how  many  columns  to
        format in the ruler. 

    FILES

    SEE ALSO
        field - utility for field manipulation
        sort - file sorter

    DIAGNOSTICS

    AUTHORS
        Dave Martin

    BUGS/DEFICIENCIES



























                                    -1-

#-h- sched           1108  asc  22-jul-83 17:08:05  sventek (joseph sventek)


    Sched (1)                  29-Oct-80                       Sched (1)


    NAME
        Sched - a way to repetitively invoke a command

    SYNOPSIS
        sched [-r<repetitions>] [-t<seconds>] "shell command"

    DESCRIPTION
        sched  causes  the  command  typed  in quotes to be repetitively
        invoked.  The defaults are to invoke the command  once,  and  to
        wait  1  second  before  each invocation.  This utility is quite
        nice for statistics gathering, since sched may  be  run  in  the
        background,  with  the  diagnostic output being appended to some
        log file.  For example:
        
                   % sched -r144 -t600 "who | lcnt >>usrcnt"
        
        would generate a log of the number of users on  the  system  for
        one  day, running at 10-minute intervals.  The resulting list of
        numbers could then be fed to a  suitable  analysis  or  plotting
        program. 

    FILES

    SEE ALSO

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES





















                                    -1-

#-h- sedit           7084  asc  26-jul-83 22:23:15  sventek (joseph sventek)


    Sedit (1)                  26-Jul-83                       Sedit (1)


    NAME
        Sedit - stream editor

    SYNOPSIS
        sedit [-n]  [[-e] command] ... [-f commandfile] ... [file] ...

    DESCRIPTION
        sedit  copies the input files (default is standard input) to the
        standard output, performing one or more  editing  commands  (see
        'ed') on each line. 

        The  -n  flag  indicates  that  only  lines  that are explicitly
        printed by 'p'  commands  are  to  be  copied  to  the  standard
        output.   Double  copies of some lines will be output if the 'p'
        command is used without  specifying the -n flag. 

        The -e  flag  indicates  that  the  next  argument  is  a  sedit
        command. 

        The  -f  flag  indicates that the next argument is the name of a
        file in which sedit commands appear one per line. 

        The -e and -f arguments may be intermixed  in  any  order.   The
        order  of  command  execution is the order in which commands are
        read. 

        If no -e or -f flags are given, the first argument  is  used  as
        an  sedit  command.  When the first argument not in the scope of
        a flag is encountered,  it  and  all  succeeding  arguments  are
        taken  as  input  files.   If no files are given, or if the name
        "-" is specified, the standard input is read. 

        Sedit commands have the general form

           line1 [, line2] [!] command arguments

        A line number (line1 or line2) is either a decimal  number  that
        refers  to  a  specific  input  line  (input  lines  are counted
        cumulatively across files), a "$" that refers to the  last  line
        of  input,  or a /pattern/ where pattern is a regular expression
        (as in 'ed').  Line number 0 may be  used  to  specify  commands
        that should be executed before any input is read. 

        A  command  with  no  line  numbers  is applied to every line of
        input.  A command with one line number is applied to every  line
        of  input that matches the line number.  A command with two line
        numbers is applied to every line of  input  beginning  with  the
        first  line  that  matches  line1  through  the  next  line that
        matches line2.  Thereafter, the  process  is  repeated,  looking
        again for a line that matches line1. 


                                    -1-


    Sedit (1)                  26-Jul-83                       Sedit (1)


        A  command  is  negated  by  placing the '!' character after the
        line numbers and  before the command character.   This  has  the
        effect  of  executing the command on all of the lines except the
        ones specified. 

        There is no notion  of  '.'  and  no  relative  addressing.   No
        expressions  in  addresses  are  allowed.  There are no backward
        pattern searches with '\'.  A 'p' at the end of a  command  only
        works with the 's' command. 

        If  an  'a',  'i', 'c', or 'r' command is successfully executed,
        the text is  inserted into the standard output  whether  or  not
        the  line  on which the match  was made is later deleted or not.
        Text inserted in the output stream  by  these  commands  is  not
        scanned  for  any   pattern  matches, nor are any sedit commands
        applied to it, nor will it effect  the input line numbering. 

        Sedit accepts the following commands.  Each command may be  used
        with  0,  1,  or 2 line numbers.  Any of the commands may appear
        on the 'sedit' command line except the a,  c,  and  i  commands.
        They can only be used in command files. 

        a
        <text>
        .
           Append.   The  <text>  is  placed  on  the  output after each
           selected line. 

        c
        <text>
        .
           Change.  The selected lines are deleted and <text> is  placed
           on the output in their place. 

        d
           Delete.  The selected lines are deleted. 

        i
        <text>
        .
           Insert.   The  <text>  is  placed  on  the output before each
           selected line. 

        p
           Print.  The  selected  lines  are  printed  on  the  standard
           output. 

        q
           Quit.   The  current  line is output (unless the -n option is
           specified) and no further  processing is done. 


                                    -2-


    Sedit (1)                  26-Jul-83                       Sedit (1)


        r file
           Read file.  The contents of "file" are placed on  the  output
           after  each  selected  line  exactly as if the contents  were
           given as <text> in an a command. 

        s/pat/new/gp
           Substitute.  The leftmost occurrences of pat in the  selected
           lines   are   changed   to  new.   If  g  is  specified,  all
           occurrences are changed.  If p is  specified,  the  resulting
           line  is  printed.   The  search  string  'pat'  is a regular
           expression as  defined  for  'ed'.   The  replacement  string
           'new'  also  uses  the  same  conventions  as 'ed' for search
           string  replacement  (&,  and  $1...$9).   Subsequent   sedit
           commands will only match the resulting lines. 

        w file
           Write  file.   The  selected  lines  are  appended to "file".
           Files mentioned in w commands are created  before  processing
           begins.   The  limit  on  the number of w commands depends on
           the number of files that can be opened at the same time. 

        =
           Print line number.  The current line  number  is  printed  on
           the output as a line. 

        Sedit  can  accomodate  commands  (including  <text> arguments),
        totaling    approximately    5000    characters    (20,000    if
        LARGE_ADDRESS_SPACE is defined). 

    SEE ALSO
        ed, change, tr

    DIAGNOSTICS
        In  addition  to  the  usual  error messages resulting from file
        access failure, sedit issues the following messages preceded  by
        the offending command line. 

        bad line numbers
           indicates that the line number expressions are invalid. 

        invalid command
           indicates   that   the  command  preceeding  the  message  is
           illegal.  This message is issued for a, i, or c  commands  if
           they appear in command string scripts. 

        too many commands
           indicates  exhaustion of space to hold commands.  The size of
           the command buffer is determined by the MAXBUF definition  in
           the source code. 



                                    -3-


    Sedit (1)                  26-Jul-83                       Sedit (1)


    AUTHORS
        Layne Cannon (Battelle Northwest Labs)
        Chris Fraser (U. of Arizona)

    BUGS/DEFICIENCIES















































                                    -4-

#-h- sepfor          1788  asc  22-jul-83 17:08:10  sventek (joseph sventek)


    Sepfor (1)                 22-Dec-81                      Sepfor (1)


    NAME
        Sepfor - Split FORTRAN programs into multiple files

    SYNOPSIS
        sepfor [-v] file ...

    DESCRIPTION
        Sepfor  is  useful  for  cracking  large  FORTRAN  programs into
        separate files.  Each subroutine or  function  is  placed  in  a
        file  of  the  same  name.   Names are stripped of any ``$'' and
        ``_'' characters they may contain.  The main program  (which  is
        assumed  to precede the subroutines in the source file) is named
        ``main<n>'' where <n> is the number of the  file  argument.   In
        most  cases  there  is  only  one  file  specified  and the main
        program is thus named ``main1''. 
        
        If the ``-v'' (verbose) option is specifed,  Sepfor  echoes  the
        name of each routine on STDOUT as it is processed. 

    EXAMPLES
        sepfor -v spice.for

    FILES
        none

    IMPLEMENTATION
        Sepfor  decides  it  has  found  a  subroutine when it finds the
        keyword ``subroutine'' as the first word on a line.  It  decides
        it  has  found a function when it finds the keyword ``function''
        as the the second OR third word on a line.  The  name  is  taken
        to  be  the first word following the keyword.  Sepfor decides it
        has found the end of a module  when  it  discovers  the  keyword
        ``end''  at  the  beginning  of  a line and it does NOT find the
        keyword ``do'' or ``if'' immediately thereafter. 

    AUTHORS
        Dave Martin (Hughes Aircraft)

    BUGS/DEFICIENCIES
        Sepfor does not recognize ENDDO or ENDIF; you must separate  the
        keywords with a blank. 











                                    -1-

#-h- sh             20458  asc  22-jul-83 17:08:15  sventek (joseph sventek)


    Sh (1)                     27-Jul-81                          Sh (1)


    NAME
        Sh - shell (command line interpreter)

    SYNOPSIS
        sh [-cdnvx] [name [arguments]].

    DESCRIPTION
        Sh  is  a  command line interpreter: it reads lines typed by you
        and interprets them as requests to execute other programs. 
        
        
      o COMMANDS
        
        In simplest form, a command line consists of  the  command  name
        followed by arguments to the command, all separated by spaces:
        
                           command arg1 arg2 ... argn
        
        The  shell  splits  up  the  command name and the arguments into
        separate strings.  Then a file with name  `command'  is  sought;
        `command'  may  be  a  path  name  to  specify  any  file in the
        system.  If `command' is found, it is brought  into  memory  and
        executed.   The  arguments collected by the shell are accessible
        to the  command.   When  the  command  is  finished,  the  shell
        resumes  its own execution and indicates its readiness to accept
        another command by typing a prompt character. 
        
        If file `command' can't be found in  the  current  directory  or
        through  its  pathname,  the  shell  searches  your `home/tools'
        directory, the site-specific tools directory,  and  finally  the
        general  tools directory.  If the file still has not been found,
        and the `-d' switch has not been  specified,  the  shell  passes
        the  entire command line to the local operating system's command
        line interpreter (DCL for VMS).  An example of a simple  command
        is:
        
                                   sort list
        
        which  would  sort  the  contents  of  file `list', printing the
        output at your terminal. 
        
        Some characters on the command line  have  special  meanings  to
        the  shell  (these  are discussed below).  The character `@' may
        be included anywhere in the command line to cause the  following
        character  to  lose any special meaning it may have to the shell
        (to be `escaped').  Sequences of characters enclosed  in  double
        (") or single (') quotes are also taken literally. 
        
        
      o STANDARD I/O


                                    -1-


    Sh (1)                     27-Jul-81                          Sh (1)


        
        Shell  programs  in  general  have  three  standard files open :
        `input', `output', and `error output'.  All three  are  assigned
        to  your  terminal  unless  redirected  by the special arguments
        `<', `>', `?', `>>', `??', (and sometimes `-'). 
        
        An argument of the form `<name' causes the  file  `name'  to  be
        used as the standard input file of the associated command. 
        
        An  argument  of  the form `>name' causes file `name' to be used
        as the standard output. 
        
        An argument of the form `?name' causes the  file  `name'  to  be
        used as the standard error output. 
        
        Arguments  of the form `>>name' or `??name' cause program output
        to be appended to `name' for standard  output  or  error  output
        respectively.  If `name' does not exist, it will be created. 
        
        Most  tools  have  the  capability  to  read  their input from a
        series of files.  In this case,  the  list  of  files  overrides
        reading  from  standard input.  However, many of the tools allow
        you to read from  both  a  list  of  files  and  from  input  by
        specifying the filename `-' for standard input.  For example:
        
                              format file1 - file2
        
        would  read  its  input  from  `file1',  then  from the standard
        input, then from `file2'. 
        
        
      o FILTERS AND PIPES
        
        The output from one command may be  directed  to  the  input  of
        another.   A  sequence  of  commands  separated by vertical bars
        (`|') or carets (`^') causes  the  shell  to  arrange  that  the
        standard  output  of  each  command be delivered to the standard
        input of the next command in  sequence.   Thus  in  the  command
        line:
                             sort list | uniq | crt
        
        `Sort'  sorts  the contents of file `list'; its output is passed
        to `uniq', which strips out duplicate lines.   The  output  from
        `uniq'  is  then  input  to  `crt', which prepares the lines for
        viewing on your crt terminal. 
        
        The vertical bar is called a `pipe'.  Programs such  as  `sort',
        `uniq',  and `crt', which copy standard input to standard output
        (making some changes along the way) are called `filters'. 
        


                                    -2-


    Sh (1)                     27-Jul-81                          Sh (1)


        
      o COMMAND SEPARATORS
        
        Commands need not be on different lines;  instead  they  may  be
        separated by semicolons:
                                 ar t file; ed
        
        The  above  command will first list the contents of the archived
        file `file', then enter the editor. 
        
        The shell also allows  commands  to  be  grouped  together  with
        parentheses,  where the group can then be used as a filter.  For
        example:
        
                      (date; cat chocolate) | comm vanilla
        
        writes first the date and then the file `chocolate' to  standard
        output,  which  is  then  read  as  input  by `comm'.  This tool
        compares the results with existing file `vanilla' to  see  which
        lines the two files have in common. 
        
        
      o MULTITASKING
        
        On  many  systems the shell also allows processes to be executed
        in the background.  If a command is followed by `&',  the  shell
        will  not wait for the command to finish before prompting again;
        instead, it is ready immediately to accept a new  command.   For
        instance:
        
                            ratfor ambrose >george &
        
        preprocesses   the   file   `ambrose',  putting  the  output  on
        `george'.  No matter how long the compilation takes,  the  shell
        returns  immediately.   The identification number of the process
        running that command is printed.   This  identification  may  be
        used  to  wait for the completion of the command or to terminate
        it. 
        
        The `&' may be used several times in a  line.   Parentheses  and
        pipes are also allowed (within the same background process). 
        
        
      o SCRIPT FILES
        
        The  shell  itself  is a command, and may be called recursively,
        either implicitly or explicitly.  This is primarily  useful  for
        executing   files  containing  lines  of  shell  commands.   For
        instance, suppose you had  a  file  named  `nbrcount.sh'   which
        looked like this:


                                    -3-


    Sh (1)                     27-Jul-81                          Sh (1)


        
                       echo "Counting strings of digits"
                       tr <program 0-9 9 | tr !9 | ccnt
        
        These  commands  count  all the digit strings in `program'.  You
        could have the shell execute the commands by typing:
        
                                 sh nbrcount.sh
        
        The shell  will  also  execute  script  files  implicitly.   For
        example, giving the command:
        
                                    nbrcount
        
        would  cause  the  shell  to  notice that the file `nbrcount.sh'
        contained text rather than executable  code.   The  shell  would
        then execute itself again, using `nbrcount.sh' as its input. 
        
        Arguments  may also be passed to script files.  In script files,
        character sequences of the  form  `$n',   where  n  is  a  digit
        between  1  and  9,  are  replaced  by  the  nth argument to the
        invocation  of  the  shell.   For  instance,  suppose  the  file
        `private.sh' contained the following commands:
        
                       cat $1 $2 $3 | crypt key >$4
                       ar u loveletters $4
        
        Then, executing the command:
        
                          private Dan John Harold fair
        
        would  merge  the  files  `Dan',  `John',  and `Harold', encrypt
        them, and store them away in an archive under the name `fair'. 
        
        Script files may be used  as  filters  in  pipelines  just  like
        regular commands. 
        
        Script  files  sometimes require in-line data to be available to
        them.  A special input redirection  notation  `<<'  is  used  to
        achieve  this  effect.   For  example, the editor normally takes
        its commands from the standard input.  However, within  a  shell
        procedure commands could be embedded this way:
        
                       ed file <<!
                       { editing requests }
                       !
        
        The  lines  between  `<<!' and `!' are called a `here' document;
        they are read by the shell and made available  as  the  standard
        input.   The  character  `!'  is  arbitrary,  the document being


                                    -4-


    Sh (1)                     27-Jul-81                          Sh (1)


        terminated  by  a  line  that  consists  of  whatever  character
        followed the `<<'. 
        
        You  may  establish  scripts  for  the shell to execute when you
        `login' to a shell by creating a script  file  named  `login.sh'
        in your home/tools directory. 
        
        
      o SEARCH PATH

        When the shell receives a command to execute, such as

        % tool

        it  looks  for  `tool' in the following places, in the following
        order:

        1) `tool.sh' in the current working directory
        2) `tool.xxx' in the current working directory, where  `xxx'  is
           to  be  replaced  by  the  appropriate extension for an image
           file on your system. 
        3) ~/tool.sh or ~/tools/tool.sh
        4) ~/tool.xxx or ~/tools/tool.xxx
        5) ~usr/tool.sh
        6) ~usr/tool.xxx
        7) ~bin/tool.sh
        8) ~bin/tool.xxx

        The search stops whenever one of these files is found; the  type
        of  the  file  (ASCII | BINARY) is then determined.  If the type
        is BINARY,  then  a  sub-process  running  that  image  file  is
        spawned;  otherwise, a sub-process running the shell is spawned,
        with  that  shell  reading  the  located  file  as   its   input
        commands.   If  the  entire  search  path  is  exhausted without
        success,  the  command  is  handed   to   the   native   command
        interpreter  for  execution,  unless  the  `-d'  option has been
        selected. 
        
        
      o SHELL FLAGS
        
        The  shell  accepts  several  special  arguments  when   it   is
        invoked.   The  argument  `-v' asks the shell to print each line
        of a script file as it is read as input.  For instance,
        
                  sh -v private Jasmine Irma Jennifer twostars
        
        would print each line of the script file `private'  as  soon  as
        it is read by the shell. 
        


                                    -5-


    Sh (1)                     27-Jul-81                          Sh (1)


        The  argument  `-x'  is  similar  to  the  -v  above except that
        commands are printed right  before  they  are  executed.   These
        commands  will  be  printed  in  the  actual  format  the system
        expects when attempting to execute the program. 
        
        The  argument  `-n'  suppresses   execution   of   the   command
        entirely. 
        
        The  argument `-c' causes the remaining arguments to be executed
        as a shell command. 
        
        The argument `-d' inhibits the shell from `dropping through'  to
        the  native  command  line  interpreter  when a command can't be
        found. 


      o INTERNAL COMMANDS

        Several commands are actually executed by the shell itself.   As
        such,  they  cannot have the standard I/O units redirected.  The
        syntax and semantics of these commands are:

        * von

          Enables the -v flag above. 

        * voff

          Disables the -v flag. 

        * xon

          Enables the -x flag above. 

        * xoff

          Disables the -x flag. 

        * cd [directory]

          Changes the current working directory (CWD) to  the  specified
          directory.   If  the  single  argument  is omitted, the CWD is
          changed to the last directory visited in  this  way.   If  the
          change  of  the  CWD  fails, an error message is displayed and
          the CWD is left unchanged. 

        * ho[me]

          Change the  current  working  directory  to  the  user's  home
          directory.  The same result can be achieved via `cd ~/'. 


                                    -6-


    Sh (1)                     27-Jul-81                          Sh (1)


        * logout

          Causes  the  shell  to  stop  reading  the current input file.
          This is equivalent  to  an  EndofFile  on  the  current  input
          file. 

        * # [args]

          This  command  is  a comment.  This permits script files to be
          commented for future enlightenment.  A  blank  character  MUST
          separate the `#' from the comment strings. 

        * path

          Display the search path in current use. 

        * alias
          alias name
          alias name value

          The  first  form  lists  the values of all known aliases.  The
          second form lists the value of the alias  `name'.   The  third
          form  creates  an  alias  `name'  having  `value'.  `value' is
          simply  taken  to  be  the  remainder  of  the  command,  with
          parameter  substitution being performed on the words.  See the
          section   below   on   aliases   and   parameters   for   more
          information. 

        * unalias name

          Destroy  the  alias  `name'.  See the section below on aliases
          and parameters for more information. 

        * param
          param name
          param name value

          The first form lists the values of all known parameters.   The
          second  form  lists  the  value  of the parameter `name'.  The
          third  form  creates  a  parameter  `name'   having   `value'.
          `value'  is  simply  taken to be the remainder of the command,
          with parameter substitution  being  performed  on  the  words.
          See  the  section  below  on  aliases  and parameters for more
          information. 

        * unparam name

          Destroys the parameter  `name'.   See  the  section  below  on
          aliases and parameters for more information. 



                                    -7-


    Sh (1)                     27-Jul-81                          Sh (1)


        * ask name[ prompt[ default-value]]

          Prompts  the  user on the Standard Input unit for the value of
          the parameter `name'.  If the prompt string is not  specified,
          or  is  null  (""),  the string "name? " will be used.  If the
          user responds with a bare carriage-return, the parameter  will
          assume  the  default  value,  if  specified,  or  will  not be
          defined. 

        * source file

          The current input unit is stacked,  and  the  shell  input  is
          taken  from `file'.  `source' commands nest to a maximum depth
          of 2.  Upon detection of an  EndofFile  on  `file',  input  is
          resumed from the previous input file. 
          *****  NOTE:  source  commands must appear alone on a line, or
          dire consequences will result! *****


      o ALIASES AND PARAMETERS

        Often it is convenient  to  store  frequently  used  strings  in
        variables   for  recall  with  a  small  number  of  keystrokes.
        Aliases  and  parameters  exist  to  provide  such  a  facility,
        differing only in the way that they are used. 

        When  the  shell has finished parsing your command is and in the
        process of preparing to execute  it,  the  first  token  in  the
        command  line  (the  verb) is looked up in the table of aliases.
        If it is found, then the verb is replaced by the  value  of  the
        alias;  independent  of the replacement of the verb, the command
        line is then executed.  For instance, if you with to invoke  the
        editor with a personalized prompt, the following alias
        
        alias e ed "-pWas gibt? "
        
        causes the following transformation to take place
        
        e file  ====>  ed "-pWas gibt? " file
        
        The  user  must  explicitly  ask for a parameter to be expanded.
        We have already seen examples of the  use  of  parameters,  when
        referencing  the positional arguments to scripts as $1, $2, ...,
        $9.   For  example,  suppose  that  a  particular  directory  on
        another  machine  has  a  set  of files with cooking recipes.  A
        parameter can be used to permit easy reference to the directory
        
        param cook /0de/db0/frenchchf
        
        Then commands of the form


                                    -8-


    Sh (1)                     27-Jul-81                          Sh (1)


        
        ls $cook; cat $cook/quiche.man

        will permit you to  list  the  contents  of  the  directory  and
        display one of the recipes. 

        Parameters  are  expanded inside of quoted strings when they are
        delimited by a quote character ("), but are  not  expanded  when
        delimited  by  an apostrophe (').  In addition to the positional
        parameters  $1,  $2,  ...,  $9,  two  shorthand  parameters  are
        available   for   causing   all   positional  parameters  to  be
        displayed:

        $@    results in "$1" "$2" ... 
        $*    results in "$1 $2 ..."
        
        
      o INTERRUPTS
        
        There are often occasions when you may  wish  to  interrupt  the
        execution  of  a  process  initiated  by the shell.  This may be
        achieved by typing the  interrupt  character  at  the  terminal.
        Typing  the  interrupt  character  will  cause the process to be
        terminated,  and  the  shell  will  prompt  you  for  your  next
        command.   A  complete  list of system-specific special terminal
        characters may be  had  by  typing  the  command  `tty'  to  the
        shell.   `Tty'  is  a  system-dependent  tool  which displays on
        standard  output  all  of  the   special   terminal   characters
        interpreted  by  the  local  system.  For example, the interrupt
        character for the VAX is ^C (control C).  If the  following  two
        commands are typed to the shell:
        
                       sort mybigfile
                       ^C
        
        then the sorter would be aborted. 
        
        
      o TERMINATION
        
        The  shell  may be terminated by typing an EndOfFile (`^Z') as a
        command. 

    FILES

    SEE ALSO
        The Unix command sh. 
        The Bell system Technical Journal,  vol.  57,  no.  6,  part  2,
        July-Aug 1978. 



                                    -9-


    Sh (1)                     27-Jul-81                          Sh (1)


    DIAGNOSTICS
        The  error  message  `syntax  error'  appears whenever a command
        line cannot be understood. 

    AUTHORS
        Dennis Hall, Joe Sventek, Debbie Scherrer, Dave Martin. 

    BUGS/DEFICIENCIES
        If you want to escape a shell special character that appears  as
        the  first  character  of  an  argument, you must escape it with
        quotes rather than an `@' sign. 









































                                    -10-

#-h- sleep            784  asc  22-jul-83 17:08:22  sventek (joseph sventek)


    Sleep (1)                  29-Oct-80                       Sleep (1)


    NAME
        Sleep - cause process to suspend itself for a period of time

    SYNOPSIS
        sleep seconds

    DESCRIPTION
        sleep  causes  the  process  to suspend itself for the indicated
        number of seconds.   This  facility  is  generally  useful  when
        sending  formatted  output  to  a high-quality terminal, and you
        need time to change the paper  from  the  time  you  invoke  the
        command until it starts printing on the good paper. 

    FILES

    SEE ALSO
        sched - a way to repetitively invoke a command

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES




























                                    -1-

#-h- sort            5029  asc  22-jul-83 17:08:23  sventek (joseph sventek)


    Sort (1)                   14-Apr-78                        Sort (1)


    NAME
        Sort - sort and/or merge text files 

    SYNOPSIS
        sort [-bdfimr] [+ofile] [+sn] [file] ... 

    DESCRIPTION
        Sort  sorts lines of all the named files together and writes the
        result   on  the  standard  output.   The  name  '-'  means  the
        standard  input.   The   standard input is also used if no input
        file names are given.  Thus sort may be used as a filter. 
        
        The sort key is an entire line.  Default ordering is  alphabetic
        by  characters  as  they  are represented  in ASCII format.  The
        ordering is affected by the  following flags,  one  or  more  of
        which may appear. 
        
         -b Leading blanks  are not included in keys. 
            
         -d 'Dictionary'  order:  only  letters,  digits  and blanks are
            significant  in comparisons. 
            
         -f Fold all letters to a single case. 
            
         -i Ignore all nonprinting nonblank characters. 
            
         -m Merge only, the input files are already sorted. 
            
         -r Reverse the sense of the sort
            
         +o Cause final output to be placed  on  `file'.   This  permits
            one  of  the input files to be the output file.  This switch
            is necessary since using the redirection `>file' will  cause
            `file'  to  be  unreadable  when  `sort'  is  generating the
            initial runs. 
            
        +sn Sort according to the subfield starting on column n
            

    FILES
        A  series  of  scratch  files  are  generated  and  subsequently
        deleted.   Presently  the  files  are named "STn" where "n" is a
        sequence number. 

    SEE ALSO
        The Unix command "sort" in the Unix User's Manual. 

    DIAGNOSTICS
        A message is printed if a file cannot be located. 



                                    -1-


    Sort (1)                   14-Apr-78                        Sort (1)


    AUTHORS
        Original  design  from   Kernighan   and   Plauger's   "Software
        Tools",    with  modifications by Debbie Scherrer.  The external
        merge phase  of sort was completely rewritten by Joe Sventek. 

    BUGS/DEFICIENCIES
        The  merge  phase  is  performed  with  a  polyphase  merge/sort
        algorithm,   which  requires  an  end-of-run  delimiter  on  the
        scratch files.  The one chosen is a bare ^D(ASCII code 4)  on  a
        line.   If  this is in conflict with your data files, the symbol
        CTRLD in sortsym should be redefined and sort built again. 
        
        Eventually all the Unix  "sort"  flags  should  be  implemented.
        These include: 
             sort [-mubdfinrtx] [+pos] [-pos] [-o file] [file] ... 
        
        The additional flags are: 
        
             n  An  initial numeric string, consisting of optional minus
        sign, digits  and optionally included decimal point,  is  sorted
        by arithmetic value. 
        
                  tx Tab character between fields is x. 
        
             +pos -pos   Selected  parts  of the line, specified by +pos
        and -pos, may be used as  sort  keys.   Pos  has  the  form  m.n
        optionally  followed  by one or more  of the flags bdfinr, where
        m specifies  a  number  of  fields  to  skip,  n  a   number  of
        characters  to  skip further into the next field, and the  flags
        specify a special ordering rule for the key.  A  missing  .n  is
        taken   to  be  0.   +pos denotes the beginning of the key; -pos
        denotes the first  position  after  the  key  (end  of  line  by
        default).   Later  keys are  compared only when all earlier keys
        compare equal.  Note:  The first  field of a  line  is  numbered
        zero. 
        
        When  no  tab  character has been specified, a field consists of
        nonblanks   and  any  preceding  blanks.   Under  the  -b  flag,
        leading   blanks  are   excluded  from  a  field.   When  a  tab
        character has been specified,  fields are strings  separated  by
        tab characters. 
        
        Lines  that  otherwise  compare equal are ordered with all bytes
        significant. 
        
             -o The next argument is the name of an output file  to  use
        instead  of  the  standard output.  This file may be the same as
        one of the inputs, except  under the merge flag  -m.   {Note--it
        is not clear why this flag is needed.] 
        


                                    -2-


    Sort (1)                   14-Apr-78                        Sort (1)


             -u Suppress  all  but  one  in each set of contiguous equal
        lines.   Ignored   bytes  and  bytes   outside   keys   do   not
        participate in this comparison. 

















































                                    -3-

#-h- spell           1271  asc  22-jul-83 17:08:26  sventek (joseph sventek)


    Spell (1)                  11-Jan-79                       Spell (1)


    NAME
        Spell - find spelling errors

    SYNOPSIS
        spell [-ddictname] [file] ...

    DESCRIPTION
        Spell  copies  the  named  files  (or standard input if none are
        specified) to standard output while looking up each  word  in  a
        dictionary.   If  any  spelling errors are found in a particular
        line, an additional line will be printed  immediately  following
        the line with asterisks (*) beneath the offending words. 
        
        If  the -d switch is used, `spell' will use the files `dictname'
        and `dictname'dx for the dictionary and index. 

    FILES
        dict - a dictionary file
        dictdx - the index generated by isam for the dictionary

    SEE ALSO
        isam - generate an index for pseudo-indexed-sequential access
        ospell - the script  pipeline  suggested  in  K&P  for  spelling
        errors

    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        This  is  a  skeleton  spelling  error detector.  It is expected
        that various modifications to flesh it  out  will  be  performed
        for local use. 


















                                    -1-

#-h- split            896  asc  22-jul-83 17:08:27  sventek (joseph sventek)


    Split (1)                  11-Jan-79                       Split (1)


    NAME
        Split - split a file into pieces

    SYNOPSIS
        split [-n] [file [name] ]

    DESCRIPTION
        Split  reads  `file'  and  writes  it  in n-line pieces (default
        1000), as many as necessary, onto a set of  output  files.   The
        name  of  the  output  file is `name' with `aa' appended, and so
        on  lexicographically.  If no  output  name  is  given,  `x'  is
        default. 
        
        If  no  input file is given, or if - is given in its stead, then
        the standard input file is used. 

    FILES

    SEE ALSO
        The Unix command 'split'

    DIAGNOSTICS
        A message is printed if the input file could not be opened. 

    AUTHORS
        Debbie Scherrer

    BUGS/DEFICIENCIES
























                                    -1-

#-h- tail             960  asc  22-jul-83 17:08:28  sventek (joseph sventek)


    Tail (1)                   26-Aug-79                        Tail (1)


    NAME
        Tail - print last lines of a file

    SYNOPSIS
        tail [-n] [file] ...

    DESCRIPTION
        Tail  prints  the  last "n" lines of the indicated file.  If 'n'
        is omitted, the last 23 lines are printed. 
        
        If "file" is omitted or is "-", tail reads the standard input. 

    SEE ALSO
        split

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES
        An internal buffer of MAXBUF characters is kept.  If  the  value
        of  "n"  would require buffering more characters than the buffer
        can hold, tail prints the last MAXBUF characters  of  the  file.
        In  this  case,  the  first  line of output may not be an entire
        line.  MAXBUF is a definition in the source code  which  may  be
        adjusted. 



























                                    -1-

#-h- tee              612  asc  22-jul-83 17:08:29  sventek (joseph sventek)


    Tee (1)                    11-Jan-79                         Tee (1)


    NAME
        Tee - copy input to standard output and named files

    SYNOPSIS
        tee [file] ...

    DESCRIPTION
        Tee  copies  the standard input to the standard output and makes
        copies in the named files. 

    FILES

    SEE ALSO
        The tool 'cat'; the tool 'crt'; the Unix command 'tee'

    DIAGNOSTICS
        A message is printed if the input file cannot be opened. 

    AUTHORS
        Debbie Scherrer

    BUGS/DEFICIENCIES






























                                    -1-

#-h- tr              3071  asc  22-jul-83 17:08:31  sventek (joseph sventek)


    Tr (1)                     6-Jul-78                           Tr (1)


    NAME
        Tr - transliterate characters

    SYNOPSIS
        tr from [to] 

    DESCRIPTION
        tr  copies  the  standard  input  to  the  standard  output with
        substitution  or  deletion  of   selected   characters.    Input
        characters  found  in  `from'  are mapped into the corresponding
        characters of `to'.  Ranges of characters may  be  specified  by
        separating   the  extremes  by  a dash.  For example, a-z stands
        for  the  string  of  characters  whose  ascii  codes  run  from
        character a through character z. 
        
        If  the  number of characters  in `from' is the same as in `to',
        a one to one corresponding  translation  will  be  performed  on
        all  occurrences of the characters  in `from'.  If the number of
        characters in `from' is more than in `to', the   implication  is
        that  the last character in the `to' string is  to be replicated
        as often as necessary to make a string as long   as  the  `from'
        string,  and that this replicated character should  be collapsed
        into only one.  If the `to' string is missing  or   empty,  "TR"
        will   take   this   condition  as  a  request  to  delete   all
        occurrences of characters in the `from' string. 

        "TR" differs from  the  tool  "CH"  since  it  deals  only  with
        single  characters  or  ranges  of  characters, while "CH" deals
        with character strings.  For example  tr  xy  yx   would  change
        all  x's into y's and all y's into x's, whereas ch xy yx  change
        all the patterns "xy" into "yx". 

        One of the most common functions of "TR" is to translate   upper
        case letters to lower case, and vice versa.  Thus, 
        
                                  tr A-Z a-z 
        
        would  map  all  upper  case  letters  to lower  case.  Users of
        systems which cannot pass both upper and lower  case  characters
        on  a  command  line  should remember to include the appropriate
        escape flags. 

    FILES
        none 

    SEE ALSO
        Tools "find" and "ch". 
        The "Software Tools" book, p.51-61. 
        The "UNIX Programmer's Manual", p. TR(I). 



                                    -1-


    Tr (1)                     6-Jul-78                           Tr (1)


    DIAGNOSTICS
        "usage: tr from [to]." 
             The command line passed to transit is in error. 
        "from: too large." 
             The string for "from" is too large.  Current limit  is  100
             characters  including E0S. 
        "to: too large." 
             The  string  for  "to"  is too large.  Current limit is 100
             characters  including EOS. 

    AUTHORS
        Original code from Kernighan and  Plaugers's  "Software  Tools",
        with modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES





































                                    -2-

#-h- tsort           2223  asc  22-jul-83 17:08:33  sventek (joseph sventek)


    Tsort (1)                  1-Oct-78                        Tsort (1)


    NAME
        Tsort - topologically sort symbols

    SYNOPSIS
        tsort [file] ...

    DESCRIPTION
        tsort  topologically  sorts  the symbols in the named files.  If
        no files are specified, or the  filename  '-'  is  given,  tsort
        reads the standard input. 
        
        A  symbol  is  considered  any string of characters delimited by
        blanks or tabs. 
        
        Each line of the input is assumed to be of the form

           a b c ...

        which states that a precedes b, a precedes c, and so  on.   Note
        that  there is nothing implied about the ordering of b and c.  A
        line consisting  of  a  single  symbol  simply  "declares"  that
        symbol  without specifying any ordering relations about it.  The
        output is a  topologically  sorted  list  of  symbols,  one  per
        line. 

        For  example, suppose you have trouble getting up in the morning
        because you  can't  quite  remember  what  actions  have  to  be
        performed  in  which order.  However, you do know that the first
        action in the following list precedes all others on the line:
        
             set_alarm   turn_off_alarm
             wake_up    get_out_of_bed    turn_off_alarm
             set_alarm     wake_up
        
        Using tsort to sort the above list would produce  the  following
        set of actions for getting out of bed:
        
             set_alarm
             wake_up
             turn_off_alarm
             get_out_of_bed

    DIAGNOSTICS
        circular
           The  input  specifies  a  graph  that  contains  at least one
           cycle. 

        out of storage
           The input is too  large.   The  size  of  tsort's  buffer  is
           determined by the MAXBUF definition in the source code. 


                                    -1-


    Tsort (1)                  1-Oct-78                        Tsort (1)


    SEE ALSO
        sort

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES













































                                    -2-

#-h- ttt              594  asc  22-jul-83 17:08:34  sventek (joseph sventek)


    Ttt (1)                    15-Nov-81                         Ttt (1)


    NAME
        Ttt - 3-dimensional tic tac toe

    SYNOPSIS
        ttt

    DESCRIPTION
        TTT  is  a  3-dimensional  tic  tac  toe game played against the
        computer.  The program will explain the rules. 

    SEE ALSO
        The UNIX ``ttt'' program. 

    AUTHORS
        Original Basic version by Joseph Roehrig. 
        Converted to C by Dave Conroy. 
        Converted to RatFor by Dave Martin. 

    BUGS/DEFICIENCIES

































                                    -1-

#-h- txtrpl          2595  asc  22-jul-83 17:08:36  sventek (joseph sventek)


    Txtrpl (1)                 11-Mar-82                      Txtrpl (1)


    NAME
        Txtrpl - perform generalized text replacement

    SYNOPSIS
        txtrpl patfile ...

    DESCRIPTION
        `txtrpl'  provides  a  general  way  to perform text replacement
        (NOT    regular    expressions)    without     embedding     the
        (text,replacement   text)  pairs  in  the  source  file.   After
        loading  the  (text,replacement  text)  pairs  from  the   named
        pattern  files  in  the  command line, `txtrpl' reads words from
        standard input, looks each  word  up  in  a  lookup  table,  and
        either  writes  out  the  replacement text on standard output or
        the word, depending upon whether it was found in  the  table  or
        not.   Only  a single lookup is done.  Words consist of letters,
        digits and underline ('_') characters, starting with a letter. 
        
        `txtrpl's  selection  of  candidate  words  for  replacement  is
        dependent  upon  ratfor  program syntax, in that words inside of
        comments,  quoted  strings  and  character  constants  are   not
        eligible  for  replacement.   This  fact  can  be  exploited  to
        generate source listings of ratfor code with boldfaced  keywords
        by executing the following commands:

        alist file | txtrpl ~bin/fmtpf

        The  resulting  output  file can be piped into `os' or `lpr' for
        final disposition to a print device. 
        
        The  form  of  the  pattern  files   is   quite   simple;   each
        (text,replacement  text)  pair  occupies a line.  Leading blanks
        on the line are ignored, the token to  be  scanned  for  is  the
        first  word  found,  any  intevening blanks are ignored, and the
        replacement text is everything else up to the end of  line.   In
        the  regular  language  expression of the tools, each line is of
        the form
        
               %<BLANK>*[A-Za-z][A-Za-z0-9_]*<BLANK><BLANK>*??*$
        
        where <BLANK> represents a blank character.  Case  is  important
        in the comparisons. 

    FILES

    SEE ALSO
        macro - macro processor
        ed - text editor for description of regular expressions
        xch - extended change utility



                                    -1-


    Txtrpl (1)                 11-Mar-82                      Txtrpl (1)


    DIAGNOSTICS

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES














































                                    -2-

#-h- ul              1090  asc  22-jul-83 17:08:37  sventek (joseph sventek)


    Ul (1)                     18-Aug-81                          Ul (1)


    NAME
        Ul - convert backspaces into multiple lines for "terminals"

    SYNOPSIS
        ul [file] ...

    DESCRIPTION
        ul  (underline)  converts  lines  with BACKSPACE-UNDERLINE pairs
        into two lines; one with the text and one with  only  BLANK  and
        UNDERLINE  characters.   These two lines are output separated by
        a CR with no associated LF.  This approach works  with  printing
        terminals  and  some  line printers, most notably Printronix and
        Trilog. 
        
        If no files are given, or the filename  '-'  appears,  input  is
        taken from the standard input. 

    FILES

    SEE ALSO
        lpr - queue file to line printer
        os - process overstrikes for "printers"

    DIAGNOSTICS
        A  message is printed if an input file cannot be opened; further
        processing is terminated. 

    AUTHORS
        Paul Johnstone (Hughes Aircraft)

    BUGS/DEFICIENCIES





















                                    -1-

#-h- uniq             947  asc  22-jul-83 17:08:39  sventek (joseph sventek)


    Uniq (1)                   11-Jan-79                        Uniq (1)


    NAME
        Uniq - strip adjacent repeated lines from a file

    SYNOPSIS
        uniq [-c] [file] ...

    DESCRIPTION
        uniq  reads the input file(s), comparing adjacent lines.  Second
        and  succeeding  copies  of  repeated  lines  are  removed;  the
        remainder is written to standard output. 
        
        If  the  '-c' flag is given, each line is preceded by a count of
        the number of occurrences of that line. 

    FILES

    SEE ALSO
        The tool 'comm'; the Unix command 'uniq'

    DIAGNOSTICS
        A message is printed if an  input  file  cannot  be  opened  and
        processing is terminated. 

    AUTHORS
        Originally  from  Kernighan and Plauger's 'Software Tools', with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES
























                                    -1-

#-h- unrot            930  asc  22-jul-83 17:08:40  sventek (joseph sventek)


    Unrot (1)                  15-Jan-79                       Unrot (1)


    NAME
        Unrot - unrotate lines rotated by kwic

    SYNOPSIS
        unrot [-n] [file] ...

    DESCRIPTION
        unrot  processes  the  rotated  output  of  'kwic' to generate a
        keyword-in-context index. 
        
        The -n flag may be used to  specify  the  width  of  the  output
        lines.  The default is 80. 
        
        If  no input files are given, or the filename '-' appears, lines
        will be read from standard input. 

    FILES

    SEE ALSO
        kwic; sort

    DIAGNOSTICS
        A message is printed if an input file cannot be opened;  further
        processing is terminated. 

    AUTHORS
        Original  from  Kernighan  and  Plauger's 'Software Tools', with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES






















                                    -1-

#-h- wc              1083  asc  22-jul-83 17:08:41  sventek (joseph sventek)


    Wc (1)                     15-Feb-79                          Wc (1)


    NAME
        Wc - count lines, words, and characters in files

    SYNOPSIS
        wc [-lwc] [file] ...

    DESCRIPTION
        wc  prints  the  number  of  lines, words, and characters in the
        named files.  The filename "-" specifies the standard input.   A
        total  is  also printed.  A "word" is any sequence of characters
        delimited by white space. 

        The options -l, -w, and -c specify, respectively, that only  the
        line, word, or character count be printed.  For example,

           wc -lc foo

        prints the number of lines and characters in "foo". 

        If  no  files  are  given,  wc  reads its standard input and the
        total count is suppressed. 

    FILES

    DIAGNOSTICS
        name: can't open
             Printed when an input  file  can't  be  opened;  processing
             ceases

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES



















                                    -1-

#-h- wcnt             932  asc  22-jul-83 17:08:42  sventek (joseph sventek)


    Wcnt (1)                   11-Jan-79                        Wcnt (1)


    NAME
        Wcnt - (character) word count

    SYNOPSIS
        wcnt [file] ...

    DESCRIPTION
        wcnt  counts  (character)  words  in  the named files, or in the
        standard input if no name  appears.   A  word  is  a  string  of
        characters delimited by spaces, tabs, or newlines. 
        
        wcnt could also be implemented as a shell script file:
                       tr ' @t@n' '@n' | tr '!@n' | ccnt

    FILES

    SEE ALSO
        lcnt; ccnt; the Unix command 'wc'

    DIAGNOSTICS
        A  message  is  printed  if  an  input file could not be opened;
        further processing is terminated. 

    AUTHORS
        Original from Kernighan and  Plauger's  'Software  Tools',  with
        modifications by Debbie Scherrer. 

    BUGS/DEFICIENCIES
























                                    -1-

#-h- whereis         1028  asc  22-jul-83 17:08:43  sventek (joseph sventek)


    Whereis (1)                20-May-81                     Whereis (1)


    NAME
        Whereis - search for file matching regular expression

    SYNOPSIS
        whereis pat [anchor]

    DESCRIPTION
        `whereis'   searches   for   the   specified   pattern  (regular
        expression) in the search path defined by anchor.  If no  anchor
        is  specified,  the  current directory is searched.  If a device
        and directory are specified, only that  directory  is  searched.
        If  only  a  device is specified, all of the directories on that
        disk are searched in the order in which they  appear  in  [0,0].
        The  files  matching  the pattern are output on standard output,
        in a fully resolved pathname format. 

    FILES
        

    SEE ALSO
        ls - directory lister
        find - for regular expression syntax

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        





















                                    -1-

#-h- xch             2029  asc  22-jul-83 17:08:45  sventek (joseph sventek)


    Xch (1)                    11-Mar-82                         Xch (1)


    NAME
        Xch - extended change utility

    SYNOPSIS
        xch [-gpat] [-v] patfile ...

    DESCRIPTION
        `xch'  permits several global changes to be performed during one
        pass  over  the  input  data.   During   initialization,   `xch'
        compiles  the  "/pat/sub/"  lines  found  in  the  one (or more)
        pattern files specified in the arguments list.   Then,  standard
        input is read, and the equivalent of

        % ch "pat" "sub"

        is performed on each line. 

        Normally,  the  substitutions  are attempted on each input line.
        If the `-gpat' option is selected, then  the  substitutions  are
        attempted  on  only  those  lines  which  match `pat'.  When the
        number of substitutions are large, this can substantially  speed
        up the process. 

        If  the  `-v'  flag  is  specified,  for  each  line  in which a
        substitution has occurred, the line number, followed by the  old
        and new lines are displayed on error output. 

        The   format   of  the  pattern  files  is  quite  simple:  each
        "/pat/sub/"  pair  occupies  a  single  line,  with  the   first
        character  of  the  line  assumed to be the delimeter character.
        The complete regular expression syntax is supported,  such  that
        the  lines  in  the  pattern files are exactly equivalent to the
        `ed' command with "s" prepended and "g" appended to the line. 

    FILES
        

    SEE ALSO
        ch - change regular expressions
        find - find regular expressions
        xfind - extended find utility
        ed - text editor

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES


                                    -1-


    Xch (1)                    11-Mar-82                         Xch (1)


        



















































                                    -2-

#-h- xfind           1046  asc  22-jul-83 17:08:46  sventek (joseph sventek)


    Xfind (1)                  11-Mar-82                       Xfind (1)


    NAME
        Xfind - entended find utility

    SYNOPSIS
        xfind patfile ...

    DESCRIPTION
        `xfind'  permits  one  to search for more than 10 expressions in
        one pass of the standard  input  file.   During  initialization,
        `xfind'  compiles  the  patterns  found  in  the  one  (or more)
        pattern files specified in the argument  list.   Then,  standard
        input  is read, and each input line which matches any one of the
        patterns is output on standard output. 

        The format of the pattern fils is quite  simple:  each  line  is
        taken  to  represent  a  single  pattern.   The complete regular
        expression syntax is supported. 

    FILES
        

    SEE ALSO
        find - find regular expressions
        xch - extended change utility

    DIAGNOSTICS
        

    AUTHORS
        Joe Sventek

    BUGS/DEFICIENCIES
        



















                                    -1-

#-h- xref            1811  asc  22-jul-83 17:08:47  sventek (joseph sventek)


    Xref (1)                   1-Jan-79                         Xref (1)


    NAME
        Xref - make a cross reference of symbols

    SYNOPSIS
        xref [-b<bias>] [-f] [file] ...

    DESCRIPTION
        xref  produces  a cross-reference list of the symbols in each of
        the named files on the standard output.  Each symbol  is  listed
        followed  by  the  numbers of the lines in which it appears.  If
        no files are given, or the file "-"  is  specified,  xref  reads
        the standard input. 

        A  symbol is defined as a string of letters, digits, underlines,
        or periods that begins with  a  letter.   Symbols  exceeding  an
        internal  limit  are truncated.  This limit is determined by the
        MAXTOK definition in the source code, and is  currently  set  to
        15. 

        Normally,   xref   treats   upper-  and  lower-case  letters  as
        different characters.  The -f option causes all  letters  to  be
        folded to lower-case. 

        Normally,  the  line  numbers  specified in the symbol table are
        relative to the current file being processed.  Specification  of
        the `-b' flag causes `<bias>' to be added to each line number. 

    DIAGNOSTICS
        out of storage
           The  file  contains  too  many  symbols  or references to fit
           within the current limitations of  xref.   The  size  of  the
           buffer  is  determined by the MAXBUF definition in the source
           code. 

    SEE ALSO
        axref - cross reference generator for archives

    AUTHORS
        David Hanson and friends (U. of Arizona)

    BUGS/DEFICIENCIES
        There should be a means of suppressing "junk"  symbols  such  as
        "the", "a", etc. 









                                    -1-

