Subject: Cygnus Win32 B17.1: Port of GNU/Purdue RCS 5.7
From: [email-masked] ("Griswold, Victor")

25 Feb 1997 14:31:16 -0800
Approved: [email-masked]
Distribution: cygnus
Message-ID: <c=US%a=_%p=TELXON%l=TELXON/TLXUSEX1/[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Original-To: "'Cygnus:GNU-WIN32'" <[email-masked]>,
        "[email-masked]'"
	 <[email-masked]>
X-Mailer: Microsoft Exchange Server Internet Mail Connector Version 4.0.994.63
Original-Sender: [email-masked]

Gentlemen:

The following are diffs against the GNU RCS 5.7 distribution for
building RCS 5.7 under Cygnus GNU-Win32.  This build of RCS has been
checked against both 'rcstest' and, indirectly, though 'CVS sanity'.
Both text and binary files work correctly (though there is no warranty,
of course ;-) ).  Many useful suggestions came from examining the Purdue
University port of RCS 5.7 to Windows NT, though some binary
file-handling
bugs in that port were corrected (see 'conf.h' diffs below).  The
extended
'rlog' below, for instance, comes from the Purdue source.

Pardons for posting the diffs here; I have no anonymous FTP site
available.

Before running 'configure', make sure to do a global search-and-replace
of
'/dev/null' with 'NUL'.  Similarly with 'rcstest'.

Proper operation of this port with binary files depends on rebuilding
the 'diff' utility from the Cygnus GNU-Win32 distribution with
'#define HAVE_SETMODE 1' in 'config.h' in order to enable the '--binary'
option.  I would strongly recommend that Cygnus make this the standard
configuration for GNU-Win32; it harms nothing and adds a useful
capability.
The Purdue distribution of 'diff', for instance, has it enabled.

The generated 'conf.h' file should be modified in accordance with the
diffs below, as well.  I have not had the opportunity to properly
modify the auto-generation script.

The 'blat' command-line utility, version 1.5i, was used for SMTP mail
notifications.

The environment variable 'TZ' must be set for proper timestamp
operation.
For instance, 'set TZ=EST5' for Eastern Standard Time.

I hate to even reference the "text vs. binary file" issue, but some
points of view had to drive the this port.  Some of our _requirements_
were:
	--	Both Unix, Windows NT, and Windows 95 users had to be able to
		access the same repositories.
	--	No developers wanted to manually translate LF <-> CRLF.
	--	Some Windows developers used tools which DID care about CRLF.
		(You would be surprised how many BRIEF users are still out
		there, especially for a quick edit from a command shell).
	--	Binary files had to be supported (Word documents, etc.).

In general, the system, to be accepted instead of PVCS, had to work with
as few surprises as did PVCS.  Anything less would be considered a bug,
and rollout of the tool would probably fail due to some people either
circumventing use of the tool, remaining with PVCS, or just perceived
loss
of functionality.  In-house religious wars were not to be tolerated:
the
tool must be generally accepted as superior.

Towards these ends:
	--	The RCS repository is maintained in "Unix normal" format:  just LF.
	--	Non-explicitly-binary files are read into RCS in Text Mode and
		written out in Text Mode.  '-kb' files are read/written in
		Binary Mode.
	--	Just in case some "uninformed user" (i.e. f**l) in Windows-land
		performs a direct edit of a repository in an editor which really
		likes CRLF, the RCS repository scan routines have been made more
		robust in case they encounter a rogue '\r'.  This also helps if
		some poor soul accidentally modifies a repository with some other
		Windows port of RCS, which does not maintain the repository in
		Unix-normal format.

Bottom line:  everybody is happy.  RCS works on both platforms, people
work productively, and the time I spent modifying the RCS source pales
in comparison to the time I would have spent supporting new users of the
tools.  This might be considered a lesson in productive use of time for
those who would like to flame about an issue more than resolve it.
		
Diffs of CVS 1.9 which passes 'sanity.sh' on Windows NT are coming
as soon as I can extract and package them.

Victor J. Griswold, D.Sc.
Aironet Wireless Communications, Inc.
voice:	330-664-7987
fax:	330-664-7301
email:	(MS-Mail) [email-masked]
	(MIME) [email-masked]

Index: RCS_src/src/ci.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/ci.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 ci.c
*** ci.c	1997/01/16 18:35:01	1.1.1.1
--- ci.c	1997/02/25 19:05:05
***************
*** 711,717 ****
  		    *++diffp = DIFF;
  		    *++diffp = DIFFFLAGS;
  #		    if OPEN_O_BINARY
! 			if (Expand == BINARY_EXPAND)
  			    *++diffp = "--binary";
  #		    endif
  		    *++diffp = newhead ? "-" : expname;
--- 711,723 ----
  		    *++diffp = DIFF;
  		    *++diffp = DIFFFLAGS;
  #		    if OPEN_O_BINARY
! 			if (
! #if !defined(_WIN32)
! 			Expand == BINARY_EXPAND
! #else	/* !defined(_WIN32) */
! 			1
! #endif	/* !defined(_WIN32) */
! 			)
  			    *++diffp = "--binary";
  #		    endif
  		    *++diffp = newhead ? "-" : expname;
Index: RCS_src/src/rcs.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcs.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcs.c
*** rcs.c	1997/01/16 18:35:02	1.1.1.1
--- rcs.c	1997/02/25 19:05:07
***************
*** 1518,1524 ****
  	scanlogtext(deltas->first, false);
          if ( cuthead )  {
  	    cutname = maketemp(3);
! 	    if (!(fcut = fopenSafer(cutname, FOPEN_WPLUS_WORK))) {
  		efaterror(cutname);
              }
  
--- 1518,1524 ----
  	scanlogtext(deltas->first, false);
          if ( cuthead )  {
  	    cutname = maketemp(3);
! 	    if (!(fcut = fopenSafer(cutname, FOPEN_WPLUS))) {
  		efaterror(cutname);
              }
  
***************
*** 1544,1550 ****
  	    *++diffp = DIFF;
  	    *++diffp = DIFFFLAGS;
  #	    if OPEN_O_BINARY
! 		if (Expand == BINARY_EXPAND)
  		    *++diffp == "--binary";
  #	    endif
  	    *++diffp = "-";
--- 1544,1556 ----
  	    *++diffp = DIFF;
  	    *++diffp = DIFFFLAGS;
  #	    if OPEN_O_BINARY
! 			if (
! #if !defined(_WIN32)
! 			Expand == BINARY_EXPAND
! #else	/* !defined(_WIN32) */
! 			1
! #endif	/* !defined(_WIN32) */
! 			)
  		    *++diffp == "--binary";
  #	    endif
  	    *++diffp = "-";
Index: RCS_src/src/rcsclean.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsclean.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsclean.c
*** rcsclean.c	1997/01/16 18:35:02	1.1.1.1
--- rcsclean.c	1997/02/25 19:05:07
***************
*** 300,305 ****
--- 300,307 ----
  	while ((errno = 0,  e = readdir(d))) {
  		char const *en = e->d_name;
  		size_t s = strlen(en) + 1;
+ 		if (s == 1)				/* bypass cygwin.dll rel. b17.1 bug */
+ 			continue;
  		if (en[0]=='.'   &&   (!en[1]  ||  (en[1]=='.' && !en[2])))
  			continue;
  		if (rcssuffix(en))
Index: RCS_src/src/rcsdiff.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsdiff.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsdiff.c
Index: RCS_src/src/rcsedit.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsedit.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsedit.c
*** rcsedit.c	1997/01/16 18:35:02	1.1.1.1
--- rcsedit.c	1997/02/25 19:05:07
***************
*** 997,1002 ****
--- 997,1003 ----
  	switch ((c = *s++)) {
  	    case 0: return;
  	    case '\t': aputs("\\t", out); break;
+ 		case '\r': aputs("\\r", out); break;
  	    case '\n': aputs("\\n", out); break;
  	    case ' ': aputs("\\040", out); break;
  	    case KDELIM: aputs("\\044", out); break;
Index: RCS_src/src/rcsfnms.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsfnms.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsfnms.c
*** rcsfnms.c	1997/01/16 18:35:02	1.1.1.1
--- rcsfnms.c	1997/02/25 19:05:07
***************
*** 600,606 ****
--- 600,610 ----
  	preferold  =  RCSbuf.string[0] && (mustread||0<=fdlock);
  
  	finptr = (*rcsopen)(&RCSb, &RCSstat, mustread);
+ #if !defined(_WIN32)
  	interesting = finptr || errno!=ENOENT;
+ #else	/* !defined(_WIN32) */
+ 	interesting = finptr || (errno!=ENOENT && errno!=ENOTDIR);
+ #endif	/* !defined(_WIN32) */
  	if (interesting || !preferold) {
  		/* Use the new name.  */
  		RCSerrno = errno;
Index: RCS_src/src/rcsgen.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsgen.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsgen.c
*** rcsgen.c	1997/01/16 18:35:02	1.1.1.1
--- rcsgen.c	1997/02/25 19:05:09
***************
*** 589,595 ****
   */
  {
  	RILE *fin;
! 	if (!(fin = Iopen(srcname, "r", (struct stat*)0))) {
  		eerror(srcname);
  		return false;
  	}
--- 589,595 ----
   */
  {
  	RILE *fin;
! 	if (!(fin = Iopen(srcname, FOPEN_R_WORK, (struct stat*)0))) {
  		eerror(srcname);
  		return false;
  	}
Index: RCS_src/src/rcsrev.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsrev.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsrev.c
*** rcsrev.c	1997/01/16 18:35:03	1.1.1.1
--- rcsrev.c	1997/02/25 19:05:09
***************
*** 869,875 ****
  		aputs("No input file\n",stderr);
  		exitmain(EXIT_FAILURE);
          }
! 	if (!(finptr=Iopen(argv[1], FOPEN_R, (struct stat*)0))) {
  		faterror("can't open input file %s", argv[1]);
          }
          Lexinit();
--- 869,875 ----
  		aputs("No input file\n",stderr);
  		exitmain(EXIT_FAILURE);
          }
! 	if (!(finptr=Iopen(argv[1], FOPEN_RB, (struct stat*)0))) {
  		faterror("can't open input file %s", argv[1]);
          }
          Lexinit();
Index: RCS_src/src/rcssyn.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcssyn.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcssyn.c
*** rcssyn.c	1997/01/16 18:35:03	1.1.1.1
--- rcssyn.c	1997/02/25 19:05:09
***************
*** 657,663 ****
  		aputs("No input file\n",stderr);
  		exitmain(EXIT_FAILURE);
          }
! 	if (!(finptr = Iopen(argv[1], FOPEN_R, (struct stat*)0))) {
  		faterror("can't open input file %s", argv[1]);
          }
          Lexinit();
--- 657,663 ----
  		aputs("No input file\n",stderr);
  		exitmain(EXIT_FAILURE);
          }
! 	if (!(finptr = Iopen(argv[1], FOPEN_RB, (struct stat*)0))) {
  		faterror("can't open input file %s", argv[1]);
          }
          Lexinit();
Index: RCS_src/src/rcsutil.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rcsutil.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rcsutil.c
*** rcsutil.c	1997/01/16 18:35:03	1.1.1.1
--- rcsutil.c	1997/02/25 19:05:09
***************
*** 352,365 ****
  			    || (
  				    !(name = cgetenv("LOGNAME"))
  				&&  !(name = cgetenv("USER"))
  			    ))
  			&&  !(name = getlogin())
  #		    else
  			suspicious
  			|| (
! 				!(name = cgetenv("LOGNAME"))
  			    &&  !(name = cgetenv("USER"))
! 			    &&  !(name = getlogin())
  			)
  #		    endif
  		) {
--- 352,367 ----
  			    || (
  				    !(name = cgetenv("LOGNAME"))
  				&&  !(name = cgetenv("USER"))
+ 				&&  !(name = cgetenv("USERNAME"))
  			    ))
  			&&  !(name = getlogin())
  #		    else
  			suspicious
  			|| (
! 			    !(name = getlogin())
! 				&&  !(name = cgetenv("LOGNAME"))
  			    &&  !(name = cgetenv("USER"))
! 			    &&  !(name = cgetenv("USERNAME"))
  			)
  #		    endif
  		) {
Index: RCS_src/src/rlog.c
===================================================================
RCS file: s:/Software/AWC_Tools/CVSROOT/RCS_src/src/rlog.c,v
retrieving revision 1.1.1.1
diff -c -w -r1.1.1.1 rlog.c
*** rlog.c	1997/01/16 18:35:03	1.1.1.1
--- rlog.c	1997/02/25 19:05:09
***************
*** 218,228 ****
  static struct rcslockers *lockerlist;
  static struct stateattri *statelist;

  mainProg(rlogId, "rlog", "$Id: rlog.c,v 5.18 1995/06/16 06:19:24
eggert Exp $")
  {
  	static char const cmdusage[] =
! 		"\nrlog usage: rlog -{bhLNRt} -ddates -l[lockers] -r[revs] -sstates
-Vn -w[logins] -xsuff -zzone file ...";
  
  	register FILE *out;
  	char *a, **newargv;
--- 218,231 ----
  static struct rcslockers *lockerlist;
  static struct stateattri *statelist;
  
+ static int onlyid;
+ static char const *numrev2symbrev P((char const *numrev));
+ 
  
  mainProg(rlogId, "rlog", "$Id: rlog.c,v 5.18 1995/06/16 06:19:24
eggert Exp $")
  {
  	static char const cmdusage[] =
! 		"\nrlog usage: rlog -{bhLNRtIZ} -ddates -l[lockers] -r[revs]
-sstates -Vn -w[logins] -xsuff -zzone file ...";
  
  	register FILE *out;
  	char *a, **newargv;
***************
*** 236,241 ****
--- 239,245 ----
  	int descflag, selectflag;
  	int onlylockflag;  /* print only files with locks */
  	int onlyRCSflag;  /* print only RCS pathname */
+ 	int onlylockers = 0;
  	int pre5;
  	int shownames;
  	int revno;
***************
*** 262,267 ****
--- 266,279 ----
  			onlyRCSflag =true;
  			break;
  
+ 		case 'I':
+ 			onlyid = (*a == 'I') ? 2 : 1;
+ 			break;
+ 
+ 		case 'Z':
+ 			onlylockers = (*a == 'Z') ? 2 : 1;
+ 			break;
+ 
                  case 'l':
                          lockflag = true;
  			getlocker(a);
***************
*** 363,368 ****
--- 375,442 ----
  	     * workname contains the name of the working file.
               */
  
+ 	    /* Options 'Z' and 'ZZ' added to quickly get the relevant Data
+ 	     * for locked File(s)/Revisions.
+ 	     * Options 'I' and 'II' added to easily get Information about
+ 	     * unlocked File(s) of the specified Revision(s). These Records
+ 	     * could be used as an Entry of an Revision-List.
+ 	     * The single-option Version prints Basenames, the double-option
+ 	     * Version prints Filenames with the full path.
+ 	     */
+ 	    if (onlyid) {
+ 	      if (Locks) { 		/* Issue Warnings for locked Versions */
+ 		currlock = Locks;
+ 		aprintf (stderr, "Warning: there are Locks for File %s:\n",
+ 			 onlyid == 1 ? RCSname : getfullRCSname());
+ 		while (currlock) {
+ 		  aprintf (stderr, 
+ 			   "\tFile: %s   Revision: %s [%s]  locked by: %s\n",
+ 			   onlyid == 1 ? RCSname : getfullRCSname(), 
+ 			   currlock->delta->num, 
+ 			   numrev2symbrev (currlock->delta->num),
+ 			   currlock->login);
+ 		  currlock = currlock->nextlock;
+ 		}
+ 	      }
+ 
+ 	      if (! Head) continue;
+ 	      gettree ();
+ 	      revno = 0;
+ 	      getnumericrev ();
+ 	      exttree (Head);
+ 	      currdate = duelst;
+ 	      while (currdate) {
+ 		/* VOID sprintf (currdate->strtdate,dateform,0,0,0,0,0,0); */
+ 		time2date(0,currdate->strtdate);
+ 		recentdate (Head, currdate);
+ 		currdate = currdate->dnext;
+ 	      }
+ 	      revno = extdate (Head);
+ 	      getdesc (false);
+ 	      if (revno) {
+ 		while (! (delta = readdeltalog())->selector  ||  --revno) ;
+ 		if (delta->next && countnumflds(delta->num)==2) {
+ 		  while (readdeltalog() != delta->next) ;
+ 		}
+ 		putrunk ();
+ 		putree (Head);
+ 	      }
+ 	      continue;
+ 	    }
+ 
+ 	    if (onlylockers) {
+ 	      currlock = Locks;
+ 	      while (currlock) {
+ 		aprintf (out, "File: %s   Revision: %s [%s]  locked by: %s\n",
+ 			 onlylockers == 1 ? RCSname : getfullRCSname(), 
+ 			 currlock->delta->num, 
+ 			 numrev2symbrev (currlock->delta->num),
+ 			 currlock->login);
+ 		currlock = currlock->nextlock;
+ 	      }
+ 	      continue;
+ 	    }
+ 
  	    /* Keep only those locks given by -l.  */
  	    if (lockflag)
  		trunclocks();
***************
*** 571,576 ****
--- 645,660 ----
              return;
  
  	out = stdout;
+ 
+ 	if (onlyid) {
+ 	  aprintf (out, 
+ 		   "File: %s   Revision: %s [%s]  Date: %s   Author: %s  State:
%s\n",
+ 		   onlyid == 1 ? workname : getfullRCSname(),
+ 		   node->num, numrev2symbrev (node->num),
+ 		   date2str (node->date, datebuf), node->author, node->state);
+ 	  return;
+ 	}
+ 
  	aprintf(out,
  		"----------------------------\nrevision %s%s",
  		node->num,  pre5 ? "        " : ""
***************
*** 1273,1276 ****
--- 1357,1372 ----
  	    else
  		error("missing `,' near `%c%s'", c, argv+1);
  	}
+ }
+ 
+ static char const *numrev2symbrev (numrev)
+ char const *numrev;
+ {
+ 	struct assoc const *p;
+ 
+ 	for (p = Symbols; p; p = p->nextassoc) {
+ 		if (! strcmp (numrev, p->num)) return (p->symbol);
+ 	}
+ 
+ 	return ("");
  }

*** RCS_src\configure	Tue Feb 25 14:05:03 1997
--- RCS_src\configure.AironetNT	Tue Feb 25 14:05:03 1997
***************
*** 292,298 ****
  # 6 checking for... messages and results
  # 5 compiler messages saved in config.log
  if test "$silent" = yes; then
!   exec 6>/dev/null
  else
    exec 6>&1
  fi
--- 292,298 ----
  # 6 checking for... messages and results
  # 5 compiler messages saved in config.log
  if test "$silent" = yes; then
!   exec 6>NUL
  else
    exec 6>&1
  fi
***************
*** 387,395 ****
  ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
  ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS
conftest.$ac_ext $LIBS 1>&5 2>&5'
  
! if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
    # Stardent Vistra SVR4 grep lacks -e, says [email-masked].
!   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn
>/dev/null; then
      ac_n= ac_c='
  ' ac_t='	'
    else
--- 387,395 ----
  ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
  ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS
conftest.$ac_ext $LIBS 1>&5 2>&5'
  
! if (echo "testing\c"; echo 1,2,3) | grep c >NUL; then
    # Stardent Vistra SVR4 grep lacks -e, says [email-masked].
!   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >NUL; then
      ac_n= ac_c='
  ' ac_t='	'
    else
***************
*** 447,453 ****
    '')
      for i in diff /usr/lib/rdiff rdiff
      do
!       sh -c "exec $i -n conftest0 conftest1" >conftestout 2>/dev/null
        case $? in
        1)
  	if cmp -s conftestok conftestout
--- 447,453 ----
    '')
      for i in diff /usr/lib/rdiff rdiff
      do
!       sh -c "exec $i -n conftest0 conftest1" >conftestout 2>NUL
        case $? in
        1)
  	if cmp -s conftestok conftestout
