| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r351836: patch(1): add some basic tests
Summary:
- basic: test application of patches created by diff -u at the
beginning/middle/end of file, which have differing amounts of context
before and after chunks being added
- limited_ctx: stems from PR 74127 in which a rogue line was getting added
when the patch should have been rejected. Similar behavior was
reproducible with larger contexts near the beginning/end of a file. See
r326084 for details
- file_creation: patch sourced from /dev/null should create the file
- file_nodupe: said patch sourced from /dev/null shouldn't dupe the contents
when re-applied (personal vendetta, WIP, see comment)
- file_removal: this follows from nodupe; the reverse of a patch sourced
from /dev/null is most naturally deleting the file, as is expected based
on GNU patch behavior (WIP)
r351866: patch(1): fix the file removal test, strengthen it a bit
To remain compatible with GNU patch, we should ensure that once we're
removing empty files after a reversed /dev/null patch we don't remove files
that have been modified. GNU patch leaves these intact and just reverses the
hunk that created the file, effectively implying --remove-empty-files for
reversed /dev/null patches.
r354328: patch(1): give /dev/null patches special treatment
We have a bad habit of duplicating contents of files that are sourced from
/dev/null and applied more than once... take the more sane (in most ways)
GNU route and complain if the file exists and offer reversal options.
This still falls short a little bit as selecting "don't reverse, apply
anyway" will still give you duplicated file contents. There's probably other
issues as well, but awareness is the first step to happiness.
Notes:
svn path=/stable/12/; revision=355351
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This change is made in the name of GNU patch compatibility. If GNU patch is
fed a zero-length patch, it will exit successfully with no output. This is
used in at least one port to date (comms/wsjtx), and we break on this usage.
It seems unlikely that anyone relies on patch(1) calling their completely
empty patch garbage and failing, and GNU compatibility is a plus if it helps
with porting, so make the switch.
Notes:
svn path=/stable/12/; revision=345878
|
| |
|
|
|
|
|
| |
Obtained from: OpenBSD (CVS 1.64)
Notes:
svn path=/head/; revision=327063
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patches with very little context (-U0 and -U1) could get misapplied if
the file to be patched changes and a hunk is no longer applicable. Matching
with fuzz would be attempted and default to a match when we unexpectedly ran
out of context.
This also affected patches with higher levels of context but had limited
actual context due to the hunk being located near the beginning/end of file.
PR: 74127, 223545 (exp-run)
Reviewed by: emaste, pfg
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12631
Notes:
svn path=/head/; revision=326084
|
| |
|
|
|
|
|
|
|
|
|
| |
r325365 caused several ports to fail to patch correctly. Revert it for the
time being until an exp-run can be completed.
Requested by: antoine
Approved by: emaste (implicit)
Notes:
svn path=/head/; revision=325564
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patches with very little context (-U0 and -U1) could get misapplied if
the file to be patched changes and a hunk is no longer applicable. Matching
with fuzz would be attempted and default to a match when we unexpectedly ran
out of context.
PR: 74127
Reviewed by: emaste, pfg
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12631
Notes:
svn path=/head/; revision=325365
|
| |
|
|
|
|
|
|
|
| |
Small style fix with here.
Pointed out by: kib
Notes:
svn path=/head/; revision=311110
|
| |
|
|
|
|
|
|
|
|
|
| |
patch(1): extend the maximum length of a line from USHRT_MAX to UINT_MAX.
This doesn't really work for 32 bit platforms.
Pointed out by: kib
Notes:
svn path=/head/; revision=311109
|
| |
|
|
|
|
|
|
|
|
| |
We can handle such "big data" without much trouble.
Try to do a better job at detecting the rejection cause while here.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=311106
|
| |
|
|
|
|
|
|
| |
Independent of the maximum length, the return type for strnlen(3)
is always size_t.
Notes:
svn path=/head/; revision=298531
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D3146
Reviewed by: pfg
Approved by: markj (mentor)
MFC after: 1 week
Relnotes: yes
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=285772
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Exit with EXIT_FAILURE for invalid arguments.
Fixes NetBSD-PR 43517.
Print version string to stdout instead of stderr;
it is user-requested and not an error.
Obtained from: NetBSD
MFC after: 5 days
Notes:
svn path=/head/; revision=276472
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The function savestr allows NULL return values during Plan A patching so in
case of out of memory conditions, Plan B can step in. In many cases, NULL
value is not properly handled, so use xstrdup here (it's outside Plan A/B
patching, which means that even Plan B relies on successful operations).
Clean up some whitespaces while here
Obtained from: OpenBSD
MFC after: 2 weeks
Notes:
svn path=/head/; revision=276218
|
| |
|
|
|
|
|
|
|
|
| |
On FreeBSD's libc setlinebuf is a wrapper to setvbuf anyways.
Obtained from: OpenBSD
MFC after: 5 days
Notes:
svn path=/head/; revision=275581
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Other implementations of patch(1), including GNU patch and "svn patch"
have a --dry-run option which does the same as our -C or --check
option.
Add a new alias to make our implementation more compatible.
MFC after: 1 week
Notes:
svn path=/head/; revision=267512
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch(1) uses a short int for the line length, which is usually
sufficient for regular diffs, but makes no effort to signal
when there is an overflow.
Change the line length to an unsigned short int to better use
the fact that a length is never negative. The change is loosely
inspired on a related change in DragonFly, but we avoid spending
more memory than necessary.
While here adjust the messages to be clearer on what is happening.
MFC after: 1 week
Notes:
svn path=/head/; revision=267490
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Ask only once for "Apply anyway". [1]
- Tell user what file have failed patch rather than just how
many hunks failed.
Reported by: jmg via pfg [1]
Tested by: pfg [1]
Approved by: re (gjb)
Notes:
svn path=/head/; revision=255894
|
| |
|
|
|
|
|
| |
Submitted by: gogolok
Notes:
svn path=/head/; revision=253614
|
| |
|
|
| |
Notes:
svn path=/head/; revision=250975
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
fclose() being skipped. Fix this by using boolean "&" and "|" instead of
short-cut operators "&&" and "||".
While here, increment the last part of the version string. The reason is
the fixed output file selection logic in pch.c, which was committed as
r250943, yesterday.
Reviewed by: pfg
Notes:
svn path=/head/; revision=250972
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Remove $DragonFly$ tags as they are using git nowadays and VCS tags will
not help merging.
- Other changes to Copyright headers to make them consistent with other
source code, we intend to fork from this point.
Reviewed by: pfg
Notes:
svn path=/head/; revision=246091
|
| |
|
|
|
|
|
|
|
|
|
| |
DragonflyBSD and install it as bsdpatch. WITH_BSD_PATCH makes it
default and installs GNU patch as gnupatch.
Submitted by: pfg
Obtained from: The DragonflyBSD Project
Notes:
svn path=/head/; revision=246074
|
| |
|
|
| |
Notes:
svn path=/head/; revision=27369
|
|
|
pascal and vmstat.sparc. All changed files on the vendor branch should
already have been imported.
Notes:
svn path=/vendor/CSRG/dist/; revision=27241
|