vc(1)

πŸ“¦ version 2022.10.16, in opensuse-leap 16.0

πŸ’– vc β€” version control, bestie (the vc(1) manual page) πŸ’–

okay so this is the vc(1) manual page, and it is literally all about vc, the version control command. the vibe is: copy lines from standard input to standard output, but make it conditional, keyword-customized, and lowkey chaotic in the best way. slay. πŸ’…


🌸 NAME 🌸

vc β€” version control ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

vc [-a] [-t] [-c char] [-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 of β€œcontrol statements” encountered in the standard input. While doing the copy operation, a user-declared keyword may be replaced by its string value when it shows up in plain text and/or control statements. it's giving conditional copy with keyword glow-up energy. ✨

The copying of lines from standard input to 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 standard output with the backslash removed. Lines beginning with a backslash followed by a non-control character are copied in their entirety. iykyk. πŸ¦‹

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. periodt. πŸ’›

Replacement of keywords by values happens 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 \. tiny backslash lore, but important. πŸ‘


✨ OPTIONS ✨

The following options are supported, and yes bestie, every single one matters:

  • -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.

πŸ’… version control statements vc recognizes πŸ’…

  • :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). no cap, that distinction is real. 🫢

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 β€” Turn on keyword replacement on all lines.
  • :off β€” Turn 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. not a drill, bestie: it stops right there. πŸ’€


🌈 ENVIRONMENT VARIABLES 🌈

See environ(7) for descriptions of the following environment variables that affect the execution of vc(1): LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

  • SCCS_NO_HELP β€” If set, vc(1) will not automatically call help(1) with the SCCS error code in order to print a more helpful error message. Scripts that depend on the exact error messages of SCCS commands should set the environment variable SCCS_NO_HELP and set LC_ALL=C. script girlies, take notes. πŸ“

πŸ“ EXIT STATUS πŸ“

The following exit values are returned:

  • 0 β€” Successful completion.
  • 1 β€” An error occurred. oop. 😭

🧚 FILES 🧚

  • dump.core β€” If the file dump.core exists in the current directory and a fatal signal is received, a coredump is initiated via abort(3). fatal signal + that file = coredump moment, heads up. πŸ’₯

πŸ‘‘ ATTRIBUTES πŸ‘‘

See attributes(7) for descriptions of the following attributes:

  • Availability β€” attribute type; attribute value SUNWsprot.

πŸ¦‹ SEE ALSO πŸ¦‹

ed(1), attributes(7).


πŸ’œ BUGS πŸ’œ

None currently known. iconic, honestly. ✨

Mail bugs and suggestions to schilytools@mlists.in-berlin.de or open a ticket at https://codeberg.org/schilytools/schilytools/issues.

The mailing list archive may be found at:

https://mlists.in-berlin.de/mailman/listinfo/schilytools-mlists.in-berlin.de


🌟 AUTHORS 🌟

vc was originally written by Eric Allman at UCB in 1980. It was later maintained by various people at AT&T and Sun Microsystems. Since 2006, it has been maintained by Jrg Schilling and the schilytools project authors. legacy behavior, but make it cute. 🫢


πŸ’Ύ SOURCE DOWNLOAD πŸ’Ύ

The source code for SCCS is included in the schilytools project and may be retrieved from the schilytools project at Codeberg at

https://codeberg.org/schilytools/schilytools

The download directory is

https://codeberg.org/schilytools/schilytools/releases


okay bestie, that's the whole vc(1) page β€” footer source/version is SunOS 5.11, dated 2022/10/06, and yes the manual name is vc(1). πŸ’…βœ¨

πŸ“¦ where this page comes from