[comp.os.os2.programmer] RCS 5.5 for MS-DOS and OS/2

few@gupta.portal.com (Frank Whaley) (03/15/91)

I've just finished porting RCS v5.5 to MS-DOS and OS/2, and I'm
planning on sending binaries and manpages to the moderator of
comp.sys.ibm.pc.binaries.  I'll also send a source package that
includes both new and original source, along with makefiles for
Turbo C 2.0 and Microsoft C 5.1 and 6.0.  This port also includes
GNU diff v1.15 (required by this version of RCS).

I've seen a few different methods of handling the RCS-file naming
problem.  Appending ",v" doesn't work for FAT filesystems, and we
live with the 8+3 filename limitation.  I want to describe the
mechanism I chose, and why, so anyone with a *vastly* superior
system can get back to me quickly before I mail off the files.

I chose the backquote character (`) as RCSSEP because it is a legal
filename character and unlikely to conflict with extensions used
by common programming languages.  Appending a single character
instead of two means that filenames with 0, 1 or 2 character
extensions cna be handled by simply appending the backquote.  The
naming rules are:

	filename	-> filename.`
	filename.?	-> filename.?`
	filename.??	-> filename.??`
	file.???	-> file`.???
	filename.???	-> filenam`.??? (warning issued)

Note that this scheme does not interfere with checking in or out
full filenames, that is

	co somefile.asm

will cause somefile.asm to be deposited in the current directory.
However,

	co /some/other/place/RCS/somefil`.asm

will leave somefil.asm in the current directory.  This is vulgar,
but is actually the lesser of many evils.

Anyone suggesting that RCS files can be kept with their original
names and forced into the .\RCS directory should download the
source and examine the consequences :-)

The following extensions are recognized, with the given default
comment leader.

	"ada", "-- ",	/* Ada		*/
	"asm", ";; ",	/* ASM		*/
	"bat", ":: ",	/* BAT		*/
	"c",   " * ",	/* C		*/
	"cpp", "// ",	/* C++		*/
	"cmd", ":: ",	/* CMD		*/
	"def", ";; ",	/* Windows	*/
	"dlg", " * ",	/* Windows	*/
	"for", "c ",	/* Fortran	*/
	"h",   " * ",	/* C-header	*/
	"inc", ";; ",	/* ASM include	*/
	"l",   " * ",	/* lex		*/
	"lsp", ";; ",	/* LISP		*/
	"mac", ";; ",	/* ASM macro	*/
	"p",   " * ",	/* Prototype	*/
	"pas", " * ",	/* Pascal	*/
	"pl",  "% ",	/* Prolog	*/
	"rc",  " * ",	/* Windows	*/
	"tex", "% ",	/* TeX		*/
	"y",   " * ",	/* yacc		*/
-- 
Frank Whaley
Software Engineer
Gupta Technologies
few@gupta.com