***************
*** 511,517 ****
    '')
      # We can't use `$DIFF conftest0 conftest0',
      # since buggy NEXTSTEP 3.0 diff silently yields exit status 2 for
this.
!     $DIFF conftest0 conftest0c >/dev/null 2>&1
      rcs_cv_status_diff_success=$?
      ;;
    esac
--- 511,517 ----
    '')
      # We can't use `$DIFF conftest0 conftest0',
      # since buggy NEXTSTEP 3.0 diff silently yields exit status 2 for
this.
!     $DIFF conftest0 conftest0c >NUL 2>&1
      rcs_cv_status_diff_success=$?
      ;;
    esac
***************
*** 530,536 ****
    rcs_cv_status_diff_failure=$DIFF_FAILURE
    case $rcs_cv_status_diff_failure in
    '')
!     $DIFF conftest0 conftest1 >/dev/null 2>&1
      rcs_cv_status_diff_failure=$?
      ;;
    esac
--- 530,536 ----
    rcs_cv_status_diff_failure=$DIFF_FAILURE
    case $rcs_cv_status_diff_failure in
    '')
!     $DIFF conftest0 conftest1 >NUL 2>&1
      rcs_cv_status_diff_failure=$?
      ;;
    esac
***************
*** 549,555 ****
    rcs_cv_status_diff_trouble=$DIFF_TROUBLE
    case $rcs_cv_status_diff_trouble in
    '')
!     $DIFF conftest0 no/such/file >/dev/null 2>&1
      rcs_cv_status_diff_trouble=$?
      ;;
    esac
--- 549,555 ----
    rcs_cv_status_diff_trouble=$DIFF_TROUBLE
    case $rcs_cv_status_diff_trouble in
    '')
!     $DIFF conftest0 no/such/file >NUL 2>&1
      rcs_cv_status_diff_trouble=$?
      ;;
    esac
***************
*** 598,604 ****
    case $rcs_cv_options_diff_l in
    '')
      rcs_cv_options_diff_l=0
!     $DIFF -c -L 0 -L 1 conftest0 conftest1 >conftestout 2>/dev/null
      case $? in
      1)
        if cmp -s - conftestout <<'EOF'
--- 598,604 ----
    case $rcs_cv_options_diff_l in
    '')
      rcs_cv_options_diff_l=0
!     $DIFF -c -L 0 -L 1 conftest0 conftest1 >conftestout 2>NUL
      case $? in
      1)
        if cmp -s - conftestout <<'EOF'
***************
*** 637,643 ****
    rcs_cv_prog_diff3_bin=$DIFF3
    case $rcs_cv_prog_diff3_bin in
    '')
!     PATH=$diff3PATH sh -c "exec diff3 -E -m -L 0 -L 1 -L 2 conftest0
conftest1 /dev/null" >conftestout 2>/dev/null
      case $? in
      1)
        if cmp -s - conftestout <<'EOF'
--- 637,643 ----
    rcs_cv_prog_diff3_bin=$DIFF3
    case $rcs_cv_prog_diff3_bin in
    '')
!     PATH=$diff3PATH sh -c "exec diff3 -E -m -L 0 -L 1 -L 2 conftest0
conftest1 NUL" >conftestout 2>NUL
      case $? in
      1)
        if cmp -s - conftestout <<'EOF'
***************
*** 701,714 ****
  else
    
      $DIFF conftest0 conftest1 >conftest01
!     $DIFF /dev/null conftest1 >conftestn1
      for i in /usr/*lib*/*diff3*; do
!       sh -c "exec $i -E conftest01 conftestn1 conftest0 /dev/null
conftest1" >conftestout 2>/dev/null
        # The exit status is arbitrary!  Test the output a bit.
        if
! 	grep '^<<* *conftest0$' conftestout >/dev/null 2>&1 &&
! 	grep '^>>* *conftest1$' conftestout >/dev/null 2>&1 &&
! 	grep '^0a$' conftestout >/dev/null 2>&1
        then
  	rcs_cv_path_diff3_lib=$i
  	break
--- 701,714 ----
  else
    
      $DIFF conftest0 conftest1 >conftest01
!     $DIFF NUL conftest1 >conftestn1
      for i in /usr/*lib*/*diff3*; do
!       sh -c "exec $i -E conftest01 conftestn1 conftest0 NUL conftest1"
>conftestout 2>NUL
        # The exit status is arbitrary!  Test the output a bit.
        if
! 	grep '^<<* *conftest0$' conftestout >NUL 2>&1 &&
! 	grep '^>>* *conftest1$' conftestout >NUL 2>&1 &&
! 	grep '^0a$' conftestout >NUL 2>&1
        then
  	rcs_cv_path_diff3_lib=$i
  	break
***************
*** 887,893 ****
    yes;
  #endif
  EOF
! if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
    ac_cv_prog_gcc=yes
  else
    ac_cv_prog_gcc=no
--- 887,893 ----
    yes;
  #endif
  EOF
! if ${CC-cc} -E conftest.c 2>&5 | egrep yes >NUL 2>&1; then
    ac_cv_prog_gcc=yes
  else
    ac_cv_prog_gcc=no
***************
*** 966,972 ****
        for ac_prog in ginstall installbsd scoinst install; do
          if test -f $ac_dir/$ac_prog; then
  	  if test $ac_prog = install &&
!             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
  	    # AIX install.  It has an incompatible calling convention.
  	    # OSF/1 installbsd also uses dspmsg, but is usable.
  	    :
--- 966,972 ----
        for ac_prog in ginstall installbsd scoinst install; do
          if test -f $ac_dir/$ac_prog; then
  	  if test $ac_prog = install &&
!             grep dspmsg $ac_dir/$ac_prog >NUL 2>&1; then
  	    # AIX install.  It has an incompatible calling convention.
  	    # OSF/1 installbsd also uses dspmsg, but is usable.
  	    :
***************
*** 1003,1009 ****
  	@echo 'ac_maketemp="${MAKE}"'
  EOF
  # GNU make sometimes prints "make[1]: Entering...", which would
confuse us.
! eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
  if test -n "$ac_maketemp"; then
    eval ac_cv_prog_make_${ac_make}_set=yes
  else
--- 1003,1009 ----
  	@echo 'ac_maketemp="${MAKE}"'
  EOF
  # GNU make sometimes prints "make[1]: Entering...", which would
confuse us.
! eval `${MAKE-make} -f conftestmake 2>NUL | grep temp=`
  if test -n "$ac_maketemp"; then
    eval ac_cv_prog_make_${ac_make}_set=yes
  else
***************
*** 1032,1038 ****
  # the --cache-file=FILE option to use a different cache file; that is
  # what configure does when it calls configure scripts in
  # subdirectories, so they share the cache.
! # Giving --cache-file=/dev/null disables caching, for debugging
configure.
  # config.status only pays attention to the cache file if you give it
the
  # --recheck option to rerun configure.
  #
--- 1032,1038 ----
  # the --cache-file=FILE option to use a different cache file; that is
  # what configure does when it calls configure scripts in
  # subdirectories, so they share the cache.
! # Giving --cache-file=NUL disables caching, for debugging configure.
  # config.status only pays attention to the cache file if you give it
the
  # --recheck option to rerun configure.
  #
***************
*** 1093,1099 ****
  # Generated automatically by configure.
  # Run this file to recreate the current configuration.
  # This directory was configured as follows,
! # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
  #
  # $0 $ac_configure_args
  #
--- 1093,1099 ----
  # Generated automatically by configure.
  # Run this file to recreate the current configuration.
  # This directory was configured as follows,
! # on host `(hostname || uname -n) 2>NUL | sed 1q`:
  #
  # $0 $ac_configure_args
  #

*** RCS_src\src\conf.h	Tue Feb 25 14:31:35 1997
--- RCS_src\src\conf.h.AironetNT	Tue Feb 25 14:05:05 1997
***************
*** 77,86 ****
  	/* Text and binary i/o behave differently.  */
  	/* This is incompatible with Posix and Unix.  */
  #	define FOPEN_RB "rb"
! #	define FOPEN_R_WORK (Expand==BINARY_EXPAND ? "r" : "rb")
  #	define FOPEN_WB "wb"
! #	define FOPEN_W_WORK (Expand==BINARY_EXPAND ? "w" : "wb")
! #	define FOPEN_WPLUS_WORK (Expand==BINARY_EXPAND ? "w+" : "w+b")
  #	define OPEN_O_BINARY O_BINARY
  #else
  	/*
--- 77,87 ----
  	/* Text and binary i/o behave differently.  */
  	/* This is incompatible with Posix and Unix.  */
  #	define FOPEN_RB "rb"
