Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ newform(C) — Xenix 2.3.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csplit(C)



     NEWFORM(C)               XENIX System V                NEWFORM(C)



     Name
          newform - Changes the format of a text file.

     Syntax
          newform [-s] [-itabspec] [-otabspec] [-bn] [-en] [-pn] [-an]
          [-f]
          [-cchar] [-ln] [file... ]

     Description
          newform reads lines from the named files, or the standard
          input if no input file is named, and reproduces the lines on
          the standard output.  Lines are reformatted in accordance
          with command line options in effect.

          Except for -s, command line options may appear in any order,
          may be repeated, and may be intermingled with files.
          Command line options are processed in the order typed.  This
          means that option sequences like ``-e15 -l60'' will yield
          results different from ``-l60 -e15''.  Options are applied
          to all files on the command line.

          -itabspec Input tab specification: expands tabs to spaces,
                    according to the tab specifications given.
                    Tabspec recognizes all tab specification forms
                    described below.  In addition, tabspec may be --,
                    in which newform assumes that the tab
                    specification is to be found in the first line
                    read from the standard input.  If no tabspec is
                    given, tabspec defaults to -8.  A tabspec of -0
                    expects no tabs; if any are found, they are
                    treated as -1.

          -otabspec Output tab specification: replaces spaces by tabs,
                    according to the tab specifications given.  The
                    tab specifications are the same as for -itabspec.
                    If no tabspec is given, tabspec defaults to -8.  A
                    tabspec of -0 means that no spaces will be
                    converted to tabs on output.

          -ln       Sets the effective line length to n characters.
                    If n is not typed, -l defaults to 72.  The default
                    line length without the -l option is 80
                    characters.  Note that tabs and backspaces are
                    considered to be one character (use -i to expand
                    tabs to spaces).

          -bn       Truncates n characters from the beginning of the
                    line when the line length is greater than the
                    effective line length (see -ln).  The default is
                    to truncate the number of characters necessary to
                    obtain the effective line length.  The default
                    value is used when -b with no n is used.  This



     Page 1                                           (printed 8/7/87)





     NEWFORM(C)               XENIX System V                NEWFORM(C)



                    option can be used to delete the sequence numbers
                    from a COBOL program as follows:
                              newform -l1 -b7 file-name

                    The option -l1 must be used to set the effective
                    line length shorter than any existing line in the
                    file so that the -b option is activated.

          -en       Truncates n characters from the end of the line.

          -ck       Changes the prefix/append character to k.  Default
                    character for k is a space (see options -p and
                    -c).

          -pn       Prefixes n characters (see -ck) to the beginning
                    of a line when the line length is less than the
                    effective line length.  The default is to prefix
                    the number of characters necessary to obtain the
                    effective line length.

          -an       Appends n characters to the end of a line.  The
                    default is to append the number of characters
                    necessary to get the effective line length.

          -f        Writes the tab specification format line on the
                    standard output before any other lines are output.
                    The tab specification format line which is printed
                    will correspond to the format specified in the
                    last -o option.  If no -o option is specified, the
                    line which is printed will contain the default
                    specification of -8.

          -s        Shears off leading characters on each line up to
                    the first tab and places up to 8 of the sheared
                    characters at the end of the line.  If more than 8
                    characters (not counting the first tab) are
                    sheared, the eighth character is replaced by a *
                    and any characters to the right of it are
                    discarded.  The first tab is always discarded.

                    An error message and program exit will occur if
                    this option is used on a file without a tab on
                    each line.  The characters sheared off are saved
                    internally until all other options specified are
                    applied to that line.  The characters are then
                    added at the end of the processed line.

        Tabs
          Four types of tab specification are accepted for tabspec:
          ``canned,'' repetitive, arbitrary, and file.  The lowest
          column number is 1. For tabs, column 1 always refers to the
          leftmost column on a terminal, even one whose column markers



     Page 2                                           (printed 8/7/87)





     NEWFORM(C)               XENIX System V                NEWFORM(C)



          begin at 0, e.g. the DASI 300, DASI 300S, and DASI 450.

          The ``canned'' tabs are given as -code where code (and its
          meaning) is from the following list:

          -a        1,10,16,36,72
                    Assembler, IBM S/370, first format

          -a2       1,10,16,40,72
                    Assembler, IBM S/370, second format

          -c        1,8,12,16,20,55
                    COBOL, normal format

          -c2       1,6,10,14,49
                    COBOL compact format (columns 1-6 omitted). Using
                    this code, the first typed character corresponds
                    to card column 7, one space gets you to column 8,
                    and a tab reaches column 12. Files using this tab
                    setup should include a format specification as
                    follows:
                       <:t-c2 m6 s66 d:>

          -c3       1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
                    COBOL compact format (columnms 1-6 omitted), with
                    more tabs than COBOL -c2.  This is the recommended
                    format for COBOL. The appropriate format
                    specification is:
                       <:t-c3 m6 s66 d:>

          -f        1,7,11,15,19,23
                    FORTRAN

          -p        1,5,9,13,17,21,25,29,33,37,41,45,53,57,61
                    PL/I

          -s        1,10,55
                    SNOBOL

          -u        1,12,20,44
                    UNIVAC 1100 Assembler

          In addition to these ``canned'' formats, three other types
          exist:

          -n        A repetitive specification requests tabs at
                    columns 1+n, 1+2*n, etc. Note that such a setting
                    leaves a left margin of n columns on TermiNet
                    terminals only.  Of particular importance is the
                    value -8: this represents the  system ``standard''
                    tab setting, and is the most likely tab setting to
                    found at a terminal.  It is required for use with



     Page 3                                           (printed 8/7/87)





     NEWFORM(C)               XENIX System V                NEWFORM(C)



                    nroff(CT) -h option for high-speed output.
                    Another special case is the value -0, implying no
                    tabs at all.

          n1,n2,... The arbitrary format permits the user to type any
                    chosen set of number, separated by commas, in
                    ascending order. Up to 40 numbers are allowed.  If
                    any number (except the first one) is preceded by a
                    plus sign, it is taken as an increment to be added
                    to the previous value.  Thus, the tab lists
                    1,10,20,30 and 1,10,+10,+10 are considered
                    identical.

          - -file
                    If the name of a file is given, newform reads the
                    first line of the file, searching for a format
                    specification.  If it finds one there, it sets the
                    tab stops according to it, otherwise it sets them
                    as -8.  This type of specification may be used to
                    make sure that a tabbed file is printed with
                    correct tab settings.

          Any of the following may be used also; if a given flag
          occurs more than once, the last value given takes effect:

          -Ttype
                    newform usually needs to know the type of terminal
                    in order to set tabs and always needs to know the
                    type to set margins.  type is a name listed in
                    term(CT).  If no -T flag is supplied, newform
                    searches for the $TERM value in the environment
                    (see environ(M)).  If no type can be found,
                    newform tries a sequence that will work for many
                    terminals.

          +mn       The margin argument may be used for some
                    terminals. It causes all tabs to be moved over n
                    columns by making column n+1 the left margin.  If
                    +m is given without a value of n, the value
                    assumed is 10. For a TermiNet, the first value in
                    the tab list should be 1, or the margin will move
                    even further to the right.  The normal (leftmost)
                    margin on most terminals is obtained by +m0.  The
                    margin for most terminals is reset only when the
                    +m flag is given explicitly.

     Example
          In the following example, newform converts a file named text
          with leading digits, one or more tabs, and text on each line
          to a file beginning with the text and the leading digits
          placed at the end of each line in column 73 (-s option).
          All tabs after the first one are expanded to spaces (-i



     Page 4                                           (printed 8/7/87)





     NEWFORM(C)               XENIX System V                NEWFORM(C)



          option).  To reach the line length of 72 characters (-l
          option), spaces are appended to each line up to column 72
          (-a option) or lines are truncated at column 72 (-e option).
          To reformat the sample file text in this manner, enter:
                              newform -s -i -l -a -e text

     Exit Codes
          0 - normal execution
          1 - for any error

     See Also
          csplit(C)

     Diagnostics
          All diagnostics are fatal.
          usage: ...                   newform was called with a bad
                                       option.
          not -s format                There was no tab on one line.
          can't open file              Self-explanatory.
          internal line too long       A line exceeds 512 characters
                                       after being expanded in the
                                       internal work buffer.
          tabspec in error             A tab specification is
                                       incorrectly formatted, or
                                       specified tab stops are not
                                       ascending.
          tabspec indirection illegal  A tabspec read from a file (or
                                       standard input) may not contain
                                       a tabspec referencing another
                                       file (or standard input).

     Notes
          newform normally only keeps track of physical characters;
          however, for the -i and -o options, newform will keep track
          of backspaces in order to line up tabs in the appropriate
          logical columns.

          newform will not prompt the user if a tabspec is to be read
          from the standard input (by use of -i,-- or -o--).

          If the -f option is used, and the last -o option specified
          was ``-o--'' , and was preceded by either ``-o--'' or a ``-
          i--'' , the tab specification format line will be incorrect.












     Page 5                                           (printed 8/7/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026