vc(1) vc(1)
NAME
vc - version control
SYNOPSIS
vc [-a] [-c char] [-s] [-t] [keyword=value...keyword=value]
DESCRIPTION
The vc 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 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, (unless the -t keyletter is used, in
which case, all characters up to and including the first TAB
are ignored , and what follows begins the control statement
(see below)). The default control character is colon (:).
This can be changed 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(1); 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 \.
Keyletter Arguments
-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.
Page 1 (last mod. 1/16/87)
vc(1) vc(1)
If one is found, all characters up to and
including the TAB are discarded.
-cchar Specifies a control character to be used in place
of :.
-s Silences warning messages (not error) that are
normally printed on the diagnostic output.
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 vc command line and all previous 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
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
Page 2 (last mod. 1/16/87)
vc(1) vc(1)
( ) 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
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. vc halts execution, and returns
an exit code of 1.
EXAMPLE
If you have a file named note containing:
:dcl NAME,PLACE
:NAME:,
Just a note to remind you that we have a meeting
scheduled Monday morning at :PLACE:.
Page 3 (last mod. 1/16/87)
vc(1) vc(1)
the command
vc -a NAME=Joe PLACE=University < note
will produce
Joe,
Just a note to remind you that we have a meeting
scheduled Monday morning at the University.
FILES
/usr/bin/vc
SEE ALSO
ed(1), help(1).
DIAGNOSTICS
Use help(1) for explanations.
EXIT CODES
0 - normal
1 - any error
Page 4 (last mod. 1/16/87)