vc(1)
NAME
vc − version control
SYNOPSIS
vc [-a] [-t] [-c char] [-s] [keyword=value ... keyword=value]
DESCRIPTION
vc 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 can 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 option (see below). The default control character is colon (:), except as modified by the -c option (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 fewer alphanumeric characters; the first character must be alphabetic. A value is any ASCII string that can be created using ed (see ed(1)); a numeric value is an unsigned string of digits. Keyword values must not contain spaces 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 option (see below) forces replacement of keywords in all lines of text. An uninterpreted control character can be included in a value by preceding it with \. If a literal \ is desired, it too must be preceded by \.
Options
vc recognizes the following options and arguments:
-a Replace keywords surrounded by control characters with their assigned value in all text lines and not just in vc statements.
-t Ignore all characters from the beginning of a line up to and including the first tab character for the purpose of detecting a control statement. If one is found, all characters up to and including the tab are discarded.
-cchar Specify a control character to be used in place of :.
-s Silence warning messages (not errors) that are normally printed on the diagnostic output.
Version Control Statements
Version control statements occur in the following forms:
: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 asgs 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
( ) used for logical groupings
not allowed only immediately after the if, and when present, inverts the value of the entire condition
The > and < operate only on unsigned integer values (such as : 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 can be used to alter the order of precedence.
Values must be separated from operators or parentheses by at least one space 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 option.
:on
:off Turn on or off keyword replacement on all lines.
:ctlchar
Change the control character to char.
:msgmessage
Prints the given message on the diagnostic output.
:errmessage
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.
EXTERNAL INFLUENCES
Environment Variables
LC_CTYPE determines the interpretation of keywords, values, the control character assigned through ctl and within text as single- and/or multi-byte characters.
LANG determines the language in which messages are displayed.
If LC_CTYPE is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable. If LANG is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of LANG. If any internationalization variable contains an invalid setting, vc behaves as if all internationalization variables are set to "C". See environ(5).
RETURN VALUE
vc returns 0 on normal completion; 1 if an error occurs.
DIAGNOSTICS
Use help(1) for explanations.
SEE ALSO
Hewlett-Packard Company — HP-UX Release 9.10: April 1995