The Perforce RCS implementation
-------------------------------
An overview of the implementation is in rcstest.cc.
This README discusses the ifdefs and system dependencies herein.
ifdefs
------
	USE_CRLF - used to control whether LF or CRLF separate lines
		in RCS files.  Normally set by Jamrules for NT.
	USE_MMAP - if set, uses the mmap() system call for read access
		to RCS files.  Otherwise, uses stdio.  By an large, you
		want this set if mmap is available.  Normally set by
		Jamrules.
	HAVE_FSYNC - if set, calls fsync() before closing the RCS file
		(after writing it), so that it is sure to hit the disk.
		Set by stdhdrs.h based on what OS you're on.
	OS_NT - used to control some NT specific filesystem operations,
		like the different call to access() and setting O_NOINHERIT
		to keep file handles private across subprocess creation.
		(RCS formerly used an external diff but now does everything
		inprocess, and so O_NOINHERIT is unneeded. )
	OS_BEOS - BeOS specific interface changes.
	OS_MAC - Macintosh MPW specific interface changes.  
External Code Dependencies.
	support/error.h - for the Error class, a layered error reporting
		mechanism.  It's used throughout, but is the only component
		of 'support' that is needed for RCS.
	sys/stdhdrs.h - included standard system headers needed by everything,
		plus special headers as controlled by #define NEED_XXX flags.
		The headers used are:
		    NEED_ACCESS
		    NEED_FCNTL
		    NEED_FILE
		    NEED_FSYNC
		    NEED_MKDIR
		    NEED_MMAP
		    NEED_OPENDIR
		    NEED_TIME
		    NEED_TYPES
		See stdhdrs.h for what these control.