Blame ChangeLog-2008

Packit 33f14e
2008-01-30  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Update Back-Cover text to reflect new GNU wording.
Packit 33f14e
Packit 33f14e
2008-01-24  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/side.c [!HAVE_MBRTOWC]: Supply defns for mbstate_t and mbrtowc.
Packit 33f14e
	Problem reported by Bruno Haible.
Packit 33f14e
Packit 33f14e
2008-01-23  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/side.c (print_half_line): Don't convert to unsigned char
Packit 33f14e
	unnecessarily.
Packit 33f14e
Packit 33f14e
	Don't mishandle multibyte characters in side-by-side format.
Packit 33f14e
	Problem reported by Erik Karlsson in
Packit 33f14e
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-01/msg00030.html>.
Packit 33f14e
	* bootstrap.conf (gnulib_modules): Add wcwidth.
Packit 33f14e
	* src/side.c: Include <wchar.h>.
Packit 33f14e
	(print_half_line): Compute number of bytes and print widths of
Packit 33f14e
	multibyte characters.  Inspired by an alternative solution from
Packit 33f14e
	Bruno Haible in
Packit 33f14e
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-01/msg00032.html>.
Packit 33f14e
Packit 33f14e
2007-12-04  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* NEWS: New diff option --suppress-blank-empty (no longer -u default).
Packit 33f14e
	* doc/diff.texi (Detailed Unified): Trailing spaces are no longer
Packit 33f14e
	omitted.
Packit 33f14e
	(Trailing Blanks): New section.
Packit 33f14e
	(diff Options) Mention new option.
Packit 33f14e
	* src/diff.h (suppress_blank_entry): New decl.
Packit 33f14e
	* src/context.c (pr_unidiff_hunk): Support --suppress-blank-empty.
Packit 33f14e
	* src/util.c (print_1_line): Likewise.
Packit 33f14e
	* src/diff.c (longopts, main, option_help_msgid): Likewise.
Packit 33f14e
	(SUPPRESS_BLANK_EMPTY_OPTION): New constant.
Packit 33f14e
Packit 33f14e
	* configure.ac: Invoke gl_USE_SYSTEM_EXTENSIONS after gl_EARLY,
Packit 33f14e
	since gnulib now requires this order.
Packit 33f14e
Packit 33f14e
	* bootstrap: Import from gnulib.
Packit 33f14e
Packit 33f14e
2007-08-17  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	Break out diffseq.h into a separate file, so that gettext can use
Packit 33f14e
	this code.  Idea and code from Bruno Haible.
Packit 33f14e
	* bootstrap.conf (gnulib_modules): Add diffseq.
Packit 33f14e
	* src/analyze.c (xvec, yvec, fdiag, bdiag, too_expensive, SNAKE_LIMIT):
Packit 33f14e
	(struct partition, diag, compareseq): Remove; now in diffseq.h.
Packit 33f14e
	(ELEMENT, EQUAL, OFFSET, EXTRA_CONTEXT_FIELDS, NOTE_DELETE, NOTE_INSERT):
Packit 33f14e
	(USE_HEURISTIC): New macros.
Packit 33f14e
	Include "diffseq.h".
Packit 33f14e
	(diff_2_files): Rewrite to use new diffseq.h interface.
Packit 33f14e
Packit 33f14e
	* bootstrap: Import from gnulib.
Packit 33f14e
Packit 33f14e
2007-08-15  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/diff.c (compare_files): Use last_component rather than base_name,
Packit 33f14e
	adjusting to gnulib API change.  This avoids a memory leak.
Packit 33f14e
	* src/sdiff.c (expand_name): Likewise.
Packit 33f14e
	* src/util.c (dir_file_pathname): Likewise.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (Copying This Manual): Adjust to new fdl.texi layout.
Packit 33f14e
Packit 33f14e
2007-07-19  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (White Space): Note that newline always ends a line,
Packit 33f14e
	so -w doesn't ignore newline-related changes.  Problem reported by
Packit 33f14e
	David Kastrup.
Packit 33f14e
Packit 33f14e
	* COPYING: New file.
Packit 33f14e
	* AUTHORS: Update from GPLv2 to GPLv3.
Packit 33f14e
	* Makefile.am: Likewise.
Packit 33f14e
	* NEWS: Likewise.
Packit 33f14e
	* README: Likewise.
Packit 33f14e
	* README-hacking: Likewise.
Packit 33f14e
	* bootstrap: Likewise.
Packit 33f14e
	* bootstrap.conf: Likewise.
Packit 33f14e
	* configure.ac: Likewise.
Packit 33f14e
	* exgettext: Likewise.
Packit 33f14e
	* doc/Makefile.am: Likewise.
Packit 33f14e
	* lib/Makefile.am: Likewise.
Packit 33f14e
	* lib/cmpbuf.c: Likewise.
Packit 33f14e
	* lib/cmpbuf.h: Likewise.
Packit 33f14e
	* lib/prepargs.c: Likewise.
Packit 33f14e
	* m4/vararrays.m4: Likewise.
Packit 33f14e
	* man/Makefile.am: Likewise.
Packit 33f14e
	* ms/Makefile.am: Likewise.
Packit 33f14e
	* ms/README: Likewise.
Packit 33f14e
	* ms/config.bat: Likewise.
Packit 33f14e
	* ms/config.sed: Likewise.
Packit 33f14e
	* ms/config.site: Likewise.
Packit 33f14e
	* po/POTFILES.in: Likewise.
Packit 33f14e
	* src/Makefile.am: Likewise.
Packit 33f14e
	* src/analyze.c: Likewise.
Packit 33f14e
	* src/cmp.c: Likewise.
Packit 33f14e
	* src/context.c: Likewise.
Packit 33f14e
	* src/diff.c: Likewise.
Packit 33f14e
	* src/diff.h: Likewise.
Packit 33f14e
	* src/diff3.c: Likewise.
Packit 33f14e
	* src/dir.c: Likewise.
Packit 33f14e
	* src/ed.c: Likewise.
Packit 33f14e
	* src/io.c: Likewise.
Packit 33f14e
	* src/normal.c: Likewise.
Packit 33f14e
	* src/sdiff.c: Likewise.
Packit 33f14e
	* src/system.h: Likewise.
Packit 33f14e
	* src/util.c: Likewise.
Packit 33f14e
Packit 33f14e
	* src/ifdef.c: Fix typo: "GNU DIFF General Public License" should be
Packit 33f14e
	"GNU General Public License".  Reported by Erich Guenther.
Packit 33f14e
	* src/side.c: Likewise.
Packit 33f14e
Packit 33f14e
2007-06-18  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* bootstrap.conf (gnulib_modules): Add inttypes.
Packit 33f14e
	* src/context.c (print_context_label): Don't assume that time_t
Packit 33f14e
	fits in long int, since it doesn't in FreeBSD/arm.  Problem
Packit 33f14e
	reported by Xin Li in
Packit 33f14e
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2007-06/msg00091.html>.
Packit 33f14e
Packit 33f14e
2007-06-06  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* NEWS:  Mention new sdiff aliases 1 and 2 for l and r.
Packit 33f14e
	* doc/diff.texi (Merge Commands): Likewise.
Packit 33f14e
	* src/sdiff.c (give_help): Give help for them.
Packit 33f14e
	(edit): Support them.
Packit 33f14e
Packit 33f14e
2007-04-11  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (Detailed diff3 Normal): "range is a singleton" ->
Packit 33f14e
	"there is only one line", for clarity.  Suggested by Jerry Peek.
Packit 33f14e
Packit 33f14e
2007-04-04  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* TODO: Mention possible sdiff improvement.
Packit 33f14e
Packit 33f14e
	* bootstrap: Sync from gnulib.
Packit 33f14e
	* src/cmp.c: Don't include exit.h; no longer needed.
Packit 33f14e
	* src/diff.c: Likewise.
Packit 33f14e
	* src/sdiff.c: Likewise.
Packit 33f14e
	* src/dir.c: Don't include strcase.h; no longer needed.
Packit 33f14e
	* README-alpha: Remove, replacing with:
Packit 33f14e
	* README-hacking: New file, taken from coreutils with some changes.
Packit 33f14e
	The rename is required by the change to 'bootstrap'.
Packit 33f14e
Packit 33f14e
2006-11-15  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/analyze.c (build_reverse_script): Fix typo in comment.
Packit 33f14e
	Problem and fix reported by Daniel Hipschman.
Packit 33f14e
Packit 33f14e
2006-11-14  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	Don't assume SIGPIPE exists, and that sigblock and sigsetmask
Packit 33f14e
	exist if sigprocmask does not.  Problem reported by Paul Edwards
Packit 33f14e
	for MVS 3.8.
Packit 33f14e
	* configure.ac (sigblock): Check whether this function is
Packit 33f14e
	available, if sigprocmask is not.
Packit 33f14e
	* src/sdiff.c (sigs): Omit SIGPIPE if it's not defined.
Packit 33f14e
	Put SIGINT last; all uses changed.
Packit 33f14e
	(handler_index_of_SIGPIPE): Omit if SIGPIPE is not defined.
Packit 33f14e
	(sigblock, sigsetmask) [!HAVE_SIGBLOCK]: New macros.
Packit 33f14e
	(sigprocmask): Don't dump core if O is null.
Packit 33f14e
Packit 33f14e
2006-11-04  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (sigprocmask) [! HAVE_SIGPROCMASK]: Cast 2nd arg to
Packit 33f14e
	sigset_t *, since it might be a literal 0.  Problem reported by
Packit 33f14e
	Paul Edwards for MVS 3.8.
Packit 33f14e
Packit 33f14e
2006-09-05  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* NEWS: diff -u no longer outputs trailing white space unless the
Packit 33f14e
	input data has it.  Suggested by Jim Meyering.
Packit 33f14e
	* doc/diff.texi (Detailed Unified): Document this.
Packit 33f14e
	* src/context.c (pr_unidiff_hunk): Implement this.
Packit 33f14e
Packit 33f14e
	Modernize bootstrap procedure to match current gnulib.
Packit 33f14e
	* bootstrap: Sync with coreutils bootstrap, except check that
Packit 33f14e
	the directory build-aux exists before trying to copy to it.
Packit 33f14e
	* bootstrap.conf: New file.
Packit 33f14e
	(gnulib_modules): Add config-h, dup2, extensions, fcntl, fdl,
Packit 33f14e
	stat-macros, unistd.
Packit 33f14e
	* configure.ac: Invoke gl_EARLY and gl_INIT rather than
Packit 33f14e
	GNULIB_AUTOCONF_SNIPPET.
Packit 33f14e
	(AC_CONFIG_HEADER): Rename config.h to lib/config.h.
Packit 33f14e
	(AC_CHECK_HEADERS_ONCE): Don't check for fcntl.h, locale.h,
Packit 33f14e
	sys/file.h, unistd.h.  We now use the fcntl and unistd modules,
Packit 33f14e
	and locale.h can be assumed for any C89 compiler.
Packit 33f14e
	(DIFFUTILS_PREREQUISITES): Remove.  No longer needed now that
Packit 33f14e
	we use the stdint module.
Packit 33f14e
	(AC_CHECK_FUNCS_ONCE): Remove dup2, which is no longer needed
Packit 33f14e
	now that we use the dup2 module.
Packit 33f14e
	(AM_GNU_GETTEXT): Use need-formatstring-macros, and ...
Packit 33f14e
	(AM_GNU_GETTEXT_VERSION): specify version 0.15 instead of 0.14.5,
Packit 33f14e
	to be consistent with coreutils.
Packit 33f14e
	* lib/Makefile.am (noinst_LIBRARIES):
Packit 33f14e
	(lib_SOURCES, libdiffutils_a_LIBADD):
Packit 33f14e
	(libdiffutils_a_DEPENDENCIES, BUILT_SOURCES, EXTRA_DIST):
Packit 33f14e
	(MOSTLYCLEANFILES): Remove; now computed automatically.
Packit 33f14e
	(noinst_HEADERS, libdiffutils_a_SOURCES): Just append
Packit 33f14e
	our special files now.
Packit 33f14e
	* lib/cmpbuf.c: Include config.h unconditionally, since we
Packit 33f14e
	no longer define HAVE_CONFIG_H.
Packit 33f14e
	* lib/prepargs.c: Likewise.
Packit 33f14e
	* src/Makefile.am (LDADD): Use $(LIBINTL), not @LIBINTL@.
Packit 33f14e
	(diff_LDADD): Use $(LIB_CLOCK_GETTIME), not @LIB_CLOCK_GETTIME@.
Packit 33f14e
	* src/dir.c (dir_read): Use _D_EXACT_NAMLEN, not NAMELEN.
Packit 33f14e
	* src/system.h (volatile): Remove, since we assume C89 or better.
Packit 33f14e
	Include stat-macros.h.
Packit 33f14e
	(S_IRWXU, S_IRWXG, S_IRWXO, S_IRUSR, S_IWUSR):
Packit 33f14e
	Remove, since we now use stat-macros.h.
Packit 33f14e
	(SEEK_SET, SEEK_CUR): Remove, since we assume C89 or better.
Packit 33f14e
	Include unistd.h unconditionally, since we use unistd.
Packit 33f14e
	Likewise for fcntl.h.
Packit 33f14e
	(dup2): Remove, since we now use dup2.
Packit 33f14e
	(O_RDONLY, O_RWDR, O_BINARY): Remove, since we now use
Packit 33f14e
	fcntl.
Packit 33f14e
	Include dirent.h unconditionally.
Packit 33f14e
	(NAMLEN): Remove, replacing with....
Packit 33f14e
	(_D_EXACT_NAMLEN): New macro.
Packit 33f14e
	Include inttypes.h unconditionally.
Packit 33f14e
	(PTRDIFF_MAX, SIZE_MAX, UINTMAX_MAX, strtoumax): Remove, since
Packit 33f14e
	we now use inttypes.
Packit 33f14e
	Include locale.h unconditionally.
Packit 33f14e
	(setlocale): Remove, since we now assume locale.h.
Packit 33f14e
Packit 33f14e
2006-09-04  Jim Meyering  <jim@meyering.net>
Packit 33f14e
Packit 33f14e
	* src/context.c (print_context_function): Do not print
Packit 33f14e
	trailing white space in a context header.
Packit 33f14e
Packit 33f14e
2006-05-09  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/cmp.c (cmp): The previous fix wasn't quite right either, as
Packit 33f14e
	it mishandled 'cmp A B >/dev/null' when A is shorter than B and
Packit 33f14e
	differs before A's end-of-file, by outputting a bogus EOF message.
Packit 33f14e
	Also, it was inefficient if A and B were large.
Packit 33f14e
Packit 33f14e
2006-05-07  Jim Meyering  <jim@meyering.net>  (tiny change)
Packit 33f14e
Packit 33f14e
	Fix bug introduced in 2006-03-09 change:
Packit 33f14e
	cmp always exits successfully, when stdout is redirected to /dev/null.
Packit 33f14e
	* src/cmp.c (cmp): When there's a difference, arrange to return nonzero
Packit 33f14e
	also when comparison_type is the new (from 2006-03-09) type_no_stdout.
Packit 33f14e
Packit 33f14e
2006-05-07  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/context.c (pr_context_hunk, pr_unidiff_hunk):
Packit 33f14e
	Prefer fputs or fputc to fprintf, since it's a tad more efficient
Packit 33f14e
	with unlocked-IO on glibc.  Long ago we avoided fputs to
Packit 33f14e
	work around an ancient SunOS bug, but that's no longer relevant.
Packit 33f14e
	* src/diff3.c (output_diff3, dotlines, undotlines):
Packit 33f14e
	(output_diff3_edscript, output_diff3_merge): Likewise.
Packit 33f14e
	This also avoids a gcc -Wformat-security warning reported
Packit 33f14e
	by Jim Meyering.
Packit 33f14e
	* src/ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk):
Packit 33f14e
	Likewise.
Packit 33f14e
	* src/normal.c (print_normal_hunk): Likewise.
Packit 33f14e
Packit 33f14e
2006-05-06  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/io.c (find_identical_ends): Fix huge performance bug that I
Packit 33f14e
	introduced in the 2001-11-25 change: the code to remove the
Packit 33f14e
	identical suffix also looked at the trailing sentinel, which meant
Packit 33f14e
	the common suffix length was always incorrectly calculated to be
Packit 33f14e
	zero.  Problem and fix reported by Daniel Hipschman.  Instead of
Packit 33f14e
	his fix, revert to the pre-2001 code.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Switch from GFDL 1.1 to 1.2.
Packit 33f14e
Packit 33f14e
2006-03-13  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/system.h (PARAMS, PROTOTYPES): Remove; no longer needed.
Packit 33f14e
	(IF_LINT): New macro, to pacify GCC.
Packit 33f14e
	* src/analyze.c (diag, compareseq): Use IF_LINT.
Packit 33f14e
	* src/cmp.c (cmp): Likewise.
Packit 33f14e
	* src/diff3.c (process_diff): Likewise.  Also, prefer NULL to 0.
Packit 33f14e
	* src/ifdef.c (do_printf_spec, scan_char_literal): Likewise.
Packit 33f14e
	* src/sdiff.c (edit): Likewise.
Packit 33f14e
Packit 33f14e
2006-03-09  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/cmp.c (type_no_stdout): New constant.
Packit 33f14e
	(main): Use it to avoid bug when the "EOF on foo" message is
Packit 33f14e
	generated and stdout is /dev/null.
Packit 33f14e
	Problem reported by Vincent Lefevre (Debian bug 356083).
Packit 33f14e
Packit 33f14e
2006-01-04  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* README-alpha: Describe CVS access better, using the README-alpha
Packit 33f14e
	from GNU tar.
Packit 33f14e
	* AUTHORS: Simplify list by removing legalisms.
Packit 33f14e
	* THANKS: Add Larry Wall, who contributed to manual.  Update email
Packit 33f14e
	addresses.
Packit 33f14e
	* Makefile.am (SUBDIRS): Remove m4.  Put lib first, then other
Packit 33f14e
	source files, so documentation can rely on programs being built.
Packit 33f14e
	* bootstrap: Import changes from Bison bootstrap.  Add gettext,
Packit 33f14e
	gettime, sh-quote, stat-time, verify, version-etc-fsf modules.
Packit 33f14e
	Remove posixver module.  Retrieve doc/fdl.texi from gnulib.
Packit 33f14e
	Handle gettext.m4 like glibc21.m4.  Don't remove po/en.po.
Packit 33f14e
	* configure.ac (AC_PREREQ): Bump to 2.59.
Packit 33f14e
	(AC_INIT): Bump version to 2.8.7-cvs.
Packit 33f14e
	(AC_CONFIG_AUX_DIR): Change from config to build-aux.
Packit 33f14e
	Prefer AC_CHECK_HEADERS_ONCE to AC_CHECK_HEADERS
Packit 33f14e
	and AC_CHECK_FUNCS_ONCE to AC_CHECK_FUNCS.
Packit 33f14e
	Remove jm_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T,
Packit 33f14e
	AC_STRUCT_ST_MTIM_NSEC.
Packit 33f14e
	(DIFFUTILS_PREREQUISITES): New macro.  Call it.
Packit 33f14e
	(REGEX_MALLOC): Remove; no longer needed.
Packit 33f14e
	(AM_GNU_GETTEXT_VERSION): Now 0.14.15.
Packit 33f14e
	(AM_GNU_GETTEXT): Call.
Packit 33f14e
	(LIB_CLOCK_GETTIME): Remove; bootstrap now does that.
Packit 33f14e
	(AC_FUNC_SETMODE_DOS): Remove.
Packit 33f14e
	(AC_CONFIG_FILES): Remove m4/Makefile.
Packit 33f14e
	* doc/diff.texi: Use @- at end of lines that should end in white space,
Packit 33f14e
	so that Emacs doesn't remove the white space.
Packit 33f14e
	(diff Options): "diff -NUM" is a pure extension to POSIX, so support
Packit 33f14e
	it unconditionally.
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Remove quotesys.h.
Packit 33f14e
	(lib_SOURCES): Remove quotesys.c.
Packit 33f14e
	(DISTCLEANFILES): Remove.
Packit 33f14e
	(EXTRA_DIST): Remove setmode.h, waitpid.c.
Packit 33f14e
	* lib/cmpbuf.c (block_read): Reword to avoid gcc -W warning.
Packit 33f14e
	* lib/setmode.c, lib/setmode.h: Remove.
Packit 33f14e
	* m4/setmode.m4, m4/gnu-source.m4, m4/Makefile.am.in: Remove.
Packit 33f14e
	* m4/jm-glibc-io.m4: Remove.
Packit 33f14e
	* src/cmp.c: Don't include <setmode.h>.
Packit 33f14e
	(specify_ignore_initial): Reword to avoid gcc -W warnings.
Packit 33f14e
	(main): Use freopen instead of setmode, since freopen is in POSIX.
Packit 33f14e
	* src/context.c: Revert most 2004-09-01 changes.  Then:
Packit 33f14e
	(TIMESPEC_NS): Remove.  All uses replaced by
Packit 33f14e
	get_stat_mtime_ns.
Packit 33f14e
	Include stat-time.h, strftime.h.
Packit 33f14e
	(nstrtime): Remove decl.
Packit 33f14e
	* src/diff.c: Revert most 2004-09-01 changes.  Then:
Packit 33f14e
	Don't include <posixver.h>, <quotesys.h>, <setmode.h>.
Packit 33f14e
	Include <sh-quote.h>, <stat-time.h>, <timespec.h>.
Packit 33f14e
	All uses of quotesys replaced by sh-quote.
Packit 33f14e
	(main, compare_files):
Packit 33f14e
	Use freopen instead of setmode, since freopen is in POSIX.
Packit 33f14e
	(main): Don't complain about "diff -NUM'.
Packit 33f14e
	(main, set_mtime_to_now):
Packit 33f14e
	Adjust to stat-time.h macros when accessing nanoseconds.
Packit 33f14e
	* src/diff3.c: Include sh-quote.h rather than quotesys.  All uses
Packit 33f14e
	changed.
Packit 33f14e
	* src/dir.c (dir_read): excluded_filename renamed to
Packit 33f14e
	excluded_file_name.
Packit 33f14e
	* src/io.c: Don't include <setmode.h>.
Packit 33f14e
	(sip, read_files): Remove binary file stuff, leaving a FIXME behind.
Packit 33f14e
	A DOS expert needs to look at this.
Packit 33f14e
	* src/diff.c: Include sh-quote.h rather than quotesys.h.
Packit 33f14e
	All uses changed.
Packit 33f14e
	* src/system.h: Include verify.h.
Packit 33f14e
	(verify): Remove.  All uses changed to verify.h version.
Packit 33f14e
	Include <intprops.h>.
