


      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



      NNNNAAAAMMMMEEEE
           get - get a version of an SCCS file

      SSSSYYYYNNNNTTTTAAAAXXXX
           ggggeeeetttt [----rrrrSID] [----cccccutoff] [----iiiilist] [----xxxxlist] [----aaaaseq-no.] [----kkkk]
           [----eeee] [-_l[_p]] [----pppp] [----mmmm] [----nnnn] [----ssss] [----bbbb] [----gggg] [----tttt] file ............

      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
           _G_e_t 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, _g_e_t 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 ssss....) 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-_f_i_l_e whose name is derived from the SCCS file name by
           simply removing the leading ssss....; (see also _F_I_L_E_S, 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.

           ----rrrr_S_I_D      The _SCCS _I_Dentification 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 _d_e_l_t_a(1) if the ----eeee keyletter is also
                      used), as a function of the SID specified.

           ----cccc_c_u_t_o_f_f   _C_u_t_o_f_f date-time, in the form:

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

                      No changes (deltas) to the SCCS file which were
                      created after the specified _c_u_t_o_f_f date-time are
                      included in the generated ASCII text file.  Units
                      omitted from the date-time default to their
                      maximum possible values; that is, ----cccc7777555500002222 is
                      equivalent to ----cccc777755550000222222228888222233335555999955559999.  Any number of
                      non-numeric characters may separate the various 2
                      digit pieces of the _c_u_t_o_f_f date-time.  This
                      feature allows one to specify a _c_u_t_o_f_f date in
                      the form:  "----cccc77777777////2222////2222 9999::::22222222::::22225555".  Note that this



      Page 1                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



                      implies that one may use the %E% and %U%
                      identification keywords (see below) for nested
                      _g_e_t_s within, say the input to a _s_e_n_d(1C) command:

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

           ----eeee         Indicates that the _g_e_t is for the purpose of
                      editing or making a change (delta) to the SCCS
                      file via a subsequent use of _d_e_l_t_a(1).  The ----eeee
                      keyletter used in a _g_e_t for a particular version
                      (SID) of the SCCS file prevents further _g_e_ts for
                      editing on the same SID until _d_e_l_t_a is executed
                      or the jjjj (joint edit) flag is set in the SCCS
                      file (see _a_d_m_i_n(1)).  Concurrent use of ggggeeeetttt ----eeee
                      for different SIDs is always allowed.

                      If the _g-_f_i_l_e generated by _g_e_t with an ----eeee
                      keyletter is accidentally ruined in the process
                      of editing it, it may be regenerated by re-
                      executing the _g_e_t command with the ----kkkk keyletter
                      in place of the ----eeee keyletter.

                      SCCS file protection specified via the ceiling,
                      floor, and authorized user list stored in the
                      SCCS file (see _a_d_m_i_n(1)) are enforced when the ----eeee
                      keyletter is used.

           ----bbbb         Used with the ----eeee 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 bbbb flag is not present in the file (see
                      _a_d_m_i_n(1)) or if the retrieved _d_e_l_t_a is not a leaf
                      _d_e_l_t_a.  (A leaf _d_e_l_t_a is one that has no
                      successors on the SCCS file tree.)
                      Note: A branch _d_e_l_t_a may always be created from a
                      non-leaf _d_e_l_t_a.

           ----iiii_l_i_s_t     A _l_i_s_t of deltas to be included (forced to be
                      applied) in the creation of the generated file.
                      The _l_i_s_t 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.  Partial SIDs are interpreted as
                      shown in the ``SID Retrieved'' column of Table 1.

           ----xxxx_l_i_s_t     A _l_i_s_t of deltas to be excluded (forced not to be
                      applied) in the creation of the generated file.
                      See the ----iiii keyletter for the _l_i_s_t format.



      Page 2                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



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

           ----llll[pppp]      Causes a delta summary to be written into an _l-
                      _f_i_l_e.  If ----llllpppp is used then an _l-_f_i_l_e is not
                      created; the delta summary is written on the
                      standard output instead.  See _F_I_L_E_S for the
                      format of the _l-_f_i_l_e.

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

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

           ----mmmm         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.

           ----nnnn         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 ----mmmm and ----nnnn keyletters are used, the
                      format is:  %M% value, followed by a horizontal
                      tab, followed by the ----mmmm keyletter generated
                      format.

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

           ----tttt         Used to access the most recently created
                      (``top'') delta in a given release (e.g., ----rrrr1111),
                      or release and level (e.g., ----rrrr1111....2222).

           ----aaaa_s_e_q-_n_o.  The delta sequence number of the SCCS file delta
                      (version) to be retrieved (see _s_c_c_s_f_i_l_e(5)).
                      This keyletter is used by the _c_o_m_b(1) command; it
                      is not a generally useful keyletter, and users
                      should not use it.  If both the ----rrrr and ----aaaa
                      keyletters are specified, the ----aaaa keyletter is



      Page 3                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



                      used.  Care should be taken when using the ----aaaa
                      keyletter in conjunction with the ----eeee keyletter,
                      as the SID of the delta to be created may not be
                      what one expects.  The ----rrrr keyletter can be used
                      with the ----aaaa and ----eeee keyletters to control the
                      naming of the SID of the delta to be created.

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

           If the ----eeee 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 ----iiii keyletter is used included deltas are listed
           following the notation ``Included''; if the ----xxxx keyletter is
           used, excluded deltas are listed following the notation
           ``Excluded''.

            TABLE 1. Determination of SCCS Identification String
8      __________________________________________________________________________________________________________________________________
        SID*    ----bbbb Keyletter      Other           SID     SID of Delta
      Specified    Used|-        Conditions     Retrieved to be Created
8      __________________________________________________________________________________________________________________________________
      none|=          no      R defaults to mR  mR.mL     mR.(mL+1)
8      _________________________________________________________________
      none|=         yes      R defaults to mR  mR.mL     mR.mL.(mB+1).1
8      __________________________________________________________________________________________________________________________________
      R              no      R > mR            mR.mL     R.1***
8      _________________________________________________________________
      R              no      R = mR            mR.mL     mR.(mL+1)
8      _________________________________________________________________
      R             yes      R > mR            mR.mL     mR.mL.(mB+1).1
8      _________________________________________________________________
      R             yes      R = mR            mR.mL     mR.mL.(mB+1).1
8      _________________________________________________________________
                             R < mR and
8      R              -9       R does _n_o_t exist8  hR.mL**   hR.mL.(mB+1).1
8
8      _________________________________________________________________
                             Trunk succ.#
                             in release > R
7
7      R              -99       and R exists7      R.mL      R.mL.(mB+1).1

8      __________________________________________________________________________________________________________________________________
      R.L            no      No trunk succ.    R.L       R.(L+1)
8      _________________________________________________________________
      R.L           yes      No trunk succ.    R.L       R.L.(mB+1).1
8      _________________________________________________________________
                             Trunk succ.
8      R.L            -9       in release _> R8    R.L       R.L.(mB+1).1
8
8      __________________________________________________________________________________________________________________________________
      R.L.B          no      No branch succ.   R.L.B.mS  R.L.B.(mS+1)
8      _________________________________________________________________
      R.L.B         yes      No branch succ.   R.L.B.mS  R.L.(mB+1).1
8      __________________________________________________________________________________________________________________________________
      R.L.B.S        no      No branch succ.   R.L.B.S   R.L.B.(S+1)
8      _________________________________________________________________
      R.L.B.S       yes      No branch succ.   R.L.B.S   R.L.(mB+1).1
8      _________________________________________________________________
      R.L.B.S        -       Branch succ.      R.L.B.S   R.L.(mB+1).1


9      Page 4                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



8      __________________________________________________________________________________________________________________________________

           *     ``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 _n_e_w 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 _m_u_s_t exist.
           **    ``hR'' is the highest _e_x_i_s_t_i_n_g release that is lower
                 than the specified, _n_o_n_e_x_i_s_t_e_n_t, release R.
           ***   This forces creation of the _f_i_r_s_t delta in a _n_e_w
                 release.
           #     Successor.
           |-     The ----bbbb keyletter is effective only if the bbbb flag (see
                 _a_d_m_i_n(1)) is present in the file.  An entry of ---- means
                 ``irrelevant''.
           |=     This case applies if the dddd (default SID) flag is _n_o_t
                 present in the file.  If the dddd flag _i_s present in the
                 file, then the SID obtained from the dddd flag is
                 interpreted as if it had been specified on the command
                 line.  Thus, one of the other cases in this table
                 applies.

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

           _K_e_y_w_o_r_d   _V_a_l_u_e
           %%%%MMMM%%%%       Module name:  either the value of the mmmm flag in
                     the file (see _a_d_m_i_n(1)), or if absent, the name of
                     the SCCS file with the leading ssss.... removed.
           %%%%IIII%%%%       SCCS identification (SID) (%R%.%L%.%B%.%S%) of the
                     retrieved text.
           %%%%RRRR%%%%       Release.
           %%%%LLLL%%%%       Level.
           %%%%BBBB%%%%       Branch.
           %%%%SSSS%%%%       Sequence.
           %%%%DDDD%%%%       Current date (YY/MM/DD).
           %%%%HHHH%%%%       Current date (MM/DD/YY).
           %%%%TTTT%%%%       Current time (HH:MM:SS).
           %%%%EEEE%%%%       Date newest applied delta was created (YY/MM/DD).
           %%%%GGGG%%%%       Date newest applied delta was created (MM/DD/YY).
           %%%%UUUU%%%%       Time newest applied delta was created (HH:MM:SS).
           %%%%YYYY%%%%       Module type:  value of the tttt flag in the SCCS file
                     (see _a_d_m_i_n(1)).
           %%%%FFFF%%%%       SCCS file name.
