From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 4-MAR-1991 03:52:22.53 To: ARISIA::EVERHART CC: Subj: Big bug in RCS on Fall 90 Decus Tape From: RELAY-INFO-VAX@CRVAX.SRI.COM@SMTP@CRDGW2 To: Everhart@Arisia@MRGATE Received: by crdgw1.ge.com (5.57/GE 1.88) id AA01008; Mon, 4 Mar 91 00:42:38 EST Received: From UCBVAX.BERKELEY.EDU by CRVAX.SRI.COM with TCP; Sat, 2 MAR 91 21:17:40 PST Received: by ucbvax.Berkeley.EDU (5.63/1.42) id AA17934; Sat, 2 Mar 91 21:08:11 -0800 Received: from USENET by ucbvax.Berkeley.EDU with netnews for info-vax@kl.sri.com (info-vax@kl.sri.com) (contact usenet@ucbvax.Berkeley.EDU if you have questions) Date: 3 Mar 91 04:03:52 GMT From: haven!uvaarpa!murdoch!usenet@louie.udel.edu (Richard T. Gregory) Organization: University of Virginia Subject: Big bug in RCS on Fall 90 Decus Tape Message-Id: <1991Mar3.040352.16549@murdoch.acc.Virginia.EDU> Sender: info-vax-request@kl.sri.com To: info-vax@kl.sri.com I have discovered a major bug in the RCS software that I contributed to the Fall 90 DECUS tape. The program GNUDIFF.EXE compares the incoming file to the text in the RCS reference file and creates a special difference listing. GNUDIFF is only called from the CI program. CI spawns RCS_DIFF.COM which invokes GNUDIFF.EXE. GNUDIFF is similar to VMS Difference's /SLP option but it uses a slightly different syntax. I discovered that GNUDIFF behaves erratically when reading text files created with EDT or EVE (an "EDT" file). GNUDIFF works fine with stream-linefeed files which are the text files created by the text editor microEmacs. I use microEmacs so I ddn't catch this bug till last week. Stream line feed files are the type of file that is created with the C statement: filepointer = fopen( filename, "w"); An "EDT" format file is created with this fopen statement filepointer = fopen( filename, "w", "rat=cr", "rfm=var"); The behavior of the RCS system will be normal UNTIL the user tries to retrieve an older version of a file. The delta information will be flawed in the RCS reference file and the user will be unable to retrieve the correct version. I also discovered that fwrite() behaves erratically when writing to an "EDT" file. The most recent version of the source stored in the RCS reference file will be stored correctly. I have no predictions for when I will have time to adapt GNUDIFF to handle "EDT" text files. It would also be possible to teach CO.EXE to read VMS/Diff's "SLP" format. I would welcome anyone else to contact me when they have this problem solved. GNUDIFF was not distributed with the RCS source because there were so few changes needed to go from the unix version to the VMS version. I obtained the source by anonymous ftp from prep.ai.mit.edu rich gregory rtg2t@krebs.acc.virginia.edu