[comp.binaries.ibm.pc] crlf - convert files between Unix and MS-DOS

creps@silver.bacs.indiana.edu (Steve Creps) (05/18/88)

[
A program to do newline conversions between MS-DOS and UNIX formats.
Steve Creps wrote this to allow his port of "patch" for MSDOS to work
correctly -- see message attached.  Still looking for a *really good*
newline conversion program -- haven't yet found one that truly uses a
state machine to handle all combinations of <CR>, <CR><LF>, <LF>,
<LF><CR>, <CR><CR> etc.  correctly.  Chuck Forsberg's undos comes close
but doesn't work with MS-DOS.  -- R.D.
]

From:  creps@silver.bacs.indiana.edu (Steve Creps)
Subject:  PC Patch: how to get it to work
Newsgroups:  comp.binaries.ibm.pc.d

   Earlier I wrote that the Unix patch program I ported to MS-DOS
did not work properly when applied to files in MS-DOS format, and
so forth. I also theorized a temporary fix for the problem, that is,
to convert the target file back to Unix format.

   With the crlf program I sent to Rahul today to be posted soon this
method should work. I tried this method, and was able to succesfully
patch a file that patch bombed on when it was in MS-DOS format.

   First run the file to be patched through crlf:
crlf -r file.ext > ufile.ext

   The -r option tells crlf we are converting from MS-DOS format to
Unix format. Output is redirected to ufile.ext, which will be the same
file, but in Unix format. If you examine the sizes of these two files,
the size of file.ext should be roughly equal to the size of ufile.ext +
the number of lines in the file.

  You may now apply your patches to ufile.ext. You'll probably have to
delete file.ext (or move it somewhere else), then rename ufile.ext to
file.ext. The patch can be applied as follows:
patch <patchfile

   I have also found another bug in patch which I believe is caused by the
limit DOS places on the number of files open at the same time. You may
get an error message telling you patch can't open a file if your patch
file contains patches for more than three or four different files. The
temporary solution to this is to split the patchfile into smaller files,
split, of course, at file boundaries.

  I also recently reported a bug to comp.sources.bugs about the cdiff
program that was posted there months ago. I included a DOS executable
of this program with the patch executable. It seems that the cdiff
program doesn't work properly when given a file in Unix format. You
should be aware of this, or the lines in the resulting diff file can
get off by a line in some places. So, make sure the file is in MS-DOS
format before using the diff that came with patch, but make sure a
file is in Unix format before using patch. Anyone confused yet?
-	-	-	-	-	-	-	-	-	-

   This is a program I wrote today to convert text files between Unix
and MS-DOS formats. You will need this to get patch for MS-DOS to
work correctly, until I can get that debugged. Source, doc, and
executable are included in a uuencoded .arc file. Remove everything
above the "begin 600 crlf.arc" line, and run through uudecode.

-	-	-	-	-	-	-	-	-	-
Steve Creps, Indiana University, Bloomington, home of the "Hoosiers"
	creps@silver.bacs.indiana.edu (192.12.206.2)
	{pur-ee,ihnp4!inuxc,rutgers,pyramid}!iuvax!silver!creps
	creps@iubacs.bitnet (forwarded)

begin 600 crlf.arc
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
I_,/$H%!,M$899(!@1AILV)3&'"",D9`<=<!!!TB&=+`!`;($!(D'&@#0
`
end