📄 changelog
字号:
* system.h (volatile, const): Define these before including any system headers, so that they're used consistently in all system includes. (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some <stdlib.h>s don't declare them. (memchr): Likewise for <string.h>. * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first. * diff.c: Remove redundant "system.h" inclusion. * diff3.c (xmalloc): Now static. (xmalloc, realloc): Remove needless casts. (READNUM): Ensure isdigit argument isn't negative.Wed Sep 14 07:14:15 1993 Paul Eggert (eggert@twinsun.com) * Version 2.4 released. * ifdef.c (scan_char_literal): New function, for new %c'x' and %c'\ooo' format specs. (format_group, print_ifdef_lines): Use it. Remove %0 format spec. * cmp.c (cmp): Don't try to read past end of file; this doesn't work on ttys. * system.h, version.c: #include <config.h>, not "config.h", to allow configuring in a separate directory when the source directory has already been configured. * Makefile.in (COMPILE): New defn, with proper -I options so that `#include <config.h>' works. (.c.o, diff3.o, sdiff.o): Use it.Mon Sep 13 06:45:43 1993 Paul Eggert (eggert@twinsun.com) * diff.c (main, longopts): Add --line-format=FORMAT option. (specify_format): Args no longer const pointers. All callers changed. * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats. (struct group): New struct. (print_ifdef_lines): Use it to simplify argument passing. Remove the convention that last arg -1 signifies that the lines from file 2 are the same as the lines from file 1; this convention no longer works, now that line numbers might be printed out, since the line numbers may differ. Add first FILE * argument to output to. All callers changed. Use a faster test for the single-fwrite optimization. (format_group, scan_printf_spec, groups_letter_value): New functions. * diff.h (group_format, line_format): No longer const pointers. (format_ifdef): 1st arg is no longer const pointer. * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H. * system.h <limits.h>, <stdlib.h>, <string.h>: Include only if HAVE_LIMITS_H etc. * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer these standard names to the traditional names (bcmp, bcpy, index, rindex, struct direct). All callers changed. * system.h (PARAMS, VOID): Define earlier so that malloc decl can use VOID. (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K.Fri Sep 3 00:21:02 1993 Paul Eggert (eggert@twinsun.com) * diff.c (compare_files): Two files with the same name must be the same file; avoid a needless `stat' in that case.Fri Aug 27 06:59:03 1993 Paul Eggert (eggert@twinsun.com) * Pervasive changes for portability to 64-bit hosts: Add prototypes to function declarations. Use size_t, not int, when needed. * Other pervasive changes: Use `const' more often. Use STD{IN,OUT,ERR}_FILENO instead of [012]. Use 0, not NULL, for portability to broken hosts. * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch]. (distfiles): New files config.h.in, mkinstalldirs. (.c.o): Add -DHAVE_CONFIG_H. * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment. (diff_2_files): Use l.c.m., not max, of files' buffer sizes. * cmp.c: Make globals static when possible. (file): Now a 2-element array; replaces `file1' and `file2'. (file_desc, buffer): Likewise, for file[12]_desc and buf[12]. (main): Likewise, for stat_buf[12]. Index these variables with `i'. (ignore_initial): New var. (long_options): Now const. Add `--ignore-initial'. (usage): Sort options and add `--ignore-initial'. (main, cmp): Add `--ignore-initial' support. (main): `cmp - -' now succeeds. When comparing standard input to a file, and using a shortcut (e.g. looking at file sizes or inode numbers), take the lseek offset into account before deciding whether the files are identical. Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts. Use l.c.m. of files' buffer sizes, not 8 * 1024. ferror (stdout) does not imply errno has a useful value. If 2nd file is "-", treat it first, in case stdin is closed. (cmp): Always compute `char_number', `smaller' for speed and simplicity. Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input', as per Posix.2. (block_compare_and_count): Increment line_number argument. Remove end_char argument; it's always '\n'. All callers changed. Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts. (block_compare): Minimize differences with block_compare_and_count. (block_read): Coalesce `bp += nread's. (printc): Remove `FILE *' arg; output to stdout. All callers changed. * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF. Configure into config.h. * context.c (print_context_label): Standard input's st_mtime is no longer a special case here, since `compare_files' now sets it to the current time. * diff.c (usage): Sort options. (filetype): New function. (compare_files): Set stdin's st_mtime to be the current time. Leave its name "-" instead of changing it to "Standard Input"; to test whether a file is stdin, we must compare its name to "-" instead of its desc to 0, since if it's closed other file descs may be 0. When comparing standard input to a file, and using a shortcut (e.g. looking at file sizes or inode numbers), take the lseek offset into account before deciding whether the files are identical. Pretend that nonexistent files have the same filetype as existing files. Rename `errorcount' to `failed', since it's boolean. In directory comparisons, if a file is neither a regular file nor a directory, just print its type and the other file's type. * diff.h (Is_space, textchar): Remove. (struct msg, msg_chain, msg_chain_end): Move to util.c. (VOID): Move to system.h. (line_cmp, version_string, change_letter, print_number_range, find_change): New decls. * diff.texi: whitespace -> white space. It now stands for whatever isspace yields. Add --ignore-initial. * diff3.c (VOID): Move to system.h. (version_string): Now char[]. (usage): Sort options. (process_diff): Pacify `gcc -Wall' with a useless assignment. (read_diff): pid is of type pid_t, not int. Use waitpid if available. (output_diff3): Simplify test for `\ No newline at end of file' message. * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion with external struct file_data `files'. * io.c (line_cmp): Move declaration to diff.h. (textchar): Remove. (find_and_hash_each_line): Use locale's definition of white space instead of using one hardwired defn for -b and another for -w. * normal.c (change_letter, print_number_range, find_change): Move decls to diff.h. (print_normal_hunk): Now static. * sdiff.c (SEEK_SET): Move to system.h. (version_string): Now char[], not char*. (private_tempnam): Remove hardcoded limit on temporary file names. (exiterr, perror_fatal, main): When exiting because of a signal, exit with that signal's status. (lf_refill, main, skip_white, edit, interact): Check for signal. (ignore_SIGINT): Renamed from `ignore_signals'. (NUM_SIGS, initial_handler): New macros. (initial_action, signal_received, sigs_trapped): New vars. (catchsig, trapsigs): Use sigaction if possible, since this closes the windows of vulnerability that `signal' has. Use RETSIGTYPE not void. When a signal comes in, just set a global variable; this is safer. (checksigs, untrapsig): New functions. (edit): Pacify `gcc -Wall' with a useless assignment. Respond to each empty line with help, not to every other empty line. (private_tempnam): Remove hardcoded limit on temporary file name length. Don't assume sizeof (pid_t) <= sizeof (int). * system.h: (S_IXOTH, S_IXGRP, S_IXUSR, SEEK_SET, SEEK_CUR, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): New macros, if system doesn't define them. (volatile): Don't define if already defined. (PARAMS): New macro. (VOID): Move here from diff.h. * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h. (message5): New function. (pr_pid): New var. (begin_output): Allocate `name' more precisely. Put child pid into pr_pid, so that we can wait for it later. Don't check execl's return value, since any return must be an error. (finish_output): Detect and report output errors. Use waitpid if available. Check pr exit status. (line_cmp): Use locale's definition of white space instead of using one hardwired defn for -b and another for -w. (analyze_cmp): Avoid double negation with `! nontrivial'. Pacify `gcc -Wall' be rewriting for-loop into do-while-loop. (dir_file_pathname): New function. * version.c (version_string): Now char[], not char*.Thu Jul 29 20:44:30 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 22 10:46:30 1993 Paul Eggert (eggert@twinsun.com) * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi' with `[ TEST ] || ACTION || exit' so that the containing for-loop exits with proper status for `make'.Thu Jul 8 19:47:22 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * Makefile.in (installdirs): New target. (install): Use it. (Makefile, config.status, configure): New targets.Sat Jun 5 23:10:40 1993 Paul Eggert (eggert@twinsun.com) * Makefile.in (dist): Switch from .z to .gz.Wed May 26 17:16:02 1993 Paul Eggert (eggert@twinsun.com) * diff.c (main): Cast args to compare_files, for traditional C. * side.c (print_sdiff_common_lines_print_sdiff_hunk): Likewise. * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined properly.Tue May 25 14:54:05 1993 Paul Eggert (eggert@twinsun.com) * analyze.c (diff_2_files): With -q, do not report that files differ if all their differences are ignored. (briefly_report): New function. * diff.h (ignore_some_changes): New variable. * diff.c (compare_files): Don't use the file size shortcut if ignore_some_changes is nonzero, since the file size may differ merely due to ignored changes. (main): Set ignore_some_changes if we might ignore some changes. Remove unsystematic assignment of 0 to static vars. * io.c (read_files): New argument PRETEND_BINARY says whether to pretend the files are binary. * diff3.c (tab_align_flag): New variable, for new -T option. (main, usage, output_diff3): Add support for -T.Sun May 23 15:25:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * dir.c (dir_sort): Always init `data' to avoid GCC warning.Sat May 22 15:35:02 1993 Paul Eggert (eggert@twinsun.com) * Makefile.in (dist): Change name of package from diff to diffutils. Don't bother to build .Z dist; .z suffices.Fri May 21 16:35:22 1993 Paul Eggert (eggert@twinsun.com) * diff.c: Include "system.h" to get memchr declaration. * system.h (memchr): Declare if !HAVE_MEMCHR, not if !HAVE_MEMCHR && !STDC_HEADERS.Wed May 19 17:43:55 1993 Paul Eggert (eggert@twinsun.com) * Version 2.3 released.Fri Apr 23 17:18:44 1993 Paul Eggert (eggert@twinsun.com) * io.c (find_identical_ends): Do not discard the last HORIZON_LINES lines of the prefix, or the first HORIZON_LINES lines of the suffix. * diff.c (main, longopts, usage): Add --horizon-lines option. * diff3.c (main, process_diff, read_diff): Invoke second diff with --horizon-lines determined by the first diff. * diff.h, diff3.c (horizon_lines): New variable.Mon Mar 22 16:16:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero): Don't define if already defined.Fri Mar 5 00:20:16 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * diff.c (main): Use NULL in arg to compare_files.Thu Feb 25 15:26:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS, not #if !HAVE_MEMCHR || !STDC_HEADERS.Mon Feb 22 15:04:46 1993 Richard Stallman (rms@geech.gnu.ai.mit.edu) * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES.Mon Feb 22 12:56:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<.Sat Feb 20 19:18:56 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * io.c (binary_file_p): Return zero if file size is zero.Fri Feb 19 17:31:32 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) * Version 2.2 released. * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't define if already defined.Wed Feb 17 17:08:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * Makefile.in (srcs): Remove limits.h.Thu Feb 11 03:36:00 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * diff3.c (xmalloc): No longer static. * sdiff.c (edit): Allocate buf dynamically. * dir.c (dir_sort): Handle VOID_CLOSEDIR.Wed Feb 10 00:15:54 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * limits.h: File deleted (should never have been there).Tue Feb 9 03:53:22 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last.Wed Feb 3 15:42:10 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * system.h: Don't #define const; let configure do it.Mon Feb 1 02:13:23 1993 Paul Eggert (eggert@hal.gnu.ai.mit.edu) * Version 2.1 released.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -