COMPAR is a part of SOUPR (see SOUPR.DOC). The input to COMPAR consists of two ASCII files known as the base file and the user file. COMPAR will compare the two files and create a correction file. The correction file details how the user file differs from the base file. The command format is: .R COMPAR *cor-spec=base-spec,user-spec/switches Switches: /BASE Do wildcarding on the base-spec /BLANK In conjunction with the /MATCH switch, the /BLANK switch determines whether or not blank lines should be counted. /BLANK means that blank lines should be counted, and /NOBLANK means that blank lines should not be counted. The default is /NOBLANK. EXAMPLE: Suppose we use the switches /MATCH:3/NOBLANK. Suppose a sequence of 6 lines in the base file is exactly equal to a sequence of 6 lines in the user file, but 4 of these 6 lines are blank. This sequence is not considered to be a match. There are only 2 non-blank lines that match, and this is not considered to be sufficient. there must be at least 3 non-blank lines that match. Note that a blank line is defined as any sequence of spaces, tabs, and carriage returns followed by a break character. Note that the use of /NOBLANK does not mean that blank lines are ignored. A blank line in the base file must compare identically with the blank line in the user file (differences in white space are not ignored). The entire sequence of 6 lines from the base file must be exactly equal to the entire sequence of 6 lines from the user file. The /NOBLANK switch does not mean that blank lines are ignored, it means only that they are not counted when determining the treshold for /MATCH. /EXIT Exit to monitor (same as ^Z) /HELP Type this text /LETTER This switch is similar to /NUMBER except that instead of a numeric suffix, an alphabetic suffix is used. For example, /NAME:9347/LETTER will label the edits as 9347A, 9347B, 9347C, etc. /LOG Log file names (default) /MATCH:n A dissimilarity does not end until n lines match. The default is 3. /NAME:foo Each patch is labeled with the sixbit name foo. When correction files are merged, this label can be used to identify the origin of the patch. Labels can also be used as conditionals. /NAME:"string" Each patch is labeled with the ASCII string. Only the first word is significant for conditionals. /NOBASE Same as /USER /NOBLANK Do not count blank lines (default). /NOLETT Don't use alphabetic suffixes (default). /NOLOG Don't log file names /NONUMB Don't use numeric suffixes (default). /NOUSER Same as /BASE /NUMBER In addition to labeling the edits, number them as well. For example, /NAME:FOO/NUMBER will label the edits as FOO1, FOO2, FOO3, etc. /USER Do wildcarding on the user-spec (default) Notes: 1. The default device is DSK: 2. The default PPN is the user's path 3. The default input extension is MAC 4. The default output extension is COR 5. User-spec defaults to base-spec (i.e. file specs are sticky) 6. The filename of the cor-spec defaults to the filename of the base-spec 7. Full wildcards are allowed in all file specs 8. Consider the files: A.MAC, B.MAC, C.MAC, A.NEW, and B.NEW. The command *.COR=*.MAC,*.NEW/BASE will produce an error message because C.NEW does not exist. The command *.COR=*.MAC,*.NEW/USER, however, we proceed without error.