Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ get(CP) — OpenDesktop Software Development System 1.0.0d

Media Vault

Software Library

Restoration Projects

Artifacts Sought

     Name
          get - get a version of an SCCS file

     Syntax
          get [-rSID] [-ccutoff] [-ilist] [-xlist] [-wstring] [-aseq-
          no.] [-k] [-e] [-l[p]] [-p] [-m] [-n] [-s] [-b] [-g] [-t]
          file ...

     Description
          The get command generates an ASCII text file from each named
          SCCS file according to the specifications given by its
          keyletter arguments, which begin with -.  The arguments may
          be specified in any order, but all keyletter arguments apply
          to all named SCCS files.  If a directory is named, get
          behaves as though each file in the directory were specified
          as a named file, except that non-SCCS files (last component
          of the path name does not begin with s.) and unreadable
          files are silently ignored.  If a name of - is given, the
          standard input is read; each line of the standard input is
          taken to be the name of an SCCS file to be processed.
          Again, non-SCCS files and unreadable files are silently
          ignored.

          The generated text is normally written into a file called
          the g-file whose name is derived from the SCCS file name by
          simply removing the leading s.; (see also Files, below).

          Each of the keyletter arguments is explained below as though
          only one SCCS file is to be processed, but the effects of
          any keyletter argument applies independently to each named
          file.

               -rSID      The SCCS identification string (SID) of the
                          version (delta) of an SCCS file to be
                          retrieved.  Table 1 below shows, for the
                          most useful cases, what version of an SCCS
                          file is retrieved [as well as the SID of the
                          version to be eventually created by
                          delta(CP) if the -e keyletter is also used],
                          as a function of the SID specified.

               -ccutoff   Cutoff date-time, in the form:

                               YY[MM[DD[HH[MM[SS]]]]]

                          No changes (deltas) to the SCCS file which
                          were created after the specified cutoff
                          date-time are included in the generated
                          ASCII text file.  Units omitted from the
                          date-time default to their maximum possible
                          values; that is, -c7502 is equivalent to
                          -c750228235959.  Any number of non-numeric
                          characters may separate the various 2-digit
                          pieces of the cutoff date-time.  This
                          feature allows one to specify a cutoff date
                          in the form: "-c77/2/2 9:22:25".  Note that
                          this implies that one may use the %E% and
                          %U% identification keywords (see below) for
                          nested gets.

                               get  "-c%E%  %U%"  s.file

               -ilist     A list of deltas to be included (forced to
                          be applied) in the creation of the generated
                          file.  The list has the following syntax:

                               <list> ::= <range> | <list> , <range>
                               <range> ::= SID | SID - SID

                          SID, the SCCS Identification of a delta, may
                          be in any form shown in the ``SID
                          Specified'' column of Table 1.

               -xlist     A list of deltas to be excluded in the
                          creation of the generated file.  See the -i
                          keyletter for the list format.

               -e         Indicates that the get is for the purpose of
                          editing or making a change (delta) to the
                          SCCS file via a subsequent use of delta(CP).
                          The -e keyletter used in a get for a
                          particular version (SID) of the SCCS file
                          prevents further gets for editing on the
                          same SID until delta is executed or the j
                          (joint edit) flag is set in the SCCS file
                          (see admin(CP)).  Concurrent use of get -e
                          for different SIDs is always allowed.

                          If the g-file generated by get with an -e
                          keyletter is accidentally ruined in the
                          process of editing it, it may be regenerated
                          by re-executing the get command with the -k
                          keyletter in place of the -e keyletter.

                          SCCS file protection specified via the
                          ceiling, floor, and authorized user list
                          stored in the SCCS file (see admin(CP)) is
                          enforced when the -e keyletter is used.

               -b         Used with the -e keyletter to indicate that
                          the new delta should have an SID in a new
                          branch as shown in Table 1.  This keyletter
                          is ignored if the b flag is not present in
                          the file (see admin(CP)) or if the retrieved
                          delta is not a leaf delta.  (A leaf delta is
                          one that has no successors on the SCCS file
                          tree.)
                          Note: A branch delta may always be created
                          from a non-leaf delta.  Partial SIDs are
                          interpreted as shown in the ``SID
                          Retrieved'' column of Table 1.

               -k         Suppresses replacement of identification
                          keywords (see below) in the retrieved text
                          by their value.  The -k keyletter is implied
                          by the -e keyletter.

               -l[p]      Causes a delta summary to be written into an
                          l-file.  If -lp is used, then an l-file is
                          not created; the delta summary is written on
                          the standard output instead.  See Files for
                          the format of the l-file.

               -p         Causes the text retrieved from the SCCS file
                          to be written on the standard output.  No
                          g-file is created.  All output which
                          normally goes to the standard output goes to
                          file descriptor 2 instead, unless the -s
                          keyletter is used, in which case it
                          disappears.

               -s         Suppresses all output normally written on
                          the standard output.  However, fatal error
                          messages (which always go to file descriptor
                          2) remain unaffected.

               -m         Causes each text line retrieved from the
                          SCCS file to be preceded by the SID of the
                          delta that inserted the text line in the
                          SCCS file.  The format is: SID, followed by
                          a horizontal tab, followed by the text line.

               -n         Causes each generated text line to be
                          preceded with the %M% identification keyword
                          value (see below).  The format is: %M%
                          value, followed by a horizontal tab,
                          followed by the text line.  When both the -m
                          and -n keyletters are used, the format is:
                          %M% value, followed by a horizontal tab,
                          followed by the -m keyletter generated
                          format.

               -g         Suppresses the actual retrieval of text from
                          the SCCS file.  It is primarily used to
                          generate an l-file, or to verify the
                          existence of a particular SID.

               -t         Used to access the most recently created
                          delta in a given release (e.g., -r1), or
                          release and level (e.g., -r1.2).

               -w string  Substitute string for all occurrences of %W%
                          when getting the file.

               -aseq-no.  The delta sequence number of the SCCS file
                          delta (version) to be retrieved (see
                          sccsfile(F)).  This keyletter is used by the
                          comb(CP) command; it is not a generally
                          useful keyletter.  If both the -r and -a
                          keyletters are specified, only the -a
                          keyletter is used.  Care should be taken
                          when using the -a keyletter in conjunction
                          with the -e keyletter, as the SID of the
                          delta to be created may not be what one
                          expects.  The -r keyletter can be used with
                          the -a and -e keyletters to control the
                          naming of the SID of the delta to be
                          created.

          For each file processed, get responds (on the standard
          output) with the SID being accessed and with the number of
          lines retrieved from the SCCS file.

          If the -e keyletter is used, the SID of the delta to be made
          appears after the SID accessed and before the number of
          lines generated.  If there is more than one named file or if
          a directory or standard input is named, each file name is
          printed (preceded by a new-line) before it is processed.  If
          the -i keyletter is used, included deltas are listed
          following the notation ``Included''; if the -x keyletter is
          used, excluded deltas are listed following the notation
          ``Excluded''.

           TABLE 1. Determination of SCCS Identification String

       SID*    -b Keyletter      Other           SID     SID of Delta
     Specified    Used-        Conditions     Retrieved to be Created
     _________________________________________________________________
     none=          no      R defaults to mR  mR.mL     mR.(mL+1)
     none=         yes      R defaults to mR  mR.mL     mR.mL.(mB+1).1
     _________________________________________________________________
     R              no      R > mR            mR.mL     R.1***
     R              no      R = mR            mR.mL     mR.(mL+1)
     R             yes      R > mR            mR.mL     mR.mL.(mB+1).1
     R             yes      R = mR            mR.mL     mR.mL.(mB+1).1
                            R < mR and
     R              -       R does not exist  hR.mL**   hR.mL.(mB+1).1
                            Trunk succ.#
     R              -       in release > R    R.mL      R.mL.(mB+1).1
                            and R exists
     _________________________________________________________________
     R.L            no      No trunk succ.    R.L       R.(L+1)
     R.L           yes      No trunk succ.    R.L       R.L.(mB+1).1
                            Trunk succ.
                            in release _ R
     _________________________________________________________________
     R.L.B          no      No branch succ.   R.L.B.mS  R.L.B.(mS+1)
     R.L.B         yes      No branch succ.   R.L.B.mS  R.L.(mB+1).1
     _________________________________________________________________
     R.L.B.S        no      No branch succ.   R.L.B.S   R.L.B.(S+1)
     R.L.B.S       yes      No branch succ.   R.L.B.S   R.L.(mB+1).1
     R.L.B.S        -       Branch succ.      R.L.B.S   R.L.(mB+1).1

          *     ``R'', ``L'', ``B'', and ``S'' are the ``release'',
                ``level'', ``branch'', and ``sequence'' components of
                the SID, respectively; ``m'' means ``maximum''.  Thus,
                for example, ``R.mL'' means ``the maximum level number
                within release R''; ``R.L.(mB+1).1'' means ``the first
                sequence number on the new branch (i.e., maximum
                branch number plus one) of level L within release R''.
                Note that if the SID specified is of the form ``R.L'',
                ``R.L.B'', or ``R.L.B.S'', each of the specified
                components must exist.
          **    ``hR'' is the highest existing release that is lower
                than the specified, nonexistent, release R.
          ***   This is used to force creation of the first delta in a
                new release.
          #     Successor.
          -     The -b keyletter is effective only if the b flag (see
     R.L        admin(CP)) is present in the file.  An entry(of+-).1
                means ``irrelevant''.
          =     This case applies if the d (default SID) flag is not
                present in the file.  If the d flag is present in the
                file, then the SID obtained from the d flag is
                interpreted as if it had been specified on the command
                line.  Thus, one of the other cases in this table
                applies.

     Identification Keywords
          Identifying information is inserted into the text retrieved
          from the SCCS file by replacing identification keywords with
          their value wherever they occur.  The following keywords may
          be used in the text stored in an SCCS file:

          Keyword   Value
          %M%       Module name: either the value of the m flag in the
                    file (see admin(CP)), or if absent, the name of
                    the SCCS file with the leading s. removed.
          %I%       SCCS identification (SID) (%R%.%L%.%B%.%S%) of the
                    retrieved text.
          %R%       Release.
          %L%       Level.
          %B%       Branch.
          %S%       Sequence.
          %D%       Current date (YY/MM/DD).
          %H%       Current date (MM/DD/YY).
          %T%       Current time (HH:MM:SS).
          %E%       Date newest applied delta was created (YY/MM/DD).
          %G%       Date newest applied delta was created (MM/DD/YY).
          %U%       Time newest applied delta was created (HH:MM:SS).
          %Y%       Module type: value of the t flag in the SCCS file
                    (see admin(CP)).
          %F%       SCCS file name.
          %P%       Fully qualified SCCS file name.
          %Q%       The value of the q flag in the file (see
                    admin(CP)).
          %C%       Current line number.  This keyword is intended for
                    identifying messages output by the program such as
                    ``this should not have happened'' type errors.  It
                    is not intended to be used on every line to
                    provide sequence numbers.
          %Z%       The 4-character string @(#) recognizable by
                    what(CP).
          %W%       A shorthand notation for constructing what(CP)
                    strings for system program files.
                    %W% = %Z%%M%<horizontal-tab>%I%
          %A%       Another shorthand notation for constructing
                    what(CP) strings for non-UNIX-type system program
                    files.
                    %A% = %Z%%Y% %M% %I%%Z%

          Several auxiliary files may be created by get.  These files
          are known generically as the g-file, l-file, p-file, and z-
          file.  The letter before the hyphen is called the tag.  An
          auxiliary file name is formed from the SCCS file name: the
          last component of all SCCS file names must be of the form
          s.module-name; the auxiliary files are named by replacing
          the leading s with the tag.  The g-file is an exception to
          this scheme: the g-file is named by removing the s. prefix.
          For example, s.xyz.c, the auxiliary file names would be
          xyz.c, l.xyz.c, p.xyz.c, and z.xyz.c, respectively.

          The g-file, which contains the generated text, is created in
          the current directory (unless the -p keyletter is used).  A
          g-file is created in all cases, whether or not any lines of
          text were generated by the get.
          It is owned by the real user.  If the -k keyletter is used
          or implied, its mode is 644; otherwise its mode is 444.
          Only the real user needs write permission in the current
          directory.

          The l-file contains a table showing which deltas were
          applied in generating the retrieved text.  The l-file is
          created in the current directory if the -l keyletter is
          used; its mode is 444 and it is owned by the real user.
          Only the real user needs write permission in the current
          directory.

          Lines in the l-file have the following format:

               a.   A blank character if the delta was applied;
                    * otherwise.
               b.   A blank character if the delta was applied or was
                    not applied and ignored;
                    * if the delta was not applied and was not
                    ignored.
               c.   A code indicating a ``special'' reason why the
                    delta was or was not applied:
                         ``I'': Included.
                         ``X'': Excluded.
                         ``C'': Cut off (by a -c keyletter).
               d.   Blank.
               e.   SCCS identification (SID).
               f.   Tab character.
               g.   Date and time (in the form YY/MM/DD HH:MM:SS) of
                    creation.
               h.   Blank.
               i.   Login name of person who created delta.

               The comments and MR data follow on subsequent lines,
               indented one horizontal tab character.  A blank line
               terminates each entry.

          The p-file is used to pass information resulting from a get
          with a -e keyletter along to delta.  Its contents are also
          used to prevent a subsequent execution of get with a -e
          keyletter for the same SID until delta is executed or the
          joint edit flag, j, (see admin(CP)) is set in the SCCS file.
          The p-file is created in the directory containing the SCCS
          file and the effective user must have write permission in
          that directory.  Its mode is 644 and it is owned by the
          effective user.  The format of the p-file is: the gotten
          SID, followed by a blank, followed by the SID that the new
          delta will have when it is made, followed by a blank,
          followed by the login name of the real user, followed by a
          blank, followed by the date-time the get was executed,
          followed by a blank and the -i keyletter argument if it was
          present, followed by a blank and the -x keyletter argument
          if it was present, followed by a new-line.  There can be an
          arbitrary number of lines in the p-file at any time; no two
          lines can have the same new delta SID.

          The z-file serves as a lock-out mechanism against
          simultaneous updates.  Its contents are the binary (2 bytes)
          process ID of the command (i.e., get) that created it.  The
          z-file is created in the directory containing the SCCS file
          for the duration of get.  The same protection restrictions
          as those for the p-file apply for the z-file.  The z-file is
          created mode 444.
     Files
          g-file           Existed before the execution of delta;
                           removed after completion of delta.
          p-file           Existed before the execution of delta; may
                           exist after completion of delta.
          q-file           Created during the execution of delta;
                           removed after completion of delta.
          x-file           Created during the execution of delta;
                           renamed to SCCS file after completion of
                           delta.
          z-file           Created during the execution of delta;
                           removed during the execution of delta.
          d-file           Created during the execution of delta;
                           removed after completion of delta.
          /usr/bin/bdiff   Program to compute differences between the
                           ``gotten'' file and the g-file.

     See Also
          admin(CP), delta(CP), prs(CP), what(CP).

     Notes
          If the effective user has write permission (either
          explicitly or implicitly) in the directory containing the
          SCCS files, but the real user does not, then only one file
          may be named when the -e keyletter is used.

     Standards Conformance
          get is conformant with:
          AT&T SVID Issue 2, Select Code 307-127;
          and The X/Open Portability Guide II of January 1987.

                                                (printed 6/18/89)



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