VC(1) GENIX Programmer's Manual VC(1)
NAME
vc - version control
SYNOPSIS
vc [-a] [-t] [-cchar] [-s] [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 encoun-
tered 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 char-
acter, 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(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 sur-
rounded by control characters is encountered on a version control
statement. The -a keyletter (see below) forces replacement of key-
words 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. 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 :.
Printed 9/28/83 Obsolescent 1
VC(1) GENIX Programmer's Manual VC(1)
-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 con-
trol 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
&
Printed 9/28/83 Obsolescent 2
VC(1) GENIX Programmer's Manual VC(1)
|
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.
DIAGNOSTICS
Use sccshelp(1) for explanations.
EXIT CODES
0 - normal
1 - any error
Printed 9/28/83 Obsolescent 3