Packit 33f14e
	(TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.  Now uses
Packit 33f14e
	intprops.h versions.
Packit 33f14e
	(O_BINARY): New defns, taken from coreutils.
Packit 33f14e
	* src/util.c: Include sh-quote.h rather than quotesys.h.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
2004-09-01  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* src/diff.c (recursive, new_file, unidirectional_new_file):
Packit 33f14e
	(report_identical_files):
Packit 33f14e
	Move into struct diffopt.  All uses changed.
Packit 33f14e
	(exclude_options, compare_files, specify_style, check_stdout):
Packit 33f14e
	New arg OPT.  All uses changed.
Packit 33f14e
	(GDIFF_MAIN): Remove.  All uses removed.
Packit 33f14e
	(function_regexp_list, ignore_regexp_list): No longer static; now
Packit 33f14e
	locals in 'main'.
Packit 33f14e
	(main): Set opt.function_regexp, opt.ignore_regexp if using regexps;
Packit 33f14e
	all other code now tests these pointers rather than inspecting fastmap
Packit 33f14e
	internals.
Packit 33f14e
	New local OPT to hold former statics; initialize it.
Packit 33f14e
	(init_regexp_list): New function, used by main.
Packit 33f14e
	(summarize_regexp_list): Now returns struct re_pattern_buffer *, and
Packit 33f14e
	assumes reglist->regexps is not NULL.  All uses changed.
Packit 33f14e
Packit 33f14e
	* src/context.c (find_function_last_search): Move into struct diffopt.
Packit 33f14e
	All uses changed.
Packit 33f14e
	(pr_context_label, pr_context_header,
Packit 33f14e
	print_context_script, find_function, find_hunk, mark_ignorable,
Packit 33f14e
	pr_context_hunk, pr_unidiff_hunk): New arg OPT.  All uses changed.
Packit 33f14e
	(print_context_number_range,
Packit 33f14e
	print_unidiff_number_range): New arg OUT.  All uses changed.
Packit 33f14e
Packit 33f14e
2004-07-19  Stepan Kasal  <kasal@ucw.cz>
Packit 33f14e
Packit 33f14e
	* src/ed.c (print_ed_hunk): Optimize the case where an insert's
Packit 33f14e
	last line is a single-dot line.
Packit 33f14e
Packit 33f14e
2004-06-30  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* lib/setmode.c:
Packit 33f14e
	Don't include <stdbool.h>, since setmode.h now does this.
Packit 33f14e
	Include setmode.h first, to catch interface errors.
Packit 33f14e
	Assume HAVE_SETMODE_DOS is defined.
Packit 33f14e
Packit 33f14e
	* lib/setmode.h: Include stdbool.h.
Packit 33f14e
Packit 33f14e
2004-04-26  Paul Eggert  <eggert@cs.ucla.edu>
Packit 33f14e
Packit 33f14e
	* bootstrap: Don't remove po/en.po.
Packit 33f14e
Packit 33f14e
2004-04-13  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.7.
Packit 33f14e
	* configure.ac (AM_GNU_GETTEXT_VERSION): Add.
Packit 33f14e
	(XGETTEXT): Restore from pre-2004-04-12 version.  This fixes
Packit 33f14e
	a bug that lost many msgids in doc/diffutils.pot.
Packit 33f14e
	* bootstrap: New file.
Packit 33f14e
	* exgettext: Don't generate a temporary file, as this runs afoul
Packit 33f14e
	of "make distcheck" which operates with read-only directories.
Packit 33f14e
	* Makefile.am (EXTRA_DIST): Add bootstrap.
Packit 33f14e
	Remove config/config.rpath as it is deduced automatically these days.
Packit 33f14e
Packit 33f14e
2004-04-12  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.6.
Packit 33f14e
Packit 33f14e
	* NEWS: Add news for 2.8.4, 2.8.6.
Packit 33f14e
Packit 33f14e
	* README: Move copyright notice to end.  Defer to "configure
Packit 33f14e
	--help" for special "configure" options.  Suggest latest libiconv.
Packit 33f14e
	Update version numbers of Autoconf etc. to current.
Packit 33f14e
Packit 33f14e
	* configure.ac: Quote various arguments better.
Packit 33f14e
	(AC_CONFIG_MACRO_DIR): Add call, specifying "m4".
Packit 33f14e
	(AC_CONFIG_HEADER): Replaces AM_CONFIG_HEADER.
Packit 33f14e
	(gl_USE_SYSTEM_EXTENSIONS): Replaces AC_GNU_SOURCE.
Packit 33f14e
	(AC_ISC_POSIX): Remove; nobody ports to ancient ISC any more.
Packit 33f14e
	(AC_PROG_CPP, AC_PROG_INSTALL, AC_C_INLINE,
Packit 33f14e
	AC_HEADER_STDBOOL, AC_HEADER_STDC, AM_GNU_GETTEXT, XGETTEXT,
Packit 33f14e
	AC_HEADER_STAT, AC_FUNC_VPRINTF, jm_FUNC_GLIBC_UNLOCKED_IO,
Packit 33f14e
	jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC, jm_FUNC_REALLOC,
Packit 33f14e
	jm_PREREQ_C_STACK, jm_PREREQ_ERROR, jm_PREREQ_HARD_LOCALE,
Packit 33f14e
	jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX, AC_FUNC_FNMATCH_GNU, jm_AC_DOS):
Packit 33f14e
	Remove; not needed here, as our files don't use them directly
Packit 33f14e
	or we rely on gnulib modules.
Packit 33f14e
	(AC_C_CONST): Remove; we assume C89 now.
Packit 33f14e
	(AC_CHECK_HEADERS): Remove libintl.h, limits.h, stdlib.h, string.h,
Packit 33f14e
	time.h.
Packit 33f14e
	(AC_CHECK_TYPE): Remove ptrdiff_t, ssize_t.
Packit 33f14e
	(AC_CHECK_FUNCS): Remove diraccess, strchr, strerror, tmpnam).
Packit 33f14e
	(AC_REPLACE_FUNCS): Remove memchr, mkstemp, strcasecmp.
Packit 33f14e
	(GNULIB_AUTOCONF_SNIPPET): Add call.  This replaces much of
Packit 33f14e
	the above.
Packit 33f14e
	(AC_CONFIG_FILES): Remove lib/posix/Makefile.
Packit 33f14e
	(AC_CONFIG_COMMANDS): Remove.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (dircategory): Change to "Text creation and
Packit 33f14e
	manipulation" from "GNU packages".
Packit 33f14e
	(Translations): New node.
Packit 33f14e
	(Overview): Improve quality of algorithm citations.
Packit 33f14e
	(Binary): -q doesn't exactly cause diff to assume files are binary.
Packit 33f14e
	(Normal): Place after Side by Side, since it's less important.
Packit 33f14e
	(Detailed Context, Detailed Unified, Detailed ed,
Packit 33f14e
	Detailed if-then-else, diff3 Hunks, Detailed diff3 Normal):
Packit 33f14e
	Place at end of menu.
Packit 33f14e
	(Detailed Unified): Mention that fractional timestamps are
Packit 33f14e
	omitted on hosts that don't support them.
Packit 33f14e
	Mention what happens when hunks contain just one line.
Packit 33f14e
	(Line Group Formats, Reject Names): Fix duplicate-word typos.
Packit 33f14e
	(Comparing Directories): Trailing white space and empty lines are
Packit 33f14e
	ignored in the -X file.
Packit 33f14e
	(diff Options): Add --strip-trailing-cr.
Packit 33f14e
	(Projects): gnu -> gvc@gnu.org.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (SUBDIRS): Remove.
Packit 33f14e
	(EXTRA_DIST, noinst_HEADERS): Remove most entries.
Packit 33f14e
	(libdiffutils_a_SOURCES): Now just lib_SOURCES.
Packit 33f14e
	(lib_SOURCES): New macro.
Packit 33f14e
	(DISTCLEANFILES, MOSTLYCLEANFILES): Set to empty now.
Packit 33f14e
	(gnulib.mk): Include: this does most of the work eliminated
Packit 33f14e
	by the above changes.
Packit 33f14e
Packit 33f14e
	* lib/inttostr.c (inttostr): Protect i < 0 by compile-time
Packit 33f14e
	test intended to suppress compiler warnings.
Packit 33f14e
	* lib/inttostr.h: Include limits.h unilaterally.
Packit 33f14e
	(CHAR_BIT): Remove.
Packit 33f14e
	(PARAMS): Remove; all uses changed.
Packit 33f14e
	* lib/setmode.c (__attribute__): New macro.
Packit 33f14e
	(set_binary_mode): Define only if HAVE_SETMODE_DOS.
Packit 33f14e
	Otherwise define a dummy static char, as C89 requires
Packit 33f14e
	that we define something.
Packit 33f14e
	* lib/setmode.h (set_binary_mode): Return true, not 1.
Packit 33f14e
Packit 33f14e
	* src/analyze.c, src/context.c, src/diff.c, src/io.c, src/util.c:
Packit 33f14e
	Do not include regex.h, as diff.h does this now.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Sort includes.  Include <exit.h>, <unlocked-io.h>.
Packit 33f14e
	(specify_comparison_type): Don't report an error if the comparison
Packit 33f14e
	type has already been specified the same way as this one.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (usage): Mention exit status.
Packit 33f14e
	* src/diff.c (option_help_msgid): Likewise.
Packit 33f14e
	* src/diff3.c (usage): Likewise.
Packit 33f14e
	* src/sdiff.c (usage): Likewise.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (main): Adjust to latest gnulib c_stack_action
Packit 33f14e
	calling conventions.
Packit 33f14e
	* src/diff.c (main): Likewise.
Packit 33f14e
	* src/diff3.c (main): Likewise.
Packit 33f14e
	* src/sdiff.c (main): Likewise.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (main): Adjust to latest version_etc calling conventions.
Packit 33f14e
	* src/diff.c (main): Likewise.
Packit 33f14e
	* src/diff3.c (main): Likewise.
Packit 33f14e
	* src/sdiff.c (main): Likewise.
Packit 33f14e
Packit 33f14e
	* src/diff.c: Include <exit.h>.
Packit 33f14e
	(binary): Define to true if not declared.
Packit 33f14e
	(longopts): Set tabsize flag to 1.
Packit 33f14e
	(main): Don't output nanoseconds if platform lacks them.
Packit 33f14e
	Don't treat files as binary if !binary.
Packit 33f14e
	(set_mtime_to_now): Use 0, not NULL.
Packit 33f14e
	(compare_files): Mark files as nonexistent if it looks like
Packit 33f14e
	'patch' created inaccessible regular empty files to denote
Packit 33f14e
	nonexistent backups.  Don't compare such files.
Packit 33f14e
	Clear st_* members of status of	nonexistent file.
Packit 33f14e
	Remove now-unnecessary tests.
Packit 33f14e
Packit 33f14e
	* src/diff.h: Include regex.h, unlocked-io.h.
Packit 33f14e
	(struct file_data.changed): Now char *, not bool *, to save
Packit 33f14e
	space on hosts where bool takes more space than char.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
	* src/diff3.c: Include unlocked-io.h.
Packit 33f14e
	(strip_trailing_cr): New var.
Packit 33f14e
	(STRIP_TRAILING_CR_OPTION): New enum.
Packit 33f14e
	(longopts, main, option_help_msgid, read_diff):
Packit 33f14e
	Add --strip-trailing-cr support.
Packit 33f14e
	(read_diff): Exit with status 126 (not 127) if errno != ENOENT
Packit 33f14e
	after failed execvp in child.  Report this in parent.
Packit 33f14e
Packit 33f14e
	* src/dir.c: Include <strcase.h>.
Packit 33f14e
	(failed_locale_specific_sorting): Renamed from failed_strcoll.
Packit 33f14e
	All uses changed.
Packit 33f14e
	(compare_names): Don't invoke strcasecmp first thing when
Packit 33f14e
	ignore_file_name_case; if locale_specific_sorting, we should
Packit 33f14e
	just use that.
Packit 33f14e
Packit 33f14e
	* src/ifdef.c (next_line): Remove; replace with...
Packit 33f14e
	(next_line0, next_line1): New vars.
Packit 33f14e
	(print_ifdef_script, print_ifdef_hunk):
Packit 33f14e
	Use them to fix line-number computation bug.
Packit 33f14e
Packit 33f14e
	* src/io.c (find_and_hash_each_line): Don't convert char *
Packit 33f14e
	to unsigned char *; just leave pointers as char *.  This
Packit 33f14e
	lessens the number of potentially-dangerous casts.
Packit 33f14e
	* src/util.c (lines_differ): Likewise.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c: Include <unlocked-io.h>, <exit.h>.
Packit 33f14e
	(check_child_status): Renamed from ck_editor_status, and
Packit 33f14e
	accept a new arg MAX_OK_STATUS.  All callers changed.
Packit 33f14e
	Handle status 126/127 as per POSIX.
Packit 33f14e
	(edit): Likewise.
Packit 33f14e
	(main): Likewise.  Fix getopt typo: -E wasn't supported.
Packit 33f14e
Packit 33f14e
	* src/system.h (S_IRWXU, S_IRWXG, S_IRWXO): Define if not defined.
Packit 33f14e
	(S_IXUSR, S_IXGRP, S_IXOTH): Remove.
Packit 33f14e
	Include <time.h> unconditionally, since we can assume C89 now.
Packit 33f14e
	Likewise for <stdlib.h>, <string.h>.
Packit 33f14e
	(getenv, EXIT_SUCCESS, EXIT_FAILURE, SSIZE_MAX, strchr, strrchr,
Packit 33f14e
	memcmp, memcpy): Remove decl; no longer needed.
Packit 33f14e
	(strcasecoll, strcasecmp): Define if not built in.
Packit 33f14e
	(CTYPE_DOMAIN, ISPRINT, ISSPACE, TOLOWER, _tolower, errno): Remove;
Packit 33f14e
	we now assume C89 or better.  All uses changed.
Packit 33f14e
	Include <stdbool.h> unconditionally now, since gnulib supports it
Packit 33f14e
	if the C compiler doesn't.  All boolean uses of 0 and 1 now
Packit 33f14e
	changed to false and true.
Packit 33f14e
	(lin_is_printable_as_long_int): Renamed from lin_is_printable_as_long.
Packit 33f14e
Packit 33f14e
	* src/util.c (begin_output): Fix bug: 0 wasn't cast to char * arg,
Packit 33f14e
	which led to undefined behavior on 64-bit hosts.
Packit 33f14e
	Use more-standard test for exit status 126 versus 127.
Packit 33f14e
	(finish_output): Likewise.
Packit 33f14e
	(analyze_hunk): Do not cast bool to int.
Packit 33f14e
Packit 33f14e
2004-03-15  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/cmp.c (main): Don't consider two files with the same name to
Packit 33f14e
	be the same, if their initial skip values differ.  This fixes a
Packit 33f14e
	bug reported by Hideki Iwamoto in
Packit 33f14e
	<http://mail.gnu.org/archive/html/bug-gnu-utils/2004-03/msg00024.html>.
Packit 33f14e
Packit 33f14e
2004-03-11  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/analyze.c (diag): Return void, not lin, since the return
Packit 33f14e
	value wasn't needed.  All callers changed.
Packit 33f14e
	(diag, diff_2_files):
Packit 33f14e
	Use 'true' and 'false' instead of '1' and '0', when appropriate.
Packit 33f14e
	(compareseq): Use lin const * local variables instead of lin *.
Packit 33f14e
	Don't bother checking diag's return value.
Packit 33f14e
	(shift_boundaries, build_reverse_script, build_script, diff_2_files):
Packit 33f14e
	Use char arrays, not bool arrays, since
Packit 33f14e
	sizeof (bool) might be greater than 1.
Packit 33f14e
Packit 33f14e
2004-02-09  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* m4/setmode.m4 (AC_FUNC_SETMODE_DOS): AC_LIBOBJ(setmode) if
Packit 33f14e
	we would return true.
Packit 33f14e
Packit 33f14e
2002-10-14  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (diff3.$(OBJEXT), diff.$(OBJEXT),
Packit 33f14e
	sdiff.$(OBJEXT)): Rename from (misspelled) diff3.$(OBJECT),
Packit 33f14e
	diff.$(OBJECT), sdiff.$(OBJECT).  Patch by Paul D. Smith in
Packit 33f14e
	<http://mail.gnu.org/pipermail/bug-gnu-utils/2002-October/003251.html>.
Packit 33f14e
	Bug reported by Chris Bainbridge.
Packit 33f14e
Packit 33f14e
2002-10-13  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (MOSTLYCLEANFILES): Add paths.ht.
Packit 33f14e
	(paths.h): Send output to paths.ht first, and then rename to
Packit 33f14e
	paths.h at the end.  This avoids problems if the disk is full.
Packit 33f14e
	It also works around what appears to be a bug with GNU make -j
Packit 33f14e
	(3.79.1); see <http://bugs.gentoo.org/show_bug.cgi?id=8934>.
Packit 33f14e
Packit 33f14e
2002-06-27  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.4.
Packit 33f14e
Packit 33f14e
	* config/config.sub: Sync with latest version maintained in other
Packit 33f14e
	packages.
Packit 33f14e
Packit 33f14e
	* lib/file-type.h: Protect against double inclusion.  Detect
Packit 33f14e
	whether <sys/stat.h> has been included.  Fix from Jim Meyering.
Packit 33f14e
Packit 33f14e
	* src/analyze.c (briefly_report): Don't say "Binary files differ",
Packit 33f14e
	since one of the files may not be a binary file.
Packit 33f14e
	Bug reported by Dan Jacobson.
Packit 33f14e
Packit 33f14e
2002-06-22  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/c-stack.c (segv_handler, c_stack_action) [! defined
Packit 33f14e
	SA_SIGINFO]: Do not assume SA_SIGINFO behavior.
Packit 33f14e
	Bug reported by Jim Meyering on NetBSD 1.5.2.
Packit 33f14e
Packit 33f14e
2002-06-16  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.3.
Packit 33f14e
Packit 33f14e
	* config/depcomp, config/missing, README: Update to automake 1.6.2.
Packit 33f14e
Packit 33f14e
	* po/LINGUAS: Add en_US.
Packit 33f14e
	* po/en_US.po: New file.
Packit 33f14e
	* po/POTFILES.in: Remove lib/freesoft.c.
Packit 33f14e
	Add lib/file-type.c, lib/version-etc.c, lib/xmalloc.c.
Packit 33f14e
Packit 33f14e
2002-06-15  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (Special Files): Document behavior of symlink
Packit 33f14e
	loops.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Remove freesoft.h.
Packit 33f14e
	Add version-etc.h.
Packit 33f14e
	(libdiffutils_a_SOURCES): Remove freesoft.c.  Add version-etc.c.
Packit 33f14e
	* lib/freesoft.c, lib/freesoft.h: Remove.
Packit 33f14e
	* lib/version-etc.h (PARAMS): Remove; we now assume C89 at least.
Packit 33f14e
Packit 33f14e
	* lib/version-etc.h (version_etc): Remove package and version args.
Packit 33f14e
	(version_etc_copyright): Remove.
Packit 33f14e
	* lib/version-etc.c: Likewise.
Packit 33f14e
	Do not include unlocked-io.h; no longer needed.
Packit 33f14e
	Include gettext.h rather than libinto.h.
Packit 33f14e
	(_): Define unconditionally.
Packit 33f14e
	(version_etc): Adjust wording to match current GNU coding standards.
Packit 33f14e
	Translate "(C)" if possible.
Packit 33f14e
Packit 33f14e
	* lib/version-etc.c, lib/version-etc.h: New files, taken from
Packit 33f14e
	fileutils.
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (cmp_SOURCES, diff3_SOURCES, sdiff_SOURCES,
Packit 33f14e
	diff_SOURCES): Remove version.c.
Packit 33f14e
	(MAINTAINERCLEANFILES, $(srcdir)/version.c): Remove.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Include version-etc.h, not freesoft.h.
Packit 33f14e
	(copyright_notice): Remove.
Packit 33f14e
	(main): Use version_etc to print version.
Packit 33f14e
	* src/diff.c, src/diff3.c, src/sdiff.c: Likewise.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (version_string): Remove decl.
Packit 33f14e
	* src/diff.h, src/diff3.c, src/sdiff.c: Likewise.
Packit 33f14e
Packit 33f14e
2002-06-11  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/fnmatch.c, lib/fnmatch_loop.c (WIDE_CHAR_SUPPORT):
Packit 33f14e
	New macro.  Use it uniformly instead of
Packit 33f14e
	(defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
Packit 33f14e
	It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
Packit 33f14e
	reported by Vin Shelton.
Packit 33f14e
	* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for btowc.
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.2.
Packit 33f14e
Packit 33f14e
	* ABOUT-NLS, config/config.guess, config/config.sub,
Packit 33f14e
	config/depcomp, config/texinfo.tex, lib/posix/regex.h,
Packit 33f14e
	m4/c-bs-a.m4, m4/gettext.m4, m4/gnu-source.m4, m4/lib-link.m4,
Packit 33f14e
	m4/malloc.m4:
Packit 33f14e
	Update to recent version (maintained in other packages).
Packit 33f14e
	* m4/prereq.m4 (jm_PREREQ_EXCLUSIVE): AC_FUNC_FNMATCH_GNU
Packit 33f14e
	no longer takes a lib.
Packit 33f14e
Packit 33f14e
	* README: Incorporate contents from INSTALLME.
Packit 33f14e
	* INSTALLME: Remove.
Packit 33f14e
	* Makefile.am (EXTRA_DIST): Remove INSTALLME.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_GNU_SOURCE): Move up, so that it affects
Packit 33f14e
	later compilations properly.
Packit 33f14e
	(DEFAULT_DIFF_PROGRAM, AC_TYPE_SIGNAL): Remove.
Packit 33f14e
	(jm_AC_TYPE_INTMAX_T): Add.
Packit 33f14e
	(AC_FUNC_FNMATCH_GNU): Use this, instead of AC_FUNC_FNMATCH.
Packit 33f14e
	(AC_CONFIG_LINKS): regex.hin renamed from regex_.h.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Reword "@option{-f} and @option{--foo}" to
Packit 33f14e
	"@option{-f} or @option{--foo}".
Packit 33f14e
	Use @acronym instead of @sc where appropriate.
Packit 33f14e
	(Specified Lines): Renamed from Specified Folding.
Packit 33f14e
	(Comparison, Blank Lines):
Packit 33f14e
	Clarify wordings for Blank Lines and Specified Lines nodes.
Packit 33f14e
	(Binary): Mention --verbose and --print-bytes.
Packit 33f14e
	(Tabs, sdiff Option Summary, diff Options):
Packit 33f14e
	New option --tabsize=COLUMNS.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (EXTRA_DIST): Add fnmatch_loop.c.
Packit 33f14e
	(noinst_HEADERS): fnmatch_.h renamed from fnmatch.hin.
Packit 33f14e
	regex_.h renamed from regex.hin.
Packit 33f14e
	Add file-type.h.
Packit 33f14e
	(libdiffutils_a_SOURCES): Add file-type.c.
Packit 33f14e
	(DISTCLEANFILES): Remove fnmatch.hno, regex.hno.
Packit 33f14e
Packit 33f14e
	* lib/c-stack.c (__attribute__): New macro.
Packit 33f14e
	(EOVERFLOW): Define if not defined.
Packit 33f14e
	(stack_t): Define to struct sigaltstack if not defined or declared.
Packit 33f14e
	Include <sys/resource.h>, <ucontext.h> if available.
Packit 33f14e
	Include <stdio.h> if DEBUG.
Packit 33f14e
	Do not include <inttypes.h> or <stdint.h>.
Packit 33f14e
	(c_stack_die): Remove info and context args.  All uses changed.
Packit 33f14e
	(segv_action): Likewise.
Packit 33f14e
	(alternate_signal_stack): Change uintmax_t to long, to ease porting.
Packit 33f14e
	(get_stack_location, min_address_from_argv, max_address_from_argv,
Packit 33f14e
	null_action): New functions.
Packit 33f14e
	(stack_base, stack_size): New vars.
Packit 33f14e
	(segv_handler): context arg may not be used.
Packit 33f14e
	Use global stack_base, stack_size if
Packit 33f14e
	! HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
Packit 33f14e
	Add debug code.
Packit 33f14e
	Invoke die (rather than segv_action) to exit.
Packit 33f14e
	(c_stack_action): Accept new argv arg, and simpler handler arg.
Packit 33f14e
	All uses changed.  Move code into new functions above.
Packit 33f14e
	Allow null action.
Packit 33f14e
	[! (defined SA_ONSTACK && defined _SC_PAGESIZE)]: Assume all segvs
Packit 33f14e
	are stack overflows.
Packit 33f14e
	(main) [DEBUG]: Describe what output should be like.
Packit 33f14e
Packit 33f14e
	* lib/c-stack.h (siginfo_t, c_stack_die): Remove decl.
Packit 33f14e
Packit 33f14e
	* lib/file-type.c, lib/file-type.h: New files.  These contain code
Packit 33f14e
	that was in src/diff.c, but is now librarified and spiffed up a
Packit 33f14e
	bit.  Jim Meyering suggested this.
Packit 33f14e
Packit 33f14e
	* lib/fnmatch.c (alloca, __builtin_expect): Define for non-GCC hosts.
Packit 33f14e
	<strings.h>: Include only if HAVE_STRINGS_H.
Packit 33f14e
	<stddef.h>: Include if we include stdlib.h.
Packit 33f14e
	Do not comment out all code if ! HAVE_FNMATCH_GNU.
Packit 33f14e
	(getenv): Do not declare if HAVE_DECL_GETENV.
Packit 33f14e
	(__strchrnul, __wcschrnul): Remove; not used.
Packit 33f14e
	(MEMPCPY): Use mempcpy if not _LIBC; use memcpy if neither _LIBC
Packit 33f14e
	nor HAVE_MEMPCPY.
Packit 33f14e
	(FOLD) [HANDLE_MULTIBYTE]: Do not pass wide char to ISUPPER.
Packit 33f14e
	(STRLEN, STRCAT, MEMPCPY) [HANDLE_MULTIBYTE && !defined _LIBC]:
Packit 33f14e
	Use wcslen rather than __wcslen, and likewise for wcscat, wmempcpy.
Packit 33f14e
	(MEMPCPY) [HANDLE_MULTIBYTE]: Use wmempcpy if not _LIBC; use wmemcpy
Packit 33f14e
	if neither _LIBC nor HAVE_WMEMPCPY.
Packit 33f14e
	* lib/fnmatch_.h (__const): Do not define to empty, as this breaks
Packit 33f14e
	Sun cc.  The code doesn't work with K&R anyway.
Packit 33f14e
	* lib/fnmatch_loop.c (struct patternlist.str): Size 1, not 0,
Packit 33f14e
	as C89 requires this.
Packit 33f14e
	(NEW_PATTERN): Use offsetof, not sizeof, since str now has size 1.
Packit 33f14e
	* lib/fnmatch_.h: Import from glibc fnmatch.h.
Packit 33f14e
	* lib/fnmatch.c, lib/fnmatch_loop.c: Import from glibc.
Packit 33f14e
Packit 33f14e
	* lib/posixver.c: Include posixver.h.
Packit 33f14e
Packit 33f14e
	* lib/regex_.h: Renamed from lib/regex.hin.
Packit 33f14e
Packit 33f14e
	* m4/c-stack.m4 (jm_PREREQ_C_STACK): Do not AC_REQUIRE
Packit 33f14e
	jm_AC_TYPE_UINTMAX_T and do not use uintmax_t.
Packit 33f14e
	Check for sys/resource.h, uccontext.h.
Packit 33f14e
	Check for decls and existence of getcontext, sigaltstack.
Packit 33f14e
	Check for stack_t.
Packit 33f14e
Packit 33f14e
	* m4/codeset.m4, m4/glibc21.m4, m4/lcmessage.m4: Remove.
Packit 33f14e
Packit 33f14e
	* m4/fnmatch.m4: Update to latest Autoconf CVS for AC_FUNC_FNMATCH_GNU.
Packit 33f14e
	* m4/gnu-source.m4: Likewise, for AC_GNU_SOURCE (renamed from
Packit 33f14e
	AC__GNU_SOURCE).
Packit 33f14e
Packit 33f14e
	* m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Renamed from AC_MBSTATE_T.
Packit 33f14e
	All uses changed.  Upgrade to recent Autoconf CVS.
Packit 33f14e
Packit 33f14e
	* m4/stdbool.m4 (AC_HEADER_STDBOOL): Do not cast pointer to
Packit 33f14e
	bool in integer constant expression; C99 does not allow it.
Packit 33f14e
	Reported by Bruno Haible.
Packit 33f14e
Packit 33f14e
	* po/LINGUAS: Add hu, pt_BR.
Packit 33f14e
	* po/hu.po, po/pt_BR.po: New files.
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (noinst_HEADERS): Remove diff.h.
Packit 33f14e
	(DEFS): Remove.
Packit 33f14e
	(diff_sources): Add diff.h.
Packit 33f14e
	(MOSTLYCLEANFILES): New macro.
Packit 33f14e
	(cmp.$(OBJEXT) diff3.$(OBJECT) diff.$(OBJECT) sdiff.$(OBJECT)): Depend
Packit 33f14e
	on paths.h.
Packit 33f14e
	(paths.h): New rule.
Packit 33f14e
Packit 33f14e
	* src/analyze.c, src/cmp.c, src/diff.c, src/diff3.c, src/io.c,
Packit 33f14e
	src/sdiff.c: Include <file-type.h>.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Include paths.h.
Packit 33f14e
	(copyright_notice): Renamed from copyright_string.
Packit 33f14e
	Now a msgid, so that copyright symbol can be translated.
Packit 33f14e
	All uses changed.
Packit 33f14e
	* src/diff.c, src/diff3.c, src/sdiff.c: Likewise.
Packit 33f14e
Packit 33f14e
	* src/diff.c: Include posixver.h.
Packit 33f14e
	(TABSIZE_OPTION): New constant.
Packit 33f14e
	(main): Allow widths up to SIZE_MAX.
Packit 33f14e
	(filetype): Move to lib/file-type.c and rename to file_type.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
	* src/diff.c (longopts, main, usage): New option --tabsize=COLUMNS.
Packit 33f14e
	* src/io.c (find_and_hash_each_line): Likewise.
Packit 33f14e
Packit 33f14e
	* src/diff.h (TAB_WIDTH): Remove.
Packit 33f14e
	(tabsize): New decl.
Packit 33f14e
	(sdiff_half_width, sdiff_column2_offset): Now size_t rather than
Packit 33f14e
	unsigned int.
Packit 33f14e
Packit 33f14e
	* src/diff3.c (skipwhite, readnum): New functions.
Packit 33f14e
	(process_diff_control): Use them.
Packit 33f14e
	(SKIPWHITE, READNUM): Remove.
Packit 33f14e
	(read_diff): Don't worry about errno == ENOEXEC.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (catchsig, signal_handler, initial_action): Signal
Packit 33f14e
	handlers return void, not RETSIGTYPE, since we no longer support
Packit 33f14e
	K&R.
Packit 33f14e
	(TABSIZE_OPTION): New constant.
Packit 33f14e
	(longopts, usage, main): New option --tabsize=COLUMNS.
Packit 33f14e
	(cleanup): New arg signo.  All uses changed.
Packit 33f14e
	(ck_editor_status, main, edit): Don't worry about ENOEXEC.
Packit 33f14e
Packit 33f14e
	* src/side.c (tab_from_to, print_half_line, print_1sdiff_line):
Packit 33f14e
	New option --tabsize=COLUMNS.
Packit 33f14e
Packit 33f14e
	* src/system.h (S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISREG,
Packit 33f14e
	S_ISSOCK): Remove; now in lib/file-type.h.
Packit 33f14e
Packit 33f14e
	* src/util.c (finish_output): Check for ENOEXEC.
Packit 33f14e
	(lines_differ, output_1_line): New option --tabsize=COLUMNS.
Packit 33f14e
	(analyze_hunk): If -b or -w is also specified, -B now considers
Packit 33f14e
	lines to be empty if they contain only white space.
Packit 33f14e
Packit 33f14e
2002-04-05  Paul Eggert  <eggert@sic.twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.1.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_HEADER_STDBOOL): Add.
Packit 33f14e
	(AC_CHECK_HEADERS): Remove stdbool.h.
Packit 33f14e
	* m4/stdbool.m4: New file.
Packit 33f14e
	* m4/prereq.m4 (jm_PREREQ_EXCLUDE):
Packit 33f14e
	Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h).
Packit 33f14e
	(jm_PREREQ_HASH): Likewise.
Packit 33f14e
Packit 33f14e
	* src/system.h (SSIZE_MAX): Define if limits.h doesn't.
Packit 33f14e
Packit 33f14e
	* src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a
Packit 33f14e
	size_t variable, just in case there's a problem with ptrdiff_t
Packit 33f14e
	versus size_t.
Packit 33f14e
Packit 33f14e
	* lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported.
Packit 33f14e
	Include limits.h.
Packit 33f14e
	(SIZE_MAX, SSIZE_MAX): Define if standard headers don't.
Packit 33f14e
	(MIN): New macro.
Packit 33f14e
	(block_read): Do not attempt to read more than SSIZE_MAX bytes, as the
Packit 33f14e
	resulting behavior is implementation-defined.  Work around bug in
Packit 33f14e
	Tru64 5.1, which can't read more than INT_MAX bytes at a time.
Packit 33f14e
	* src/cmp.c (cmp): Use block_read instead of read, to work
Packit 33f14e
	around Tru64 5.1 bug.
Packit 33f14e
	* src/diff3.c (read_diff): Likewise.
Packit 33f14e
	* src/diff3.c: Include cmpbuf.h.
Packit 33f14e
Packit 33f14e
	* THANKS: Add Ulrich Drepper.
Packit 33f14e
Packit 33f14e
	* INSTALLME: Mention GNU texinfo.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi:
Packit 33f14e
	Use new @copying directive.
Packit 33f14e
	Put @contents first, not last, since Texinfo now suggests this.
Packit 33f14e
	Fix bug in -w documentation noted by Karl Berry.
Packit 33f14e
	Mention links for speedup.
Packit 33f14e
	New node "Speedups" for future speedups.
Packit 33f14e
	Just say "Index", not "Concept Index".
Packit 33f14e
Packit 33f14e
2002-03-26  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/Makefile.am:
Packit 33f14e
	(INCLUDES): Remove this obsolete macro,	replacing it with:
Packit 33f14e
	(AM_CPPFLAGS): New macro.
Packit 33f14e
Packit 33f14e
2002-03-26  Albert Chin-A-Young  <china@thewrittenword.com>
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (datadir): Remove, as it conflicts with --datadir.
Packit 33f14e
Packit 33f14e
2002-03-26  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was
Packit 33f14e
	missing before the menu entry.  Bug diagnosed by Adam Heath.
Packit 33f14e
	Also, put this dircategory after the Individual utilities dircategory,
Packit 33f14e
	to work around a compatibility problem with Debian install-info.
Packit 33f14e
Packit 33f14e
2002-03-24  Eli Zaretskii  <eliz@is.elta.co.il>
Packit 33f14e
Packit 33f14e
	* src/io.c (sip): Do not mishandle buffered count when reverting
Packit 33f14e
	to text mode.
Packit 33f14e
Packit 33f14e
2002-03-23  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.8.
Packit 33f14e
	* configure.ac (AC_PREREQ): 2.53.
Packit 33f14e
	* INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Upgrade the description of `patch' to GNU patch
Packit 33f14e
	2.5.4, and revamp the documentation accordingly.
Packit 33f14e
Packit 33f14e
	* src/diff.c (main): Fix typo that prevented diff -y from working.
Packit 33f14e
	Bug reported by Mitsuru Chinen.
Packit 33f14e
Packit 33f14e
2002-03-15  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info.
Packit 33f14e
	Bug reported by Eli Zaretskii.
Packit 33f14e
Packit 33f14e
2002-03-15  Eli Zaretskii  <eliz@is.elta.co.il>
Packit 33f14e
Packit 33f14e
	* ms/config.sed: Tweak editing of install-info-am target.
Packit 33f14e
Packit 33f14e
2002-03-12  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.7.10.
Packit 33f14e
Packit 33f14e
	* NEWS: cmp -l -s and cmp -s -l are not allowed.
Packit 33f14e
	Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge.
Packit 33f14e
Packit 33f14e
	* configure.ac (jm_PREREQ_HARD_LOCALE): Add.
Packit 33f14e
	(AM_INIT_AUTOMAKE): Do not distribute shar file.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (Overview): byte != character.
Packit 33f14e
	(Detailed Context, Detailed Unified, Alternate Names, diff Options):
Packit 33f14e
	Do not document diff -L.
Packit 33f14e
	(Comparing Directories, Making Patches, diff Options):
Packit 33f14e
	Do not document diff -P.
Packit 33f14e
	(diff Performance, sdiff Option Summary, diff Options, sdiff Options):
Packit 33f14e
	Do not document diff -H.
Packit 33f14e
	(diff Performance, diff Options): Do not document --horizon-lines.
Packit 33f14e
	(cmp Options): Prefer -b to -c.
Packit 33f14e
	(cmp Options, diff Options, diff3 Options, patch Options,
Packit 33f14e
	sdiff Options): Put short options next to the similar long options.
Packit 33f14e
	Document --help, and use the same wording for --verbose.
Packit 33f14e
	(diff3 Options): Fix typo in description of -E, which used wrongly used
Packit 33f14e
	"-e" instead of "-E".
Packit 33f14e
Packit 33f14e
	* lib/hard-locale.c (alloca): Remove.
Packit 33f14e
	Include stdlib.h if available, for malloc.
Packit 33f14e
	(hard_locale): Use malloc, not alloca, so that we need not worry about
Packit 33f14e
	alloca issues.  Test for storage allocation failure.
Packit 33f14e
Packit 33f14e
	* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE.
Packit 33f14e
	(jm_PREREQ_HARD_LOCALE): New macro.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (specify_comparison_type): New function.
Packit 33f14e
	(check_stdout): "indices and codes" -> "byte numbers and values"
Packit 33f14e
	(main): Detect clashing options.
Packit 33f14e
	(cmp): Use "byte" rather than "char" if a translation for "byte"
Packit 33f14e
	is available, even when in the POSIX locale.
Packit 33f14e
Packit 33f14e
	* src/diff.c (option_help_msgid): Do not document -L, -P,
Packit 33f14e
	--horizon-lines, --inhibit-hunk-merge, -H.
Packit 33f14e
	* src/diff.h: -L -> --label
Packit 33f14e
Packit 33f14e
2002-03-11  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT): Version 2.7.9.
Packit 33f14e
Packit 33f14e
	* INSTALLME: Update to autoconf 2.53, automake 1.6, help2man
Packit 33f14e
	1.25 with patch.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_INIT):
Packit 33f14e
	Change package name from diff to diffutils.
Packit 33f14e
	(AM_INIT_AUTOMAKE): Use new form, with option gnits,
Packit 33f14e
	rather than old from that duplicated AC_INIT.
Packit 33f14e
	(AM_MISSING_PROG): Add help2man.
Packit 33f14e
	(REGEX_MALLOC): Define.
Packit 33f14e
	(AC_CONFIG_FILES): Add man/Makefile.
Packit 33f14e
Packit 33f14e
	* Makefile.am (AUTOMAKE_OPTIONS): Remove.
Packit 33f14e
	* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
Packit 33f14e
	* lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
Packit 33f14e
	* ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
Packit 33f14e
	* src/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
Packit 33f14e
Packit 33f14e
	* lib/c-stack.c: Include <errno.h>
Packit 33f14e
	(ENOTSUP): Define if errno.h doesn't.
Packit 33f14e
	(SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ,
Packit 33f14e
	_SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack):
Packit 33f14e
	Remove; we now assume them all when
Packit 33f14e
	HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need
Packit 33f14e
	substitutes.
Packit 33f14e
	(<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
Packit 33f14e
	(alternate_signal_stack): Now of size SIGSTKSZ.
Packit 33f14e
	(segv_handler): Simplify, under the assumption that
Packit 33f14e
	HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero.
Packit 33f14e
	(c_stack_action): Likewise.
Packit 33f14e
	(exit_failure) [DEBUG]: Initialize to 0, not 1.
Packit 33f14e
	(recurse, main) [DEBUG]: Remove main args.
Packit 33f14e
Packit 33f14e
	* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change
Packit 33f14e
	wording of message.  Do not check for stdbool.h or ucontext.h,
Packit 33f14e
	or for ucontext_t or sigaction or sigaltstack.
Packit 33f14e
Packit 33f14e
	* po/LINGUAS: Add zh_TW.
Packit 33f14e
Packit 33f14e
	* Makefile.am (SUBDIRS): Add man.
Packit 33f14e
	* man/Makefile.am: New file.
Packit 33f14e
	* src/cmp.c (usage): Reword for help2man.
Packit 33f14e
	* src/diff.c (option_help_msgid): Likewise.
Packit 33f14e
	* src/diff3.c (option_help_msgid, usage): Likewise.
Packit 33f14e
	* src/sdiff3.c (option_help_msgid, usage): Likewise.
Packit 33f14e
	Reword for help2man.
Packit 33f14e
Packit 33f14e
	* THANKS: Add email address for Tower.
Packit 33f14e
Packit 33f14e
	* config/config.guess, config/config.sub, config/depcomp,
Packit 33f14e
	config/install-sh, config/mdate-sh, config/missing,
Packit 33f14e
	config/mkinstalldirs, config/texinfo.tex: Update
Packit 33f14e
	to recent version (maintained in other packages).
Packit 33f14e
Packit 33f14e
2002-03-04  Bruno Haible <haible@ilog.fr>
Packit 33f14e
Packit 33f14e
	* m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if
Packit 33f14e
	no preinstalled GNU gettext was found.
Packit 33f14e
Packit 33f14e
2002-03-02  Eli Zaretskii  <eliz@is.elta.co.il>
Packit 33f14e
Packit 33f14e
	* ms/config.sed: Tweak editing of install-info-am and
Packit 33f14e
	uninstall-info-am targets, to include 8+3-butchered names of Info
Packit 33f14e
	files.
Packit 33f14e
Packit 33f14e
2002-02-28  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Add vr index.
Packit 33f14e
	Update copyright to 2002.
Packit 33f14e
	(Standards conformance): New chapter.
Packit 33f14e
	(Binary): Differing binary files are trouble unless the user asked for
Packit 33f14e
	brief output.
Packit 33f14e
	(Detailed Context): Prefer ISO timestamp format in discussion.
Packit 33f14e
	(Detailed Unified, Pagination): Likewise.
Packit 33f14e
	(Less Context): Likewise.  Also use short option.
Packit 33f14e
	(Alternate Names): Separate option from arg.
Packit 33f14e
	(Making Patches): Mention -U 2.
Packit 33f14e
	(diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not
Packit 33f14e
	allow it.
Packit 33f14e
Packit 33f14e
	* INSTALLME: Update advice for Solaris installation problems.
Packit 33f14e
	We no longer use a test version of gettext.
Packit 33f14e
	Autoconf test version updated from 2.52f to 2.52h.
Packit 33f14e
	POSIX 1003.1-2001 patch for Automake.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC__GNU_SOURCE): Add this,
Packit 33f14e
	replacing AH_VERBATIM of _GNU_SOURCE.
Packit 33f14e
	(tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf.
Packit 33f14e
	(jm_PREREQ_C_STACK): Add.
Packit 33f14e
	(AC_CONFIG_FILES): Remove intl/Makefile.
Packit 33f14e
	(AM_GNU_GETTEXT): Add external arg, from gettext 0.11.
Packit 33f14e
Packit 33f14e
	* lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h,
Packit 33f14e
	lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4,
Packit 33f14e
	po/cs.po, po/ja.po: New files.
Packit 33f14e
Packit 33f14e
	* intl/ChangeLog, intl/Makefile.in, intl/VERSION,
Packit 33f14e
	intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c,
Packit 33f14e
	intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c,
Packit 33f14e
	intl/dngettext.c, intl/explodename.c, intl/finddomain.c,
Packit 33f14e
	intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h,
Packit 33f14e
	intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h,
Packit 33f14e
	intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c,
Packit 33f14e
	intl/locale.alias, intl/localealias.c, intl/localename.c,
Packit 33f14e
	intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c,
Packit 33f14e
	intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h,
Packit 33f14e
	intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin,
Packit 33f14e
	intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove.
Packit 33f14e
Packit 33f14e
	* ABOUT-NLS: Update to Gettext 0.11.
Packit 33f14e
Packit 33f14e
	* Makefile.am (SUBDIRS): Remove intl.
Packit 33f14e
Packit 33f14e
	* config/config.guess, config/config.rpath, config/config.sub,
Packit 33f14e
	config/texinfo.tex, config/depcomp, config/texinfo.tex,
Packit 33f14e
	lib/tempname.c: Update to latest version from other packages.
Packit 33f14e
Packit 33f14e
	* lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure.
Packit 33f14e
	* lib/xmalloc.c: Include exitfail.h.
Packit 33f14e
	(xalloc_exit_failure): Remove; subsumed by exit_failure.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h.
Packit 33f14e
	(libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c.
Packit 33f14e
	(INCLUDES): Remove.
Packit 33f14e
Packit 33f14e
	* lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX.
Packit 33f14e
	* lib/cmpbuf.c: Include errno.h.
Packit 33f14e
	(errno): Declare if !STDC_HEADERS.
Packit 33f14e
	Include signal.h.
Packit 33f14e
	(SA_RESTART): Define if not already defined.
Packit 33f14e
	Include <inttypes.h>.
Packit 33f14e
	(PTRDIFF_MAX): Define if not already defined.
Packit 33f14e
	(TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
Packit 33f14e
	(block_read): Accommodate ancient AIX hosts that set errno to EINTR
Packit 33f14e
	after uncaught SIGCONT.
Packit 33f14e
	(buffer_lcm): Return a reasonable size if the multiple is too large.
Packit 33f14e
	New arg LCM_MAX.  All callers changed.
Packit 33f14e
Packit 33f14e
	* lib/hard-locale.c: Include "hard-locale.h".
Packit 33f14e
	(hard_locale): Ignore ENABLE_NLS, since we want to operate on
Packit 33f14e
	locales other than LC_MESSAGES.
Packit 33f14e
Packit 33f14e
	* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER.
Packit 33f14e
	(jm_PREREQ_POSIXVER): New macro.
Packit 33f14e
Packit 33f14e
	* m4/setmode.m4 (AC_FUNC_SETMODE_DOS):
Packit 33f14e
	Check for fcntl.h and unistd.h unconditionally.
Packit 33f14e
	Suggested by Bruno Haible.
Packit 33f14e
Packit 33f14e
	* po/LINGUAS: Add cs, ja.
Packit 33f14e
	* po/POTFILES.in: Add lib/c-stack.c, src/dir.c.
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (datadir): @DATADIRNAME@ -> share.
Packit 33f14e
	(INCLUDES): Remove intl.
Packit 33f14e
	(LDADD): Change INTLLIBS to LIBINTL.
Packit 33f14e
	No longer need to link libdiffutils.a twice.
Packit 33f14e
Packit 33f14e
	* src/analyze.c (diff_2_files):
Packit 33f14e
	Avoid arithmetic overflow in buffer size calculation.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Include c-stack.h, exitfail.h.
Packit 33f14e
	(hard_locale_LC_MESSAGES): Depend on ENABLE_NLS.
Packit 33f14e
	(try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE.
Packit 33f14e
	(main): Check for stack overflow.
Packit 33f14e
	0 -> EXIT_SUCCESS.
Packit 33f14e
	1 -> EXIT_FAILURE.
Packit 33f14e
	(cmp): Likewise.
Packit 33f14e
	Accommodate ancient AIX hosts that set errno to
Packit 33f14e
	EINTR after uncaught SIGCONT.
Packit 33f14e
Packit 33f14e
	* src/context.c (pr_context_hunk):
Packit 33f14e
	Do not dump core if an enormous context causes an
Packit 33f14e
	arithmetic overflow.
Packit 33f14e
	(pr_unidiff_hunk): Likewise.
Packit 33f14e
	(find_hunk): Likewise.
Packit 33f14e
Packit 33f14e
	* src/diff.h: unsigned -> unsigned int.
Packit 33f14e
	* src/diff.c: Include c-stack.h, exitfail.h.
Packit 33f14e
	Do not include signal.h.
Packit 33f14e
	(specify_style, specify_value): Bring these routines back, as POSIX
Packit 33f14e
	requires that the order of options not matter.
Packit 33f14e
	(shortopts): New constant.
Packit 33f14e
	(group_format_option, line_format_option): New constants.
Packit 33f14e
	(main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
Packit 33f14e
	Ensure that order of options does not matter.
Packit 33f14e
	Check for stack overflow.
Packit 33f14e
	If contexts overflow, substitute LIN_MAX, as that's good enough.
Packit 33f14e
	If multiple contexts are specified, use their maximum.
Packit 33f14e
	-c is equivalent to -C 3 now, instead of having an implicit context;
Packit 33f14e
	likewise for -u and -U 3.
Packit 33f14e
	Use specify_style and specify_value.
Packit 33f14e
	(SIGCHLD): Do not define; now done in a header.
Packit 33f14e
	Use new style timestamp format for -u / -U.
Packit 33f14e
	Reject numeric-string options if operating in POSIX 1003.1-2001 mode.
Packit 33f14e
	Avoid overflow problems with tab width.
Packit 33f14e
	Simplify from-file and to-file code.
Packit 33f14e
	(usage): Do not mention obsolete options.
Packit 33f14e
	(filetype): Do not mention whether a file is executable.
Packit 33f14e
	Add typed memory objects.
Packit 33f14e
	(compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 ->
Packit 33f14e
	EXIT_TROUBLE.
Packit 33f14e
Packit 33f14e
	* src/diff3.c: Include c-stack.h, exitfail.h.
Packit 33f14e
	(ALLOCATE): Remove.  All uses changed to xmalloc, or to xmalloc plus
Packit 33f14e
	an overflow check.
Packit 33f14e
	(myread): Remove.
Packit 33f14e
	(main): Check for stack overflow.
Packit 33f14e
	0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE.
Packit 33f14e
	(try_help): Likewise.
Packit 33f14e
	(process_diff): Check for integer overflow, to avoid core dumps.
Packit 33f14e
	2 -> EXIT_TROUBLE.
Packit 33f14e
	(read_diff): Exit with status 126 if the file is not executable,
Packit 33f14e
	for compatibility with POSIX 1003.1-2001.
Packit 33f14e
	Accommodate ancient AIX hosts that set errno to EINTR after uncaught
Packit 33f14e
	SIGCONT.
Packit 33f14e
	Check for integer overflow to avoid core dumps.
Packit 33f14e
	(fatal, perror_with_exit): 2 -> EXIT_TROUBLE.
Packit 33f14e
Packit 33f14e
	* src/dir.c (dir_read):
Packit 33f14e
	Ignore st_size of directories: POSIX says it's garbage.
Packit 33f14e
	Check for integer overflow to avoid core dumps.
Packit 33f14e
	(diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE.
Packit 33f14e
Packit 33f14e
	* src/ifdef.c: Include <xalloc.h>.
Packit 33f14e
	(format_group, print_ifdef_lines): Avoid core dumps with bad formats.
Packit 33f14e
	(do_printf_spec): Avoid alloca.
Packit 33f14e
Packit 33f14e
	* src/io.c (sip):
Packit 33f14e
	Avoid integer overflow and core dumps if buffer alignments are
Packit 33f14e
	preposterously incompatible.
Packit 33f14e
	(slurp): Do not dump core if the file is growing as we read it.
Packit 33f14e
	If a regular file grows, keep reading until we catch up with its EOF.
Packit 33f14e
	(find_and_hash_each_line): Check for integer overflow to avoid cores.
Packit 33f14e
	(GUESS_LINES): Remove.
Packit 33f14e
	(guess_lines): New function.  Avoid integer overflow.
Packit 33f14e
	(find_identical_ends): Use it.
Packit 33f14e
	Avoid integer overflow and possible core dumps.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c: Include c-stack.h, exitfail.h.  Do not include signal.h.
Packit 33f14e
	0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
Packit 33f14e
	(ck_editor_status): New function.
Packit 33f14e
	(main): Check for stack overflow.
Packit 33f14e
	Adopt POSIX convention for subsidiary programs not found.
Packit 33f14e
	(diffarg): Check for integer overflow to avoid core dumps.
Packit 33f14e
	(trapsigs): Remove SA_INTERRUPT special case; now done by header.
Packit 33f14e
	(SIGCHLD): Likewise.
Packit 33f14e
	(edit): Adopt POSIX convention for subsidiary programs not found.
Packit 33f14e
Packit 33f14e
	* src/side.c: unsigned -> unsigned int.
Packit 33f14e
Packit 33f14e
	* src/system.h: Don't use alloca or include <alloca.h>.
Packit 33f14e
	unsigned -> unsigned int
Packit 33f14e
	(EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined.
Packit 33f14e
	Include signal.h.
Packit 33f14e
	(SA_RESTART): Define if not defined.
Packit 33f14e
	(SIGCHLD): Likewise.
Packit 33f14e
Packit 33f14e
	* src/util.c: 2 -> EXIT_TROUBLE.
Packit 33f14e
	Adopt POSIX convention for ENOEXEC and exit status 126.
Packit 33f14e
	unsigned -> unsigned int
Packit 33f14e
Packit 33f14e
2002-01-24  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7.
Packit 33f14e
Packit 33f14e
	* intl/plural.c: Regenerate with Bison 1.31.
Packit 33f14e
Packit 33f14e
	* ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++.
Packit 33f14e
	* INSTALL: Update to Autoconf 2.52f.
Packit 33f14e
Packit 33f14e
	* INSTALLME: New file.
Packit 33f14e
	* Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME.
Packit 33f14e
	(DISTCLEANFILES): Remove.
Packit 33f14e
	* NEWS: Reformat for imminent 2.8 release.
Packit 33f14e
	* README: Mention INSTALLME.
Packit 33f14e
	* README-alpha: Move most of contents to INSTALLME.
Packit 33f14e
	* THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii.
Packit 33f14e
Packit 33f14e
	* config: New subdirectory, containing the following files from .:
Packit 33f14e
	config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
Packit 33f14e
	Move the following files here from doc: texinfo.tex, mdate-sh.
Packit 33f14e
	* config/config.guess, config/config.sub, config/texinfo.tex:
Packit 33f14e
	Update to latest version from FSF.
Packit 33f14e
	* config/config.rpath: New file, from Gettext 0.11-pre5++.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_INIT): Use new 3-arg form.
Packit 33f14e
	(AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT.
Packit 33f14e
	(ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
Packit 33f14e
	(AC_CONFIG_AUX_DIR): New macro invocation.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Add gettext.h.
Packit 33f14e
	* lib/gettext.h: New file, from Gettext 0.11-pre5++.
Packit 33f14e
	* lib/prepargs.c: Include <string.h>.  Reported by Bruno Haible.
Packit 33f14e
Packit 33f14e
	* m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4,
Packit 33f14e
	lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++.
Packit 33f14e
	* m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
Packit 33f14e
	Gettext 0.11-pre5++.
Packit 33f14e
Packit 33f14e
	* po/LINGUAS: New file.
Packit 33f14e
	* po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++.
Packit 33f14e
	* po/Makevars, po/Rules-quot, po/boldquot.sed: New files,
Packit 33f14e
	from Gettext 0.11-pre5++.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (copyright_string): Update to 2002.
Packit 33f14e
	* src/diff.c (copyright_string): Likewise.
Packit 33f14e
	* src/diff3.c (copyright_string): Likewise.
Packit 33f14e
	* src/sdiff.c (copyright_string): Likewise.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (specify_ignore_initial): Renamed from
Packit 33f14e
	parse_ignore_initial, with different signature, to take the
Packit 33f14e
	maximum of multiple options rather than the last one.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (bytes, specify_ignore_initial, cmp): Use UINTMAX_MAX
Packit 33f14e
	instead of (uintmax_t) -1, to avoid warnings on some compilers.
Packit 33f14e
	* src/io.c (file_block_read): Likewise, for SIZE_MAX.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (usage): Reformat messages to ease translation.
Packit 33f14e
	* src/diff3.c (usage): Likewise.
Packit 33f14e
	* src/sdiff.c (usage): Likewise.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (main): Two files with the same name are identical
Packit 33f14e
	only if the same offset is specified.
Packit 33f14e
	(block_compare_and_count): Avoid cast to unsigned char.
Packit 33f14e
Packit 33f14e
	* src/diff3.c (main): Remove unused variable.
Packit 33f14e
Packit 33f14e
	* src/dir.c: Include <setjmp.h>
Packit 33f14e
	(struct dirdata): New member nnames.
Packit 33f14e
	(locale_specific_sorting, failed_strcoll): New vars.
Packit 33f14e
	(dir_read): Renamed from dir_sort.  Don't sort the dir.
Packit 33f14e
	Set new nnames member of struct dirdata.  All callers changed.
Packit 33f14e
	(compare_names): Don't check for errno after strcasecmp.
Packit 33f14e
	Use strcoll only if locale_specific_sorting is nonzero.
Packit 33f14e
	If strcoll fails, longjmp out rather than returning a value
Packit 33f14e
	that might result in an invalid comparison function that might
Packit 33f14e
	make qsort dump core.
Packit 33f14e
	(diff_dirs): Sort the directory ourselves.  Use setjmp to recover
Packit 33f14e
	from strcoll failure, falling back on native byte comparison.
Packit 33f14e
	Make local variables volatile if they need to preserve their value
Packit 33f14e
	after setjmp/longjmp.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE):
Packit 33f14e
	New macros.
Packit 33f14e
	(main): Do not confuse signal numbers with their indices.
Packit 33f14e
	Bug reported by Bruno Haible.
Packit 33f14e
	(edit): Cat lin to long before printing with %ld, since lin might
Packit 33f14e
	be narrow than long.
Packit 33f14e
Packit 33f14e
	* src/system.h (UINTMAX_MAX): New macro.
Packit 33f14e
	Include gettext.h, not libgettext.h.
Packit 33f14e
	(N_): Do not wrap arg in parentheses.  Fix from Bruno Haible.
Packit 33f14e
Packit 33f14e
	* src/util.c (finish_output): Ensure that werrno is initialized.
Packit 33f14e
	(lines_differ): Have an explicit do-nothing case for
Packit 33f14e
	IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall.
Packit 33f14e
Packit 33f14e
2001-12-29  Eli Zaretskii  <eliz@is.elta.co.il>
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (interact): After extracting rlen from the editor
Packit 33f14e
	command, test for a terminating null character, not for a newline.
Packit 33f14e
Packit 33f14e
	* ms/config.bat: Allow longer source directory names without
Packit 33f14e
	overflowing the line length limits.  Create the cache in the
Packit 33f14e
	build directory, not in the source directory
Packit 33f14e
	* ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are
Packit 33f14e
	unavailable.
Packit 33f14e
Packit 33f14e
2001-12-23  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6.
Packit 33f14e
Packit 33f14e
	* configure.ac (ALL_LINGUAS): Add tr.
Packit 33f14e
Packit 33f14e
	* src/util.c (begin_output):
Packit 33f14e
	Have child exit with status 127 rather than reporting
Packit 33f14e
	failure on its own.  Set errno to 0 before invoking popen.
Packit 33f14e
	(finish_output): Report errno on pclose failure.
Packit 33f14e
	Distinguish between subsidiary program not found, and failure.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (not_found, execdiff): Remove.
Packit 33f14e
	(DIFF_PROGRAM_OPTION): New constant.
Packit 33f14e
	(longopts, option_help_msgid, main): Add --diff-program=PROGRAM.
Packit 33f14e
	(check_stdout): New function.
Packit 33f14e
	(main): Remove DIFF_PROGRAM.  Check stdout after printing version.
Packit 33f14e
	Use check_stdout after printing help.  Use execvp/perror_fatail rather
Packit 33f14e
	than execdiff.  Set errno to 0 before invoking popen.
Packit 33f14e
	Check for pclose failure properly.
Packit 33f14e
	(main, edit): If child exec fails, exit with 127 rather than trying to
Packit 33f14e
	print diagnostic.
Packit 33f14e
	Distinguish between subsidiary program failing and not being found.
Packit 33f14e
	(edit): Handle signals the same way, regardless of whether we're using
Packit 33f14e
	system or fork+exec.  Check for system returning -1.
Packit 33f14e
Packit 33f14e
	* src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants.
Packit 33f14e
	(longopts, main): Use them.
Packit 33f14e
	(longopts, main, option_help_msgid): New option --diff-option=PROGRAM.
Packit 33f14e
	(main): Remove DIFF_PROGRAM support.
Packit 33f14e
	Check stdout after printing version.
Packit 33f14e
	(check_stdout): Report errno info if fclose fails.
Packit 33f14e
	(read_diff): Have child exit with status 127 when program is not found,
Packit 33f14e
	rather than trying to have the child report failure.  Check for
Packit 33f14e
	pclose returning -1.
Packit 33f14e
Packit 33f14e
	* src/diff.c (DEFAULT_WIDTH): Remove.
Packit 33f14e
	(main): Use 130 instead of DEFAULT_WIDTH, since it's not really
Packit 33f14e
	builder-settable.  Do not prepend DIFF_OPTIONS.
Packit 33f14e
	(check-stdout): If fclose (stdout) fails, print errno info.
Packit 33f14e
	(option_help_msgid): Default context is 3, not 2.
Packit 33f14e
	(usage): Work even if ptrdiff_t is wider than int.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (diff Options): Remove DIFF_OPTIONS.
Packit 33f14e
	(Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM.
Packit 33f14e
	(diff3 Options, sdiff Options): Add --diff-program.
Packit 33f14e
Packit 33f14e
	* src/cmp.c (valid_suffixes):
Packit 33f14e
	Add '0', to support suffixes like "MB" and "MiB".
Packit 33f14e
	(check_stdout): Don't assume that the translations of "write failed"
Packit 33f14e
	and of "standard output" lack '%'.
Packit 33f14e
	(main): Check stdout after printing version.
Packit 33f14e
Packit 33f14e
	* lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>.
Packit 33f14e
	[!HAVE_SETMODE_DOS]: Do not include <unistd.h>.
Packit 33f14e
	(set_binary_mode): Return mode (not 1) if fd is a tty.
Packit 33f14e
	Do not assume that O_TEXT is zero.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi (cmp Options):
Packit 33f14e
	In byte counts, a plain suffix (without any integer)
Packit 33f14e
	is assumed to modify the integer 1.  Index terms like "kibibyte".
Packit 33f14e
	Document plain "k".
Packit 33f14e
Packit 33f14e
	(Reporting Bugs): Mention bug-report archive and test version
Packit 33f14e
	location.  Ask for "diff --version" in bug reports.
Packit 33f14e
Packit 33f14e
2001-12-13  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without
Packit 33f14e
	also changing option_help_msgid.  All uses replaced with 130.
Packit 33f14e
Packit 33f14e
	* lib/setmode.c: Include fcntl.h and unistd.h only if
Packit 33f14e
	HAVE_SETMODE_DOS.
Packit 33f14e
	(setmode): Assume a file is binary unless the mode is O_TEXT.
Packit 33f14e
	* ms/README: Fix minor typos.
Packit 33f14e
Packit 33f14e
2001-12-13  Eli Zaretskii  <eliz@is.elta.co.il>
Packit 33f14e
Packit 33f14e
	* ms/README: New file.
Packit 33f14e
Packit 33f14e
	* lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume
Packit 33f14e
	O_TEXT has a zero value.  If FD is a terminal device, do nothing
Packit 33f14e
	and return MODE, thus pretending that it was already in the
Packit 33f14e
	requested MODE.
Packit 33f14e
	[HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY).
Packit 33f14e
Packit 33f14e
	* ms/config.sed: Remove the split prevention of config.status.
Packit 33f14e
	Fix Sed commands for converting absolute file names into
Packit 33f14e
	top_srcdir-relative ones.
Packit 33f14e
Packit 33f14e
	* ms/config.bat: Fix typos.
Packit 33f14e
Packit 33f14e
2001-12-12  Neal H Walfield  <neal@cs.uml.edu>
Packit 33f14e
Packit 33f14e
	* diff.c (option_help_msgid): Correct the default context width
Packit 33f14e
	from 2 to 3.
Packit 33f14e
Packit 33f14e
2001-12-11  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* m4/Makefile.am.in: Remove jm-glibc-io.m4
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5.
Packit 33f14e
Packit 33f14e
	* configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that
Packit 33f14e
	$PR_PROGRAM is expanded by sh.
Packit 33f14e
	(ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int,
Packit 33f14e
	not AC_CHECK_TYPES.
Packit 33f14e
	(jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros.
Packit 33f14e
	(AC_CONFIG_FILES): Add ms/Makefile.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Add --no-ignore-file-name-case.
Packit 33f14e
	File name case sensitivity now affects file name exclusion.
Packit 33f14e
	Fix typos.
Packit 33f14e
Packit 33f14e
	* src/util.c: Include dirname.h.
Packit 33f14e
	(dir_file_pathname): Use base_name rather than file_name_lastdirchar.
Packit 33f14e
Packit 33f14e
	* src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros.
Packit 33f14e
	Include <libgettext.h> rather than rolling it ourselves.
Packit 33f14e
	(file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c: Include <dirname.h>.
Packit 33f14e
	(expand_name): Use base_name rather than file_name_lastdirchar, for
Packit 33f14e
	portability to DOS.
Packit 33f14e
	(main): Initialize xalloc_exit_failure before possibly invoking
Packit 33f14e
	any memory allocator.
Packit 33f14e
Packit 33f14e
	* src/io.c: Include setmode.h.
Packit 33f14e
Packit 33f14e
	* src/diff3.c (main):
Packit 33f14e
	Initialize xalloc_exit_failure before possibly invoking any memory
Packit 33f14e
	allocator.
Packit 33f14e
Packit 33f14e
	* src/diff.c: Include dirname.h, setmode.h.
Packit 33f14e
Packit 33f14e
	(main): Later values and/or styles now silently override earlier.
Packit 33f14e
	(specify_value, specify_style): Likewise.  All callers changed.
Packit 33f14e
	Remove.
Packit 33f14e
	(binary, main, option_help_msgid, compare_files):
Packit 33f14e
	HAVE_SETMODE -> HAVE_SETMODE_DOS.
Packit 33f14e
	(NO_IGNORE_FILE_NAME_CASE_OPTION): New constant.
Packit 33f14e
	(longopts, main, option_help_msgid): Support it.
Packit 33f14e
	(exclude_options): New function.
Packit 33f14e
	(main): Use it. Initialize xalloc_exit_failure before potentially
Packit 33f14e
	allocating memory.
Packit 33f14e
Packit 33f14e
	(filetype): Distinguish executable files from others, as POSIX
Packit 33f14e
	suggests.
Packit 33f14e
Packit 33f14e
	(compare_files): Use base_name instead of file_name_lastdirchar.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Include <hard-locale.h>, <setmode.h>.
Packit 33f14e
	(hard_locale_LC_MESSAGES): New macro.
Packit 33f14e
	(sprintc): Remove int width arg; it's now the caller's responsibility
Packit 33f14e
	to pad.  All callers changed.
Packit 33f14e
	(stat_buf): New static var; was formerly a local var in 'main'.
Packit 33f14e
	(valid_suffixes): Add 'K', for 'KiB'.
Packit 33f14e
	(option_help_msgid): Don't confuse bytes with characters.
Packit 33f14e
	(main): Set xalloc_exit_failure before invoking anything that might
Packit 33f14e
	allocate memory.  Fix bug: -n was incorrectly ignored when optimizing
Packit 33f14e
	the case of regular files with different lengths.
Packit 33f14e
	(cmp): Use an index column wide enough to store this comparison's
Packit 33f14e
	indexes.  In locales other than the POSIX locale, say "byte"
Packit 33f14e
	rather than "char".
Packit 33f14e
Packit 33f14e
	* ms/config.bat: pc -> ms
Packit 33f14e
Packit 33f14e
	* ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h:
Packit 33f14e
	New file.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h.
Packit 33f14e
	(libdiffutils_a_SOURCES): Add basename.c, setmode.c.
Packit 33f14e
Packit 33f14e
	* Makefile.am (SUBDIRS): Add ms.
Packit 33f14e
Packit 33f14e
2001-12-10  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* m4/fnmatch.m4: Test for FNM_CASEFOLD.
Packit 33f14e
Packit 33f14e
2001-12-03  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/posix/regex.h: Fix copyright notice.
Packit 33f14e
Packit 33f14e
2001-12-03  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4.
Packit 33f14e
Packit 33f14e
	* diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp):
Packit 33f14e
	Use "byte" rather than "character" when talking about cmp, since
Packit 33f14e
	it compares bytes, not character.
Packit 33f14e
	(Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP.
Packit 33f14e
	-i or --ignore-initial now accepts FROM-SKIP:TO-SKIP.
Packit 33f14e
	New option -n or --bytes.
Packit 33f14e
	Count operands now may be in octal or hex, and may be followed by a
Packit 33f14e
	size multiplier.
Packit 33f14e
Packit 33f14e
	* configure.ac (DEFAULT_DIFF_PROGRAM):
Packit 33f14e
	Define to "diff", not "$bindir/diff" (which didn't work anyway).
Packit 33f14e
	(AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev.
Packit 33f14e
	(AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent.
Packit 33f14e
	(AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK.
Packit 33f14e
	(AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add.
Packit 33f14e
	(AC_OUTPUT): Remove args; they were obsolescent.
Packit 33f14e
Packit 33f14e
	* util.c (setup_output, begin_output, finish_output):
Packit 33f14e
	HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK.
Packit 33f14e
	* sdiff.c (diffpid, cleanup, main, edit): Likewise.
Packit 33f14e
	* diff3.c (read_diff): Likewise.
Packit 33f14e
Packit 33f14e
	* system.h (STAT_BLOCKSIZE):
Packit 33f14e
	Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE.
Packit 33f14e
	(vfork): New macro.
Packit 33f14e
	(HAVE_FORK): Remove.
Packit 33f14e
	(set_binary_mode): New macro.
Packit 33f14e
Packit 33f14e
	* sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK.
Packit 33f14e
	(edit): Reopen the temporary file after the editor has run, in case
Packit 33f14e
	the editor operates by unlinking the old file and linking a new one.
Packit 33f14e
	(P_tmpdir): Rename from PVT_tmpdir; this fixes a typo.
Packit 33f14e
	All uses changed.
Packit 33f14e
Packit 33f14e
	* io.c (sip, read_files):
Packit 33f14e
	Remove tests for HAVE_SETMODE; use set_binary_mode
Packit 33f14e
	instead of setmode.
Packit 33f14e
	(sip): Fix typo in backward lseek when reverting to text mode.
Packit 33f14e
Packit 33f14e
	* config.site, config.sed, config.bat: New file.
Packit 33f14e
Packit 33f14e
	* Makefile.am (EXTRA_DIST): Add xstrtol.c.
Packit 33f14e
	(noinst_HEADERS): Add xstrtol.h.
Packit 33f14e
	(libdiffutils_a_SOURCES): Add xstrtoumax.c.
Packit 33f14e
Packit 33f14e
	* cmp.c: <xstrtol.h>: Include.
Packit 33f14e
	(ignore_initial): Now an array with 2 elements.  All uses changed.
Packit 33f14e
	(bytes): New var.
Packit 33f14e
	(HELP_OPTION): New constant.
Packit 33f14e
	(long_options, main): Use it.
Packit 33f14e
	(long_options, option_help_msgid, main, cmp):
Packit 33f14e
	Add support for -n or --bytes.
Packit 33f14e
	(parse_ignore_initial): New function.
Packit 33f14e
	(option_help_msgid, main): Add -i M:N.
Packit 33f14e
	(usage, main): Add two optional trailing operands, a la BSD.
Packit 33f14e
	(main): setmode -> set_binary_mode.
Packit 33f14e
	(cmp): Report byte number of what we've seen, not of the entire file.
Packit 33f14e
	This is to be consistent with the line number, which is always relative
Packit 33f14e
	with what we've seen.
Packit 33f14e
Packit 33f14e
2001-12-02  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* diff.c (main, compare_files): setmode -> set_binary_mode.
Packit 33f14e
Packit 33f14e
	* xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'.
Packit 33f14e
Packit 33f14e
	* xstrtol.c (__xstrtol): Add support for IEC 60027-2.
Packit 33f14e
Packit 33f14e
2001-11-25  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3.
Packit 33f14e
Packit 33f14e
	* README-alpha: New file.
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (INCLUDES): Add -I../lib, for regex.h.
Packit 33f14e
Packit 33f14e
	* configure.ac:
Packit 33f14e
	Don't set LIB_CLOCK_GETTIME to 'none required'; set it to
Packit 33f14e
	the empty string instead.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c.
Packit 33f14e
Packit 33f14e
	* Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h.
Packit 33f14e
Packit 33f14e
	* configure.ac (__EXTENSIONS__): New define, for the unlocked macros.
Packit 33f14e
Packit 33f14e
	* README: Add copyright notice.
Packit 33f14e
	Remove stuff that doesn't apply any more.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: offsets -> indices for cmp
Packit 33f14e
Packit 33f14e
	* src/cmp.c (option_help_msgid): offsets -> indices
Packit 33f14e
Packit 33f14e
	* src/diff.c (option_help_msgid):
Packit 33f14e
	Don't mention --binary on POSIX hosts.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant.
Packit 33f14e
	(longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion,
Packit 33f14e
	--strip-trailing-cr.
Packit 33f14e
Packit 33f14e
	* doc/diff.texi: Change direcategory from Utilities to GNU Packages.
Packit 33f14e
	Add individual utilities.
Packit 33f14e
	Switch to Free Documentation License.
Packit 33f14e
	@code -> @command
Packit 33f14e
	@samp -> @option
Packit 33f14e
	GNU -> @sc{gnu}
Packit 33f14e
	Expand tabs to spaces, except when in an example that actually
Packit 33f14e
	uses tabs.
Packit 33f14e
	Prefer @node with just one arg.
Packit 33f14e
	Document -E or --ignore-tab-expansion, --strip-trailing-cr,
Packit 33f14e
	--ignore-file-name-case.
Packit 33f14e
	Regular expressions are now grep style, not Emacs style.
Packit 33f14e
	cmp's -c or --print-chars option is now -b or --print-bytes.
Packit 33f14e
	Time stamps now depend on LC_TIME.
Packit 33f14e
	-p now implies ^[[:alpha:]$_].
Packit 33f14e
	Flags now include ' and 0.
Packit 33f14e
	cmp -i is an alias for --ignore-initial
Packit 33f14e
	Document --from-file, --to-file.
Packit 33f14e
	Document DIFF_OPTIONS.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime.
Packit 33f14e
	(LIB_CLOCK_GETTIME): New subst.
Packit 33f14e
Packit 33f14e
	* src/system.h: Assume C89 or better.
Packit 33f14e
	(_GNU_SOURCE): Remove; config.h now defines it.
Packit 33f14e
	(alloca): Declare like coreutils does it.
Packit 33f14e
	(verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR,
Packit 33f14e
	S_IRUSR, S_IWUSR): New macros.
Packit 33f14e
	(STAT_BLOCKSIZE): Parenthesize definiens.
Packit 33f14e
	<inttypes.h>: Include if HAVE_INTTYPES_H.
Packit 33f14e
	(CHAR_MAX, INT_MAX): Remove.
Packit 33f14e
	(PTRDIFF_MAX, SIZE_MAX): New macros.
Packit 33f14e
	(strtoumax): New decl.
Packit 33f14e
	Include stddef.h.
Packit 33f14e
	(bzero): Remove.
Packit 33f14e
	(bindtextdomain, textdomain, N_): New macros.
Packit 33f14e
	(ISPRINT, ISSPACE): Remove ifndef wrappers.
Packit 33f14e
	(ISUPPER, ISDIGIT): Remove.
Packit 33f14e
	(TOLOWER): New macro.
Packit 33f14e
	(MIN): Renamed from min; all callers changed.
Packit 33f14e
	(MAX): Likewise, from max.
Packit 33f14e
	(lin): New type.
Packit 33f14e
	(LIN_MAX): New macro.
Packit 33f14e
	(file_name_cmp): Renamed from filename_cmp.  All callers changed.
Packit 33f14e
	(file_name_lastdirchar): Renamed from file_name_lastdirchar.
Packit 33f14e
	All callers changed.
Packit 33f14e
	(could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
Packit 33f14e
	dev_may_have_duplicate_ino): Remove.
Packit 33f14e
	(HAVE_SETMODE, NULL_DEVICE): New macros.
Packit 33f14e
	(same_file): Do not check attributes.
Packit 33f14e
	(same_file_attributes): New macro.
Packit 33f14e
Packit 33f14e
	* src/util.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	int -> size_t for sizes.
Packit 33f14e
	Use angle-brackets when including quotesys.h.
Packit 33f14e
	Include error.h, regex.h, xalloc.h.
Packit 33f14e
	(message5): sizeof -> offsetof
Packit 33f14e
	(begin_output): Invoke pr without -f.
Packit 33f14e
	(lines_differ): Renamed from line_cmp, and return bool not 3-way int.
Packit 33f14e
	All callers changed.
Packit 33f14e
	Add support for IGNORE_TAB_EXPANSION.
Packit 33f14e
	(change_letter): Now an array rather than a function.  All
Packit 33f14e
	callers changed.
Packit 33f14e
	(translate_range): Translate line numbers to long, not lin,
Packit 33f14e
	for convenience with printf.
Packit 33f14e
	(analyze_hunk): Return enum changes instead of a count of
Packit 33f14e
	inserts and deletes.  All callers changed.
Packit 33f14e
	(zalloc): New function.
Packit 33f14e
Packit 33f14e
	* src/side.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
Packit 33f14e
	* src/sdiff.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	Use angle-brackets when including getopt.h, quotesys.h.
Packit 33f14e
	Include error.h, freesoft.h, stdio.h, xalloc.h.
Packit 33f14e
	(copyright_string): Use only most recent year.
Packit 33f14e
	(authorship_msgid, option_help_msgid): Wrap in N_().
Packit 33f14e
Packit 33f14e
	(tmpname): Now volatile.
Packit 33f14e
	(tmpmade): Remove.
Packit 33f14e
	(tmp): New var.
Packit 33f14e
	(private_tempnam, exists, letters): Remove.
Packit 33f14e
	(temporary_file): New function.
Packit 33f14e
	(edit): Use it.
Packit 33f14e
	(interact): Use strtoumax, not atoi.
Packit 33f14e
Packit 33f14e
	* src/normal.c: Assume C89 or better.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
Packit 33f14e
	* src/io.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	int -> size_t for sizes.
Packit 33f14e
	Use angle-brackets when including cmpbuf.h.
Packit 33f14e
	Include regex.h, xalloc.h.
Packit 33f14e
	(word): Remove; now done in system.h.
Packit 33f14e
	(hash_value): New type; use it instead of 'unsigned' for hash values.
Packit 33f14e
	(file_block_read): New function.
Packit 33f14e
	(sip, slurp): Use it.  Now static.
Packit 33f14e
	(sip): Ensure block size is a multiple of word size.  Clear eof flag.
Packit 33f14e
	(slurp): Use xalloc_die to report memory exhaustion.
Packit 33f14e
	(find_and_hash_each_line): Use TOLOWER instead of _tolower.
Packit 33f14e
	Add support for IGNORE_TAB_EXPANSION.
Packit 33f14e
	(prepare_text_end): Strip trailing CR if requested.
Packit 33f14e
	(find_identical_ends): Prepare the text only once,
Packit 33f14e
	if they're duplicates.
Packit 33f14e
	Let the compiler take advantage more of the fact that the buffers are
Packit 33f14e
	word-aligned.
Packit 33f14e
	(primes): Remove.
Packit 33f14e
	(prime_offset): New var.
Packit 33f14e
	(read_var): Use prime_offset instead of primes.
Packit 33f14e
	Use zalloc instead of xmalloc + bzero.
Packit 33f14e
Packit 33f14e
	* src/ifdef.c: Assume C89 or better.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	(format_group): Use strtoumax to parse line numbers.
Packit 33f14e
	(format_group, print_ifdef_lines): Use do_printf_spec to
Packit 33f14e
	handle printf specs.
Packit 33f14e
	(groups_letter_value): Don't use _tolower; it's locale-dependent.
Packit 33f14e
	(do_printf_spec): Renamed from scan_printf_spec; now does the printing.
Packit 33f14e
Packit 33f14e
	* src/ed.c: Assume C89 or better.
Packit 33f14e
	int -> lin for line numbers (or 'long' when that's more convenient).
Packit 33f14e
	(print_ed_hunk): Fix bug when handling double-dot inserts.
Packit 33f14e
Packit 33f14e
	* src/dir.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	Include error.h, exclude.h, xalloc.h.
Packit 33f14e
Packit 33f14e
	(dir_sort): Return 0 on error, 1 on success.  All callers changed.
Packit 33f14e
	compare_names -> compare_names_for_qsort.
Packit 33f14e
Packit 33f14e
	(compare_names): Try strcasecmp if ignore_file_name_case.  Then try
Packit 33f14e
	strcoll.  Use file_name_cmp only as a last resort.  Warn about
Packit 33f14e
	strcasecmp or strcoll failure.
Packit 33f14e
	(compare_names_for_qsort): New function.
Packit 33f14e
Packit 33f14e
	(diff_dirs): Use compare_names rather than filename_cmp.
Packit 33f14e
Packit 33f14e
	* src/diff3.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	Use angle-brackets when including getopt.h, quotesys.h.
Packit 33f14e
	Include error.h, freesoft.h, inttostr.h, xalloc.h.
Packit 33f14e
	(copyright_string): Use only most recent year.
Packit 33f14e
	(authorship_msgid, option_help_msgid): Wrap in N_().
Packit 33f14e
Packit 33f14e
	Rename the following variables for consistency with user-visible
Packit 33f14e
	option spellings.  All uses changed.
Packit 33f14e
	(text): Renamed from always_text.
Packit 33f14e
	(initial_tab): Renamed from tab_align_flag.
Packit 33f14e
Packit 33f14e
	(horizon_lines): Remove.  Remove all uses.
Packit 33f14e
Packit 33f14e
	(main): Invoke bindtextdomain and textdomain after setlocale.
Packit 33f14e
	Rename "DIFF" to "DIFF_PROGRAM".
Packit 33f14e
Packit 33f14e
	Try to compare file0 to file1, because this is where changes are
Packit 33f14e
	expected to come from.  Diffing between these pairs of files is more
Packit 33f14e
	likely to avoid phantom changes from file0 to file1.
Packit 33f14e
	However, use file2 as the common file if this is a 3-way diff,
Packit 33f14e
	for backward compatibility.  Suggested by Karl Tomlinson.
Packit 33f14e
Packit 33f14e
	(create_diff3_block): Use xcalloc instead of malloc + bzero.
Packit 33f14e
Packit 33f14e
	(INT_STRLEN_BOUND): Remove; now in system.h.
Packit 33f14e
Packit 33f14e
	(read_diff): Always use --horizon-lines=100 rather than trying
Packit 33f14e
	to guess it.
Packit 33f14e
	Do not pass --inhibit-hunk-merge.
Packit 33f14e
	Minimum chunk size is 1, not 8KiB.
Packit 33f14e
	Use xalloc_die to report memory exhaustion.
Packit 33f14e
	(undotlines): Use long for start, not int.
Packit 33f14e
Packit 33f14e
	* src/diff.h: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	Don't include regex.h.
Packit 33f14e
	(enum changes): New enum.
Packit 33f14e
	(enum line_class): Remove; subsumed by enum changes.
Packit 33f14e
	(enum output_style): New constant OUTPUT_UNSPECIFIED.
Packit 33f14e
Packit 33f14e
	(ignore_space_change_flag, ignore_all_space_flag): Remove.
Packit 33f14e
	(ignore_white_space): New decl, subsuming the above two.  All
Packit 33f14e
	uses changed.
Packit 33f14e
Packit 33f14e
	Rename the following decls for consistency with user-visible
Packit 33f14e
	option spellings.  All uses changed.
Packit 33f14e
	(text): Renamed from always_text_flag.
Packit 33f14e
	(ignore_blank_lines): Renamed from ignore_blank_lines_flag.
Packit 33f14e
	(ignore_case): Renamed from ignore_case_flag.
Packit 33f14e
	(brief): Renamed from no_details_flag.
Packit 33f14e
	(initial_tab): Renamed from tab_align_flag.
Packit 33f14e
	(expand_tabs): Renamed from tab_expand_flag.
Packit 33f14e
	(starting_file): Renamed from dir_start_file.
Packit 33f14e
	(paginate): Renamed from paginate_flag.
Packit 33f14e
	(sdiff_merge_assist): Renamed from sdiff_help_sdiff.
Packit 33f14e
	(left_column): Renamed from sdiff_left_only.
Packit 33f14e
	(suppress_common_lines): Renamed from sdiff_skip_common_lines.
Packit 33f14e
	(speed_large_files): Renamed from heuristic.
Packit 33f14e
	(minimal): Renamed from no_discards.
Packit 33f14e
Packit 33f14e
	(inhibit_hunk_merge): Remove.
Packit 33f14e
Packit 33f14e
	(strip_trailing_cr, excluded, time_format): New decls.
Packit 33f14e
Packit 33f14e
	(files_can_be_treated_as_binary): Renamed from ignore_some_changes.
Packit 33f14e
Packit 33f14e
	(group_format, line_format): Now char const *[], not char *[].
Packit 33f14e
Packit 33f14e
	(struct file_data): Buffer is now word*, not char*, as it's always
Packit 33f14e
	aligned and this can help the compiler.  buffered_chars -> buffered
Packit 33f14e
	(since it's a byte count, not a char count).  All uses changed.
Packit 33f14e
	New member `eof'.