! #	define FOPEN_R_WORK (Expand==BINARY_EXPAND ? "rb" : "r")
  #	define FOPEN_WB "wb"
! #	define FOPEN_W_WORK (Expand==BINARY_EXPAND ? "wb" : "w")
! #	define FOPEN_WPLUS "w+b"
! #	define FOPEN_WPLUS_WORK (Expand==BINARY_EXPAND ? "w+b" : "w+")
  #	define OPEN_O_BINARY O_BINARY
  #else
  	/*
***************
*** 91,96 ****
--- 92,98 ----
  #	define FOPEN_R_WORK "r"
  #	define FOPEN_WB "w"
  #	define FOPEN_W_WORK "w"
+ #	define FOPEN_WPLUS "w+"
  #	define FOPEN_WPLUS_WORK "w+"
  #	define OPEN_O_BINARY 0
  #endif
***************
*** 141,147 ****
  #define has_fputs 1 /* Does fputs() work?  */
  #define has_ftruncate 1 /* Does ftruncate() work?  */
  #define has_getuid 1 /* Does getuid() work?  */
! #define has_getpwuid 1 /* Does getpwuid() work?  */
  #define has_memcmp 1 /* Does memcmp() work?  */
  #define has_memcpy 1 /* Does memcpy() work?  */
  #define has_memmove 1 /* Does memmove() work?  */
--- 143,149 ----
  #define has_fputs 1 /* Does fputs() work?  */
  #define has_ftruncate 1 /* Does ftruncate() work?  */
  #define has_getuid 1 /* Does getuid() work?  */
! #define has_getpwuid 0 /* Does getpwuid() work?  */
  #define has_memcmp 1 /* Does memcmp() work?  */
  #define has_memcpy 1 /* Does memcpy() work?  */
  #define has_memmove 1 /* Does memmove() work?  */
***************
*** 225,238 ****
  #define MERGE "/usr/local/bin/merge" /* name of 'merge' program */
  #define TMPDIR "/tmp" /* default directory for temporary files */
  #define SLASH '/' /* principal filename separator */
! #define SLASHes '/' /* `case SLASHes:' labels all filename separators
*/
! #define isSLASH(c) ((c) == SLASH) /* Is arg a filename separator?  */
! #define ROOTPATH(p) isSLASH((p)[0]) /* Is p an absolute pathname?  */
  #define X_DEFAULT ",v/" /* default value for -x option */
  #define SLASHSLASH_is_SLASH 1 /* Are // and / the same directory?  */
! #define ALL_ABSOLUTE 1 /* Do all subprograms satisfy ROOTPATH?  */
! #define DIFF_ABSOLUTE 1 /* Is ROOTPATH(DIFF) true?  */
! /* #define SENDMAIL  */ /* how to send mail */
! #define TZ_must_be_set 0 /* Must TZ be set for gmtime() to work?  */

  
--- 227,240 ----
  #define MERGE "/usr/local/bin/merge" /* name of 'merge' program */
  #define TMPDIR "/tmp" /* default directory for temporary files */
  #define SLASH '/' /* principal filename separator */
! #define SLASHes '/': case '\\' /* `case SLASHes:' labels all filename
separators */
! #define isSLASH(c) ((c) == SLASH || (c) == '\\') /* Is arg a filename
separator?  */
! #define ROOTPATH(p) (isSLASH((p)[0]) || (isalpha((p)[0]) && (p)[1] &&
(p)[1] == ':' && (p)[2] && isSLASH((p)[2]) )) /* Is p an absolute
pathname?  */
  #define X_DEFAULT ",v/" /* default value for -x option */
  #define SLASHSLASH_is_SLASH 1 /* Are // and / the same directory?  */
! #define ALL_ABSOLUTE 0 /* Do all subprograms satisfy ROOTPATH?  */
! #define DIFF_ABSOLUTE 0 /* Is ROOTPATH(DIFF) true?  */
! #define SENDMAIL  "blat - -t " /* how to send mail */
! #define TZ_must_be_set 1 /* Must TZ be set for gmtime() to work?  */

  

-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".