Annotation of 43BSD/contrib/rcs/doc/pretty_keys.ms, revision 1.1

1.1     ! root        1: .PP
        !             2: RCS markers like "$Revision: 2.3 $" etc., can be pretty-printed (i.e.,
        !             3: without the leading keyword and the $-signs) as follows.
        !             4: 
        !             5: In n/troff, define the following macro:
        !             6: .nf
        !             7: 
        !             8:         .de VL
        !             9:         \\$2
        !            10:         ..
        !            11: 
        !            12: The call
        !            13:         .VL $Revision: 1.2 $
        !            14: .fi
        !            15: picks out the number (actually, the value field of any RCS marker).
        !            16: In all manual pages, I recommend the use an identification
        !            17: section instead of an author section, which looks something like this:
        !            18: .nf
        !            19: 
        !            20:         .SH IDENTIFICATION
        !            21:         Author: Walter F. Tichy,
        !            22:         Purdue University, West Lafayette, IN, 47907.
        !            23:         .sp 0
        !            24:         Revision Number:
        !            25:         .VL $Revision: 3.0 $
        !            26:         ; Release Date:
        !            27:         .VL $Date: 82/11/27 11:43:39 $
        !            28:         \&.
        !            29:         .sp 0
        !            30:         Copyright \(co 1982 by Walter F. Tichy.
        !            31: 
        !            32: 
        !            33: .fi
        !            34: One could use the same trick with C-macros, but, unfortunately, these macros
        !            35: want commas separating the arguments. I can only offer sscanf instead: 
        !            36: .nf
        !            37: 
        !            38:         char * getkeyval(s)
        !            39:         char * s;
        !            40:         {       static char keyval[100];
        !            41:                 sscanf(s,"%*s%s",keyval);
        !            42:                 return keyval;
        !            43:         }
        !            44: 
        !            45: An example use of getkeyval() is the following greeting message: 
        !            46: 
        !            47:        printf("Program version %s\n",getkeyval("$Revision 1.2 $"));
        !            48: 
        !            49: .fi
        !            50: There is no option in RCS that strips off the keywords, for a good reason:
        !            51: If the keyword is stripped off, it becomes impossible to update the
        !            52: keyword value automatically.
        !            53: 
        !            54: There is no way to suppress the keyword expansion, either. If you 
        !            55: absolutely need a keyword in RCS format unexpanded, piece it together from 
        !            56: two strings in C, or imbed the null-character \& in n/troff. 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.