Packit 33f14e
Packit 33f14e
	(FILE_BUFFER): New macro.
Packit 33f14e
Packit 33f14e
	(excluded_filename, error, free_software_msgid): Remove decls; now in
Packit 33f14e
	other .h files.
Packit 33f14e
Packit 33f14e
	(sip, slurp): Remove decls.
Packit 33f14e
	(file_block_read): New decl.
Packit 33f14e
	(change_letter): Now an array, not a function.
Packit 33f14e
	(lines_differ): Renamed from line_cmp.
Packit 33f14e
	(analyze_hunk): Now returns enum changes rather than two change counts.
Packit 33f14e
Packit 33f14e
	* src/Makefile.am (diff_LDADD): New symbol.
Packit 33f14e
Packit 33f14e
	* src/diff.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	long -> off_t for line numbers.
Packit 33f14e
	Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h.
Packit 33f14e
	Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h,
Packit 33f14e
	regex.h, signal.h, xalloc.h.
Packit 33f14e
	(copyright_string): Use only most recent year.
Packit 33f14e
	(authorship_msgid, option_help_msgid): Wrap in N_().
Packit 33f14e
Packit 33f14e
	Rename the following variables for consistency with user-visible
Packit 33f14e
	option spellings.  All uses changed.
Packit 33f14e
	(binary): Renamed from binary_flag.
Packit 33f14e
	(new_file): Renamed from entire_new_file_flag.
Packit 33f14e
	(unidirectional_new_file): Renamed from unidirectional_new_file_flag.
Packit 33f14e
	(report_identical_files): Renamed from print_file_same_flag.
Packit 33f14e
Packit 33f14e
	(numeric_arg): Remove.
Packit 33f14e
Packit 33f14e
	(exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude,
Packit 33f14e
	add_exclude_file):
Packit 33f14e
	Remove; now done by exclude.h.
Packit 33f14e
Packit 33f14e
	(BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION,
Packit 33f14e
	IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION,
Packit 33f14e
	LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION,
Packit 33f14e
	SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION,
Packit 33f14e
	SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION,
Packit 33f14e
	UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION,
Packit 33f14e
	NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION,
Packit 33f14e
	OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION,
Packit 33f14e
	CHANGED_GROUP_FORMAT_OPTION): New constants.
Packit 33f14e
	(longopts, main): Use them.
Packit 33f14e
Packit 33f14e
	(longopts, main, option_help_msgid): Add -E, --from-file, --to-file.
Packit 33f14e
Packit 33f14e
	(main): Invoke bindtextdomain and textdomain after setlocale.
Packit 33f14e
	Use grep syntax, not Emacs, for regular expressions.
Packit 33f14e
	Use exclude.h, not our own functions.
Packit 33f14e
	Use ISO 8601 time format in hard locales.
Packit 33f14e
	Prepend DIFF_OPTIONS.
Packit 33f14e
	Don't update ignore_some_changes.
Packit 33f14e
	Use strtoumax instead of numeric_arg.
Packit 33f14e
	Use specify_value when appropriate.
Packit 33f14e
	error -> try_help when appropriate.
Packit 33f14e
	-p now means ^[[:alpha:]$_], not ^[_a-zA-Z$].
Packit 33f14e
	Ignore --inhibit-hunk-merge.
Packit 33f14e
	Prefer changed group formats to unchanged ones.
Packit 33f14e
	Remove now-unnecessary casts.
Packit 33f14e
	Set files_can_be_treated_as_binary.
Packit 33f14e
Packit 33f14e
	(specify_value): Renamed from specify_format.  All uses changed.
Packit 33f14e
Packit 33f14e
	(specify_style): Default is now unspecified, not normal.  All
Packit 33f14e
	uses changed.
Packit 33f14e
Packit 33f14e
	(set_mtime_to_now): New function.
Packit 33f14e
	(compare_files): Use it.  Use memset, not bzero.
Packit 33f14e
	Set stdin mtime to current time even when stdin is not a regular file.
Packit 33f14e
	Check for same file attributes, as well as for same file.
Packit 33f14e
	Use files_can_be_treated_as_binary.
Packit 33f14e
	"write failed" -> "standard output on output failure.
Packit 33f14e
Packit 33f14e
	* src/context.c: Assume C89 or better.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	Include inttostr.h, regex.h.
Packit 33f14e
	(TIMESPEC_NS): New macro.
Packit 33f14e
	(nstrftime): New decl.
Packit 33f14e
	(print_context_label): Use nstrftime and time_format to format times.
Packit 33f14e
	Print numeric timestamp value if localtime fails.
Packit 33f14e
	(print_context_function): New function.
Packit 33f14e
	(pr_context_hunk, pr_unidiff_hunk): Use it.
Packit 33f14e
	(find_function): Use size_t for sizes, not int.
Packit 33f14e
Packit 33f14e
	* src/cmp.c: Assume C89 or better.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	long -> off_t for line numbers.
Packit 33f14e
	Use angle-brackets when including cmpbuf.h, getopt.h.
Packit 33f14e
	Include error.h, freesoft.h, inttostr.h, xalloc.h.
Packit 33f14e
	(copyright_string): Use only most recent year.
Packit 33f14e
	(authorship_msgid): Wrap in N_().
Packit 33f14e
	(buffer): Now word*, not char*.  All uses changed.
Packit 33f14e
	(word): Remove macro; now in system.h.
Packit 33f14e
	(long_options, option_help_msgid, main): -c --print-chars ->
Packit 33f14e
	-b --print-bytes
Packit 33f14e
	(check_stdout): "write failed" -> "standard output"
Packit 33f14e
	(option_help_msgid): Wrap in N_().
Packit 33f14e
	(main): Invoke bindtextdomain and textdomain after setlocale.
Packit 33f14e
	Use strtoumax instead of doing the work ourselves.
Packit 33f14e
	Check for same_file_attributes as well as same_file.
