vc [-a] [-t]
[-c char] [-s]
[keyword=value... keyword=value]
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 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
supported:
- -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 matching end statement are
copied to the standard output. If the condition is false, all intervening
lines are discarded, including control statements. Note: 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
(for example, : 012 > 12 is false). All other operators take
strings as arguments (for example, : 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.
- LANG,
LC_ALL
- See locale(7).
- LC_CTYPE
- Determines the mapping of bytes to characters for the control
character.