9


      Page 5                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



           %%%%PPPP%%%%       Fully qualified SCCS file name.
           %%%%QQQQ%%%%       The value of the qqqq flag in the file (see
                     _a_d_m_i_n(1)).
           %%%%CCCC%%%%       Current line number.  This keyword is intended for
                     identifying messages output by the program such as
                     ``this shouldn't have happened'' type errors.  It
                     is _n_o_t intended to be used on every line to
                     provide sequence numbers.
           %%%%ZZZZ%%%%       The 4-character string @@@@((((####)))) recognizable by
                     _w_h_a_t(1).
           %%%%WWWW%%%%       A shorthand notation for constructing _w_h_a_t(1)
                     strings for ROS program files.
                     %W% = %Z%%M%<horizontal-tab>%I%
           %%%%AAAA%%%%       Another shorthand notation for constructing
                     _w_h_a_t(1) strings for non-ROS program files.
                     %A% = %Z%%Y% %M% %I%%Z%

      FFFFIIIILLLLEEEESSSS
           Several auxiliary files may be created by _g_e_t, These files
           are known generically as the _g-_f_i_l_e, _l-_f_i_l_e, _p-_f_i_l_e, and _z-
           _f_i_l_e.  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
           ssss...._m_o_d_u_l_e-_n_a_m_e, the auxiliary files are named by replacing
           the leading ssss with the tag.  The _g-_f_i_l_e is an exception to
           this scheme:  the _g-_f_i_l_e is named by removing the ssss.... prefix.
           For example, ssss....xxxxyyyyzzzz....cccc, the auxiliary file names would be
           xxxxyyyyzzzz....cccc, llll....xxxxyyyyzzzz....cccc, pppp....xxxxyyyyzzzz....cccc, and zzzz....xxxxyyyyzzzz....cccc, respectively.

           The _g-_f_i_l_e, which contains the generated text, is created in
           the current directory (unless the ----pppp keyletter is used).  A
           _g-_f_i_l_e is created in all cases, whether or not any lines of
           text were generated by the _g_e_t.  It is owned by the real
           user.  If the ----kkkk keyletter is used or implied its mode is
           644; otherwise its mode is 444.  Only the real user need
           have write permission in the current directory.

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

           Lines in the _l-_f_i_l_e have the following format:

                a.   A blank character if the delta was applied;
                     **** otherwise.
                b.   A blank character if the delta was applied or
                     wasn't applied and ignored;
                     **** if the delta wasn't applied and wasn't ignored.
                c.   A code indicating a ``special'' reason why the



      Page 6                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



                     delta was or was not applied:
                          ``I'': Included.
                          ``X'': Excluded.
                          ``C'': Cut off (by a ----cccc 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 _d_e_l_t_a.

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

           The _p-_f_i_l_e passes information resulting from a _g_e_t with an
           ----eeee keyletter along to _d_e_l_t_a.  Its contents are also used to
           prevent a subsequent execution of _g_e_t with an ----eeee keyletter
           for the same SID until _d_e_l_t_a is executed or the joint edit
           flag, jjjj, (see _a_d_m_i_n(1)) is set in the SCCS file.  The _p-_f_i_l_e
           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-_f_i_l_e 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 _g_e_t was executed, followed by a blank and the
           ----iiii keyletter argument if it was present, followed by a blank
           and the ----xxxx keyletter argument if it was present, followed by
           a new-line.  There can be an arbitrary number of lines in
           the _p-_f_i_l_e at any time; no two lines can have the same new
           delta SID.

           The _z-_f_i_l_e serves as a _l_o_c_k-_o_u_t mechanism against
           simultaneous updates.  Its contents are the binary (2 bytes)
           process ID of the command (i.e., _g_e_t) that created it.  The
           _z-_f_i_l_e is created in the directory containing the SCCS file
           for the duration of _g_e_t.  The same protection restrictions
           as those for the _p-_f_i_l_e apply for the _z-_f_i_l_e.  The _z-_f_i_l_e is
           created mode 444.

      SSSSEEEEEEEE AAAALLLLSSSSOOOO
           admin(1), delta(1), help(1), prs(1), what(1), sccsfile(4).
           _S_o_u_r_c_e _C_o_d_e _C_o_n_t_r_o_l _S_y_s_t_e_m in the _R_O_S _U_t_i_l_i_t_y _G_u_i_d_e.

      DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
           Use _h_e_l_p(1) for explanations.

      BBBBUUUUGGGGSSSS
           If the effective user has write permission (either



      Page 7                                                   (9010-E)






      GGGGEEEETTTT((((1111))))                      ((((UUUUNNNNIIIIXXXX 5555....0000))))                     GGGGEEEETTTT((((1111))))



           explicitly or implicitly) in the directory containing the
           SCCS files, but the real user doesn't, then only one file
           may be named when the ----eeee keyletter is used.




















































      Page 8                                                   (9010-E)