Packit 33f14e
	(cmp): Use ssize_t for read returns, not size_t.
Packit 33f14e
	Do not assume that size_t is not narrower than int.
Packit 33f14e
	Do not assume that line numbers fit in 'long'.
Packit 33f14e
	(block_compare_and_count, block_compare):
Packit 33f14e
	Compiler now checks that buffers are word-aligned.
Packit 33f14e
	(block_compare_and_count): Count sizes with size_t, not long.
Packit 33f14e
	(sprintc): byte arg is unsigned char, not unsigned.
Packit 33f14e
Packit 33f14e
	* src/analyze.c: Assume C89 or better.
Packit 33f14e
	int -> lin for line numbers.
Packit 33f14e
	int -> bool for booleans.
Packit 33f14e
	unsigned int -> size_t for sizes.
Packit 33f14e
	Use angle-brackets when including cmpbuf.h.
Packit 33f14e
	Include error.h, regex.h, xalloc.h.
Packit 33f14e
	(discard_confusing_lines, diff_2_files): Use zalloc rather
Packit 33f14e
	than xalloc+bzero.
Packit 33f14e
	(discard_confusing_lines): unsigned int -> lin for values that
Packit 33f14e
	are really line numbers.
Packit 33f14e
	(shift_boundaries): Do not inhibit hunk merges.
Packit 33f14e
	(build_reverse_script, build_script, diff_2_files): Use |, not ||.
Packit 33f14e
	(diff_2_files): no_details_flag & ~ignore_some_changes ->
Packit 33f14e
	files_can_be_treated_as_binary.  Esure that buffer size is a multiple
Packit 33f14e
	of sizeof (word).  Use file_block_read to read buffers.
Packit 33f14e
	(diff_2_files): Abort if output style is not one of the
Packit 33f14e
	expected styles.
Packit 33f14e
Packit 33f14e
2001-11-23  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/Makefile.am, m4/vararrays.m4: New file.
Packit 33f14e
Packit 33f14e
	* m4/prereq.m4 (jm_PREREQ_READUTMP):
Packit 33f14e
	Remove, as it gives autoheader the willies.
Packit 33f14e
Packit 33f14e
	* m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c,
Packit 33f14e
	lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h,
Packit 33f14e
	lib/imaxtostr.c, lib/freesoft.h: New files.
Packit 33f14e
Packit 33f14e
	* lib/freesoft.c: Include config.h, freesoft.h rather than diff.h.
Packit 33f14e
	(free_software_msgid): Wrap contents in N_.
Packit 33f14e
Packit 33f14e
	* lib/cmpbuf.h: Use prototypes instead of old-style functions.
Packit 33f14e
Packit 33f14e
	* lib/cmpbuf.c:
Packit 33f14e
	Don't include system.h; instead, include config.h, unistd.h.
Packit 33f14e
	Use prototypes instead of old-style functions.
Packit 33f14e
	(block_read): Don't assume that int is no wider than size_t.
Packit 33f14e
Packit 33f14e
	* lib/Makefile.am, po/POTFILES.in: New file.
Packit 33f14e
Packit 33f14e
2001-11-22  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* pc/config.h:
Packit 33f14e
	Define filename_cmp as an object-like macro, not as a function-like
Packit 33f14e
	macro.
Packit 33f14e
Packit 33f14e
	* exgettext: Always operate in the C locale.
Packit 33f14e
	Set AWK using a method that works even with broken shells.
Packit 33f14e
Packit 33f14e
	* doc/Makefile.am: New file.
Packit 33f14e
Packit 33f14e
	* configure.ac (AC_INIT):
Packit 33f14e
	Use src/diff.c, not diff.h, as the source files got removed.
