our patch to look a little more like NetBSD's, and has the nice characteristic
that the object code is exactly the same after the change as before it (even in
patch.c and pch.c, which have pesky 'assert' statements in them).
Reviewed by: /sbin/md5 on i386, alpha, sparc64
MFC after: 3 days
\ No newline at end of file
line that some versions of diff print out if the last line of the two files
are different, and one of the two files does not have a newline character
on that last line.
This change is still somewhat under discussion in -arch and -standards, but I
want to commit it to -current today so I'd have the chance to MFC it to -stable
before the code freeze for 4.6-release (which would be May 1st).
Note: the related change to 'diff' (so it might *generate* that line) is NOT
expected to be included in 4.6-release. We can debate that change later.
Obtained from: NetBSD (1.13 of basesrc/usr.bin/patch/pch.c, by kristerw)
MFC after: 4 days
Previously, using -S/--skip, -f/--force, or -t/--batch to skip a patch in
a patchset still registers a failure which causes patch to return a
non-zero exit code. This is particularly undesirable with regards to
ports as there is no way to ignore the non-zero code. (Luckily, we don't
currently have any ports that make use of any of these options.)
The PR (yes, my own) is slightly incorrect: It states that -f does indeed
properly skip patches. It does, but it still sets the failure flag causing
patch to return non-zero.
PR: 19638
Submitted by: kbyanc@posi.net
It maybe right, if patch was FreeBSD-own program, but it break compatibility
with pre-existent patches in other systems.
The example is big ncurses patch which don't apply on FreeBSD
due to "fixed" precedence.
controlling terminal is closed. Now the function ask() will return 1 when th
input is known to come from a file or terminal, or it will return 0 when ther
was a read error.
Modified the question "Skip patch?" so that on an error from ask it will skip
the patch instead of looping.
Closes PR#777
2.2 candidate
with valid names, the ***/---names were taken first.
this broke eg:
Index: foo/Makefile
==========
RCS <blah>
Retrieving <blah>
diff <blah>
*** Makefile <blah>
--- Makefile <blah>
By trying to patch the Makefile in the _curent_ directory, rather than
the one in the foo/ directory.
in the diff. This makes it so that diffs containing files in different
subdirectories that have the same name not patch the same file. For example
a diff with patches to Makefile, des/Makefile, usr.bin/Makefile would attempt
to patch Makefile three times.