srcredact - Man Page

a program for redaction of text files

Synopsis

srcredact [Options] -e audience [full_file]

srcredact [Options] -u audience full_file [redacted_file]

srcredact -l [full_file]

srcredact -h|-v

Description

srcredact is the program to extract “redacted versions” of the master file (option -e) or to incorporate the changes in the redacted versions into the master file (“unredact”, option -u).

The master file consists of chunks intended for different audiences.  Each audience has a name, e.g. classified, unclssified, expert etc.  Chunks are started and stopped by guard lines.  Each guard line has the format (for the default TeX syntax)

  %<*name1|name2|...>

or

  %</name1|name2|...>

In the first cases the text following the guard is included for the audiences name1, name2, ....  In the second case it is excluded for these audiences.

THere is a special audience ALL: a wild card for all audiences. Thus the idiom

  %</ALL>
  %<*classified>

means that the chunk is excluded for all audiences but classified

Exactly one of the options  -e (extract) or -u (unextract) must be present.  In  the extract mode the  non-option argument is  the name of the full file.   If it is absent, or is -,  standard input is used. In the unextract mode the first non-option argument

Options

-c list of comment patterns

Use the given pattern for comment lines to search for guards instead of the default TeX pattern.  The recognized patterns are:

c
  /*<guard>*/
cpp
  //<guard>
fortran
  C<guard>
shell
  #<guard>
TeX
  %<guard>

The pattern names should be separated by commas, and the list may be enclosed in quotes to prevent shell expansion, e.g

  -c "TeX, c, shell"
-d

Debug mode on.

-e audience

Extract the contents for the current audience into the file file. The cuurent audience is guessed from the file name, if the latter has the structure base-audience.extension, e.g. report-unclassified.tex.  The key -a overrides this guess and should be used if the file name does not follow this pattern.  The file name - means the standard output.

-h

Print help information and exit.

-l

List all audiences set in the file (one per line) and exit.

-u audience

Take a edited file intended for the audience (the second non-option argument) and incorporate the changes in it into the full file (the first non-option argument).  If the second argument is missing, standard input is used instead.  As usual, - also means standard input.  Note that only one of the two file arguments in this case can be standard input.

-v

Print version information and exit.

-w on|off|1|0|true|false

If on, 1 or true (the deafult), implicitly wrap the full document into the guards

 %<*ALL>
 ...
 %</ALL>

Return Value

The program returns 0 if successful, 1 if conflicts were found in the unextract mode and 2 in case of problems.

Conflicts in Unextract Mode

Like the standard diff3(1) tool, the program may find conflicts between the full version and the edited one in the -u mode.  Then the resulting file brackets the conflicts in the usual manner, e.g.

  <<<<<<< /tmp/BrjXo0hMOB/full
  %</nobonds>
  Forty-five tons best old dry government bonds, suitable for furnace, gold
  7 per cents., 1864, preferred.
  %<*nobonds>
  ||||||| /tmp/BrjXo0hMOB/extracted
  Forty-five tons best old dry government bonds, suitable for furnace, gold
  7 per cents., 1864, preferred.
  =======
  >>>>>>> /tmp/BrjXo0hMOB/new

Here full is the full document, extracted is the extracted file for the given audience, new is the edited file.

Author

Boris Veytsman, borisv@lk.net

This work was commissioned by Consumer Financial Protection Bureau, United States Treasury.

Info

2015-10-24 1.0 Text tools