Packit 33f14e
	(AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER.
Packit 33f14e
	(AC_ARG_PROGRAM, AC_MINIX): Remove.
Packit 33f14e
Packit 33f14e
	(AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK,
Packit 33f14e
	AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS,
Packit 33f14e
	DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM,
Packit 33f14e
	AC_STRUCT_ST_MTIM_NSEC): Add.
Packit 33f14e
Packit 33f14e
	(PR_PROGRAM): AC_DEFINE.
Packit 33f14e
Packit 33f14e
	(AC_SYS_LARGEFILE): Use instead of our homebrew version.
Packit 33f14e
Packit 33f14e
	(_GNU_SOURCE): Define if not defined.
Packit 33f14e
Packit 33f14e
	(AC_CHECK_HEADERS): Add stdbool.h, unistd.h.
Packit 33f14e
	(AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t.
Packit 33f14e
	(AM_GNU_GETTEXT, XGETTEXT): Add.
Packit 33f14e
Packit 33f14e
	(WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove.
Packit 33f14e
	(HAVE_MEMCHR): Remove.
Packit 33f14e
	(AC_CHECK_FUNCS): Add diraccess.
Packit 33f14e
	(AC_REPLACE_FUNCS): Add memchr, waitpid.
Packit 33f14e
	(jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC,
Packit 33f14e
	 jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX,
Packit 33f14e
	 jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add.
Packit 33f14e
	(fnmatch.h, regex.h): Do not create these files unless we're using
Packit 33f14e
	our own fnmatch and regex.
Packit 33f14e
Packit 33f14e
	(AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile,
Packit 33f14e
	lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile.
Packit 33f14e
Packit 33f14e
	* Makefile.am: New file.
Packit 33f14e
Packit 33f14e
	* po/en_GB.po: Don't translate "program" to "programme".
Packit 33f14e
Packit 33f14e
2001-11-20  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* m4/prereq.m4: New file.
Packit 33f14e
Packit 33f14e
2001-03-16  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/tempname.c (uint64_t):
Packit 33f14e
	Define if not defined, and if UINT64_MAX is not defined.
Packit 33f14e
Packit 33f14e
2001-02-26  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/tempname.c: glibc 1.32
Packit 33f14e
Packit 33f14e
2001-02-17  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* m4/Makefile.am.in: GNU fileutils 4.1
Packit 33f14e
Packit 33f14e
2001-01-09  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/tempname.c (struct_stat64): New macro.
Packit 33f14e
	(direxists, __gen_tempname): Use it.  This avoids a portability problem
Packit 33f14e
	with Solaris 8.
Packit 33f14e
Packit 33f14e
	* lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H.
Packit 33f14e
	(<stddef.h>, <stdint.h>, <string.h>):
Packit 33f14e
	Include only if STDC_HEADERS || _LIBC.
Packit 33f14e
	(<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
Packit 33f14e
	(<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
Packit 33f14e
	(<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
Packit 33f14e
	(__set_errno): Define this macro if <errno.h> doesn't.
Packit 33f14e
	(P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
Packit 33f14e
	Define these macros if <stdio.h> doesn't.
Packit 33f14e
	(S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
Packit 33f14e
	Define these macros if <sys/stat.h>
Packit 33f14e
	doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
Packit 33f14e
	(stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
Packit 33f14e
	__xstat64): Define if not _LIBC.
Packit 33f14e
	(__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
Packit 33f14e
	(__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY
Packit 33f14e
	|| _LIBC; otherwise, fall back on plain "time".
Packit 33f14e
	Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
Packit 33f14e
Packit 33f14e
	* lib/mkstemp.c (__GT_FILE): Define to zero if not defined.
Packit 33f14e
Packit 33f14e
2000-10-25  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/hard-locale.c: New file.
Packit 33f14e
Packit 33f14e
2000-02-05  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* exgettext: From GCC repository
Packit 33f14e
Packit 33f14e
1999-07-06  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* lib/mkstemp.c: glibc 2.2
Packit 33f14e
Packit 33f14e
1998-12-11  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* src/sdiff.c (lf_snarf):
Packit 33f14e
	Fix bug when help line wrapped around the input buffer.
Packit 33f14e
Packit 33f14e
1998-09-15  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* diff.texi: Add @dircategory and @direntry.
Packit 33f14e
Packit 33f14e
1998-09-14  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* Makefile.in (VERSION): Version 2.7.2.
Packit 33f14e
	(DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
Packit 33f14e
	(PR_PROGRAM): All `configure' to define it.
Packit 33f14e
	(srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of
Packit 33f14e
	quote.c, quotearg.h.
Packit 33f14e
	(distfiles): Add acconfig.h, message/*.
Packit 33f14e
	(all): Depend on $(destfiles), not info.
Packit 33f14e
	(version.c): Parenthesize `GNU diffutils'.
Packit 33f14e
	(common_o): Add freesoft.o
Packit 33f14e
	(diff_o): quote.o -> quotearg.o
Packit 33f14e
	(diff3_o, sdiff_o): Likewise.
Packit 33f14e
	(diff.dvi): Depend on version.texi.
Packit 33f14e
	(diff.o diff3.o quotearg.o sdiff.o util.o):
Packit 33f14e
	New dependency on quotearg.h
Packit 33f14e
	(diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM.
Packit 33f14e
	(sdiff.o): Likewise.
Packit 33f14e
	(messages.po): Remove.
Packit 33f14e
	(message/msgid.po, message/template.po): New rules.
Packit 33f14e
	(maintainer-clean): Renamed from realclean.
Packit 33f14e
	(install): Install from source directory, if applicable.
Packit 33f14e
	Invoke install-info if needed.
Packit 33f14e
	(install-strip): New rule.
Packit 33f14e
	(check): Set DIFF.
Packit 33f14e
	(stamp-h.in): Don't put the date into the timestamp.
Packit 33f14e
	(D_dirs): Add $D/message.
Packit 33f14e
	($D.tar.gz): Compress with gzip -9.
Packit 33f14e
	Don't use ln to create distribution; it doesn't work with symlinks.
Packit 33f14e
	(srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to
Packit 33f14e
	quotesys.c and quotearg.h to quotesys.h.
Packit 33f14e
Packit 33f14e
	* configure.in (AC_PATH_PROG): Add PR_PROGRAM.
Packit 33f14e
	If available, prefer support for large files unless the user specified
Packit 33f14e
	one of the CPPFLAGS, LDFLAGS, or LIBS variables.
Packit 33f14e
	(AC_STRUCT_ST_RDEV): Add.
Packit 33f14e
	(HAVE_ST_FSTYPE_STRING): Add.
Packit 33f14e
	(--with-mvfs-stat-bug, --with-nfs-stat-bug): New options.
Packit 33f14e
	(HAVE_MEMCHR): New macro.
Packit 33f14e
	(AC_CHECK_FUNCS): Add sicprocmask.
Packit 33f14e
Packit 33f14e
	* diff.h (XTERN): Renamed from EXTERN.
Packit 33f14e
	(struct filedata): Remove dir_p arg.
Packit 33f14e
	(struct comparison): New type.
Packit 33f14e
	(diff_2_files, diff_dirs)" Ise ot/
Packit 33f14e
	(error): Add printf attribute if applicable.
Packit 33f14e
	(free_software_msgid): New decl.
Packit 33f14e
	(pr_program): New decl.
Packit 33f14e
	(fatal): Add noreturn attribute.
Packit 33f14e
	(pfatal_with_name): Likewise.
Packit 33f14e
Packit 33f14e
	* system.h (__attribute__): New macro.
Packit 33f14e
	(getenv): Don't declare if HAVE_STDLIB_H.
Packit 33f14e
	(CHAR_MAX): New macro.
Packit 33f14e
	(<locale.h>): New include.
Packit 33f14e
	(<locale.h>): Include before <libintl.h>.
Packit 33f14e
	(could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
Packit 33f14e
	dev_may_have_duplicate_ino, same_special_file): New macros.
Packit 33f14e
	(same_file): Use them.
Packit 33f14e
Packit 33f14e
	* cmp.c (authorship_msgid): New var.
Packit 33f14e
	(free_software_msgid): New decl.
Packit 33f14e
	(error): Now has printf attribute.
Packit 33f14e
	(try_help): Likewise.
Packit 33f14e
	(long_options): Don't assume ASCII.
Packit 33f14e
	(try_help): Now accepts operand arg.
Packit 33f14e
	(main): Check for -1, not EOF, when calling getopt_long.
Packit 33f14e
	Report --ignore-initial value when complaining about it.
Packit 33f14e
	Output copyright and free software info with -v.
Packit 33f14e
	Don't assume ASCII.
Packit 33f14e
	Report last operand when one is missing.
Packit 33f14e
	Report text of extra operand.
Packit 33f14e
	Move block_read into cmpbuf.c.
Packit 33f14e
Packit 33f14e
	* diff.c (authorship_msgid): New var.
Packit 33f14e
	(quotesys.h): Include.
Packit 33f14e
	(ck_atoi): Remove.
Packit 33f14e
	(function_regexp_list, ignore_regexp_list): Now static.
Packit 33f14e
	(binary_flag): Renamed from binary_I_O.
Packit 33f14e
	(entire_new_file_flag, unidirectional_new_file_flag,
Packit 33f14e
	print_file_same_flag): Now static.
Packit 33f14e
	(numeric_arg): Renamed from ck_atoi.
Packit 33f14e
	New argument specifying the argument type.
Packit 33f14e
	(longopts, main): Don't assume ASCII.
Packit 33f14e
	(longopts): Remove old aliases --file-label, --entire-new-file,
Packit 33f14e
	--ascii, --print.
Packit 33f14e
	(main): Check for -1, not EOF, when calling getopt_long.
Packit 33f14e
	Use numeric_arg to report errors.
Packit 33f14e
	Report error if -l specified but pagination is not supported.
Packit 33f14e
	Report error if -S is specified twice with conflicting values.
Packit 33f14e
	Have --version conform to the new GNU standards.
Packit 33f14e
	Add new --from-file, --to-file, --inhibit-hun,-merge options.
Packit 33f14e
	Make the horizon at least as large as the context.
Packit 33f14e
	Add casts to pacify gcc -Wall.
Packit 33f14e
	(try_help): Add operand arg.
Packit 33f14e
	(option_help_msgid): Doc fix to match above.
Packit 33f14e
	(usage): Indent option_help_msgid.
Packit 33f14e
	(compare_files): Now takes struct comparison
Packit 33f14e
	instead of two directory names and a depth.
Packit 33f14e
	(NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE):
Packit 33f14e
	New macros.
Packit 33f14e
	(DIR_P): New macro.
Packit 33f14e
	Report error if fflush does.
Packit 33f14e
Packit 33f14e
	* cmpbuf.c (block_read): Moved here from cmp.c.
Packit 33f14e
Packit 33f14e
	* cmpbuf.h (block_read): New decl.
Packit 33f14e
Packit 33f14e
	* io.c (cmpbuf.h): Include.
Packit 33f14e
	(slurp): Check for arithmetic overflow when computing buffer size.
Packit 33f14e
Packit 33f14e
	* dir.c (diff_dirs): Check for recursive directory loop.
Packit 33f14e
	Arg is now struct comparison const *.
Packit 33f14e
	(dir_loop): New function
Packit 33f14e
Packit 33f14e
	* analyze.c (no_discards): Remove.
Packit 33f14e
	(inhibit): Remove.
Packit 33f14e
	(shift_boundaries): Don't inhibit.  If inhibit_hunk_merge is nonzero,
Packit 33f14e
	don't merge hunks.
Packit 33f14e
	(briefly_report): Now returns 2 if trouble, CHANGES otherwise.
Packit 33f14e
	(diff_2_files): Now takes struct comparison.  If briefly_report reports
Packit 33f14e
	trouble, pass it on to caller.
Packit 33f14e
Packit 33f14e
	* side.c (print_half_line): Add brackets to pacify GCC -Wall.
Packit 33f14e
Packit 33f14e
	* sdiff.c (quotesys.h): Include.
Packit 33f14e
	(DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove.
Packit 33f14e
	(free_software_msgid, editor_program, not_found): New vars.
Packit 33f14e
	(diffbin, edbin): Remove.
Packit 33f14e
	(editor_program): Renamed from edbin.
Packit 33f14e
	(edit, interact): Now take extra string arg.
Packit 33f14e
	(exiterr, fatal, perror_fatal, try_help): Add noreturn attribute.
Packit 33f14e
	(sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK):
Packit 33f14e
	(sigprocmask): New macros, if !HAVE_SIGPROCMASK.
Packit 33f14e
	(error): Now has printf attribute.
Packit 33f14e
	(longopts, main): Don't assume ASCII.
Packit 33f14e
	(try_help): New operand arg.
Packit 33f14e
	(usage): Conform to new GNU standards.
Packit 33f14e
	(main): Set static vars for editor and diff program.
Packit 33f14e
	Compare getopt_long result to -1, not EOF.
Packit 33f14e
	-v conforms to new GNU standard.
Packit 33f14e
	Complain better about extra and missing operands.
Packit 33f14e
	If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when
Packit 33f14e
	the child munges its handlers it may somp on the parent.
Packit 33f14e
	Pass rname to intract.
Packit 33f14e
	Translate not-found message before forking.
Packit 33f14e
	(give_help): Just output it all at once.
Packit 33f14e
	(edit): New args lname, lline, rname, rline.
Packit 33f14e
	(edit): New command 'd'.
Packit 33f14e
	(interact): New args lname, rname.
Packit 33f14e
Packit 33f14e
	* util.c (quotesys.h): Include.
Packit 33f14e
	(PR_PROGRAM): New macro.
Packit 33f14e
	(pfatal_with_name): Abort if error returns.
Packit 33f14e
	(fatal): Likewise.
Packit 33f14e
	(print_message_queue): Free message chain after printing.
Packit 33f14e
	(currently_recursive): Renamed from current_depth, and now a boolean.
Packit 33f14e
	(begin_output): Report error if fflush does.
Packit 33f14e
	Avoid stdio and gettext in child.
Packit 33f14e
Packit 33f14e
	* diff3.c (quotesys.h): Include.
Packit 33f14e
	(free_software_msgid): New decl.
Packit 33f14e
	(RANGE_START, RANGE_END): Renamed from START and END.
Packit 33f14e
	(fatal, perror_with_exit, try_help): Add noreturn attribute.
Packit 33f14e
	(error): Add printf attribute.
Packit 33f14e
	(diff_program): Now a ptr, not an array.
Packit 33f14e
	Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM.
Packit 33f14e
	(longopts, main): Don't assume ASCII.
Packit 33f14e
	(main): Use DIFF environment var to specify name of diff program.
Packit 33f14e
	Compare getopt_long result to -1, not EOF.
Packit 33f14e
	-v now reports version according to new GNU standard.
Packit 33f14e
	Report spelling of extra operand, or last operand before missing one.
Packit 33f14e
	(try_help): Now takes operand arg.
Packit 33f14e
	(option_help_ms): Fix typo: missing comma.
Packit 33f14e
	(usage): Update as per current GNU standards.
Packit 33f14e
	(environ): Remove decl.
Packit 33f14e
	(read_diff): Invoke diff with --inhibit-hunk-merge.
Packit 33f14e
	Translate `not found' message before forking.
Packit 33f14e
	Quote name of diff program.
Packit 33f14e
	Pass horizon lines.
Packit 33f14e
	`memory exhausted' -> `Memory exhausted'
Packit 33f14e
Packit 33f14e
	* pc/makefile (%.exe): Remove.
Packit 33f14e
	(pc-clean): Remove *.exe
Packit 33f14e
	* pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
Packit 33f14e
	When editing mkinstalldirs rule, look for exec_prefix and prefix.
Packit 33f14e
	Add .exe when installing files.
Packit 33f14e
	* pc/emx/config.h (same_file): Add.
Packit 33f14e
	* pc/config.h (same_file): Remove.
Packit 33f14e
	* pc/djgpp/config.h: Adjust to latest patch from eliz.
Packit 33f14e
	* pc/djgpp/makefile.sed: Don't alter PROGRAMS.
Packit 33f14e
	* pc/pc.c: Update FSF address.
Packit 33f14e
	(quote_system_arg): Renamed from system_quote_arg.
Packit 33f14e
Packit 33f14e
	* README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug.
Packit 33f14e
Packit 33f14e
	* getmsgids: Add copyright date and update FSF address.
Packit 33f14e
Packit 33f14e
	* diff.texi: Document recent changes.
Packit 33f14e
	The patch doc still corresponds to patch 2.2, unfortunately.
Packit 33f14e
	Update GNU bug reporting address.  Omit Larry Wall's address;
Packit 33f14e
	it's obsolete and he's busy with perl.
Packit 33f14e
Packit 33f14e
	* context.c: Fix spacing.
Packit 33f14e
Packit 33f14e
	* NEWS: Mention --from-file=FILE, --to-file=FILE, ed.
Packit 33f14e
Packit 33f14e
	* acconfig.h, freesoft.c, message/de.po, message/en_UK.po,
Packit 33f14e
	message/es.po, message/fr.po, message/pl.po, message/sv.po:
Packit 33f14e
	New files.
Packit 33f14e
Packit 33f14e
	* ed.c: Remove `#if 0'ed code.
Packit 33f14e
Packit 33f14e
	* normal.c, waitpid.c: Update FSF address.
Packit 33f14e
Packit 33f14e
1998-03-15  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* quotesys.c: Renamed from quotearg.c.
Packit 33f14e
Packit 33f14e
	* quotesys.h: Renamed from quotearg.h
Packit 33f14e
	(__QUOTESYS_P): Renamed from __QUOTEARG_P.
Packit 33f14e
Packit 33f14e
1997-05-05  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* quotesys.c, quotesys.h: New file.
Packit 33f14e
Packit 33f14e
Mon Nov 14 05:10:56 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	Add internationalization support.
Packit 33f14e
	Several messages have been changed slightly,
Packit 33f14e
	to make them more consistent and easier to translate.
Packit 33f14e
	All strings that are messages are passed through gettext once before
Packit 33f14e
	being used, so that they can be localized.
Packit 33f14e
	Each function and macro whose first parameter is a gettext msgid
Packit 33f14e
	has had its first parameter's name changed so it ends in `msgid'.
Packit 33f14e
	All arrays of msgids have had their names changed to end in `msgid'.
Packit 33f14e
	`getmsgids' uses this to determine which strings are msgids.
Packit 33f14e
Packit 33f14e
	* pc/COPYING, pc/INSTALL, pc/config.h,
Packit 33f14e
	pc/djgpp/config.h, pc/djgpp/makefile.sed,
Packit 33f14e
	pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def,
Packit 33f14e
	pc/emx/makefile.sed,
Packit 33f14e
	pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support.
Packit 33f14e
Packit 33f14e
	* getmsgids: New file.
Packit 33f14e
Packit 33f14e
	* Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars.
Packit 33f14e
	(version.c, version.texi, messages.po): New files.
Packit 33f14e
	messages.po is built automatically from source files and `getmsgids'.
Packit 33f14e
	(distfiles): Add them, pc/*, and getmsgids.
Packit 33f14e
	(diff.info): Now depends on version.texi.
Packit 33f14e
	(realclean): Clean messages.po, version.*.
Packit 33f14e
	(dist): Just build $D.tar.gz.
Packit 33f14e
	($D.tar.gz): New file, takes over old `dist' function.
Packit 33f14e
	Don't assume $(distfiles) are all in same directory.
Packit 33f14e
Packit 33f14e
	* configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h.
Packit 33f14e
	(AC_CHECK_LIB): Check for -lintl.
Packit 33f14e
Packit 33f14e
	* analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as
Packit 33f14e
	`if (A) message ("B") : message ("C")'; this is for getmsgids.
Packit 33f14e
	(briefly_report, diff_2_files): For label, use file_label if set.
Packit 33f14e
	* diff.c (compare_files): Likewise.
Packit 33f14e
Packit 33f14e
	* system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H.
Packit 33f14e
	(setlocale): Declare; use a stub if ! HAVE_LOCALE_H.
Packit 33f14e
Packit 33f14e
	* cmp.c, diff.c, diff3.c, sdiff.c (main):
Packit 33f14e
	Invoke setlocale first thing, to tell library we're internationalized.
Packit 33f14e
	(option_help_msgid): New constant.
Packit 33f14e
	(usage): Use it, so message is translated one option at a time.
Packit 33f14e
	* sdiff (help_msgid, give_help): Likewise.
Packit 33f14e
Packit 33f14e
	* cmp.c (sprintc): Renamed from `printc'.
Packit 33f14e
	Now outputs to a buffer instead of stdout.
Packit 33f14e
	(cmp): Use new sprintc; it's easier to internationalize.
Packit 33f14e
Packit 33f14e
	* diff.c (main): -D FOO now outputs `/* ! FOO */ instead of
Packit 33f14e
	`/* not FOO */'.
Packit 33f14e
Packit 33f14e
	* sdiff.c (version_string): Fix decl typo: `const' was missing.
Packit 33f14e
	(trapsigs): Ignore sigaction failure, to be compatible with `signal'.
Packit 33f14e
Packit 33f14e
	* util.c (struct msg, message5, print_message_queue):
Packit 33f14e
	Allocate just one block of memory to save a message.
Packit 33f14e
Packit 33f14e
Wed Nov  9 17:42:44 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* sdiff.c (trapsigs): Don't check signal return value, since it's
Packit 33f14e
	bogus under djgpp.
Packit 33f14e
Packit 33f14e
Mon Oct 31 07:27:27 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* Makefile.in (srcs, diff_o, diff3_o, sdiff_o):
Packit 33f14e
	New files quote.c, quote.o.
Packit 33f14e
Packit 33f14e
	* diff.h (function_regexp, ignore_regexp): Replace lists of compiled
Packit 33f14e
	regexps with these single compiled regexps.  All users changed.
Packit 33f14e
	(regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c.
Packit 33f14e
	* diff.c (add_regexp): Build one big regexp instead of a regexp list.
Packit 33f14e
	(summarize_regexp_list): New function.
Packit 33f14e
	(regexp_list): Redesigned struct; moved here from diff.h.
Packit 33f14e
	(function_regexp_list, ignore_regexp_list): Likewise, for vars.
Packit 33f14e
Packit 33f14e
	* context.c (find_function): Simplify interface:
Packit 33f14e
	don't return size of function line.  All callers changed.
Packit 33f14e
	(print_context_script, find_function): INT_MAX now denotes no
Packit 33f14e
	previous match; this is simpler than `- file->prefix_lines - 1'.
Packit 33f14e
Packit 33f14e
	* diff3.c (read_diff): Quote arguments with system_quote_arg.
Packit 33f14e
	* sdiff.c (main): Use system_quote_arg to compute command.
Packit 33f14e
	* diff.c (option_list): Quote options with system_quote_arg.
Packit 33f14e
	* util.c (begin_output): Use system_quote_arg to compute command.
Packit 33f14e
Packit 33f14e
	* util.c (pr_program): New var.
Packit 33f14e
	(analyze_hunk): Fix off-by-1 line length bug.
Packit 33f14e
	Match with one big regexp instead of a list of regexps.
Packit 33f14e
	Use new `trivial_length' local instead of comparing first byte to `\n'.
Packit 33f14e
	Help the compiler with linbuf local vars.
Packit 33f14e
Packit 33f14e
	* system.h (system_quote_arg):
Packit 33f14e
	New function; replaces SYSTEM_QUOTE_ARG macro.
Packit 33f14e
Packit 33f14e
Sat Oct 15 20:09:12 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* system.h (_tolower): Define if not already defined.
Packit 33f14e
	* io.c (find_and_hash_each_line): Change tolower to _tolower; this
Packit 33f14e
	speeds up diff -i considerably on some hosts (e.g. Solaris 2.3).
Packit 33f14e
	* util.c (line_cmp): Likewise.
Packit 33f14e
	* ifdef.c (groups_letter_value): Likewise.
Packit 33f14e
Packit 33f14e
	* diff.h (ignore_some_line_changes): Remove.  All users changed.
Packit 33f14e
	* io.c (find_and_hash_each_line): Don't invoke line_cmp if the length
Packit 33f14e
	differs and -i is in force.  Don't assume ISSPACE ('\n') is nonzero.
Packit 33f14e
Packit 33f14e
	* diff.h (xmalloc_exit_failure): New variable.
Packit 33f14e
	All `main' programs set this variable at the start.
Packit 33f14e
	xmalloc and xrealloc are now taken from GNU library.
Packit 33f14e
	* cmp.c (main): Align buffer size to word size; some mallocs care.
Packit 33f14e
	* io.c (slurp): Likewise.
Packit 33f14e
	* diff.c (add_exclude): Can now assume xrealloc (0, ...) works.
Packit 33f14e
	(add_regexp): Free storage on failure.  Allocate storage all at one go.
Packit 33f14e
	* system.h (malloc, realloc): Remove unused declarations.
Packit 33f14e
	* diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove.
Packit 33f14e
	* sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics.
Packit 33f14e
Packit 33f14e
	* io.c (ROL): Use sizeof to make it more generic.
Packit 33f14e
Packit 33f14e
	* Makefile.in (common_o): New variable.
Packit 33f14e
	Link error.o and xmalloc.o into all programs.
Packit 33f14e
	(check): Depend on $(PROGRAMS).
Packit 33f14e
Packit 33f14e
	* diff.h (error): Change to GNU library standard.  All callers changed.
Packit 33f14e
	* diff3.c (main): Use strerror (EISDIR) instead of "Is a directory".
Packit 33f14e
	(fatal, perror_with_exit): Use `error'.
Packit 33f14e
	* util.c (perror_with_name, fatal): Use GNU `error'.
Packit 33f14e
	(error): Remove.
Packit 33f14e
Packit 33f14e
Wed Oct 12 17:04:40 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* cmp.c (main): Set xmalloc_exit_failure.
Packit 33f14e
Packit 33f14e
Sat Oct  1 05:24:19 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* Version 2.7 released.
Packit 33f14e
Packit 33f14e
	* configure.in (AC_HEADER_SYS_WAIT): Add.
Packit 33f14e
	(AC_CHECK_HEADERS): Remove sys/wait.h.
Packit 33f14e
	(AC_CHECK_FUNCS): Add tmpnam.
Packit 33f14e
	* system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme
Packit 33f14e
	now that HAVE_SYS_WAIT_H is not set on hosts
Packit 33f14e
	that are incompatible with Posix applications.
Packit 33f14e
Packit 33f14e
	* util.c (dir_file_pathname): Use filename_lastdirchar not strrchr.
Packit 33f14e
	* sdiff.c (expand_name): Likewise.
Packit 33f14e
	(private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting.
Packit 33f14e
	(exists, letters): Omit if HAVE_TMPNAM.
Packit 33f14e
Packit 33f14e
	* diff3.c (read_diff): If STAT_BLOCKSIZE yields zero,
Packit 33f14e
	adjust it to a more reasonable value.
Packit 33f14e
Packit 33f14e
Sat Sep 24 20:36:40 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm.
Packit 33f14e
	(private_tempnam): Specialize for sdiff to avoid portability problems.
Packit 33f14e
Packit 33f14e
Thu Sep 22 16:47:00 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* configure.in (AC_ARG_PROGRAM): Added.
Packit 33f14e
	(AC_OUTPUT): Add [date > stamp-h].
Packit 33f14e
Packit 33f14e
	* Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS,
Packit 33f14e
	NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables.
Packit 33f14e
	(check, stamp-h.in, cmp.o, util.o): New targets.
Packit 33f14e
	(edit_program_name): New variable; replaces old binprefix method.
Packit 33f14e
	(install, uninstall): Use it.
Packit 33f14e
	(binprefix): Removed.
Packit 33f14e
	(distfiles): Add stamp-h.in.
Packit 33f14e
	(clean): Clean stamp-h.
Packit 33f14e
	(config.hin, config.h): Use timestamp files.
Packit 33f14e
	(cmp_o): Add $(LIBOBJS).
Packit 33f14e
	(install): Install info files from srcdir if they're not in `.'.
Packit 33f14e
Packit 33f14e
	* cmp.c, io.c (word): Don't define if already defined.
Packit 33f14e
Packit 33f14e
	* comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin.
Packit 33f14e
	Use NULL_DEVICE instead of "/dev/null".
Packit 33f14e
	(cmp): Use %lu instead of %ld when it is more likely to be right.
Packit 33f14e
Packit 33f14e
	* diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in,
Packit 33f14e
	util.c.
Packit 33f14e
Packit 33f14e
	* diff3.c (main): Give proper diagnostic if too many labels were given.
Packit 33f14e
	(read_diff): Use SYSTEM_QUOTE_ARG.
Packit 33f14e
Packit 33f14e
	* system.h: <string.h>: Include if HAVE_STRING_H, too.
Packit 33f14e
	<ctype.h>: Include here.  All includers changed.
Packit 33f14e
	(CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that
Packit 33f14e
	work around common <ctype.h> problems.
Packit 33f14e
	(O_BINARY): Remove.
Packit 33f14e
	(SYSTEM_QUOTE_ARG): New macros.
Packit 33f14e
Packit 33f14e
	* diff.c: Add comment.
Packit 33f14e
Packit 33f14e
	* util.c (PR_PROGRAM): Moved here from diff.h.
Packit 33f14e
	(begin_output): Use SYSTEM_QUOTE_ARG.
Packit 33f14e
Packit 33f14e
	* io.c (read_files): Set mode to binary before returning 1.
Packit 33f14e
Packit 33f14e
	* sdiff.c (TMPDIR_ENV): New macro.
Packit 33f14e
	(DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency.
Packit 33f14e
	(expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype
Packit 33f14e
	namespace contamination.
Packit 33f14e
	(main): Use SYSTEM_QUOTE_ARG.
Packit 33f14e
	(private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir.
Packit 33f14e
Packit 33f14e
Tue Sep 13 18:46:43 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* configure.in (AC_FUNC_MEMCHR): Remove.  Autoconf didn't adopt this,
Packit 33f14e
	since we need not worry about an old experimental library
Packit 33f14e
	where memchr didn't work.
Packit 33f14e
	(AC_FUNC_MEMCMP): Not needed, since we only test for equality.
Packit 33f14e
	(AC_REPLACE_FUNCS): Add test for memchr.
Packit 33f14e
	(AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached.
Packit 33f14e
	(AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts.
Packit 33f14e
Packit 33f14e
	* system.h (memcmp): Define in terms of bcmp.
Packit 33f14e
	Use HAVE_MEMCHR to test for all mem* routines.
Packit 33f14e
Packit 33f14e
	* Makefile.in (srcs): Remove memcmp.c.
Packit 33f14e
	We use bcmp if memcmp doesn't work, since we only test for equality.
Packit 33f14e
Packit 33f14e
Mon Sep 12 15:52:22 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin.
Packit 33f14e
	(AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2.
Packit 33f14e
	(AC_CHECK_HEADERS): Remove now-redundant check for <string.h>.
Packit 33f14e
	(AC_CHECK_FUNCS): Check for strchr.
Packit 33f14e
	(AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose
Packit 33f14e
	macros when suitable.
Packit 33f14e
	* memcmp.c: New file.
Packit 33f14e
	* Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix):
Packit 33f14e
	Default to autoconf-specified strings.
Packit 33f14e
	(COMPILE): Use the defaults.
Packit 33f14e
	(srcs): Add memcmp.c.
Packit 33f14e
	(distfiles): Rename config.h.in->config.hin, install.sh->install-sh.
Packit 33f14e
	(Makefile, config.h, config.hin, config.status): Rework for
Packit 33f14e
	compatibility with Autoconf 2.
Packit 33f14e
	* io.c (binary_file_p): Assume non-broken memchr.
Packit 33f14e
	* memchr.c: Assume compiler understands void *; otherwise
Packit 33f14e
	we don't match GCC's internal declaration of memchr.
Packit 33f14e
	* system.h: Use more modern autoconf approach to standard C headers.
Packit 33f14e
	* version.c: Include <config.h>, not "config.h".
Packit 33f14e
Packit 33f14e
	* diff.c, diff.h (ignore_some_line_changes):
Packit 33f14e
	New variable; replaces `length_varies'.
Packit 33f14e
	(line_end_char): Replace with '\n'; it wasn't being used consistently.
Packit 33f14e
Packit 33f14e
	* io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and
Packit 33f14e
	incomplete lines.  Put incomplete lines into their own bucket.
Packit 33f14e
	This means line_cmp no longer needs line length arguments,
Packit 33f14e
	and equivalence classes' line lengths no longer need to include \n.
Packit 33f14e
	Invoke line_cmp only if ignore_some_line_changes.
Packit 33f14e
	(prepare_text_end): -B no longer ignores missing newlines.
Packit 33f14e
	(read_files): Allocate another bucket for incomplete lines.
Packit 33f14e
Packit 33f14e
	* util.c (line_cmp): Now takes just two arguments.  No longer
Packit 33f14e
	optimizes for common case of exact equality; the caller does that
Packit 33f14e
	optimization now.  The caller is changed accordingly.
Packit 33f14e
	Optimize for the common case of mostly equality.
Packit 33f14e
	Use isupper+tolower instead of islower+toupper, for consistency.
Packit 33f14e
Packit 33f14e
	* waitpid.c (waitpid): Fix typo with internal scoping.
Packit 33f14e
Packit 33f14e
Thu Sep  8 08:23:15 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* configure.in: Revamp for Autoconf 2.
Packit 33f14e
	* memchr.c, waitpid.c: New source files for substitute functions.
Packit 33f14e
	* Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS).
Packit 33f14e
	(srcs): Add memchr.c, waitpid.c.
Packit 33f14e
	(distfiles): Add install.sh, memchr.c, waitpid.c, install.sh.
Packit 33f14e
	* system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs.
Packit 33f14e
	* dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name).
Packit 33f14e
	Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2.
Packit 33f14e
	* sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes.
Packit 33f14e
	* diff3.c (read_diff): Use new waitpid substitute.
Packit 33f14e
Packit 33f14e
	* cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns.
Packit 33f14e
	(usage): Just print more detailed usage message; let caller exit.
Packit 33f14e
	* diff.c (option_help): New variable.
Packit 33f14e
	(filetype): Add Posix.1b file types.
Packit 33f14e
Packit 33f14e
Fri Sep  2 16:01:49 1994  Paul Eggert  <eggert@twinsun.com>
Packit 33f14e
Packit 33f14e
	* configure.in: Switch to new autoconf names.  Add sys/file.h test.
Packit 33f14e
	* Makefile.in (distclean): Clean config.cache, config.log
Packit 33f14e
	(used by new autoconf).
Packit 33f14e
Packit 33f14e
	* diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children,
Packit 33f14e
	make sure SIGCHLD isn't ignored.
Packit 33f14e
Packit 33f14e
	* diff3.c (DIFF_CHUNK_SIZE): Removed.  Get size from STAT_BLOCKSIZE.
Packit 33f14e
	(INT_STRLEN_BOUND): New macro.
Packit 33f14e
Packit 33f14e
	* ifdef.c (format_group, groups_letter_value):
Packit 33f14e
	Use * instead of [] in prototypes.
Packit 33f14e
Packit 33f14e
	* system.h: Include <sys/file.h> only if HAVE_SYS_FILE_H.
Packit 33f14e
	(S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros.
Packit 33f14e
Packit 33f14e
	* util.c (begin_output): Check fdopen result.
Packit 33f14e
Packit 33f14e
	The following changes simplify porting to non-Posix environments.
Packit 33f14e
	* cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first.
Packit 33f14e
	* diff.c (binary_I_O): New variable for --binary option.
Packit 33f14e
	(main, usage, compare_files): Support --binary option.
Packit 33f14e
	(compare_files): Use filename_lastdirchar to find last
Packit 33f14e
	directory char in a file name.
Packit 33f14e
	* cmp.c (main), diff.c (compare_files), dir.c (compare_names,
Packit 33f14e
	diff_dirs): Use filename_cmp to compare file names.
Packit 33f14e
	Use same_file to determine whether two files are the same.
Packit 33f14e
	* context.c (print_context_label): Check whether ctime yields 0.
Packit 33f14e
	* diff3.c (read_diff), sdiff.c (cleanup, main, waitpid),
Packit 33f14e
	util.c (begin_output): Use popen+pclose if !HAVE_FORK.
Packit 33f14e
	* io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode.
Packit 33f14e
	* sdiff.c (ck_fdopen): Function removed.
Packit 33f14e
	(edit): Use system if !HAVE_FORK.
Packit 33f14e
	(execdiff): Now assumes caller has pushed all args, plus trailing 0.
Packit 33f14e
	All callers changed.
Packit 33f14e
	(private_tempnam): Try TMP if TMPDIR isn't defined.
Packit 33f14e
	Fit temporary filenames into 8.3 limit.
Packit 33f14e
	* system.h (STAT_BLOCKSIZE): Don't define if already defined.
Packit 33f14e
	(min, max): Undef if already defined.
Packit 33f14e
	(filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE,
Packit 33f14e
	initialize_main, O_BINARY, same_file): New macros.
Packit 33f14e
Packit 33f14e
Fri Jun 17 11:23:53 1994  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (info, dvi, diff.dvi): New targets.
Packit 33f14e
	(clean): Remove TeX output files.
Packit 33f14e
Packit 33f14e
Fri Jun 17 05:37:52 1994  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* cmp.c, io.c (word): Change from typedef to #define, to avoid
Packit 33f14e
	collision with Unicos 8.0 <sys/types.h>, which also typedefs `word'.
Packit 33f14e
Packit 33f14e
Thu Apr 15 00:53:01 1994  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff3.c (scan_diff_line), util.c (print_number_range): Don't
Packit 33f14e
	rely on promotion to make the old-style parameter type agree
Packit 33f14e
	with the prototype parameter type; this doesn't work on
Packit 33f14e
	Apollos running bsd4.3.
Packit 33f14e
Packit 33f14e
Mon Jan  3 02:05:51 1994  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Makefile.in (LDFLAGS): Remove -g.  Change all link commands
Packit 33f14e
	to use both $(CFLAGS) and $(LDFLAGS).
Packit 33f14e
Packit 33f14e
Mon Dec 13 12:23:27 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* system.h: Don't assume dirent.h exists just because
Packit 33f14e
	_POSIX_VERSION is defined.
Packit 33f14e
Packit 33f14e
Fri Dec  3 18:39:39 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (main): allow -pu.
Packit 33f14e
Packit 33f14e
Tue Nov 23 03:51:08 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Makefile.in (distclean): Remove config.h.
Packit 33f14e
Packit 33f14e
Wed Nov 10 00:28:27 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Version 2.6 released.
Packit 33f14e
Packit 33f14e
	* analyze.c (too_expensive): New variable, for heuristic to
Packit 33f14e
	limit the worst-case cost to O(N**1.5 log N) at the price of
Packit 33f14e
	producing suboptimal output for large inputs with many differences.
Packit 33f14e
	(diff_2_files): Initialize it.
Packit 33f14e
	(struct partition): New type.
Packit 33f14e
	(SNAKE_LIMIT): New macro; merely documents already-used number 20.
Packit 33f14e
	(diag): New `minimal' arg; all callers changed.  Put results into
Packit 33f14e
	struct partition.  Apply `too_expensive' heuristic.  Tune.
Packit 33f14e
	(compareseq): New `minimal' arg; all callers changed.  Tune.
Packit 33f14e
	(shift_boundaries): Improve heuristic to also coalesce adjacent runs
Packit 33f14e
	of changes more often.
Packit 33f14e
Packit 33f14e
	* diff.c (long_options, main, usage): Add `--help'.
Packit 33f14e
	(main): Send version number to stdout, not stderr.
Packit 33f14e
	(usage): Send usage to stdout, not stderr.
Packit 33f14e
	(compare_files): Initialize `inf' properly.
Packit 33f14e
Packit 33f14e
	* io.c (word): Change to `int'; it makes a big difference on x86.
Packit 33f14e
	(sip, slurp): Put off allocating room to hold the whole file until we
Packit 33f14e
	have to read the whole file.  This wins if the file turns out
Packit 33f14e
	to be binary.
Packit 33f14e
Packit 33f14e
	* util.c (xmalloc, xrealloc): "virtual memory" -> "memory"
Packit 33f14e
	(primes): Omit large primes if INT_MAX is small.
Packit 33f14e
Packit 33f14e
	* sdiff.c (usage): Send usage to stdout, not stderr.
Packit 33f14e
	(long_options, main, usage): Add `--help'.
Packit 33f14e
	(main): Send version number to stdout, not stderr.  Exit afterwards.
Packit 33f14e
Packit 33f14e
	* diff3.c (usage): Send usage to stdout, not stderr.
Packit 33f14e
	(long_options, main, usage): Add `--help'.
Packit 33f14e
	(read_diff): Detect integer overflow in buffer size calculations.
Packit 33f14e
Packit 33f14e
	* cmp.c (word): New type.  All uses of `long' for
Packit 33f14e
	word-at-a-time comparisons changed to `word'.
Packit 33f14e
	(long_options, main, usage): Add `--help'.
Packit 33f14e
	(usage): Send usage to stdout, not stderr.
Packit 33f14e
	(main): Add `-v'.  Send version number to stdout, not stderr.
Packit 33f14e
Packit 33f14e
	* configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H.
Packit 33f14e
Packit 33f14e
Mon Sep 27 07:20:24 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (add_exclude_file): Cast memchr to (char *)
Packit 33f14e
	to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
Packit 33f14e
	* Makefile.in (cmp): Add version.o.
Packit 33f14e
Packit 33f14e
	* analyze.c (diff_2_files): Work around memcmp bug with size=0.
Packit 33f14e
Packit 33f14e
	* cmp.c (main, usage, version_string): Add --version option.
Packit 33f14e
Packit 33f14e
	* system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H.
Packit 33f14e
	(memchr): Declare only if !HAVE_MEMCHR.  These changes are
Packit 33f14e
	needed to keep some nonstandard hosts happy.
Packit 33f14e
Packit 33f14e
	* util.c (memchr): Make first arg char const *
Packit 33f14e
	to match standard.
Packit 33f14e
	(xmalloc, xrealloc): Cast malloc, realloc
Packit 33f14e
	to (VOID *) to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
Packit 33f14e
	* diff3.c (xmalloc, xrealloc): Cast malloc, realloc
Packit 33f14e
	to (VOID *) to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
Packit 33f14e
	* sdiff.c (xmalloc, xrealloc): Cast malloc, realloc
Packit 33f14e
	to (VOID *) to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
	(lf_copy, lf_skip, lf_snarf): Cast memchr to (char *)
Packit 33f14e
	to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
	(memchr): Make first arg char const *
Packit 33f14e
	to match standard.
Packit 33f14e
Packit 33f14e
Mon Sep 27 00:23:37 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Version 2.5 released.
Packit 33f14e
Packit 33f14e
	* analyze.c (diff_2_files): Work around memcmp bug with size=0.
Packit 33f14e
Packit 33f14e
	* cmp.c (main, usage, version_string): Add --version option.
Packit 33f14e
	* Makefile.in (cmp): Add version.o.
Packit 33f14e
Packit 33f14e
	* diff.c (add_exclude_file): Cast memchr to (char *)
Packit 33f14e
	to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
	* sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise.
Packit 33f14e
Packit 33f14e
	* diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc
Packit 33f14e
	to (VOID *) to suppress bogus warnings on some nonstandard hosts.
Packit 33f14e
Packit 33f14e
	* sdiff.c, util.c (memchr): Make first arg char const *
Packit 33f14e
	to match standard.
Packit 33f14e
Packit 33f14e
	* system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H.
Packit 33f14e
	(memchr): Declare only if !HAVE_MEMCHR.  These changes are
Packit 33f14e
	needed to keep some nonstandard hosts happy.
Packit 33f14e
Packit 33f14e
	* xmalloc.c: Include <sys/types.h> always; some nonstandard hosts
Packit 33f14e
	need it for size_t even if STDC_HEADERS.
Packit 33f14e
Packit 33f14e
Sat Sep 18 01:33:07 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* configure.in (AC_STAT_MACROS_BROKEN): Add.
Packit 33f14e
	* system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if
Packit 33f14e
	STAT_MACROS_BROKEN.
Packit 33f14e
Packit 33f14e
	* Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA).
Packit 33f14e
Packit 33f14e
	* analyze.c (discard_confusing_lines): Make defn static, like decl.
Packit 33f14e
	* sdiff.c (xmalloc): Likewise.
Packit 33f14e
Packit 33f14e
	* ifdef.c (format_group): Ensure isdigit argument isn't < 0.
Packit 33f14e
Packit 33f14e
	* side.c (print_half_line): Use isprint, since some hosts lack isgraph.
Packit 33f14e
	* util.c (output_1_line): Likewise.  Ensure its argument isn't < 0.
Packit 33f14e
	(xmalloc, xrealloc): Remove needless casts.
Packit 33f14e
Packit 33f14e
	* system.h (volatile, const):
Packit 33f14e
	Define these before including any system headers,
Packit 33f14e
	so that they're used consistently in all system includes.
Packit 33f14e
	(getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some
Packit 33f14e
	<stdlib.h>s don't declare them.
Packit 33f14e
	(memchr): Likewise for <string.h>.
Packit 33f14e
Packit 33f14e
	* cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first.
Packit 33f14e
	* diff.c: Remove redundant "system.h" inclusion.
Packit 33f14e
Packit 33f14e
	* diff3.c (xmalloc): Now static.
Packit 33f14e
	(xmalloc, realloc): Remove needless casts.
Packit 33f14e
	(READNUM): Ensure isdigit argument isn't negative.
Packit 33f14e
Packit 33f14e
Wed Sep 14 07:14:15 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Version 2.4 released.
Packit 33f14e
Packit 33f14e
	* ifdef.c (scan_char_literal): New function, for new %c'x' and
Packit 33f14e
	%c'\ooo' format specs.
Packit 33f14e
	(format_group, print_ifdef_lines): Use it.  Remove %0 format spec.
Packit 33f14e
Packit 33f14e
	* cmp.c (cmp): Don't try to read past end of file; this doesn't
Packit 33f14e
	work on ttys.
Packit 33f14e
Packit 33f14e
	* system.h, version.c: #include <config.h>, not "config.h", to allow
Packit 33f14e
	configuring in a separate directory when the source directory has
Packit 33f14e
	already been configured.
Packit 33f14e
	* Makefile.in (COMPILE): New defn, with proper -I options so that
Packit 33f14e
	`#include <config.h>' works.
Packit 33f14e
	(.c.o, diff3.o, sdiff.o): Use it.
Packit 33f14e
Packit 33f14e
Mon Sep 13 06:45:43 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (main, longopts): Add --line-format=FORMAT option.
Packit 33f14e
	(specify_format): Args no longer const pointers.  All callers changed.
Packit 33f14e
Packit 33f14e
	* ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats.
Packit 33f14e
	(struct group): New struct.
Packit 33f14e
	(print_ifdef_lines): Use it to simplify argument passing.
Packit 33f14e
	Remove the convention that last arg -1 signifies that the lines
Packit 33f14e
	from file 2 are the same as the lines from file 1; this
Packit 33f14e
	convention no longer works, now that line numbers might be
Packit 33f14e
	printed out, since the line numbers may differ.
Packit 33f14e
	Add first FILE * argument to output to.  All callers changed.
Packit 33f14e
	Use a faster test for the single-fwrite optimization.
Packit 33f14e
	(format_group, scan_printf_spec, groups_letter_value): New functions.
Packit 33f14e
Packit 33f14e
	* diff.h (group_format, line_format): No longer const pointers.
Packit 33f14e
	(format_ifdef): 1st arg is no longer const pointer.
Packit 33f14e
Packit 33f14e
	* configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H.
Packit 33f14e
	* system.h <limits.h>, <stdlib.h>, <string.h>:
Packit 33f14e
	Include only if HAVE_LIMITS_H etc.
Packit 33f14e
Packit 33f14e
	* system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer
Packit 33f14e
	these standard names to the traditional names (bcmp, bcpy, index,
Packit 33f14e
	rindex, struct direct).  All callers changed.
Packit 33f14e
Packit 33f14e
	* system.h (PARAMS, VOID):
Packit 33f14e
	Define earlier so that malloc decl can use VOID.
Packit 33f14e
	(STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K.
Packit 33f14e
Packit 33f14e
Fri Sep  3 00:21:02 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (compare_files): Two files with the same name must be
Packit 33f14e
	the same file; avoid a needless `stat' in that case.
Packit 33f14e
Packit 33f14e
Fri Aug 27 06:59:03 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Pervasive changes for portability to 64-bit hosts:
Packit 33f14e
	Add prototypes to function declarations.
Packit 33f14e
	Use size_t, not int, when needed.
Packit 33f14e
Packit 33f14e
	* Other pervasive changes:
Packit 33f14e
	Use `const' more often.
Packit 33f14e
	Use STD{IN,OUT,ERR}_FILENO instead of [012].
Packit 33f14e
	Use 0, not NULL, for portability to broken hosts.
Packit 33f14e
Packit 33f14e
	* Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch].
Packit 33f14e
	(distfiles): New files config.h.in, mkinstalldirs.
Packit 33f14e
	(.c.o): Add -DHAVE_CONFIG_H.
Packit 33f14e
Packit 33f14e
	* analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment.
Packit 33f14e
	(diff_2_files): Use l.c.m., not max, of files' buffer sizes.
Packit 33f14e
Packit 33f14e
	* cmp.c: Make globals static when possible.
Packit 33f14e
Packit 33f14e
	(file): Now a 2-element array; replaces `file1' and `file2'.
Packit 33f14e
	(file_desc, buffer): Likewise, for file[12]_desc and buf[12].
Packit 33f14e
	(main): Likewise, for stat_buf[12].  Index these variables with `i'.
Packit 33f14e
Packit 33f14e
	(ignore_initial): New var.
Packit 33f14e
	(long_options): Now const.  Add `--ignore-initial'.
Packit 33f14e
	(usage): Sort options and add `--ignore-initial'.
Packit 33f14e
	(main, cmp): Add `--ignore-initial' support.
Packit 33f14e
Packit 33f14e
	(main): `cmp - -' now succeeds.
Packit 33f14e
	When comparing standard input to a file, and using a shortcut (e.g.
Packit 33f14e
	looking at file sizes or inode numbers), take the lseek offset into
Packit 33f14e
	account before deciding whether the files are identical.
Packit 33f14e
	Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts.
Packit 33f14e
	Use l.c.m. of files' buffer sizes, not 8 * 1024.
Packit 33f14e
	ferror (stdout) does not imply errno has a useful value.
Packit 33f14e
	If 2nd file is "-", treat it first, in case stdin is closed.
Packit 33f14e
Packit 33f14e
	(cmp): Always compute `char_number', `smaller' for speed and simplicity.
Packit 33f14e
	Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input',
Packit 33f14e
	as per Posix.2.
Packit 33f14e
Packit 33f14e
	(block_compare_and_count): Increment line_number argument.
Packit 33f14e
	Remove end_char argument; it's always '\n'.  All callers changed.
Packit 33f14e
	Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts.
Packit 33f14e
	(block_compare): Minimize differences with block_compare_and_count.
Packit 33f14e
Packit 33f14e
	(block_read): Coalesce `bp += nread's.
Packit 33f14e
Packit 33f14e
	(printc): Remove `FILE *' arg; output to stdout.  All callers changed.
Packit 33f14e
Packit 33f14e
	* configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF.
Packit 33f14e
	Configure into config.h.
Packit 33f14e
Packit 33f14e
	* context.c (print_context_label):
Packit 33f14e
	Standard input's st_mtime is no longer a special case
Packit 33f14e
	here, since `compare_files' now sets it to the current time.
Packit 33f14e
Packit 33f14e
	* diff.c (usage): Sort options.
Packit 33f14e
	(filetype): New function.
Packit 33f14e
	(compare_files): Set stdin's st_mtime to be the current time.
Packit 33f14e
	Leave its name "-" instead of changing it to "Standard Input";
Packit 33f14e
	to test whether a file is stdin, we must compare its name to "-" instead
Packit 33f14e
	of its desc to 0, since if it's closed other file descs may be 0.
Packit 33f14e
	When comparing standard input to a file, and using a shortcut (e.g.
Packit 33f14e
	looking at file sizes or inode numbers), take the lseek offset into
Packit 33f14e
	account before deciding whether the files are identical.
Packit 33f14e
	Pretend that nonexistent files have the same filetype as existing files.
Packit 33f14e
	Rename `errorcount' to `failed', since it's boolean.
Packit 33f14e
	In directory comparisons, if a file is neither a regular file nor a
Packit 33f14e
	directory, just print its type and the other file's type.
Packit 33f14e
Packit 33f14e
	* diff.h (Is_space, textchar): Remove.
Packit 33f14e
	(struct msg, msg_chain, msg_chain_end): Move to util.c.
Packit 33f14e
	(VOID): Move to system.h.
Packit 33f14e
	(line_cmp, version_string, change_letter, print_number_range,
Packit 33f14e
	find_change): New decls.
Packit 33f14e
Packit 33f14e
	* diff.texi:
Packit 33f14e
	whitespace -> white space.  It now stands for whatever isspace yields.
Packit 33f14e
	Add --ignore-initial.
Packit 33f14e
Packit 33f14e
	* diff3.c (VOID): Move to system.h.
Packit 33f14e
	(version_string): Now char[].
Packit 33f14e
	(usage): Sort options.
Packit 33f14e
	(process_diff): Pacify `gcc -Wall' with a useless assignment.
Packit 33f14e
	(read_diff): pid is of type pid_t, not int.  Use waitpid if available.
Packit 33f14e
	(output_diff3): Simplify test for `\ No newline at end of file' message.
Packit 33f14e
Packit 33f14e
	* dir.c (struct dirdata): Rename `files' to `names' to avoid confusion
Packit 33f14e
	with external struct file_data `files'.
Packit 33f14e
Packit 33f14e
	* io.c (line_cmp): Move declaration to diff.h.
Packit 33f14e
	(textchar): Remove.
Packit 33f14e
	(find_and_hash_each_line): Use locale's definition of white space
Packit 33f14e
	instead of using one hardwired defn for -b and another for -w.
Packit 33f14e
Packit 33f14e
	* normal.c (change_letter, print_number_range, find_change):
Packit 33f14e
	Move decls to diff.h.
Packit 33f14e
	(print_normal_hunk): Now static.
Packit 33f14e
Packit 33f14e
	* sdiff.c (SEEK_SET): Move to system.h.
Packit 33f14e
	(version_string): Now char[], not char*.
Packit 33f14e
	(private_tempnam): Remove hardcoded limit on temporary file names.
Packit 33f14e
	(exiterr, perror_fatal, main): When exiting because of a signal,
Packit 33f14e
	exit with that signal's status.
Packit 33f14e
	(lf_refill, main, skip_white, edit, interact): Check for signal.
Packit 33f14e
	(ignore_SIGINT): Renamed from `ignore_signals'.
Packit 33f14e
	(NUM_SIGS, initial_handler): New macros.
Packit 33f14e
	(initial_action, signal_received, sigs_trapped): New vars.
Packit 33f14e
	(catchsig, trapsigs): Use sigaction if possible, since this closes the
Packit 33f14e
	windows of vulnerability that `signal' has.  Use RETSIGTYPE not void.
Packit 33f14e
	When a signal comes in, just set a global variable; this is safer.
Packit 33f14e
	(checksigs, untrapsig): New functions.
Packit 33f14e
	(edit): Pacify `gcc -Wall' with a useless assignment.
Packit 33f14e
	Respond to each empty line with help, not to every other empty line.
Packit 33f14e
	(private_tempnam): Remove hardcoded limit on temporary file name length.
Packit 33f14e
	Don't assume sizeof (pid_t) <= sizeof (int).
Packit 33f14e
Packit 33f14e
	* system.h: (S_IXOTH, S_IXGRP, S_IXUSR,
Packit 33f14e
	SEEK_SET, SEEK_CUR,
Packit 33f14e
	STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
Packit 33f14e
	New macros, if system doesn't define them.
Packit 33f14e
	(volatile): Don't define if already defined.
Packit 33f14e
	(PARAMS): New macro.
Packit 33f14e
	(VOID): Move here from diff.h.
Packit 33f14e
Packit 33f14e
	* util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h.
Packit 33f14e
	(message5): New function.
Packit 33f14e
	(pr_pid): New var.
Packit 33f14e
	(begin_output): Allocate `name' more precisely.
Packit 33f14e
	Put child pid into pr_pid, so that we can wait for it later.
Packit 33f14e
	Don't check execl's return value, since any return must be an error.
Packit 33f14e
	(finish_output): Detect and report output errors.
Packit 33f14e
	Use waitpid if available.  Check pr exit status.
Packit 33f14e
	(line_cmp): Use locale's definition of white space
Packit 33f14e
	instead of using one hardwired defn for -b and another for -w.
Packit 33f14e
	(analyze_cmp): Avoid double negation with `! nontrivial'.
Packit 33f14e
	Pacify `gcc -Wall' be rewriting for-loop into do-while-loop.
Packit 33f14e
	(dir_file_pathname): New function.
Packit 33f14e
Packit 33f14e
	* version.c (version_string): Now char[], not char*.
Packit 33f14e
Packit 33f14e
Thu Jul 29 20:44:30 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (config.status): Run config.status --recheck, not
Packit 33f14e
	configure, to get the right args passed.
Packit 33f14e
Packit 33f14e
Thu Jul 22 10:46:30 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi'
Packit 33f14e
	with `[ TEST ] || ACTION || exit' so that the containing for-loop exits
Packit 33f14e
	with proper status for `make'.
Packit 33f14e
Packit 33f14e
Thu Jul  8 19:47:22 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (installdirs): New target.
Packit 33f14e
	(install): Use it.
Packit 33f14e
	(Makefile, config.status, configure): New targets.
Packit 33f14e
Packit 33f14e
Sat Jun  5 23:10:40 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Makefile.in (dist): Switch from .z to .gz.
Packit 33f14e
Packit 33f14e
Wed May 26 17:16:02 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (main): Cast args to compare_files, for traditional C.
Packit 33f14e
	* side.c (print_sdiff_common_lines, print_sdiff_hunk): Likewise.
Packit 33f14e
	* analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined
Packit 33f14e
	properly.
Packit 33f14e
Packit 33f14e
Tue May 25 14:54:05 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* analyze.c (diff_2_files):  With -q, do not report that files differ
Packit 33f14e
	if all their differences are ignored.
Packit 33f14e
	(briefly_report): New function.
Packit 33f14e
	* diff.h (ignore_some_changes): New variable.
Packit 33f14e
	* diff.c (compare_files): Don't use the file size shortcut if
Packit 33f14e
	ignore_some_changes is nonzero, since the file size may differ
Packit 33f14e
	merely due to ignored changes.
Packit 33f14e
	(main):  Set ignore_some_changes if we might ignore some changes.
Packit 33f14e
	Remove unsystematic assignment of 0 to static vars.
Packit 33f14e
	* io.c (read_files): New argument PRETEND_BINARY says whether to
Packit 33f14e
	pretend the files are binary.
Packit 33f14e
Packit 33f14e
	* diff3.c (tab_align_flag): New variable, for new -T option.
Packit 33f14e
	(main, usage, output_diff3): Add support for -T.
Packit 33f14e
Packit 33f14e
Sun May 23 15:25:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* dir.c (dir_sort): Always init `data' to avoid GCC warning.
Packit 33f14e
Packit 33f14e
Sat May 22 15:35:02 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Makefile.in (dist): Change name of package from diff to diffutils.
Packit 33f14e
	Don't bother to build .Z dist; .z suffices.
Packit 33f14e
Packit 33f14e
Fri May 21 16:35:22 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c: Include "system.h" to get memchr declaration.
Packit 33f14e
	* system.h (memchr): Declare if !HAVE_MEMCHR, not if
Packit 33f14e
	!HAVE_MEMCHR && !STDC_HEADERS.
Packit 33f14e
Packit 33f14e
Wed May 19 17:43:55 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* Version 2.3 released.
Packit 33f14e
Packit 33f14e
Fri Apr 23 17:18:44 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* io.c (find_identical_ends): Do not discard the last HORIZON_LINES
Packit 33f14e
	lines of the prefix, or the first HORIZON_LINES lines of the suffix.
Packit 33f14e
	* diff.c (main, longopts, usage): Add --horizon-lines option.
Packit 33f14e
	* diff3.c (main, process_diff, read_diff): Invoke second diff
Packit 33f14e
	with --horizon-lines determined by the first diff.
Packit 33f14e
	* diff.h, diff3.c (horizon_lines): New variable.
Packit 33f14e
Packit 33f14e
Mon Mar 22 16:16:00 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero):
Packit 33f14e
	Don't define if already defined.
Packit 33f14e
Packit 33f14e
Fri Mar  5 00:20:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* diff.c (main): Use NULL in arg to compare_files.
Packit 33f14e
Packit 33f14e
Thu Feb 25 15:26:01 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS,
Packit 33f14e
	not #if !HAVE_MEMCHR || !STDC_HEADERS.
Packit 33f14e
Packit 33f14e
Mon Feb 22 15:04:46 1993  Richard Stallman  (rms@geech.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* io.c (find_identical_ends): Move complicated arg outside GUESS_LINES.
Packit 33f14e
Packit 33f14e
Mon Feb 22 12:56:12 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<.
Packit 33f14e
Packit 33f14e
Sat Feb 20 19:18:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* io.c (binary_file_p): Return zero if file size is zero.
Packit 33f14e
Packit 33f14e
Fri Feb 19 17:31:32 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Version 2.2 released.
Packit 33f14e
Packit 33f14e
	* system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't
Packit 33f14e
	define if already defined.
Packit 33f14e
Packit 33f14e
Wed Feb 17 17:08:00 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (srcs): Remove limits.h.
Packit 33f14e
Packit 33f14e
Thu Feb 11 03:36:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* diff3.c (xmalloc): No longer static.
Packit 33f14e
Packit 33f14e
	* sdiff.c (edit): Allocate buf dynamically.
Packit 33f14e
Packit 33f14e
	* dir.c (dir_sort): Handle VOID_CLOSEDIR.
Packit 33f14e
Packit 33f14e
Wed Feb 10 00:15:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* limits.h: File deleted (should never have been there).
Packit 33f14e
Packit 33f14e
Tue Feb  9 03:53:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last.
Packit 33f14e
Packit 33f14e
Wed Feb  3 15:42:10 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* system.h: Don't #define const; let configure do it.
Packit 33f14e
Packit 33f14e
Mon Feb  1 02:13:23 1993  Paul Eggert  (eggert@hal.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Version 2.1 released.
Packit 33f14e
Packit 33f14e
	* Makefile.in (dist): Survive ln failures.  Create .tar.z
Packit 33f14e
	(gzipped tar) file as well as .tar.Z (compressed tar) file.
Packit 33f14e
Packit 33f14e
Fri Jan  8 22:31:41 1993  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* side.c (print_half_line): When the input position falls
Packit 33f14e
	outside the column, do not output a tab even if the output
Packit 33f14e
	position still falls within the column.
Packit 33f14e
Packit 33f14e
Mon Dec 21 13:54:36 1992  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in (.c.o): Add -I.
Packit 33f14e
Packit 33f14e
Fri Dec 18 14:08:20 1992  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* configure.in: Add HAVE_FCNTL_H, since system.h uses it.
Packit 33f14e
Packit 33f14e
Tue Nov 24 10:06:48 1992  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
Packit 33f14e
Packit 33f14e
	* Makefile.in: Note change from USG to HAVE_STRING_H.
Packit 33f14e
Packit 33f14e
Mon Nov 23 18:44:00 1992  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* io.c (find_and_hash_each_line): When running out of lines,
Packit 33f14e
	double the number of allocated lines, instead of just doubling
Packit 33f14e
	that number minus the prefix lines.  This is more likely to
Packit 33f14e
	avoid the need for further memory allocation.
Packit 33f14e
Packit 33f14e
Wed Nov 18 20:40:28 1992  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* dir.c (dir_sort): Plug memory leak: space holding directory
Packit 33f14e
	contents was not being reclaimed.  Get directory size from
Packit 33f14e
	struct file_data for initial guess at memory needed.
Packit 33f14e
	Detect errors when reading and closing directory.
Packit 33f14e
	(diff_dirs): Pass struct file_data to dir_sort.  Finish plugging leak.
Packit 33f14e
	* diff.c (compare_files): Pass struct file_data to diff_dirs.
Packit 33f14e
Packit 33f14e
	* io.c (find_and_hash_each_line): Don't assume alloc_lines is
Packit 33f14e
	nonzero when allocating more lines.
Packit 33f14e
Packit 33f14e
Thu Nov 12 16:02:18 1992  Paul Eggert  (eggert@twinsun.com)
Packit 33f14e
Packit 33f14e
	* diff.c (main): Add `-U lines' as an alias for `--unified=lines'.
Packit 33f14e
Packit 33f14e
	* diff3.c (usage): Add third --label option in example.
Packit 33f14e