1
0
Fork 0
mirror of git://git.savannah.gnu.org/patch.git synced 2026-09-19 22:05:25 +00:00
No description
  • C 66.8%
  • Shell 18.5%
  • Roff 9.8%
  • M4 2.1%
  • Makefile 1.9%
  • Other 0.9%
Find a file
Andreas Gruenbacher a2b192295d Absolute in-tree symlink target resolved relative to symlink parent
When resolving an absolute symlink that points back into patch's working
directory, patch resolved the remainder of the symlink relative to the
directory containing the symlink rather than the working directory.  With
symlinks in subdirectories, this can lead to patching the wrong file.
* src/safe.c (struct symlink): Store the cached_dirfd a symlink resolves to.
(cwd): Turn into a global variable that can be accessed from read-symlink().
(read_symlink): Pass the current cached_dirfd and return the cached_dirfd the
symlink needs to be resolved in.
(traverse_next): Continue traversal in the directory returned by
read_symlink().
* tests/symlinks: Add absolute symlink test case.

This closes bug #68311:
https://savannah.gnu.org/bugs/?68311
2026-05-15 19:15:26 +02:00
gnulib@37abddd3db build: update gnulib submodule to latest 2026-04-21 10:10:02 -07:00
m4 maint: make update-copyright 2026-04-21 10:10:02 -07:00
pc maint: arrange for the sc_require_config_h_first test to pass 2011-03-26 14:20:28 +01:00
src Absolute in-tree symlink target resolved relative to symlink parent 2026-05-15 19:15:26 +02:00
tests Absolute in-tree symlink target resolved relative to symlink parent 2026-05-15 19:15:26 +02:00
.gitattributes Improve ‘git diff’ output if desired 2024-08-28 23:13:44 -07:00
.gitignore maint: simplify .gitignore 2024-08-25 18:14:30 -07:00
.gitmodules Convert to automake and use a git submodule for gnulib 2010-04-12 16:27:55 +02:00
AUTHORS Copyright notice updates 2009-04-05 21:12:30 +02:00
bootstrap maint: make update-copyright 2026-04-21 10:10:02 -07:00
bootstrap.conf maint: make update-copyright 2026-04-21 10:10:02 -07:00
cfg.mk maint: make update-copyright 2026-04-21 10:10:02 -07:00
ChangeLog-2011 maint: make update-copyright 2026-04-21 10:10:02 -07:00
configure.ac maint: make update-copyright 2026-04-21 10:10:02 -07:00
COPYING Update to GPL version 3, add diffseq.h and minmax.h from Gnulib 2009-04-02 06:34:45 +02:00
Makefile.am maint: make update-copyright 2026-04-21 10:10:02 -07:00
NEWS maint: make update-copyright 2026-04-21 10:10:02 -07:00
patch.man maint: make update-copyright 2026-04-21 10:10:02 -07:00
README maint: make update-copyright 2026-04-21 10:10:02 -07:00
README-alpha Add README-alpha automatically when appropriate 2009-03-22 13:37:06 +01:00
README-hacking maint: make update-copyright 2026-04-21 10:10:02 -07:00
README-prereq Update NEWS, README-prereq 2024-08-28 23:13:44 -07:00

This is GNU patch, which applies diff files to original files.

This version of patch has many changes made by the Free Software Foundation.
They add support for:
 * handling arbitrary binary data and large files
 * the unified context diff format that GNU diff can produce
 * merging into files instead of creating reject files
 * making GNU Emacs-style backup files
 * improved interaction with RCS and SCCS
 * the GNU conventions for option parsing and configuring and compilation.
 * better POSIX compliance
They also fix some bugs.

If you obtained this file as part of a "git clone", then see the
README-hacking file.  If this file came to you as part of a tar archive,
then see the file INSTALL for compilation and installation instructions.

See the file NEWS for a list of major changes in the current release.
A more detailed description of all changes can be found in the file ChangeLog
in tar archives, and with "git log" which shows the version control history.

Tutorial-style documentation for patch is included in the GNU
Diffutils package; get GNU Diffutils 2.8 or later for up-to-date
documentation for patch.

Use `configure --disable-largefile' to disable large file support;
this is reportedly necessary on Red Hat GNU/Linux 6.0 to avoid a C library bug.
For MS-DOS using DJGPP tools, see the file pc/djgpp/README.
For other systems, copy config.hin to config.h and change
#undef statements in it to #define as appropriate for your system,
and copy Makefile.in to Makefile and set the variables that are
enclosed in @ signs as appropriate for your system.

Please send bug reports for this version of patch to
<bug-patch@gnu.org>.

The Free Software Foundation is distributing this version of patch
independently because as of this writing, Larry Wall has not released a
new version of patch since mid-1988.  We have heard that he has been
too busy working on other things, like Perl.  He has graciously agreed
to let GNU `patch' be distributed under the terms of the GNU General
Public License.

For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.

Please see the file COPYING for copying conditions.

------

Copyright 1989-2026 Free Software Foundation, Inc.
Copyright 1984-1988 Larry Wall

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.