📄 changelog
字号:
(remove_prefix): New function. (vfprintf): New function, if !HAVE_VPRINTF. (afatal, apfatal, zfatal, zpfatal, errnum): Remove. (fatal, pfatal, say): New functions that use stdarg. All callers changed. (zask): Renamed from `ask'. Now uses stdarg. Output to stdout, and read from /dev/tty, or if that cannot be opened, from stderr, stdout, stdin, whichever is first a tty. Print "EOF" when an EOF is read. Do not echo input. (sigs): New array. (sigset_t, sigemptyset, sigmask, sigaddset, sigismember, SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK, sigprocmask, sigblock, sigsetmask): Define substitutes if not available. (initial_signal_mask, signals_to_block): New vars. (fatal_exit_handler): New function, if !HAVE_SIGACTION. (set_signals, ignore_signals): Use sigaction and sigprocmask style signal-handling if possible; it doesn't lose signals. (set_signals): Default SIGCHLD to work around SysV fork+wait bug. (mkdir): First arg is now const *. (makedirs): Handle multiple adjacent slashes correctly. (fetchname): Do not worry about whether the file exists (that is now the caller's responsibility). Treat a sequence of one or more slashes like one slash. Do not unstrip leading directories if they all exist and if no -p option was given; POSIX doesn't allow this. (memcmp): Remove (now a macro in common.h). * version.c (copyright_string, free_software_msgid, authorship_msgid): New constants. (version): Use them. Use program_name instead of hardwiring it. * patch.man: Generate date from RCS Id. Rewrite to match the above changes.Fri Jul 30 02:02:51 1993 Paul Eggert (eggert@twinsun.com) * configure.in (AC_HAVE_FUNCS): Add mkdir. * common.h (Chmod, Fputc, Write, VOID): New macros. (malloc, realloc): Yield `VOID *', not `char *'. * util.h (makedirs): Omit `striplast' argument. Remove `aask'. * inp.c (plan_a): Remove fixed internal buffer. Remove lint. * util.c (set_signals, ignore_signals): Trap SIGTERM, too. (makedirs): Removed fixed internal buffer. Omit `striplast' argument. (mkdir): New function, if !HAVE_MKDIR. (fetchname): Remove fixed internal buffer. Remove lint from various functions. * patch.c, pch.c: Remove lint.Thu Jul 29 20:52:07 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) * Makefile.in (config.status): Run config.status --recheck, not configure, to get the right args passed.Thu Jul 29 07:46:16 1993 Paul Eggert (eggert@twinsun.com) * The following changes remove all remaining fixed limits on memory, and fix bugs in patch's handling of null bytes and files that do not end in newline. `Patch' now works on binary files. * backupfile.c (find_backup_file_name): Don't dump core if malloc fails. * EXTERN.h, INTERN.h (EXITING): New macro. * backupfile.[ch], patch.c, pch.c: Add PARAMS to function declarations. * common.h (bool): Change to int, so ANSI C prototype promotion works. (CANVARARG): Remove varargs hack; it wasn't portable. (filearg): Now a pointer, not an array, so that it can be reallocated. (GET*, SCCSDIFF, CHECKOUT*, RCSDIFF): Quote operands to commands. (my_exit): Declare here. (BUFFERSIZE, Ctl, filemode, Fseek, Fstat, Lseek, MAXFILEC, MAXHUNKSIZE, Mktemp, myuid, Null, Nullch, Nullfp, Nulline, Pclose, VOIDUSED): Remove. All invokers changed. (Argc, Argv, *define[sd], last_offset, maxfuzz, noreverse, ofp, optind_last, rejfp, rejname): No longer externally visible; all definers changed. (INT_MAX, INT_MIN, STD*_FILENO, SEEK_SET): Define if the underlying system doesn't. Include <limits.h> for this. * configure.in: Add limits.h, memcmp. Delete getline. * inp.c (tibufsize): New variable; buffers grow as needed. (TIBUFSIZE_MINIMUM): New macro. (report_revision): New function. (plan_a): Do not search patch as a big string, since that fails if it contains null bytes. Prepend `./' to filenames starting with `-', for RCS and SCCS. If file does not match default RCS/SCCS version, go ahead and patch it anyway; warn about the problem but do not report a fatal error. (plan_b): Do not use a fixed buffer to read lines; read byte by byte instead, so that the lines can be arbitrarily long. Do not search lines as strings, since they may contain null bytes. (plan_a, plan_b): Report I/O errors. * inp.c, inp.h (rev_in_string): Remove. (ifetch): Yield size of line too, since strlen no longer applies. (plan_a, plan_b): No longer exported. * patch.c (abort_hunk, apply_hunk, patch_match, similar): Lines may contain NUL and need not end in newline. (copy_till, dump_line): Insert newline if appending after partial line. All invokers changed. (main, get_some_switches, apply_hunk): Allocate *_define[ds], filearg, rejname dynamically. (make_temp): New function. (main): Use it. (main, spew_output, dump_line) Check for I/O errors. * pch.c (open_patch_file): Don't copy stdin to a temporary file if it's a regular file, since we can seek on it directly. (open_patch_file, skip_to, another_hunk): The patch file may contain NULs. (another_hunk): The patch file may contain lines starting with '\', which means the preceding line lacked a trailing newline. (pgetline): Rename to pget_line. (get_line, incomplete_line, pch_write_line): New functions. (pch_line_len): Return size_t, not short; lines may be very long. (do_ed_script): Check for I/O errors. Allow scripts to contain 'i' and 's' commands, too. * pch.h (pfp, grow_hunkmax, intuit_diff_type, next_intuit_at, skip_to, pfetch, pgetline): No longer exported. (pch_write_line): New declaration. (getline): Removed. * util.c (move_file, fetchname): Use private stat buffer, so that filestat isn't lost. Check for I/O errors. (savestr): Use savebuf. (zask): Use STD*_FILENO instead of 0, 1, 2. (fetchname): strip_leading defaults to INT_MAX instead of 957 (!). (memcmp): Define if !HAVE_MEMCMP. * util.c, util.h (say*, fatal*, pfatal*, ask*): Delete; these pseudo-varargs functions weren't ANSI C. Replace by macros that invoke [fs]printf directly, and invoke new functions [az]{say,fatal,pfatal,ask} before and after. (savebuf, read_fatal, write_fatal, memory_fatal, Fseek): New functions. (fatal*): Output trailing newline after message. All invokers changed. * version.c (version): Don't exit. * Makefile.in (SRCS): Remove getline.c.Thu Jul 22 15:24:24 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * EXTERN.h, INTERN.h (PARAMS): Define. * backupfile.h, common.h, inp.h, pch.h, util.h: Use. * backupfile.c: Include EXTERN.h.Wed Jul 21 13:14:05 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * getline.c: New file. * configure.in: Check for getline (GNU libc has it). * pch.c: Use it instead of fgets. (pgetline): Renamed from pgets. Change callers. * pch.h: Change decl. * pch.c (pgets): Tab adjusts by 8 - (indent % 8), not % 7. Be consistent with similar code in pch.c::intuit_diff_type. * common.h (MEM): Typedef removed. inp.c, pch.c, util.c: Use size_t instead of MEM. inp.c, pch.c: Use off_t. configure.in: Add AC_SIZE_T and AC_OFF_T. * common.h: Make buf a pointer and add a bufsize variable. * util.c, pch.c, inp.c: Replace sizeof buf with bufsize. * patch.c: malloc buf to bufsize bytes.Tue Jul 20 20:40:03 1993 Paul Eggert (eggert@twinsun.com) * common.h (BUFFERSIZE): Grow it to 8k too, just in case. (buf): Turn `buf' back into an array; making it a pointer broke things seriously. * patch.c (main): Likewise.Tue Jul 20 20:02:40 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * Move Reg[1-16] and CANVARARG decls from config.h.in to common.h. * acconfig.h: New file. * Makefile (HDRS): Add it.Tue Jul 20 16:35:27 1993 Paul Eggert (eggert@twinsun.com) * Makefile.in: Remove alloca.[co]; getopt no longer needs it. * configure.in (AC_ALLOCA): Remove. * util.c (set_signals, ignore_signals): Do nothing if SIGHUP and SIGINT aren't defined.Tue Jul 20 17:59:56 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * patch.c (main): Call xmalloc, not malloc. xmalloc buf. * common.h: Declare xmalloc. Make buf a pointer, not an array. * util.c (xmalloc): Call fatal1, not fatal. * common.h [MAXLINELEN]: Bump from 1k to 8k.Thu Jul 8 19:56:16 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * Makefile.in (installdirs): New target. (install): Use it. (Makefile, config.status, configure): New targets.Wed Jul 7 13:25:40 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * patch.c (get_some_switches, longopts): Recognize --help option, and call usage. (usage): New function.Fri Jun 25 07:49:45 1993 Paul Eggert (eggert@twinsun.com) * backupfile.c (find_backup_file_name): Don't use .orig if numbered_existing with no existing numbered backup. (addext): Don't use ext if !HAVE_LONG_FILE_NAMES, even if it would fit. This matches patch's historical behavior. (simple_backup_suffix): Default to ".orig". * patch.c (main): Just use that default.Tue Jun 15 22:32:14 1993 Paul Eggert (eggert@twinsun.com) * config.h.in (HAVE_ALLOCA_H): This #undef was missing. * Makefile.in (info, check, installcheck): New rules.Sun Jun 13 14:31:29 1993 Paul Eggert (eggert@twinsun.com) * config.h.in (index, rindex): Remove unused macro definitions; they get in the way when porting to AIX. * config.h.in, configure.in (HAVE_STRING_H): Remove unused defn.Thu Jun 10 21:13:47 1993 Paul Eggert (eggert@twinsun.com) * patchlevel.h: PATCH_VERSION 2.1. (The name `patch-2.0.12g12' is too long for traditional Unix.) * patchlevel.h (PATCH_VERSION): Renamed from PATCHLEVEL. Now contains the entire patch version number. * version.c (version): Use it.Wed Jun 9 21:43:23 1993 Paul Eggert (eggert@twinsun.com) * common.h: Remove declarations of index and rindex. * backupfile.c: Likewise. (addext, basename, dirname): Avoid rindex.Tue Jun 8 15:24:14 1993 Paul Eggert (eggert@twinsun.com) * inp.c (plan_a): Check that RCS and working files are not the same. This check is needed on hosts that do not report file name length limits and have short limits.Sat Jun 5 22:56:07 1993 Paul Eggert (eggert@twinsun.com) * Makefile.in (.c.o): Put $(CFLAGS) after other options. (dist): Switch from .z to .gz.Wed Jun 2 10:37:15 1993 Paul Eggert (eggert@twinsun.com) * backupfile.c (find_backup_file_name): Initialize copy of file name properly.Mon May 31 21:55:21 1993 Paul Eggert (eggert@twinsun.com) * patchlevel.h: Patch level 12g11. * pch.c (p_Char): Renamed from p_char, which is a system type in Tex XD88's <sys/types.h>. * backupfile.c: Include "config.h" first, so that `const' is treated consistently in system headers.Mon May 31 16:06:23 1993 Paul Eggert (eggert@twinsun.com) * patchlevel.h: Patch level 12g10. * configure.in: Add AC_CONST. * config.h.in: Add `const'. * Makefile.in (.c.o): Add -DHAVE_CONFIG_H. (getopt.o getopt1.o): Depend on config.h. * util.c (xmalloc): New function; alloca.c needs this.Mon May 31 00:49:40 1993 Paul Eggert (eggert@twinsun.com) * patchlevel.h: PATCHLEVEL 12g9. * backupfile.c, backupfile.h (addext): New function. It uses pathconf(), if available, to determine maximum file name length. * patch.c (main): Use it for reject file name. * common.h (ORIGEXT): Moved to patch.c. * config.h.in (HAVE_PATHCONF): New macro. * configure.in: Define it. * Makefile.in (dist): Use gzip, not compress.Sat May 29 09:42:18 1993 Paul Eggert (eggert@twinsun.com) * patch.c (main): Use pathconf to decide reject file name. * common.h (REJEXT): Remove. * inp.c (plan_a): Don't lock the checked-out file if `patch -o' redirected the output elsewhere. * common.h (CHECKOUT_LOCKED, GET_LOCKED): New macros. GET and CHECKOUT now just checkout unlocked copies.Fri May 28 08:44:50 1993 Paul Eggert (eggert@twinsun.com) * backupfile.c (basename): Define even if NODIR isn't defined. * patch.c (main): Ask just once to apply a reversed patch.Tue Nov 24 08:09:04 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * config.h.in, common.h: Use HAVE_FCNTL_H and HAVE_STRING_H instead of USG. * backupfile.c: Use SYSDIR and NDIR instead of USG. Define direct as dirent, not vice-versa.Wed Sep 16 17:11:48 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * patch.c (get_some_switches): optc should be int, not char.Tue Sep 15 00:36:46 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * patchlevel.h: PATCHLEVEL 12g8.Mon Sep 14 22:01:23 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * Makefile.in: Add uninstall target. * util.c (fatal, pfatal): Add some asterisks to make fatal messages stand out more.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -