📄 changelog
字号:
* Makefile.am (SUBDIRS): Remove intl. * config/config.guess, config/config.rpath, config/config.sub, config/texinfo.tex, config/depcomp, config/texinfo.tex, lib/tempname.c: Update to latest version from other packages. * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure. * lib/xmalloc.c: Include exitfail.h. (xalloc_exit_failure): Remove; subsumed by exit_failure. All uses changed. * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h. (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c. (INCLUDES): Remove. * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX. * lib/cmpbuf.c: Include errno.h. (errno): Declare if !STDC_HEADERS. Include signal.h. (SA_RESTART): Define if not already defined. Include <inttypes.h>. (PTRDIFF_MAX): Define if not already defined. (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. (block_read): Accommodate ancient AIX hosts that set errno to EINTR after uncaught SIGCONT. (buffer_lcm): Return a reasonable size if the multiple is too large. New arg LCM_MAX. All callers changed. * lib/hard-locale.c: Include "hard-locale.h". (hard_locale): Ignore ENABLE_NLS, since we want to operate on locales other than LC_MESSAGES. * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER. (jm_PREREQ_POSIXVER): New macro. * m4/setmode.m4 (AC_FUNC_SETMODE_DOS): Check for fcntl.h and unistd.h unconditionally. Suggested by Bruno Haible. * po/LINGUAS: Add cs, ja. * po/POTFILES.in: Add lib/c-stack.c, src/dir.c. * src/Makefile.am (datadir): @DATADIRNAME@ -> share. (INCLUDES): Remove intl. (LDADD): Change INTLLIBS to LIBINTL. No longer need to link libdiffutils.a twice. * src/analyze.c (diff_2_files): Avoid arithmetic overflow in buffer size calculation. * src/cmp.c: Include c-stack.h, exitfail.h. (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS. (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE. (main): Check for stack overflow. 0 -> EXIT_SUCCESS. 1 -> EXIT_FAILURE. (cmp): Likewise. Accommodate ancient AIX hosts that set errno to EINTR after uncaught SIGCONT. * src/context.c (pr_context_hunk): Do not dump core if an enormous context causes an arithmetic overflow. (pr_unidiff_hunk): Likewise. (find_hunk): Likewise. * src/diff.h: unsigned -> unsigned int. * src/diff.c: Include c-stack.h, exitfail.h. Do not include signal.h. (specify_style, specify_value): Bring these routines back, as POSIX requires that the order of options not matter. (shortopts): New constant. (group_format_option, line_format_option): New constants. (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. Ensure that order of options does not matter. Check for stack overflow. If contexts overflow, substitute LIN_MAX, as that's good enough. If multiple contexts are specified, use their maximum. -c is equivalent to -C 3 now, instead of having an implicit context; likewise for -u and -U 3. Use specify_style and specify_value. (SIGCHLD): Do not define; now done in a header. Use new style time stamp format for -u / -U. Reject numeric-string options if operating in POSIX 1003.1-2001 mode. Avoid overflow problems with tab width. Simplify from-file and to-file code. (usage): Do not mention obsolete options. (filetype): Do not mention whether a file is executable. Add typed memory objects. (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. * src/diff3.c: Include c-stack.h, exitfail.h. (ALLOCATE): Remove. All uses changed to xmalloc, or to xmalloc plus an overflow check. (myread): Remove. (main): Check for stack overflow. 0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE. (try_help): Likewise. (process_diff): Check for integer overflow, to avoid core dumps. 2 -> EXIT_TROUBLE. (read_diff): Exit with status 126 if the file is not executable, for compatibility with POSIX 1003.1-2001. Accommodate ancient AIX hosts that set errno to EINTR after uncaught SIGCONT. Check for integer overflow to avoid core dumps. (fatal, perror_with_exit): 2 -> EXIT_TROUBLE. * src/dir.c (dir_read): Ignore st_size of directories: POSIX says it's garbage. Check for integer overflow to avoid core dumps. (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE. * src/ifdef.c: Include <xalloc.h>. (format_group, print_ifdef_lines): Avoid core dumps with bad formats. (do_printf_spec): Avoid alloca. * src/io.c (sip): Avoid integer overflow and core dumps if buffer alignments are preposterously incompatible. (slurp): Do not dump core if the file is growing as we read it. If a regular file grows, keep reading until we catch up with its EOF. (find_and_hash_each_line): Check for integer overflow to avoid cores. (GUESS_LINES): Remove. (guess_lines): New function. Avoid integer overflow. (find_identical_ends): Use it. Avoid integer overflow and possible core dumps. * src/sdiff.c: Include c-stack.h, exitfail.h. Do not include signal.h. 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. (ck_editor_status): New function. (main): Check for stack overflow. Adopt POSIX convention for subsidiary programs not found. (diffarg): Check for integer overflow to avoid core dumps. (trapsigs): Remove SA_INTERRUPT special case; now done by header. (SIGCHLD): Likewise. (edit): Adopt POSIX convention for subsidiary programs not found. * src/side.c: unsigned -> unsigned int. * src/system.h: Don't use alloca or include <alloca.h>. unsigned -> unsigned int (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined. Include signal.h. (SA_RESTART): Define if not defined. (SIGCHLD): Likewise. * src/util.c: 2 -> EXIT_TROUBLE. Adopt POSIX convention for ENOEXEC and exit status 126. unsigned -> unsigned int2002-01-24 Paul Eggert <eggert@twinsun.com> * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7. * intl/plural.c: Regenerate with Bison 1.31. * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++. * INSTALL: Update to Autoconf 2.52f. * INSTALLME: New file. * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME. (DISTCLEANFILES): Remove. * NEWS: Reformat for imminent 2.8 release. * README: Mention INSTALLME. * README-alpha: Move most of contents to INSTALLME. * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii. * config: New subdirectory, containing the following files from .: config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs. Move the following files here from doc: texinfo.tex, mdate-sh. * config/config.guess, config/config.sub, config/texinfo.tex: Update to latest version from FSF. * config/config.rpath: New file, from Gettext 0.11-pre5++. * configure.ac (AC_INIT): Use new 3-arg form. (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT. (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11. (AC_CONFIG_AUX_DIR): New macro invocation. * lib/Makefile.am (noinst_HEADERS): Add gettext.h. * lib/gettext.h: New file, from Gettext 0.11-pre5++. * lib/prepargs.c: Include <string.h>. Reported by Bruno Haible. * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4, lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++. * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from Gettext 0.11-pre5++. * po/LINGUAS: New file. * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++. * po/Makevars, po/Rules-quot, po/boldquot.sed: New files, from Gettext 0.11-pre5++. * src/cmp.c (copyright_string): Update to 2002. * src/diff.c (copyright_string): Likewise. * src/diff3.c (copyright_string): Likewise. * src/sdiff.c (copyright_string): Likewise. * src/cmp.c (specify_ignore_initial): Renamed from parse_ignore_initial, with different signature, to take the maximum of multiple options rather than the last one. All uses changed. * src/cmp.c (bytes, specify_ignore_initial, cmp): Use UINTMAX_MAX instead of (uintmax_t) -1, to avoid warnings on some compilers. * src/io.c (file_block_read): Likewise, for SIZE_MAX. * src/cmp.c (usage): Reformat messages to ease translation. * src/diff3.c (usage): Likewise. * src/sdiff.c (usage): Likewise. * src/cmp.c (main): Two files with the same name are identical only if the same offset is specified. (block_compare_and_count): Avoid cast to unsigned char. * src/diff3.c (main): Remove unused variable. * src/dir.c: Include <setjmp.h> (struct dirdata): New member nnames. (locale_specific_sorting, failed_strcoll): New vars. (dir_read): Renamed from dir_sort. Don't sort the dir. Set new nnames member of struct dirdata. All callers changed. (compare_names): Don't check for errno after strcasecmp. Use strcoll only if locale_specific_sorting is nonzero. If strcoll fails, longjmp out rather than returning a value that might result in an invalid comparison function that might make qsort dump core. (diff_dirs): Sort the directory ourselves. Use setjmp to recover from strcoll failure, falling back on native byte comparison. Make local variables volatile if they need to preserve their value after setjmp/longjmp. * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE): New macros. (main): Do not confuse signal numbers with their indices. Bug reported by Bruno Haible. (edit): Cat lin to long before printing with %ld, since lin might be narrow than long. * src/system.h (UINTMAX_MAX): New macro. Include gettext.h, not libgettext.h. (N_): Do not wrap arg in parentheses. Fix from Bruno Haible. * src/util.c (finish_output): Ensure that werrno is initialized. (lines_differ): Have an explicit do-nothing case for IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall.2001-12-29 Eli Zaretskii <eliz@is.elta.co.il> * src/sdiff.c (interact): After extracting rlen from the editor command, test for a terminating null character, not for a newline. * ms/config.bat: Allow longer source directory names without overflowing the line length limits. Create the cache in the build directory, not in the source directory * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are unavailable.2001-12-23 Paul Eggert <eggert@twinsun.com> * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6. * configure.ac (ALL_LINGUAS): Add tr. * src/util.c (begin_output): Have child exit with status 127 rather than reporting failure on its own. Set errno to 0 before invoking popen. (finish_output): Report errno on pclose failure. Distinguish between subsidiary program not found, and failure. * src/sdiff.c (not_found, execdiff): Remove. (DIFF_PROGRAM_OPTION): New constant. (longopts, option_help_msgid, main): Add --diff-program=PROGRAM. (check_stdout): New function. (main): Remove DIFF_PROGRAM. Check stdout after printing version. Use check_stdout after printing help. Use execvp/perror_fatail rather than execdiff. Set errno to 0 before invoking popen. Check for pclose failure properly. (main, edit): If child exec fails, exit with 127 rather than trying to print diagnostic. Distinguish between subsidiary program failing and not being found. (edit): Handle signals the same way, regardless of whether we're using system or fork+exec. Check for system returning -1. * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants. (longopts, main): Use them. (longopts, main, option_help_msgid): New option --diff-option=PROGRAM. (main): Remove DIFF_PROGRAM support. Check stdout after printing version. (check_stdout): Report errno info if fclose fails. (read_diff): Have child exit with status 127 when program is not found, rather than trying to have the child report failure. Check for pclose returning -1. * src/diff.c (DEFAULT_WIDTH): Remove. (main): Use 130 instead of DEFAULT_WIDTH, since it's not really builder-settable. Do not prepend DIFF_OPTIONS. (check-stdout): If fclose (stdout) fails, print errno info. (option_help_msgid): Default context is 3, not 2. (usage): Work even if ptrdiff_t is wider than int. * doc/diff.texi (diff Options): Remove DIFF_OPTIONS. (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM. (diff3 Options, sdiff Options): Add --diff-program. * src/cmp.c (valid_suffixes): Add '0', to support suffixes like "MB" and "MiB". (check_stdout): Don't assume that the translations of "write failed" and of "standard output" lack '%'. (main): Check stdout after printing version. * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>. [!HAVE_SETMODE_DOS]: Do not include <unistd.h>. (set_binary_mode): Return mode (not 1) if fd is a tty. Do not assume that O_TEXT is zero. * doc/diff.texi (cmp Options): In byte counts, a plain suffix (without any integer) is assumed to modify the integer 1. Index terms like "kibibyte". Document plain "k". (Reporting Bugs): Mention bug-report archive and test version location. Ask for "diff --version" in bug reports.2001-12-13 Paul Eggert <eggert@twinsun.com> * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without also changing option_help_msgid. All uses replaced with 130. * lib/setmode.c: Include fcntl.h and unistd.h only if HAVE_SETMODE_DOS. (setmode): Assume a file is binary unless the mode is O_TEXT. * ms/README: Fix minor typos.2001-12-13 Eli Zaretskii <eliz@is.elta.co.il> * ms/README: New file. * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume O_TEXT has a zero value. If FD is a terminal device, do nothing and return MODE, thus pretending that it was already in the requested MODE. [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY). * ms/config.sed: Remove the split prevention of config.status. Fix Sed commands for converting absolute file names into top_srcdir-relative ones. * ms/config.bat: Fix typos.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -