Amiga Unix — 68040 · 68060

Manual pages › General commands (1)

vc(1)

version control

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

vc - version control

SYNOPSIS

vc [-a] [-t] [-cchar] [-s] [keyword=value ... keyword=value]

DESCRIPTION

This command is obsolete and will be removed in the next release.

The vc command copies lines from the standard input to the standard output under control of its arguments and of ``control statements'' encountered in the standard input. In the process of performing the copy operation, user-declared keywords may be replaced by their string value when they appear in plain text and/or control statements.

The copying of lines from the standard input to the standard output is conditional, based on tests (in control statements) of keyword values specified in control statements or as vc command arguments.

A control statement is a single line beginning with a control character, except as modified by the -t keyletter (see below). The default control character is colon (:), except as modified by the -c keyletter (see below). Input lines beginning with a backslash (\) followed by a control character are not control lines and are copied to the standard output with the backslash removed. Lines beginning with a backslash followed by a non-control character are copied in their entirety.

A keyword is composed of 9 or less alphanumerics; the first must be alphabetic. A value is any ASCII string that can be created with ed; a numeric value is an unsigned string of digits. Keyword values may not contain blanks or tabs.

Replacement of keywords by values is done whenever a keyword surrounded by control characters is encountered on a version control statement. The -a keyletter (see below) forces replacement of keywords in all lines of text. An uninterpreted control character may be included in a value by preceding it with \. If a literal \ is desired, then it too must be preceded by \. The following options are valid:

-a Forces replacement of keywords surrounded by control characters with their assigned value in all text lines and not just in vc statements.

-t All characters from the beginning of a line up to and including the first tab character are ignored for the purpose of detecting a control statement. If a control statement is found, all characters up to and including the tab are discarded.

-cchar Specifies a control character to be used in place of the ``:'' default.

-s Silences warning messages (not error) that are normally printed on the diagnostic output.

vc recognizes the following version control statements:

:dcl keyword[, ..., keyword]

     Declare keywords.  All keywords must be declared.

:asg keyword=value

Assign values to keywords. An asg statement overrides the assignment for the corresponding keyword on the vc command line and all previous asg statements for that keyword. Keywords that are declared but are not assigned values have null values.

:if condition
     ...
:end
     Skip lines of the standard input.  If the condition  is
     true, all lines between the if statement and the match-
     ing end statement are copied to  the  standard  output.
     If  the  condition  is false, all intervening lines are
     discarded, including  control  statements.   Note  that
     intervening  if  statements and matching end statements
     are recognized solely for the  purpose  of  maintaining
     the proper if-end matching.

The syntax of a condition is:

<cond>    ::=  [ ``not'' ] <or>
<or>      ::=  <and> | <and> ``|'' <or>
<and>     ::=  <exp> | <exp> ``&'' <and>
<exp>     ::=  ``('' <or> ``)'' |  <value>  <op>
          <value>
<op>      ::=  ``='' | ``!='' | ``<'' | ``>''
<value>   ::=   <arbitrary   ASCII   string>   |
          <numeric string>

The available operators and their meanings are:

=         equal
!=        not equal
&         and
|         or
>         greater than

<         less than
( )       used for logical groupings
not       may only occur immediately  after  the
          if,  and  when  present,  inverts  the
          value of the entire condition

The > and < operate only on unsigned integer values (e.g., : 012 > 12 is false). All other operators take strings as arguments (e.g., : 012 != 12 is true).

The precedence of the operators (from highest to lowest) is:

= != > <  all of equal precedence
&
|

Parentheses may be used to alter the order of precedence.

Values must be separated from operators or parentheses by at least one blank or tab.

::text

Replace keywords on lines that are copied to the standard output. The two leading control characters are removed, and keywords surrounded by control characters in text are replaced by their value before the line is copied to the output file. This action is independent of the -a keyletter.

:on
:off  Turn on or off keyword replacement on all lines.

:ctl char

Change the control character to char.

:msg message

Print message on the diagnostic output.

:err message

Print message followed by:

ERROR: err statement on line ... (915)

on the diagnostic output. vc halts execution, and returns an exit code of 1.

SEE ALSO

help(1).
ed(1) in the User's Reference Manual.