home *** CD-ROM | disk | FTP | other *** search
- *** ../tcpatch/common.h Thu May 31 12:34:31 1990
- --- common.h Thu May 31 12:47:03 1990
- **************
- *** 128,137
- EXT char *origext INIT(Nullch);
- EXT char *origprae INIT(Nullch);
-
- ! EXT char TMPOUTNAME[] INIT("/tmp/patchoXXXXXX");
- ! EXT char TMPINNAME[] INIT("/tmp/patchiXXXXXX"); /* might want /usr/tmp here */
- ! EXT char TMPREJNAME[] INIT("/tmp/patchrXXXXXX");
- ! EXT char TMPPATNAME[] INIT("/tmp/patchpXXXXXX");
- EXT bool toutkeep INIT(FALSE);
- EXT bool trejkeep INIT(FALSE);
-
- --- 128,137 -----
- EXT char *origext INIT(Nullch);
- EXT char *origprae INIT(Nullch);
-
- ! EXT char *TMPOUTNAME INIT("/tmp/patchoXXXXXX");
- ! EXT char *TMPINNAME INIT("/tmp/patchiXXXXXX"); /* might want /usr/tmp here */
- ! EXT char *TMPREJNAME INIT("/tmp/patchrXXXXXX");
- ! EXT char *TMPPATNAME INIT("/tmp/patchpXXXXXX");
- EXT bool toutkeep INIT(FALSE);
- EXT bool trejkeep INIT(FALSE);
-
- *** ../tcpatch/tcpatch.c Thu May 31 12:34:31 1990
- --- patch.c Thu May 31 12:47:03 1990
- ***************
- *** 1,5 ****
- char rcsid[] =
- ! "$Header: patch.c,v 2.0.1.6 88/06/22 20:46:39 lwall Locked $";
-
- /* patch - a program to apply diffs to original files
- *
- --- 1,5 ----
- char rcsid[] =
- ! "$Header: patch.c,v 2.0.1.7 90/05/30 11:30:00 mward $";
-
- /* patch - a program to apply diffs to original files
- *
- ***************
- *** 9,14 ****
- --- 9,18 ----
- * money off of it, or pretend that you wrote it.
- *
- * $Log: patch.c,v $
- + * Revision 2.0.1.7 90/05/30 11:30:00 mward
- + * Added usage message vars and routines: use_msg, progname, usage, fname
- + * Check environment for TMP and init temp file names
- + *
- * Revision 2.0.1.6 88/06/22 20:46:39 lwall
- * patch12: rindex() wasn't declared
- *
- ***************
- *** 97,102 ****
- --- 101,108 ----
-
- /* procedures */
-
- + char *fname();
- + void usage();
- void reinitialize_almost_everything();
- void get_some_switches();
- LINENUM locate_hunk();
- ***************
- *** 112,117 ****
- --- 118,195 ----
- void re_input();
- void my_exit();
-
- +
- + char *progname;
- +
- + char *use_msg[] = {
- + "purpose: apply diff file(s) to original(s) to generate updated file(s)\n",
- + "usage: %s [options] orig patchfile [+ [options] orig]\n",
- + " %s <patchfile\n"
- + "options:\n",
- + " - read patchfile from standard input\n",
- + " -? display help message (this text)\n",
- + " -b arg use arg as backup file extension (default is ~ or .orig)\n",
- + " -B arg use arg as backup file prefix (cancels -b option)\n",
- + " -c interpret patchfile as context diffs\n",
- + " -d arg use arg as directory to cd to before continuing\n",
- + " -D arg surround patched with \"#ifdef arg ... #endif\"\n",
- + " -e interpret patchfile as an ed script\n",
- + " -f do not ask questions\n",
- + " -F<num> set max fuzz factor to <num> (default 2, context diffs only)\n",
- + " -h display help message (this text)\n",
- + " -l loose (non \\n whitespace) pattern matching\n",
- + " -n interpret patchfile as a normal diff\n",
- + " -N ignore patches that are reversed or already applied\n",
- + " -o arg use arg as output file name\n",
- + " -p<num> set path strip count to <num> (default 937,# /'s to strip)\n",
- + " -r arg use arg as the reject file name\n",
- + " -R interpret patch as if orig and new were reversed at diff gen\n",
- + " -s silent operation - no messages\n",
- + " -S skip current patch, but continue\n",
- + " -v version - print revision header and patch level\n",
- + " -x<num> set internal debugging flags to <num>\n",
- + "examples\n",
- + " %s <ms_sh_16.dif # normally read all patches from stdin\n",
- + " %s -S + -S + <patch.dif # skip 1st and 3rd patches in patch.dif\n",
- + "notes:\n"
- + " By default, the patched version is put in place of the original\n",
- + NULL
- + };
- +
- +
- + /* Return pointer to first char of file name in spec */
- +
- + char *
- + fname(char *spec)
- + {
- + char *cptr;
- + char *tptr;
- +
- + cptr = spec + strlen(spec);
- + while ((cptr!=spec) && (index("/\\:",*(cptr-1))==Nullch)) {
- + cptr--;
- + }
- + if ((tptr=index(cptr,'.'))!=Nullch) *tptr='\0';
- + strlwr(cptr);
- + return (cptr);
- + }
- +
- +
- + /* Print the usage message */
- +
- + void
- + usage()
- + {
- + char **ptr;
- + char *name;
- +
- + name = fname(progname);
- + for (ptr=use_msg; *ptr; ptr++) {
- + say2(*ptr,name);
- + }
- + }
- +
- +
- /* Apply a set of diffs as appropriate. */
-
- main(argc,argv)
- ***************
- *** 126,135 ****
- --- 204,226 ----
- int failed = 0;
- int failtotal = 0;
- int i;
- + char tmpdir[MAXPATH];
- + char *tmpenv;
-
- +
- + progname = (*argv[0]?argv[0]:"patch");
- setbuf(stderr, serrbuf);
- for (i = 0; i<MAXFILEC; i++)
- filearg[i] = Nullch;
- +
- + /* initialize temp file names */
- + tmpenv = getenv("TMP");
- + strcpy(tmpdir,(tmpenv!=NULL?tmpenv:""));
- + if (strlen(tmpdir) && tmpdir[strlen(tmpdir)-1]!='/') strcat(tmpdir,"/");
- + TMPOUTNAME = strcat(strcpy(malloc(MAXPATH),tmpdir),fname(TMPOUTNAME));
- + TMPINNAME = strcat(strcpy(malloc(MAXPATH),tmpdir),fname(TMPINNAME));
- + TMPREJNAME = strcat(strcpy(malloc(MAXPATH),tmpdir),fname(TMPREJNAME));
- + TMPPATNAME = strcat(strcpy(malloc(MAXPATH),tmpdir),fname(TMPPATNAME));
- Mktemp(TMPOUTNAME);
- Mktemp(TMPINNAME);
- Mktemp(TMPREJNAME);
- ***************
- *** 426,431 ****
- --- 517,527 ----
- s++;
- maxfuzz = atoi(s);
- break;
- + case '?':
- + case 'h':
- + usage();
- + my_exit(0);
- + break;
- case 'l':
- canonicalize = TRUE;
- break;
- ***************
- *** 466,472 ****
- break;
- #endif
- default:
- ! fatal2("Unrecognized switch: %s\n", Argv[0]);
- }
- }
- }
- --- 562,570 ----
- break;
- #endif
- default:
- ! say2("Unrecognized switch: %s\n", Argv[0]);
- ! usage();
- ! my_exit(1);
- }
- }
- }
- *** ../patch/patch.man Wed May 30 15:02:54 1990
- --- patch.man Sat Jun 02 07:31:00 1990
- ***************
- *** 1,72 ****
- ! .rn '' }`
- ! ''' $Header: patch.man,v 2.0.1.2 88/06/22 20:47:18 lwall Locked $
- ! '''
- ! ''' $Log: patch.man,v $
- ! ''' Revision 2.0.1.2 88/06/22 20:47:18 lwall
- ! ''' patch12: now avoids Bell System Logo
- ! '''
- ! ''' Revision 2.0.1.1 88/06/03 15:12:51 lwall
- ! ''' patch10: -B switch was contributed.
- ! '''
- ! ''' Revision 2.0 86/09/17 15:39:09 lwall
- ! ''' Baseline for netwide release.
- ! '''
- ! ''' Revision 1.4 86/08/01 19:23:22 lwall
- ! ''' Documented -v, -p, -F.
- ! ''' Added notes to patch senders.
- ! '''
- ! ''' Revision 1.3 85/03/26 15:11:06 lwall
- ! ''' Frozen.
- ! '''
- ! ''' Revision 1.2.1.4 85/03/12 16:14:27 lwall
- ! ''' Documented -p.
- ! '''
- ! ''' Revision 1.2.1.3 85/03/12 16:09:41 lwall
- ! ''' Documented -D.
- ! '''
- ! ''' Revision 1.2.1.2 84/12/05 11:06:55 lwall
- ! ''' Added -l switch, and noted bistability bug.
- ! '''
- ! ''' Revision 1.2.1.1 84/12/04 17:23:39 lwall
- ! ''' Branch for sdcrdcf changes.
- ! '''
- ! ''' Revision 1.2 84/12/04 17:22:02 lwall
- ! ''' Baseline version.
- ! '''
- ! .de Sh
- ! .br
- ! .ne 5
- ! .PP
- ! \fB\\$1\fR
- ! .PP
- ! ..
- ! .de Sp
- ! .if t .sp .5v
- ! .if n .sp
- ! ..
- ! '''
- ! ''' Set up \*(-- to give an unbreakable dash;
- ! ''' string Tr holds user defined translation string.
- ! ''' Bell System Logo is used as a dummy character.
- ! '''
- ! .ie n \{\
- ! .tr \(*W-\*(Tr
- ! .ds -- \(*W-
- ! .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
- ! .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
- ! .ds L" ""
- ! .ds R" ""
- ! .ds L' '
- ! .ds R' '
- ! 'br\}
- ! .el\{\
- ! .ds -- \(em\|
- ! .tr \*(Tr
- ! .ds L" ``
- ! .ds R" ''
- ! .ds L' `
- ! .ds R' '
- ! 'br\}
- .TH PATCH 1 LOCAL
- .SH NAME
- patch - a program for applying a diff file to an original
- --- 1,5 ----
- ! .sc ^
- ! .nj
- .TH PATCH 1 LOCAL
- .SH NAME
- patch - a program for applying a diff file to an original
- ***************
- *** 87,93 ****
- version.
- By default, the patched version is put in place of the original, with
- the original file backed up to the same name with the
- ! extension \*(L".orig\*(R" or \*(L"~\*(R" , or as specified by the
- .B -b
- switch.
- You may also specify where you want the output to go with a
- --- 20,26 ----
- version.
- By default, the patched version is put in place of the original, with
- the original file backed up to the same name with the
- ! extension ".orig" or "~", or as specified by the
- .B -b
- switch.
- You may also specify where you want the output to go with a
- ***************
- *** 99,107 ****
- .PP
- Upon startup, patch will attempt to determine the type of the diff listing,
- unless over-ruled by a
- ! .BR -c ,
- ! .BR -e ,
- ! or
- .B -n
- switch.
- Context diffs and normal diffs are applied by the
- --- 32,41 ----
- .PP
- Upon startup, patch will attempt to determine the type of the diff listing,
- unless over-ruled by a
- ! .B -c
- ! ,
- ! .B -e
- ! , or
- .B -n
- switch.
- Context diffs and normal diffs are applied by the
- ***************
- *** 144,150 ****
- .I patch
- cannot find a place to install that hunk of the patch, it will put the
- hunk out to a reject file, which normally is the name of the output file
- ! plus \*(L".rej\*(R" or \*(L"#\*(R" .
- (Note that the rejected hunk will come out in context diff form whether the
- input patch was a context diff or a normal diff.
- If the input was a normal diff, many of the contexts will simply be null.)
- --- 78,84 ----
- .I patch
- cannot find a place to install that hunk of the patch, it will put the
- hunk out to a reject file, which normally is the name of the output file
- ! plus ".rej" or "#" .
- (Note that the rejected hunk will come out in context diff form whether the
- input patch was a context diff or a normal diff.
- If the input was a normal diff, many of the contexts will simply be null.)
- ***************
- *** 168,176 ****
- will try to figure out from the leading garbage what the name of the file
- to edit is.
- In the header of a context diff, the filename is found from lines beginning
- ! with \*(L"***\*(R" or \*(L"---\*(R", with the shortest name of an existing
- file winning.
- ! Only context diffs have lines like that, but if there is an \*(L"Index:\*(R"
- line in the leading garbage,
- .I patch
- will try to use the filename from that line.
- --- 102,110 ----
- will try to figure out from the leading garbage what the name of the file
- to edit is.
- In the header of a context diff, the filename is found from lines beginning
- ! with "***" or "---", with the shortest name of an existing
- file winning.
- ! Only context diffs have lines like that, but if there is an "Index:"
- line in the leading garbage,
- .I patch
- will try to use the filename from that line.
- ***************
- *** 183,189 ****
- .I patch
- will attempt to get or check out the file.)
- .PP
- ! Additionally, if the leading garbage contains a \*(L"Prereq: \*(R" line,
- .I patch
- will take the first word from the prerequisites line (normally a version
- number) and check the input file to see if that word can be found.
- --- 117,123 ----
- .I patch
- will attempt to get or check out the file.)
- .PP
- ! Additionally, if the leading garbage contains a "Prereq: " line,
- .I patch
- will take the first word from the prerequisites line (normally a version
- number) and check the input file to see if that word can be found.
- ***************
- *** 215,257 ****
- .PP
- .I Patch
- recognizes the following switches:
- ! .TP 5
- ! .B \-b
- causes the next argument to be interpreted as the backup extension, to be
- ! used in place of \*(L".orig\*(R" or \*(L"~\*(R".
- ! .TP 5
- ! .B \-B
- causes the next argument to be interpreted as a prefix to the backup file
- name. If this argument is specified any argument from -b will be ignored.
- This argument is an extension to Larry Wall's patch v2.0.1.4, patchlevel 8,
- made by M. Greim (greim@sbsvax.uucp).
- ! .TP 5
- ! .B \-c
- forces
- .I patch
- to interpret the patch file as a context diff.
- ! .TP 5
- ! .B \-d
- causes
- .I patch
- to interpret the next argument as a directory, and cd to it before doing
- anything else.
- ! .TP 5
- ! .B \-D
- causes
- .I patch
- to use the "#ifdef...#endif" construct to mark changes.
- The argument following will be used as the differentiating symbol.
- Note that, unlike the C compiler, there must be a space between the
- ! .B \-D
- and the argument.
- ! .TP 5
- ! .B \-e
- forces
- .I patch
- to interpret the patch file as an ed script.
- ! .TP 5
- ! .B \-f
- forces
- .I patch
- to assume that the user knows exactly what he or she is doing, and to not
- --- 149,185 ----
- .PP
- .I Patch
- recognizes the following switches:
- ! .IN 8
- ! .TP -b
- causes the next argument to be interpreted as the backup extension, to be
- ! used in place of ".orig" or "~".
- ! .TP -B
- causes the next argument to be interpreted as a prefix to the backup file
- name. If this argument is specified any argument from -b will be ignored.
- This argument is an extension to Larry Wall's patch v2.0.1.4, patchlevel 8,
- made by M. Greim (greim@sbsvax.uucp).
- ! .TP -c
- forces
- .I patch
- to interpret the patch file as a context diff.
- ! .TP -d
- causes
- .I patch
- to interpret the next argument as a directory, and cd to it before doing
- anything else.
- ! .TP -D
- causes
- .I patch
- to use the "#ifdef...#endif" construct to mark changes.
- The argument following will be used as the differentiating symbol.
- Note that, unlike the C compiler, there must be a space between the
- ! .B -D
- and the argument.
- ! .TP -e
- forces
- .I patch
- to interpret the patch file as an ed script.
- ! .TP -f
- forces
- .I patch
- to assume that the user knows exactly what he or she is doing, and to not
- ***************
- *** 258,267 ****
- ask any questions.
- It does not suppress commentary, however.
- Use
- ! .B \-s
- for that.
- ! .TP 5
- ! .B \-F<number>
- sets the maximum fuzz factor.
- This switch only applies to context diffs, and causes
- .I patch
- --- 186,194 ----
- ask any questions.
- It does not suppress commentary, however.
- Use
- ! .B -s
- for that.
- ! .TP -F<number>
- sets the maximum fuzz factor.
- This switch only applies to context diffs, and causes
- .I patch
- ***************
- *** 269,276 ****
- Note that a larger fuzz factor increases the odds of a faulty patch.
- The default fuzz factor is 2, and it may not be set to more than
- the number of lines of context in the context diff, ordinarily 3.
- ! .TP 5
- ! .B \-l
- causes the pattern matching to be done loosely, in case the tabs and
- spaces have been munged in your input file.
- Any sequence of whitespace in the pattern line will match any sequence
- --- 196,202 ----
- Note that a larger fuzz factor increases the odds of a faulty patch.
- The default fuzz factor is 2, and it may not be set to more than
- the number of lines of context in the context diff, ordinarily 3.
- ! .TP -l
- causes the pattern matching to be done loosely, in case the tabs and
- spaces have been munged in your input file.
- Any sequence of whitespace in the pattern line will match any sequence
- ***************
- *** 277,299 ****
- in the input file.
- Normal characters must still match exactly.
- Each line of the context must still match a line in the input file.
- ! .TP 5
- ! .B \-n
- forces
- .I patch
- to interpret the patch file as a normal diff.
- ! .TP 5
- ! .B \-N
- causes
- .I patch
- to ignore patches that it thinks are reversed or already applied.
- See also
- ! .B \-R .
- ! .TP 5
- ! .B \-o
- causes the next argument to be interpreted as the output file name.
- ! .TP 5
- ! .B \-p<number>
- sets the pathname strip count,
- which controls how pathnames found in the patch file are treated, in case
- the you keep your files in a different directory than the person who sent
- --- 203,221 ----
- in the input file.
- Normal characters must still match exactly.
- Each line of the context must still match a line in the input file.
- ! .TP -n
- forces
- .I patch
- to interpret the patch file as a normal diff.
- ! .TP -N
- causes
- .I patch
- to ignore patches that it thinks are reversed or already applied.
- See also
- ! .B -R .
- ! .TP -o
- causes the next argument to be interpreted as the output file name.
- ! .TP -p<number>
- sets the pathname strip count,
- which controls how pathnames found in the patch file are treated, in case
- the you keep your files in a different directory than the person who sent
- ***************
- *** 306,338 ****
- /u/howard/src/blurfl/blurfl.c
- .sp
- setting
- ! .B \-p
- or
- ! .B \-p0
- gives the entire pathname unmodified,
- ! .B \-p1
- gives
- .sp
- u/howard/src/blurfl/blurfl.c
- .sp
- without the leading slash,
- ! .B \-p4
- gives
- .sp
- blurfl/blurfl.c
- .sp
- and not specifying
- ! .B \-p
- at all just gives you "blurfl.c".
- Whatever you end up with is looked for either in the current directory,
- or the directory specified by the
- ! .B \-d
- switch.
- ! .TP 5
- ! .B \-r
- causes the next argument to be interpreted as the reject file name.
- ! .TP 5
- ! .B \-R
- tells
- .I patch
- that this patch was created with the old and new files swapped.
- --- 228,258 ----
- /u/howard/src/blurfl/blurfl.c
- .sp
- setting
- ! .B -p
- or
- ! .B -p0
- gives the entire pathname unmodified,
- ! .B -p1
- gives
- .sp
- u/howard/src/blurfl/blurfl.c
- .sp
- without the leading slash,
- ! .B -p4
- gives
- .sp
- blurfl/blurfl.c
- .sp
- and not specifying
- ! .B -p
- at all just gives you "blurfl.c".
- Whatever you end up with is looked for either in the current directory,
- or the directory specified by the
- ! .B -d
- switch.
- ! .TP -r
- causes the next argument to be interpreted as the reject file name.
- ! .TP -R
- tells
- .I patch
- that this patch was created with the old and new files swapped.
- ***************
- *** 342,348 ****
- will attempt to swap each hunk around before applying it.
- Rejects will come out in the swapped format.
- The
- ! .B \-R
- switch will not work with ed diff scripts because there is too little
- information to reconstruct the reverse operation.
- .Sp
- --- 262,268 ----
- will attempt to swap each hunk around before applying it.
- Rejects will come out in the swapped format.
- The
- ! .B -R
- switch will not work with ed diff scripts because there is too little
- information to reconstruct the reverse operation.
- .Sp
- ***************
- *** 350,356 ****
- .I patch
- will reverse the hunk to see if it can be applied that way.
- If it can, you will be asked if you want to have the
- ! .B \-R
- switch set.
- If it can't, the patch will continue to be applied normally.
- (Note: this method cannot detect a reversed patch if it is a normal diff
- --- 270,276 ----
- .I patch
- will reverse the hunk to see if it can be applied that way.
- If it can, you will be asked if you want to have the
- ! .B -R
- switch set.
- If it can't, the patch will continue to be applied normally.
- (Note: this method cannot detect a reversed patch if it is a normal diff
- ***************
- *** 360,372 ****
- Luckily, most patches add or change lines rather than delete them, so most
- reversed normal diffs will begin with a delete, which will fail, triggering
- the heuristic.)
- ! .TP 5
- ! .B \-s
- makes
- .I patch
- do its work silently, unless an error occurs.
- ! .TP 5
- ! .B \-S
- causes
- .I patch
- to ignore this patch from the patch file, but continue on looking
- --- 280,290 ----
- Luckily, most patches add or change lines rather than delete them, so most
- reversed normal diffs will begin with a delete, which will fail, triggering
- the heuristic.)
- ! .TP -s
- makes
- .I patch
- do its work silently, unless an error occurs.
- ! .TP -S
- causes
- .I patch
- to ignore this patch from the patch file, but continue on looking
- ***************
- *** 376,396 ****
- patch -S + -S + <patchfile
- .sp
- will ignore the first and second of three patches.
- ! .TP 5
- ! .B \-v
- causes
- .I patch
- to print out it's revision header and patch level.
- ! .TP 5
- ! .B \-x<number>
- sets internal debugging flags, and is of interest only to
- .I patch
- patchers.
- .SH AUTHOR
- Larry Wall <lwall@jpl-devvax.jpl.nasa.gov>
- .SH ENVIRONMENT
- ! No environment variables are used by
- ! .IR patch .
- .SH FILES
- /tmp/patch*
- .SH SEE ALSO
- --- 294,319 ----
- patch -S + -S + <patchfile
- .sp
- will ignore the first and second of three patches.
- ! .TP -v
- causes
- .I patch
- to print out it's revision header and patch level.
- ! .TP -x<number>
- sets internal debugging flags, and is of interest only to
- .I patch
- patchers.
- + .OD
- .SH AUTHOR
- Larry Wall <lwall@jpl-devvax.jpl.nasa.gov>
- .SH ENVIRONMENT
- ! .IN 8
- ! .TP TMP
- ! The location for temporary files created by
- ! .I patch.
- ! This string specifies the directory where
- ! .I patch
- ! puts any tempoorary files, and can (but need not) contain a terminating slash.
- ! .OD
- .SH FILES
- /tmp/patch*
- .SH SEE ALSO
- ***************
- *** 407,413 ****
- context diff header, or with an Index: line.
- If you are patching something in a subdirectory, be sure to tell the patch
- user to specify a
- ! .B \-p
- switch as needed.
- Third, you can create a file by sending out a diff that compares a
- null file to the file you want to create.
- --- 330,336 ----
- context diff header, or with an Index: line.
- If you are patching something in a subdirectory, be sure to tell the patch
- user to specify a
- ! .B -p
- switch as needed.
- Third, you can create a file by sending out a diff that compares a
- null file to the file you want to create.
- ***************
- *** 423,429 ****
- .I patch
- couldn't parse your patch file.
- .PP
- ! The message \*(L"Hmm...\*(R" indicates that there is unprocessed text in
- the patch file and that
- .I patch
- is attempting to intuit whether there is a patch in that text and, if so,
- --- 346,352 ----
- .I patch
- couldn't parse your patch file.
- .PP
- ! The message "Hmm..." indicates that there is unprocessed text in
- the patch file and that
- .I patch
- is attempting to intuit whether there is a patch in that text and, if so,
- ***************
- *** 436,443 ****
- .SH CAVEATS
- .I Patch
- cannot tell if the line numbers are off in an ed script, and can only detect
- ! bad line numbers in a normal diff when it finds a \*(L"change\*(R" or
- ! a \*(L"delete\*(R" command.
- A context diff using fuzz factor 3 may have the same problem.
- Until a suitable interactive interface is added, you should probably do
- a context diff in these cases to see if the changes made sense.
- --- 359,366 ----
- .SH CAVEATS
- .I Patch
- cannot tell if the line numbers are off in an ed script, and can only detect
- ! bad line numbers in a normal diff when it finds a "change" or
- ! a "delete" command.
- A context diff using fuzz factor 3 may have the same problem.
- Until a suitable interactive interface is added, you should probably do
- a context diff in these cases to see if the changes made sense.
- ***************
- *** 464,467 ****
- .I patch
- will think it is a reversed patch, and offer to un-apply the patch.
- This could be construed as a feature.
- - .rn }` ''
- --- 387,389 ----
-