vc(1)vc(1)Namevc - version control program
Syntaxvc [-a] [-t] [-cchar] [-s] [keyword=value... keyword=value]
Description
The command copies lines from the standard input to the standard output
under control of its arguments and 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 standard output is con‐
ditional. It is based on tests (in control statements) of keyword val‐
ues specified in control statements or as command arguments.
A control statement is a single line beginning with a control charac‐
ter, 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 noncontrol character are copied in their entirety.
A keyword is composed of 9 or fewer alphanumerics; the first must be
alphabetic. A value is any ASCII string that can be created with A
numeric value is an unsigned string of digits. Keyword values should
contain blanks or tabs.
Replacement of keywords by values occurs 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 \.
Options
Keyletter arguments:
-a Replaces the keywords surrounded by control characters in all text
lines.
-cchar
Specifies a control character to be used in place of :.
-s Suppresses all warning messages.
-t Ignores all characters from the beginning of the line to the first
tab character. If one is found, all characters up to and including
the tab are discarded.
Version Control Statements:
:dcl keyword[, ..., keyword]
Used to declare keywords. All keywords must be declared.
:asg keyword=value
Used to assign values to keywords. An asg statement overrides the
assignment for the corresponding keyword on the command line and all pre‐
vious asg's for that keyword. Keywords declared, but not assigned values
have null values.
:if condition
.
.
.
:end
Used to 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 that intervening if
statements and matching end statements are recognized solely for the pur‐
pose 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, fB: 012 != 12 is true). The precedence of the operators (from
highest to lowest) is:
= != > < all of equal precedence
&
|
Parentheses can be used to alter the order of precedence.
Values must be separated from operators or parentheses by at least one
blank or tab.
::text
Used for keyword replacement 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
Prints the given message on the diagnostic output.
:err message
Prints the given message followed by:
ERROR: err statement on line ... (915)
on the diagnostic output. The command halts execution, and returns an
exit code of 1.
Diagnostics
Use for explanations.
Exit Codes
0 - normal
1 - any error
vc(1)