1170754Sdelphij2004-04-13 Paul Eggert <eggert@twinsun.com> 2170754Sdelphij 3170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.7. 4170754Sdelphij * configure.ac (AM_GNU_GETTEXT_VERSION): Add. 5170754Sdelphij (XGETTEXT): Restore from pre-2004-04-12 version. This fixes 6170754Sdelphij a bug that lost many msgids in doc/diffutils.pot. 7170754Sdelphij * bootstrap: New file. 8170754Sdelphij * exgettext: Don't generate a temporary file, as this runs afoul 9170754Sdelphij of "make distcheck" which operates with read-only directories. 10170754Sdelphij * Makefile.am (EXTRA_DIST): Add bootstrap. 11170754Sdelphij Remove config/config.rpath as it is deduced automatically these days. 12170754Sdelphij 13170754Sdelphij2004-04-12 Paul Eggert <eggert@twinsun.com> 14170754Sdelphij 15170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.6. 16170754Sdelphij 17170754Sdelphij * NEWS: Add news for 2.8.4, 2.8.6. 18170754Sdelphij 19170754Sdelphij * README: Move copyright notice to end. Defer to "configure 20170754Sdelphij --help" for special "configure" options. Suggest latest libiconv. 21170754Sdelphij Update version numbers of Autoconf etc. to current. 22170754Sdelphij 23170754Sdelphij * configure.ac: Quote various arguments better. 24170754Sdelphij (AC_CONFIG_MACRO_DIR): Add call, specifying "m4". 25170754Sdelphij (AC_CONFIG_HEADER): Replaces AM_CONFIG_HEADER. 26170754Sdelphij (gl_USE_SYSTEM_EXTENSIONS): Replaces AC_GNU_SOURCE. 27170754Sdelphij (AC_ISC_POSIX): Remove; nobody ports to ancient ISC any more. 28170754Sdelphij (AC_PROG_CPP, AC_PROG_INSTALL, AC_C_INLINE, 29170754Sdelphij AC_HEADER_STDBOOL, AC_HEADER_STDC, AM_GNU_GETTEXT, XGETTEXT, 30170754Sdelphij AC_HEADER_STAT, AC_FUNC_VPRINTF, jm_FUNC_GLIBC_UNLOCKED_IO, 31170754Sdelphij jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC, jm_FUNC_REALLOC, 32170754Sdelphij jm_PREREQ_C_STACK, jm_PREREQ_ERROR, jm_PREREQ_HARD_LOCALE, 33170754Sdelphij jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX, AC_FUNC_FNMATCH_GNU, jm_AC_DOS): 34170754Sdelphij Remove; not needed here, as our files don't use them directly 35170754Sdelphij or we rely on gnulib modules. 36170754Sdelphij (AC_C_CONST): Remove; we assume C89 now. 37170754Sdelphij (AC_CHECK_HEADERS): Remove libintl.h, limits.h, stdlib.h, string.h, 38170754Sdelphij time.h. 39170754Sdelphij (AC_CHECK_TYPE): Remove ptrdiff_t, ssize_t. 40170754Sdelphij (AC_CHECK_FUNCS): Remove diraccess, strchr, strerror, tmpnam). 41170754Sdelphij (AC_REPLACE_FUNCS): Remove memchr, mkstemp, strcasecmp. 42170754Sdelphij (GNULIB_AUTOCONF_SNIPPET): Add call. This replaces much of 43170754Sdelphij the above. 44170754Sdelphij (AC_CONFIG_FILES): Remove lib/posix/Makefile. 45170754Sdelphij (AC_CONFIG_COMMANDS): Remove. 46170754Sdelphij 47170754Sdelphij * doc/diff.texi (dircategory): Change to "Text creation and 48170754Sdelphij manipulation" from "GNU packages". 49170754Sdelphij (Translations): New node. 50170754Sdelphij (Overview): Improve quality of algorithm citations. 51170754Sdelphij (Binary): -q doesn't exactly cause diff to assume files are binary. 52170754Sdelphij (Normal): Place after Side by Side, since it's less important. 53170754Sdelphij (Detailed Context, Detailed Unified, Detailed ed, 54170754Sdelphij Detailed if-then-else, diff3 Hunks, Detailed diff3 Normal): 55170754Sdelphij Place at end of menu. 56170754Sdelphij (Detailed Unified): Mention that fractional timestamps are 57170754Sdelphij omitted on hosts that don't support them. 58170754Sdelphij Mention what happens when hunks contain just one line. 59170754Sdelphij (Line Group Formats, Reject Names): Fix duplicate-word typos. 60170754Sdelphij (Comparing Directories): Trailing white space and empty lines are 61170754Sdelphij ignored in the -X file. 62170754Sdelphij (diff Options): Add --strip-trailing-cr. 63170754Sdelphij (Projects): gnu -> gvc@gnu.org. 64170754Sdelphij 65170754Sdelphij * lib/Makefile.am (SUBDIRS): Remove. 66170754Sdelphij (EXTRA_DIST, noinst_HEADERS): Remove most entries. 67170754Sdelphij (libdiffutils_a_SOURCES): Now just lib_SOURCES. 68170754Sdelphij (lib_SOURCES): New macro. 69170754Sdelphij (DISTCLEANFILES, MOSTLYCLEANFILES): Set to empty now. 70170754Sdelphij (gnulib.mk): Include: this does most of the work eliminated 71170754Sdelphij by the above changes. 72170754Sdelphij 73170754Sdelphij * lib/inttostr.c (inttostr): Protect i < 0 by compile-time 74170754Sdelphij test intended to suppress compiler warnings. 75170754Sdelphij * lib/inttostr.h: Include limits.h unilaterally. 76170754Sdelphij (CHAR_BIT): Remove. 77170754Sdelphij (PARAMS): Remove; all uses changed. 78170754Sdelphij * lib/setmode.c (__attribute__): New macro. 79170754Sdelphij (set_binary_mode): Define only if HAVE_SETMODE_DOS. 80170754Sdelphij Otherwise define a dummy static char, as C89 requires 81170754Sdelphij that we define something. 82170754Sdelphij * lib/setmode.h (set_binary_mode): Return true, not 1. 83170754Sdelphij 84170754Sdelphij * src/analyze.c, src/context.c, src/diff.c, src/io.c, src/util.c: 85170754Sdelphij Do not include regex.h, as diff.h does this now. 86170754Sdelphij 87170754Sdelphij * src/cmp.c: Sort includes. Include <exit.h>, <unlocked-io.h>. 88170754Sdelphij (specify_comparison_type): Don't report an error if the comparison 89170754Sdelphij type has already been specified the same way as this one. 90170754Sdelphij 91170754Sdelphij * src/cmp.c (usage): Mention exit status. 92170754Sdelphij * src/diff.c (option_help_msgid): Likewise. 93170754Sdelphij * src/diff3.c (usage): Likewise. 94170754Sdelphij * src/sdiff.c (usage): Likewise. 95170754Sdelphij 96170754Sdelphij * src/cmp.c (main): Adjust to latest gnulib c_stack_action 97170754Sdelphij calling conventions. 98170754Sdelphij * src/diff.c (main): Likewise. 99170754Sdelphij * src/diff3.c (main): Likewise. 100170754Sdelphij * src/sdiff.c (main): Likewise. 101170754Sdelphij 102170754Sdelphij * src/cmp.c (main): Adjust to latest version_etc calling conventions. 103170754Sdelphij * src/diff.c (main): Likewise. 104170754Sdelphij * src/diff3.c (main): Likewise. 105170754Sdelphij * src/sdiff.c (main): Likewise. 106170754Sdelphij 107170754Sdelphij * src/diff.c: Include <exit.h>. 108170754Sdelphij (binary): Define to true if not declared. 109170754Sdelphij (longopts): Set tabsize flag to 1. 110170754Sdelphij (main): Don't output nanoseconds if platform lacks them. 111170754Sdelphij Don't treat files as binary if !binary. 112170754Sdelphij (set_mtime_to_now): Use 0, not NULL. 113170754Sdelphij (compare_files): Mark files as nonexistent if it looks like 114170754Sdelphij 'patch' created inaccessible regular empty files to denote 115170754Sdelphij nonexistent backups. Don't compare such files. 116170754Sdelphij Clear st_* members of status of nonexistent file. 117170754Sdelphij Remove now-unnecessary tests. 118170754Sdelphij 119170754Sdelphij * src/diff.h: Include regex.h, unlocked-io.h. 120170754Sdelphij (struct file_data.changed): Now char *, not bool *, to save 121170754Sdelphij space on hosts where bool takes more space than char. 122170754Sdelphij All uses changed. 123170754Sdelphij 124170754Sdelphij * src/diff3.c: Include unlocked-io.h. 125170754Sdelphij (strip_trailing_cr): New var. 126170754Sdelphij (STRIP_TRAILING_CR_OPTION): New enum. 127170754Sdelphij (longopts, main, option_help_msgid, read_diff): 128170754Sdelphij Add --strip-trailing-cr support. 129170754Sdelphij (read_diff): Exit with status 126 (not 127) if errno != ENOENT 130170754Sdelphij after failed execvp in child. Report this in parent. 131170754Sdelphij 132170754Sdelphij * src/dir.c: Include <strcase.h>. 133170754Sdelphij (failed_locale_specific_sorting): Renamed from failed_strcoll. 134170754Sdelphij All uses changed. 135170754Sdelphij (compare_names): Don't invoke strcasecmp first thing when 136170754Sdelphij ignore_file_name_case; if locale_specific_sorting, we should 137170754Sdelphij just use that. 138170754Sdelphij 139170754Sdelphij * src/ifdef.c (next_line): Remove; replace with... 140170754Sdelphij (next_line0, next_line1): New vars. 141170754Sdelphij (print_ifdef_script, print_ifdef_hunk): 142170754Sdelphij Use them to fix line-number computation bug. 143170754Sdelphij 144170754Sdelphij * src/io.c (find_and_hash_each_line): Don't convert char * 145170754Sdelphij to unsigned char *; just leave pointers as char *. This 146170754Sdelphij lessens the number of potentially-dangerous casts. 147170754Sdelphij * src/util.c (lines_differ): Likewise. 148170754Sdelphij 149170754Sdelphij * src/sdiff.c: Include <unlocked-io.h>, <exit.h>. 150170754Sdelphij (check_child_status): Renamed from ck_editor_status, and 151170754Sdelphij accept a new arg MAX_OK_STATUS. All callers changed. 152170754Sdelphij Handle status 126/127 as per POSIX. 153170754Sdelphij (edit): Likewise. 154170754Sdelphij (main): Likewise. Fix getopt typo: -E wasn't supported. 155170754Sdelphij 156170754Sdelphij * src/system.h (S_IRWXU, S_IRWXG, S_IRWXO): Define if not defined. 157170754Sdelphij (S_IXUSR, S_IXGRP, S_IXOTH): Remove. 158170754Sdelphij Include <time.h> unconditionally, since we can assume C89 now. 159170754Sdelphij Likewise for <stdlib.h>, <string.h>. 160170754Sdelphij (getenv, EXIT_SUCCESS, EXIT_FAILURE, SSIZE_MAX, strchr, strrchr, 161170754Sdelphij memcmp, memcpy): Remove decl; no longer needed. 162170754Sdelphij (strcasecoll, strcasecmp): Define if not built in. 163170754Sdelphij (CTYPE_DOMAIN, ISPRINT, ISSPACE, TOLOWER, _tolower, errno): Remove; 164170754Sdelphij we now assume C89 or better. All uses changed. 165170754Sdelphij Include <stdbool.h> unconditionally now, since gnulib supports it 166170754Sdelphij if the C compiler doesn't. All boolean uses of 0 and 1 now 167170754Sdelphij changed to false and true. 168170754Sdelphij (lin_is_printable_as_long_int): Renamed from lin_is_printable_as_long. 169170754Sdelphij 170170754Sdelphij * src/util.c (begin_output): Fix bug: 0 wasn't cast to char * arg, 171170754Sdelphij which led to undefined behavior on 64-bit hosts. 172170754Sdelphij Use more-standard test for exit status 126 versus 127. 173170754Sdelphij (finish_output): Likewise. 174170754Sdelphij (analyze_hunk): Do not cast bool to int. 175170754Sdelphij 176170754Sdelphij2004-03-15 Paul Eggert <eggert@twinsun.com> 177170754Sdelphij 178170754Sdelphij * src/cmp.c (main): Don't consider two files with the same name to 179170754Sdelphij be the same, if their initial skip values differ. This fixes a 180170754Sdelphij bug reported by Hideki Iwamoto in 181170754Sdelphij <http://mail.gnu.org/archive/html/bug-gnu-utils/2004-03/msg00024.html>. 182170754Sdelphij 183170754Sdelphij2004-03-11 Paul Eggert <eggert@twinsun.com> 184170754Sdelphij 185170754Sdelphij * src/analyze.c (diag): Return void, not lin, since the return 186170754Sdelphij value wasn't needed. All callers changed. 187170754Sdelphij (diag, diff_2_files): 188170754Sdelphij Use 'true' and 'false' instead of '1' and '0', when appropriate. 189170754Sdelphij (compareseq): Use lin const * local variables instead of lin *. 190170754Sdelphij Don't bother checking diag's return value. 191170754Sdelphij (shift_boundaries, build_reverse_script, build_script, diff_2_files): 192170754Sdelphij Use char arrays, not bool arrays, since 193170754Sdelphij sizeof (bool) might be greater than 1. 194170754Sdelphij 195170754Sdelphij2004-02-09 Paul Eggert <eggert@twinsun.com> 196170754Sdelphij 197170754Sdelphij * m4/setmode.m4 (AC_FUNC_SETMODE_DOS): AC_LIBOBJ(setmode) if 198170754Sdelphij we would return true. 199170754Sdelphij 200170754Sdelphij2002-10-14 Paul Eggert <eggert@twinsun.com> 201170754Sdelphij 202170754Sdelphij * src/Makefile.am (diff3.$(OBJEXT), diff.$(OBJEXT), 203170754Sdelphij sdiff.$(OBJEXT)): Rename from (misspelled) diff3.$(OBJECT), 204170754Sdelphij diff.$(OBJECT), sdiff.$(OBJECT). Patch by Paul D. Smith in 205170754Sdelphij <http://mail.gnu.org/pipermail/bug-gnu-utils/2002-October/003251.html>. 206170754Sdelphij Bug reported by Chris Bainbridge. 207170754Sdelphij 208170754Sdelphij2002-10-13 Paul Eggert <eggert@twinsun.com> 209170754Sdelphij 210170754Sdelphij * src/Makefile.am (MOSTLYCLEANFILES): Add paths.ht. 211170754Sdelphij (paths.h): Send output to paths.ht first, and then rename to 212170754Sdelphij paths.h at the end. This avoids problems if the disk is full. 213170754Sdelphij It also works around what appears to be a bug with GNU make -j 214170754Sdelphij (3.79.1); see <http://bugs.gentoo.org/show_bug.cgi?id=8934>. 215170754Sdelphij 216170754Sdelphij2002-06-27 Paul Eggert <eggert@twinsun.com> 217170754Sdelphij 218170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.4. 219170754Sdelphij 220170754Sdelphij * config/config.sub: Sync with latest version maintained in other 221170754Sdelphij packages. 222170754Sdelphij 223170754Sdelphij * lib/file-type.h: Protect against double inclusion. Detect 224170754Sdelphij whether <sys/stat.h> has been included. Fix from Jim Meyering. 225170754Sdelphij 226170754Sdelphij * src/analyze.c (briefly_report): Don't say "Binary files differ", 227170754Sdelphij since one of the files may not be a binary file. 228170754Sdelphij Bug reported by Dan Jacobson. 229170754Sdelphij 230170754Sdelphij2002-06-22 Paul Eggert <eggert@twinsun.com> 231170754Sdelphij 232170754Sdelphij * lib/c-stack.c (segv_handler, c_stack_action) [! defined 233170754Sdelphij SA_SIGINFO]: Do not assume SA_SIGINFO behavior. 234170754Sdelphij Bug reported by Jim Meyering on NetBSD 1.5.2. 235170754Sdelphij 236170754Sdelphij2002-06-16 Paul Eggert <eggert@twinsun.com> 237170754Sdelphij 238170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.3. 239170754Sdelphij 240170754Sdelphij * config/depcomp, config/missing, README: Update to automake 1.6.2. 241170754Sdelphij 242170754Sdelphij * po/LINGUAS: Add en_US. 243170754Sdelphij * po/en_US.po: New file. 244170754Sdelphij * po/POTFILES.in: Remove lib/freesoft.c. 245170754Sdelphij Add lib/file-type.c, lib/version-etc.c, lib/xmalloc.c. 246170754Sdelphij 247170754Sdelphij2002-06-15 Paul Eggert <eggert@twinsun.com> 248170754Sdelphij 249170754Sdelphij * doc/diff.texi (Special Files): Document behavior of symlink 250170754Sdelphij loops. 251170754Sdelphij 252170754Sdelphij * lib/Makefile.am (noinst_HEADERS): Remove freesoft.h. 253170754Sdelphij Add version-etc.h. 254170754Sdelphij (libdiffutils_a_SOURCES): Remove freesoft.c. Add version-etc.c. 255170754Sdelphij * lib/freesoft.c, lib/freesoft.h: Remove. 256170754Sdelphij * lib/version-etc.h (PARAMS): Remove; we now assume C89 at least. 257170754Sdelphij 258170754Sdelphij * lib/version-etc.h (version_etc): Remove package and version args. 259170754Sdelphij (version_etc_copyright): Remove. 260170754Sdelphij * lib/version-etc.c: Likewise. 261170754Sdelphij Do not include unlocked-io.h; no longer needed. 262170754Sdelphij Include gettext.h rather than libinto.h. 263170754Sdelphij (_): Define unconditionally. 264170754Sdelphij (version_etc): Adjust wording to match current GNU coding standards. 265170754Sdelphij Translate "(C)" if possible. 266170754Sdelphij 267170754Sdelphij * lib/version-etc.c, lib/version-etc.h: New files, taken from 268170754Sdelphij fileutils. 269170754Sdelphij 270170754Sdelphij * src/Makefile.am (cmp_SOURCES, diff3_SOURCES, sdiff_SOURCES, 271170754Sdelphij diff_SOURCES): Remove version.c. 272170754Sdelphij (MAINTAINERCLEANFILES, $(srcdir)/version.c): Remove. 273170754Sdelphij 274170754Sdelphij * src/cmp.c: Include version-etc.h, not freesoft.h. 275170754Sdelphij (copyright_notice): Remove. 276170754Sdelphij (main): Use version_etc to print version. 277170754Sdelphij * src/diff.c, src/diff3.c, src/sdiff.c: Likewise. 278170754Sdelphij 279170754Sdelphij * src/cmp.c (version_string): Remove decl. 280170754Sdelphij * src/diff.h, src/diff3.c, src/sdiff.c: Likewise. 281170754Sdelphij 282170754Sdelphij2002-06-11 Paul Eggert <eggert@twinsun.com> 283170754Sdelphij 284170754Sdelphij * lib/fnmatch.c, lib/fnmatch_loop.c (WIDE_CHAR_SUPPORT): 285170754Sdelphij New macro. Use it uniformly instead of 286170754Sdelphij (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H). 287170754Sdelphij It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1 288170754Sdelphij reported by Vin Shelton. 289170754Sdelphij * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for btowc. 290170754Sdelphij 291170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.2. 292170754Sdelphij 293170754Sdelphij * ABOUT-NLS, config/config.guess, config/config.sub, 294170754Sdelphij config/depcomp, config/texinfo.tex, lib/posix/regex.h, 295170754Sdelphij m4/c-bs-a.m4, m4/gettext.m4, m4/gnu-source.m4, m4/lib-link.m4, 296170754Sdelphij m4/malloc.m4: 297170754Sdelphij Update to recent version (maintained in other packages). 298170754Sdelphij * m4/prereq.m4 (jm_PREREQ_EXCLUSIVE): AC_FUNC_FNMATCH_GNU 299170754Sdelphij no longer takes a lib. 300170754Sdelphij 301170754Sdelphij * README: Incorporate contents from INSTALLME. 302170754Sdelphij * INSTALLME: Remove. 303170754Sdelphij * Makefile.am (EXTRA_DIST): Remove INSTALLME. 304170754Sdelphij 305170754Sdelphij * configure.ac (AC_GNU_SOURCE): Move up, so that it affects 306170754Sdelphij later compilations properly. 307170754Sdelphij (DEFAULT_DIFF_PROGRAM, AC_TYPE_SIGNAL): Remove. 308170754Sdelphij (jm_AC_TYPE_INTMAX_T): Add. 309170754Sdelphij (AC_FUNC_FNMATCH_GNU): Use this, instead of AC_FUNC_FNMATCH. 310170754Sdelphij (AC_CONFIG_LINKS): regex.hin renamed from regex_.h. 311170754Sdelphij 312170754Sdelphij * doc/diff.texi: Reword "@option{-f} and @option{--foo}" to 313170754Sdelphij "@option{-f} or @option{--foo}". 314170754Sdelphij Use @acronym instead of @sc where appropriate. 315170754Sdelphij (Specified Lines): Renamed from Specified Folding. 316170754Sdelphij (Comparison, Blank Lines): 317170754Sdelphij Clarify wordings for Blank Lines and Specified Lines nodes. 318170754Sdelphij (Binary): Mention --verbose and --print-bytes. 319170754Sdelphij (Tabs, sdiff Option Summary, diff Options): 320170754Sdelphij New option --tabsize=COLUMNS. 321170754Sdelphij 322170754Sdelphij * lib/Makefile.am (EXTRA_DIST): Add fnmatch_loop.c. 323170754Sdelphij (noinst_HEADERS): fnmatch_.h renamed from fnmatch.hin. 324170754Sdelphij regex_.h renamed from regex.hin. 325170754Sdelphij Add file-type.h. 326170754Sdelphij (libdiffutils_a_SOURCES): Add file-type.c. 327170754Sdelphij (DISTCLEANFILES): Remove fnmatch.hno, regex.hno. 328170754Sdelphij 329170754Sdelphij * lib/c-stack.c (__attribute__): New macro. 330170754Sdelphij (EOVERFLOW): Define if not defined. 331170754Sdelphij (stack_t): Define to struct sigaltstack if not defined or declared. 332170754Sdelphij Include <sys/resource.h>, <ucontext.h> if available. 333170754Sdelphij Include <stdio.h> if DEBUG. 334170754Sdelphij Do not include <inttypes.h> or <stdint.h>. 335170754Sdelphij (c_stack_die): Remove info and context args. All uses changed. 336170754Sdelphij (segv_action): Likewise. 337170754Sdelphij (alternate_signal_stack): Change uintmax_t to long, to ease porting. 338170754Sdelphij (get_stack_location, min_address_from_argv, max_address_from_argv, 339170754Sdelphij null_action): New functions. 340170754Sdelphij (stack_base, stack_size): New vars. 341170754Sdelphij (segv_handler): context arg may not be used. 342170754Sdelphij Use global stack_base, stack_size if 343170754Sdelphij ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC. 344170754Sdelphij Add debug code. 345170754Sdelphij Invoke die (rather than segv_action) to exit. 346170754Sdelphij (c_stack_action): Accept new argv arg, and simpler handler arg. 347170754Sdelphij All uses changed. Move code into new functions above. 348170754Sdelphij Allow null action. 349170754Sdelphij [! (defined SA_ONSTACK && defined _SC_PAGESIZE)]: Assume all segvs 350170754Sdelphij are stack overflows. 351170754Sdelphij (main) [DEBUG]: Describe what output should be like. 352170754Sdelphij 353170754Sdelphij * lib/c-stack.h (siginfo_t, c_stack_die): Remove decl. 354170754Sdelphij 355170754Sdelphij * lib/file-type.c, lib/file-type.h: New files. These contain code 356170754Sdelphij that was in src/diff.c, but is now librarified and spiffed up a 357170754Sdelphij bit. Jim Meyering suggested this. 358170754Sdelphij 359170754Sdelphij * lib/fnmatch.c (alloca, __builtin_expect): Define for non-GCC hosts. 360170754Sdelphij <strings.h>: Include only if HAVE_STRINGS_H. 361170754Sdelphij <stddef.h>: Include if we include stdlib.h. 362170754Sdelphij Do not comment out all code if ! HAVE_FNMATCH_GNU. 363170754Sdelphij (getenv): Do not declare if HAVE_DECL_GETENV. 364170754Sdelphij (__strchrnul, __wcschrnul): Remove; not used. 365170754Sdelphij (MEMPCPY): Use mempcpy if not _LIBC; use memcpy if neither _LIBC 366170754Sdelphij nor HAVE_MEMPCPY. 367170754Sdelphij (FOLD) [HANDLE_MULTIBYTE]: Do not pass wide char to ISUPPER. 368170754Sdelphij (STRLEN, STRCAT, MEMPCPY) [HANDLE_MULTIBYTE && !defined _LIBC]: 369170754Sdelphij Use wcslen rather than __wcslen, and likewise for wcscat, wmempcpy. 370170754Sdelphij (MEMPCPY) [HANDLE_MULTIBYTE]: Use wmempcpy if not _LIBC; use wmemcpy 371170754Sdelphij if neither _LIBC nor HAVE_WMEMPCPY. 372170754Sdelphij * lib/fnmatch_.h (__const): Do not define to empty, as this breaks 373170754Sdelphij Sun cc. The code doesn't work with K&R anyway. 374170754Sdelphij * lib/fnmatch_loop.c (struct patternlist.str): Size 1, not 0, 375170754Sdelphij as C89 requires this. 376170754Sdelphij (NEW_PATTERN): Use offsetof, not sizeof, since str now has size 1. 377170754Sdelphij * lib/fnmatch_.h: Import from glibc fnmatch.h. 378170754Sdelphij * lib/fnmatch.c, lib/fnmatch_loop.c: Import from glibc. 379170754Sdelphij 380170754Sdelphij * lib/posixver.c: Include posixver.h. 381170754Sdelphij 382170754Sdelphij * lib/regex_.h: Renamed from lib/regex.hin. 383170754Sdelphij 384170754Sdelphij * m4/c-stack.m4 (jm_PREREQ_C_STACK): Do not AC_REQUIRE 385170754Sdelphij jm_AC_TYPE_UINTMAX_T and do not use uintmax_t. 386170754Sdelphij Check for sys/resource.h, uccontext.h. 387170754Sdelphij Check for decls and existence of getcontext, sigaltstack. 388170754Sdelphij Check for stack_t. 389170754Sdelphij 390170754Sdelphij * m4/codeset.m4, m4/glibc21.m4, m4/lcmessage.m4: Remove. 391170754Sdelphij 392170754Sdelphij * m4/fnmatch.m4: Update to latest Autoconf CVS for AC_FUNC_FNMATCH_GNU. 393170754Sdelphij * m4/gnu-source.m4: Likewise, for AC_GNU_SOURCE (renamed from 394170754Sdelphij AC__GNU_SOURCE). 395170754Sdelphij 396170754Sdelphij * m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Renamed from AC_MBSTATE_T. 397170754Sdelphij All uses changed. Upgrade to recent Autoconf CVS. 398170754Sdelphij 399170754Sdelphij * m4/stdbool.m4 (AC_HEADER_STDBOOL): Do not cast pointer to 400170754Sdelphij bool in integer constant expression; C99 does not allow it. 401170754Sdelphij Reported by Bruno Haible. 402170754Sdelphij 403170754Sdelphij * po/LINGUAS: Add hu, pt_BR. 404170754Sdelphij * po/hu.po, po/pt_BR.po: New files. 405170754Sdelphij 406170754Sdelphij * src/Makefile.am (noinst_HEADERS): Remove diff.h. 407170754Sdelphij (DEFS): Remove. 408170754Sdelphij (diff_sources): Add diff.h. 409170754Sdelphij (MOSTLYCLEANFILES): New macro. 410170754Sdelphij (cmp.$(OBJEXT) diff3.$(OBJECT) diff.$(OBJECT) sdiff.$(OBJECT)): Depend 411170754Sdelphij on paths.h. 412170754Sdelphij (paths.h): New rule. 413170754Sdelphij 414170754Sdelphij * src/analyze.c, src/cmp.c, src/diff.c, src/diff3.c, src/io.c, 415170754Sdelphij src/sdiff.c: Include <file-type.h>. 416170754Sdelphij 417170754Sdelphij * src/cmp.c: Include paths.h. 418170754Sdelphij (copyright_notice): Renamed from copyright_string. 419170754Sdelphij Now a msgid, so that copyright symbol can be translated. 420170754Sdelphij All uses changed. 421170754Sdelphij * src/diff.c, src/diff3.c, src/sdiff.c: Likewise. 422170754Sdelphij 423170754Sdelphij * src/diff.c: Include posixver.h. 424170754Sdelphij (TABSIZE_OPTION): New constant. 425170754Sdelphij (main): Allow widths up to SIZE_MAX. 426170754Sdelphij (filetype): Move to lib/file-type.c and rename to file_type. 427170754Sdelphij All uses changed. 428170754Sdelphij 429170754Sdelphij * src/diff.c (longopts, main, usage): New option --tabsize=COLUMNS. 430170754Sdelphij * src/io.c (find_and_hash_each_line): Likewise. 431170754Sdelphij 432170754Sdelphij * src/diff.h (TAB_WIDTH): Remove. 433170754Sdelphij (tabsize): New decl. 434170754Sdelphij (sdiff_half_width, sdiff_column2_offset): Now size_t rather than 435170754Sdelphij unsigned int. 436170754Sdelphij 437170754Sdelphij * src/diff3.c (skipwhite, readnum): New functions. 438170754Sdelphij (process_diff_control): Use them. 439170754Sdelphij (SKIPWHITE, READNUM): Remove. 440170754Sdelphij (read_diff): Don't worry about errno == ENOEXEC. 441170754Sdelphij 442170754Sdelphij * src/sdiff.c (catchsig, signal_handler, initial_action): Signal 443170754Sdelphij handlers return void, not RETSIGTYPE, since we no longer support 444170754Sdelphij K&R. 445170754Sdelphij (TABSIZE_OPTION): New constant. 446170754Sdelphij (longopts, usage, main): New option --tabsize=COLUMNS. 447170754Sdelphij (cleanup): New arg signo. All uses changed. 448170754Sdelphij (ck_editor_status, main, edit): Don't worry about ENOEXEC. 449170754Sdelphij 450170754Sdelphij * src/side.c (tab_from_to, print_half_line, print_1sdiff_line): 451170754Sdelphij New option --tabsize=COLUMNS. 452170754Sdelphij 453170754Sdelphij * src/system.h (S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISREG, 454170754Sdelphij S_ISSOCK): Remove; now in lib/file-type.h. 455170754Sdelphij 456170754Sdelphij * src/util.c (finish_output): Check for ENOEXEC. 457170754Sdelphij (lines_differ, output_1_line): New option --tabsize=COLUMNS. 458170754Sdelphij (analyze_hunk): If -b or -w is also specified, -B now considers 459170754Sdelphij lines to be empty if they contain only white space. 460170754Sdelphij 461170754Sdelphij2002-04-05 Paul Eggert <eggert@sic.twinsun.com> 462170754Sdelphij 463170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8.1. 464170754Sdelphij 465170754Sdelphij * configure.ac (AC_HEADER_STDBOOL): Add. 466170754Sdelphij (AC_CHECK_HEADERS): Remove stdbool.h. 467170754Sdelphij * m4/stdbool.m4: New file. 468170754Sdelphij * m4/prereq.m4 (jm_PREREQ_EXCLUDE): 469170754Sdelphij Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h). 470170754Sdelphij (jm_PREREQ_HASH): Likewise. 471170754Sdelphij 472170754Sdelphij * src/system.h (SSIZE_MAX): Define if limits.h doesn't. 473170754Sdelphij 474170754Sdelphij * src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a 475170754Sdelphij size_t variable, just in case there's a problem with ptrdiff_t 476170754Sdelphij versus size_t. 477170754Sdelphij 478170754Sdelphij * lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported. 479170754Sdelphij Include limits.h. 480170754Sdelphij (SIZE_MAX, SSIZE_MAX): Define if standard headers don't. 481170754Sdelphij (MIN): New macro. 482170754Sdelphij (block_read): Do not attempt to read more than SSIZE_MAX bytes, as the 483170754Sdelphij resulting behavior is implementation-defined. Work around bug in 484170754Sdelphij Tru64 5.1, which can't read more than INT_MAX bytes at a time. 485170754Sdelphij * src/cmp.c (cmp): Use block_read instead of read, to work 486170754Sdelphij around Tru64 5.1 bug. 487170754Sdelphij * src/diff3.c (read_diff): Likewise. 488170754Sdelphij * src/diff3.c: Include cmpbuf.h. 489170754Sdelphij 490170754Sdelphij * THANKS: Add Ulrich Drepper. 491170754Sdelphij 492170754Sdelphij * INSTALLME: Mention GNU texinfo. 493170754Sdelphij 494170754Sdelphij * doc/diff.texi: 495170754Sdelphij Use new @copying directive. 496170754Sdelphij Put @contents first, not last, since Texinfo now suggests this. 497170754Sdelphij Fix bug in -w documentation noted by Karl Berry. 498170754Sdelphij Mention links for speedup. 499170754Sdelphij New node "Speedups" for future speedups. 500170754Sdelphij Just say "Index", not "Concept Index". 501170754Sdelphij 502170754Sdelphij2002-03-26 Paul Eggert <eggert@twinsun.com> 503170754Sdelphij 504170754Sdelphij * src/Makefile.am: 505170754Sdelphij (INCLUDES): Remove this obsolete macro, replacing it with: 506170754Sdelphij (AM_CPPFLAGS): New macro. 507170754Sdelphij 508170754Sdelphij2002-03-26 Albert Chin-A-Young <china@thewrittenword.com> 509170754Sdelphij 510170754Sdelphij * src/Makefile.am (datadir): Remove, as it conflicts with --datadir. 511170754Sdelphij 512170754Sdelphij2002-03-26 Paul Eggert <eggert@twinsun.com> 513170754Sdelphij 514170754Sdelphij * doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was 515170754Sdelphij missing before the menu entry. Bug diagnosed by Adam Heath. 516170754Sdelphij Also, put this dircategory after the Individual utilities dircategory, 517170754Sdelphij to work around a compatibility problem with Debian install-info. 518170754Sdelphij 519170754Sdelphij2002-03-24 Eli Zaretskii <eliz@is.elta.co.il> 520170754Sdelphij 521170754Sdelphij * src/io.c (sip): Do not mishandle buffered count when reverting 522170754Sdelphij to text mode. 523170754Sdelphij 524170754Sdelphij2002-03-23 Paul Eggert <eggert@twinsun.com> 525170754Sdelphij 526170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.8. 527170754Sdelphij * configure.ac (AC_PREREQ): 2.53. 528170754Sdelphij * INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27. 529170754Sdelphij 530170754Sdelphij * doc/diff.texi: Upgrade the description of `patch' to GNU patch 531170754Sdelphij 2.5.4, and revamp the documentation accordingly. 532170754Sdelphij 533170754Sdelphij * src/diff.c (main): Fix typo that prevented diff -y from working. 534170754Sdelphij Bug reported by Mitsuru Chinen. 535170754Sdelphij 536170754Sdelphij2002-03-15 Paul Eggert <eggert@twinsun.com> 537170754Sdelphij 538170754Sdelphij * lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info. 539170754Sdelphij Bug reported by Eli Zaretskii. 540170754Sdelphij 541170754Sdelphij2002-03-15 Eli Zaretskii <eliz@is.elta.co.il> 542170754Sdelphij 543170754Sdelphij * ms/config.sed: Tweak editing of install-info-am target. 544170754Sdelphij 545170754Sdelphij2002-03-12 Paul Eggert <eggert@twinsun.com> 546170754Sdelphij 547170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.7.10. 548170754Sdelphij 549170754Sdelphij * NEWS: cmp -l -s and cmp -s -l are not allowed. 550170754Sdelphij Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge. 551170754Sdelphij 552170754Sdelphij * configure.ac (jm_PREREQ_HARD_LOCALE): Add. 553170754Sdelphij (AM_INIT_AUTOMAKE): Do not distribute shar file. 554170754Sdelphij 555170754Sdelphij * doc/diff.texi (Overview): byte != character. 556170754Sdelphij (Detailed Context, Detailed Unified, Alternate Names, diff Options): 557170754Sdelphij Do not document diff -L. 558170754Sdelphij (Comparing Directories, Making Patches, diff Options): 559170754Sdelphij Do not document diff -P. 560170754Sdelphij (diff Performance, sdiff Option Summary, diff Options, sdiff Options): 561170754Sdelphij Do not document diff -H. 562170754Sdelphij (diff Performance, diff Options): Do not document --horizon-lines. 563170754Sdelphij (cmp Options): Prefer -b to -c. 564170754Sdelphij (cmp Options, diff Options, diff3 Options, patch Options, 565170754Sdelphij sdiff Options): Put short options next to the similar long options. 566170754Sdelphij Document --help, and use the same wording for --verbose. 567170754Sdelphij (diff3 Options): Fix typo in description of -E, which used wrongly used 568170754Sdelphij "-e" instead of "-E". 569170754Sdelphij 570170754Sdelphij * lib/hard-locale.c (alloca): Remove. 571170754Sdelphij Include stdlib.h if available, for malloc. 572170754Sdelphij (hard_locale): Use malloc, not alloca, so that we need not worry about 573170754Sdelphij alloca issues. Test for storage allocation failure. 574170754Sdelphij 575170754Sdelphij * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE. 576170754Sdelphij (jm_PREREQ_HARD_LOCALE): New macro. 577170754Sdelphij 578170754Sdelphij * src/cmp.c (specify_comparison_type): New function. 579170754Sdelphij (check_stdout): "indices and codes" -> "byte numbers and values" 580170754Sdelphij (main): Detect clashing options. 581170754Sdelphij (cmp): Use "byte" rather than "char" if a translation for "byte" 582170754Sdelphij is available, even when in the POSIX locale. 583170754Sdelphij 584170754Sdelphij * src/diff.c (option_help_msgid): Do not document -L, -P, 585170754Sdelphij --horizon-lines, --inhibit-hunk-merge, -H. 586170754Sdelphij * src/diff.h: -L -> --label 587170754Sdelphij 588170754Sdelphij2002-03-11 Paul Eggert <eggert@twinsun.com> 589170754Sdelphij 590170754Sdelphij * NEWS, configure.ac (AC_INIT): Version 2.7.9. 591170754Sdelphij 592170754Sdelphij * INSTALLME: Update to autoconf 2.53, automake 1.6, help2man 593170754Sdelphij 1.25 with patch. 594170754Sdelphij 595170754Sdelphij * configure.ac (AC_INIT): 596170754Sdelphij Change package name from diff to diffutils. 597170754Sdelphij (AM_INIT_AUTOMAKE): Use new form, with option gnits, 598170754Sdelphij rather than old from that duplicated AC_INIT. 599170754Sdelphij (AM_MISSING_PROG): Add help2man. 600170754Sdelphij (REGEX_MALLOC): Define. 601170754Sdelphij (AC_CONFIG_FILES): Add man/Makefile. 602170754Sdelphij 603170754Sdelphij * Makefile.am (AUTOMAKE_OPTIONS): Remove. 604170754Sdelphij * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove. 605170754Sdelphij * lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 606170754Sdelphij * ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 607170754Sdelphij * src/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 608170754Sdelphij 609170754Sdelphij * lib/c-stack.c: Include <errno.h> 610170754Sdelphij (ENOTSUP): Define if errno.h doesn't. 611170754Sdelphij (SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ, 612170754Sdelphij _SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack): 613170754Sdelphij Remove; we now assume them all when 614170754Sdelphij HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need 615170754Sdelphij substitutes. 616170754Sdelphij (<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC. 617170754Sdelphij (alternate_signal_stack): Now of size SIGSTKSZ. 618170754Sdelphij (segv_handler): Simplify, under the assumption that 619170754Sdelphij HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero. 620170754Sdelphij (c_stack_action): Likewise. 621170754Sdelphij (exit_failure) [DEBUG]: Initialize to 0, not 1. 622170754Sdelphij (recurse, main) [DEBUG]: Remove main args. 623170754Sdelphij 624170754Sdelphij * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change 625170754Sdelphij wording of message. Do not check for stdbool.h or ucontext.h, 626170754Sdelphij or for ucontext_t or sigaction or sigaltstack. 627170754Sdelphij 628170754Sdelphij * po/LINGUAS: Add zh_TW. 629170754Sdelphij 630170754Sdelphij * Makefile.am (SUBDIRS): Add man. 631170754Sdelphij * man/Makefile.am: New file. 632170754Sdelphij * src/cmp.c (usage): Reword for help2man. 633170754Sdelphij * src/diff.c (option_help_msgid): Likewise. 634170754Sdelphij * src/diff3.c (option_help_msgid, usage): Likewise. 635170754Sdelphij * src/sdiff3.c (option_help_msgid, usage): Likewise. 636170754Sdelphij Reword for help2man. 637170754Sdelphij 638170754Sdelphij * THANKS: Add email address for Tower. 639170754Sdelphij 640170754Sdelphij * config/config.guess, config/config.sub, config/depcomp, 641170754Sdelphij config/install-sh, config/mdate-sh, config/missing, 642170754Sdelphij config/mkinstalldirs, config/texinfo.tex: Update 643170754Sdelphij to recent version (maintained in other packages). 644170754Sdelphij 645170754Sdelphij2002-03-04 Bruno Haible <haible@ilog.fr> 646170754Sdelphij 647170754Sdelphij * m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if 648170754Sdelphij no preinstalled GNU gettext was found. 649170754Sdelphij 650170754Sdelphij2002-03-02 Eli Zaretskii <eliz@is.elta.co.il> 651170754Sdelphij 652170754Sdelphij * ms/config.sed: Tweak editing of install-info-am and 653170754Sdelphij uninstall-info-am targets, to include 8+3-butchered names of Info 654170754Sdelphij files. 655170754Sdelphij 656170754Sdelphij2002-02-28 Paul Eggert <eggert@twinsun.com> 657170754Sdelphij 658170754Sdelphij * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8. 659170754Sdelphij 660170754Sdelphij * doc/diff.texi: Add vr index. 661170754Sdelphij Update copyright to 2002. 662170754Sdelphij (Standards conformance): New chapter. 663170754Sdelphij (Binary): Differing binary files are trouble unless the user asked for 664170754Sdelphij brief output. 665170754Sdelphij (Detailed Context): Prefer ISO time stamp format in discussion. 666170754Sdelphij (Detailed Unified, Pagination): Likewise. 667170754Sdelphij (Less Context): Likewise. Also use short option. 668170754Sdelphij (Alternate Names): Separate option from arg. 669170754Sdelphij (Making Patches): Mention -U 2. 670170754Sdelphij (diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not 671170754Sdelphij allow it. 672170754Sdelphij 673170754Sdelphij * INSTALLME: Update advice for Solaris installation problems. 674170754Sdelphij We no longer use a test version of gettext. 675170754Sdelphij Autoconf test version updated from 2.52f to 2.52h. 676170754Sdelphij POSIX 1003.1-2001 patch for Automake. 677170754Sdelphij 678170754Sdelphij * configure.ac (AC__GNU_SOURCE): Add this, 679170754Sdelphij replacing AH_VERBATIM of _GNU_SOURCE. 680170754Sdelphij (tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf. 681170754Sdelphij (jm_PREREQ_C_STACK): Add. 682170754Sdelphij (AC_CONFIG_FILES): Remove intl/Makefile. 683170754Sdelphij (AM_GNU_GETTEXT): Add external arg, from gettext 0.11. 684170754Sdelphij 685170754Sdelphij * lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h, 686170754Sdelphij lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4, 687170754Sdelphij po/cs.po, po/ja.po: New files. 688170754Sdelphij 689170754Sdelphij * intl/ChangeLog, intl/Makefile.in, intl/VERSION, 690170754Sdelphij intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c, 691170754Sdelphij intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, 692170754Sdelphij intl/dngettext.c, intl/explodename.c, intl/finddomain.c, 693170754Sdelphij intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h, 694170754Sdelphij intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h, 695170754Sdelphij intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c, 696170754Sdelphij intl/locale.alias, intl/localealias.c, intl/localename.c, 697170754Sdelphij intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c, 698170754Sdelphij intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h, 699170754Sdelphij intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin, 700170754Sdelphij intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove. 701170754Sdelphij 702170754Sdelphij * ABOUT-NLS: Update to Gettext 0.11. 703170754Sdelphij 704170754Sdelphij * Makefile.am (SUBDIRS): Remove intl. 705170754Sdelphij 706170754Sdelphij * config/config.guess, config/config.rpath, config/config.sub, 707170754Sdelphij config/texinfo.tex, config/depcomp, config/texinfo.tex, 708170754Sdelphij lib/tempname.c: Update to latest version from other packages. 709170754Sdelphij 710170754Sdelphij * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure. 711170754Sdelphij * lib/xmalloc.c: Include exitfail.h. 712170754Sdelphij (xalloc_exit_failure): Remove; subsumed by exit_failure. 713170754Sdelphij All uses changed. 714170754Sdelphij 715170754Sdelphij * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h. 716170754Sdelphij (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c. 717170754Sdelphij (INCLUDES): Remove. 718170754Sdelphij 719170754Sdelphij * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX. 720170754Sdelphij * lib/cmpbuf.c: Include errno.h. 721170754Sdelphij (errno): Declare if !STDC_HEADERS. 722170754Sdelphij Include signal.h. 723170754Sdelphij (SA_RESTART): Define if not already defined. 724170754Sdelphij Include <inttypes.h>. 725170754Sdelphij (PTRDIFF_MAX): Define if not already defined. 726170754Sdelphij (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. 727170754Sdelphij (block_read): Accommodate ancient AIX hosts that set errno to EINTR 728170754Sdelphij after uncaught SIGCONT. 729170754Sdelphij (buffer_lcm): Return a reasonable size if the multiple is too large. 730170754Sdelphij New arg LCM_MAX. All callers changed. 731170754Sdelphij 732170754Sdelphij * lib/hard-locale.c: Include "hard-locale.h". 733170754Sdelphij (hard_locale): Ignore ENABLE_NLS, since we want to operate on 734170754Sdelphij locales other than LC_MESSAGES. 735170754Sdelphij 736170754Sdelphij * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER. 737170754Sdelphij (jm_PREREQ_POSIXVER): New macro. 738170754Sdelphij 739170754Sdelphij * m4/setmode.m4 (AC_FUNC_SETMODE_DOS): 740170754Sdelphij Check for fcntl.h and unistd.h unconditionally. 741170754Sdelphij Suggested by Bruno Haible. 742170754Sdelphij 743170754Sdelphij * po/LINGUAS: Add cs, ja. 744170754Sdelphij * po/POTFILES.in: Add lib/c-stack.c, src/dir.c. 745170754Sdelphij 746170754Sdelphij * src/Makefile.am (datadir): @DATADIRNAME@ -> share. 747170754Sdelphij (INCLUDES): Remove intl. 748170754Sdelphij (LDADD): Change INTLLIBS to LIBINTL. 749170754Sdelphij No longer need to link libdiffutils.a twice. 750170754Sdelphij 751170754Sdelphij * src/analyze.c (diff_2_files): 752170754Sdelphij Avoid arithmetic overflow in buffer size calculation. 753170754Sdelphij 754170754Sdelphij * src/cmp.c: Include c-stack.h, exitfail.h. 755170754Sdelphij (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS. 756170754Sdelphij (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE. 757170754Sdelphij (main): Check for stack overflow. 758170754Sdelphij 0 -> EXIT_SUCCESS. 759170754Sdelphij 1 -> EXIT_FAILURE. 760170754Sdelphij (cmp): Likewise. 761170754Sdelphij Accommodate ancient AIX hosts that set errno to 762170754Sdelphij EINTR after uncaught SIGCONT. 763170754Sdelphij 764170754Sdelphij * src/context.c (pr_context_hunk): 765170754Sdelphij Do not dump core if an enormous context causes an 766170754Sdelphij arithmetic overflow. 767170754Sdelphij (pr_unidiff_hunk): Likewise. 768170754Sdelphij (find_hunk): Likewise. 769170754Sdelphij 770170754Sdelphij * src/diff.h: unsigned -> unsigned int. 771170754Sdelphij * src/diff.c: Include c-stack.h, exitfail.h. 772170754Sdelphij Do not include signal.h. 773170754Sdelphij (specify_style, specify_value): Bring these routines back, as POSIX 774170754Sdelphij requires that the order of options not matter. 775170754Sdelphij (shortopts): New constant. 776170754Sdelphij (group_format_option, line_format_option): New constants. 777170754Sdelphij (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. 778170754Sdelphij Ensure that order of options does not matter. 779170754Sdelphij Check for stack overflow. 780170754Sdelphij If contexts overflow, substitute LIN_MAX, as that's good enough. 781170754Sdelphij If multiple contexts are specified, use their maximum. 782170754Sdelphij -c is equivalent to -C 3 now, instead of having an implicit context; 783170754Sdelphij likewise for -u and -U 3. 784170754Sdelphij Use specify_style and specify_value. 785170754Sdelphij (SIGCHLD): Do not define; now done in a header. 786170754Sdelphij Use new style time stamp format for -u / -U. 787170754Sdelphij Reject numeric-string options if operating in POSIX 1003.1-2001 mode. 788170754Sdelphij Avoid overflow problems with tab width. 789170754Sdelphij Simplify from-file and to-file code. 790170754Sdelphij (usage): Do not mention obsolete options. 791170754Sdelphij (filetype): Do not mention whether a file is executable. 792170754Sdelphij Add typed memory objects. 793170754Sdelphij (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> 794170754Sdelphij EXIT_TROUBLE. 795170754Sdelphij 796170754Sdelphij * src/diff3.c: Include c-stack.h, exitfail.h. 797170754Sdelphij (ALLOCATE): Remove. All uses changed to xmalloc, or to xmalloc plus 798170754Sdelphij an overflow check. 799170754Sdelphij (myread): Remove. 800170754Sdelphij (main): Check for stack overflow. 801170754Sdelphij 0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE. 802170754Sdelphij (try_help): Likewise. 803170754Sdelphij (process_diff): Check for integer overflow, to avoid core dumps. 804170754Sdelphij 2 -> EXIT_TROUBLE. 805170754Sdelphij (read_diff): Exit with status 126 if the file is not executable, 806170754Sdelphij for compatibility with POSIX 1003.1-2001. 807170754Sdelphij Accommodate ancient AIX hosts that set errno to EINTR after uncaught 808170754Sdelphij SIGCONT. 809170754Sdelphij Check for integer overflow to avoid core dumps. 810170754Sdelphij (fatal, perror_with_exit): 2 -> EXIT_TROUBLE. 811170754Sdelphij 812170754Sdelphij * src/dir.c (dir_read): 813170754Sdelphij Ignore st_size of directories: POSIX says it's garbage. 814170754Sdelphij Check for integer overflow to avoid core dumps. 815170754Sdelphij (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE. 816170754Sdelphij 817170754Sdelphij * src/ifdef.c: Include <xalloc.h>. 818170754Sdelphij (format_group, print_ifdef_lines): Avoid core dumps with bad formats. 819170754Sdelphij (do_printf_spec): Avoid alloca. 820170754Sdelphij 821170754Sdelphij * src/io.c (sip): 822170754Sdelphij Avoid integer overflow and core dumps if buffer alignments are 823170754Sdelphij preposterously incompatible. 824170754Sdelphij (slurp): Do not dump core if the file is growing as we read it. 825170754Sdelphij If a regular file grows, keep reading until we catch up with its EOF. 826170754Sdelphij (find_and_hash_each_line): Check for integer overflow to avoid cores. 827170754Sdelphij (GUESS_LINES): Remove. 828170754Sdelphij (guess_lines): New function. Avoid integer overflow. 829170754Sdelphij (find_identical_ends): Use it. 830170754Sdelphij Avoid integer overflow and possible core dumps. 831170754Sdelphij 832170754Sdelphij * src/sdiff.c: Include c-stack.h, exitfail.h. Do not include signal.h. 833170754Sdelphij 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. 834170754Sdelphij (ck_editor_status): New function. 835170754Sdelphij (main): Check for stack overflow. 836170754Sdelphij Adopt POSIX convention for subsidiary programs not found. 837170754Sdelphij (diffarg): Check for integer overflow to avoid core dumps. 838170754Sdelphij (trapsigs): Remove SA_INTERRUPT special case; now done by header. 839170754Sdelphij (SIGCHLD): Likewise. 840170754Sdelphij (edit): Adopt POSIX convention for subsidiary programs not found. 841170754Sdelphij 842170754Sdelphij * src/side.c: unsigned -> unsigned int. 843170754Sdelphij 844170754Sdelphij * src/system.h: Don't use alloca or include <alloca.h>. 845170754Sdelphij unsigned -> unsigned int 846170754Sdelphij (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined. 847170754Sdelphij Include signal.h. 848170754Sdelphij (SA_RESTART): Define if not defined. 849170754Sdelphij (SIGCHLD): Likewise. 850170754Sdelphij 851170754Sdelphij * src/util.c: 2 -> EXIT_TROUBLE. 852170754Sdelphij Adopt POSIX convention for ENOEXEC and exit status 126. 853170754Sdelphij unsigned -> unsigned int 854170754Sdelphij 855170754Sdelphij2002-01-24 Paul Eggert <eggert@twinsun.com> 856170754Sdelphij 857170754Sdelphij * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7. 858170754Sdelphij 859170754Sdelphij * intl/plural.c: Regenerate with Bison 1.31. 860170754Sdelphij 861170754Sdelphij * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++. 862170754Sdelphij * INSTALL: Update to Autoconf 2.52f. 863170754Sdelphij 864170754Sdelphij * INSTALLME: New file. 865170754Sdelphij * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME. 866170754Sdelphij (DISTCLEANFILES): Remove. 867170754Sdelphij * NEWS: Reformat for imminent 2.8 release. 868170754Sdelphij * README: Mention INSTALLME. 869170754Sdelphij * README-alpha: Move most of contents to INSTALLME. 870170754Sdelphij * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii. 871170754Sdelphij 872170754Sdelphij * config: New subdirectory, containing the following files from .: 873170754Sdelphij config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs. 874170754Sdelphij Move the following files here from doc: texinfo.tex, mdate-sh. 875170754Sdelphij * config/config.guess, config/config.sub, config/texinfo.tex: 876170754Sdelphij Update to latest version from FSF. 877170754Sdelphij * config/config.rpath: New file, from Gettext 0.11-pre5++. 878170754Sdelphij 879170754Sdelphij * configure.ac (AC_INIT): Use new 3-arg form. 880170754Sdelphij (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT. 881170754Sdelphij (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11. 882170754Sdelphij (AC_CONFIG_AUX_DIR): New macro invocation. 883170754Sdelphij 884170754Sdelphij * lib/Makefile.am (noinst_HEADERS): Add gettext.h. 885170754Sdelphij * lib/gettext.h: New file, from Gettext 0.11-pre5++. 886170754Sdelphij * lib/prepargs.c: Include <string.h>. Reported by Bruno Haible. 887170754Sdelphij 888170754Sdelphij * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4, 889170754Sdelphij lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++. 890170754Sdelphij * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from 891170754Sdelphij Gettext 0.11-pre5++. 892170754Sdelphij 893170754Sdelphij * po/LINGUAS: New file. 894170754Sdelphij * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++. 895170754Sdelphij * po/Makevars, po/Rules-quot, po/boldquot.sed: New files, 896170754Sdelphij from Gettext 0.11-pre5++. 897170754Sdelphij 898170754Sdelphij * src/cmp.c (copyright_string): Update to 2002. 899170754Sdelphij * src/diff.c (copyright_string): Likewise. 900170754Sdelphij * src/diff3.c (copyright_string): Likewise. 901170754Sdelphij * src/sdiff.c (copyright_string): Likewise. 902170754Sdelphij 903170754Sdelphij * src/cmp.c (specify_ignore_initial): Renamed from 904170754Sdelphij parse_ignore_initial, with different signature, to take the 905170754Sdelphij maximum of multiple options rather than the last one. 906170754Sdelphij All uses changed. 907170754Sdelphij 908170754Sdelphij * src/cmp.c (bytes, specify_ignore_initial, cmp): Use UINTMAX_MAX 909170754Sdelphij instead of (uintmax_t) -1, to avoid warnings on some compilers. 910170754Sdelphij * src/io.c (file_block_read): Likewise, for SIZE_MAX. 911170754Sdelphij 912170754Sdelphij * src/cmp.c (usage): Reformat messages to ease translation. 913170754Sdelphij * src/diff3.c (usage): Likewise. 914170754Sdelphij * src/sdiff.c (usage): Likewise. 915170754Sdelphij 916170754Sdelphij * src/cmp.c (main): Two files with the same name are identical 917170754Sdelphij only if the same offset is specified. 918170754Sdelphij (block_compare_and_count): Avoid cast to unsigned char. 919170754Sdelphij 920170754Sdelphij * src/diff3.c (main): Remove unused variable. 921170754Sdelphij 922170754Sdelphij * src/dir.c: Include <setjmp.h> 923170754Sdelphij (struct dirdata): New member nnames. 924170754Sdelphij (locale_specific_sorting, failed_strcoll): New vars. 925170754Sdelphij (dir_read): Renamed from dir_sort. Don't sort the dir. 926170754Sdelphij Set new nnames member of struct dirdata. All callers changed. 927170754Sdelphij (compare_names): Don't check for errno after strcasecmp. 928170754Sdelphij Use strcoll only if locale_specific_sorting is nonzero. 929170754Sdelphij If strcoll fails, longjmp out rather than returning a value 930170754Sdelphij that might result in an invalid comparison function that might 931170754Sdelphij make qsort dump core. 932170754Sdelphij (diff_dirs): Sort the directory ourselves. Use setjmp to recover 933170754Sdelphij from strcoll failure, falling back on native byte comparison. 934170754Sdelphij Make local variables volatile if they need to preserve their value 935170754Sdelphij after setjmp/longjmp. 936170754Sdelphij 937170754Sdelphij * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE): 938170754Sdelphij New macros. 939170754Sdelphij (main): Do not confuse signal numbers with their indices. 940170754Sdelphij Bug reported by Bruno Haible. 941170754Sdelphij (edit): Cat lin to long before printing with %ld, since lin might 942170754Sdelphij be narrow than long. 943170754Sdelphij 944170754Sdelphij * src/system.h (UINTMAX_MAX): New macro. 945170754Sdelphij Include gettext.h, not libgettext.h. 946170754Sdelphij (N_): Do not wrap arg in parentheses. Fix from Bruno Haible. 947170754Sdelphij 948170754Sdelphij * src/util.c (finish_output): Ensure that werrno is initialized. 949170754Sdelphij (lines_differ): Have an explicit do-nothing case for 950170754Sdelphij IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall. 951170754Sdelphij 952170754Sdelphij2001-12-29 Eli Zaretskii <eliz@is.elta.co.il> 953170754Sdelphij 954170754Sdelphij * src/sdiff.c (interact): After extracting rlen from the editor 955170754Sdelphij command, test for a terminating null character, not for a newline. 956170754Sdelphij 957170754Sdelphij * ms/config.bat: Allow longer source directory names without 958170754Sdelphij overflowing the line length limits. Create the cache in the 959170754Sdelphij build directory, not in the source directory 960170754Sdelphij * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are 961170754Sdelphij unavailable. 962170754Sdelphij 963170754Sdelphij2001-12-23 Paul Eggert <eggert@twinsun.com> 964170754Sdelphij 965170754Sdelphij * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6. 966170754Sdelphij 967170754Sdelphij * configure.ac (ALL_LINGUAS): Add tr. 968170754Sdelphij 969170754Sdelphij * src/util.c (begin_output): 970170754Sdelphij Have child exit with status 127 rather than reporting 971170754Sdelphij failure on its own. Set errno to 0 before invoking popen. 972170754Sdelphij (finish_output): Report errno on pclose failure. 973170754Sdelphij Distinguish between subsidiary program not found, and failure. 974170754Sdelphij 975170754Sdelphij * src/sdiff.c (not_found, execdiff): Remove. 976170754Sdelphij (DIFF_PROGRAM_OPTION): New constant. 977170754Sdelphij (longopts, option_help_msgid, main): Add --diff-program=PROGRAM. 978170754Sdelphij (check_stdout): New function. 979170754Sdelphij (main): Remove DIFF_PROGRAM. Check stdout after printing version. 980170754Sdelphij Use check_stdout after printing help. Use execvp/perror_fatail rather 981170754Sdelphij than execdiff. Set errno to 0 before invoking popen. 982170754Sdelphij Check for pclose failure properly. 983170754Sdelphij (main, edit): If child exec fails, exit with 127 rather than trying to 984170754Sdelphij print diagnostic. 985170754Sdelphij Distinguish between subsidiary program failing and not being found. 986170754Sdelphij (edit): Handle signals the same way, regardless of whether we're using 987170754Sdelphij system or fork+exec. Check for system returning -1. 988170754Sdelphij 989170754Sdelphij * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants. 990170754Sdelphij (longopts, main): Use them. 991170754Sdelphij (longopts, main, option_help_msgid): New option --diff-option=PROGRAM. 992170754Sdelphij (main): Remove DIFF_PROGRAM support. 993170754Sdelphij Check stdout after printing version. 994170754Sdelphij (check_stdout): Report errno info if fclose fails. 995170754Sdelphij (read_diff): Have child exit with status 127 when program is not found, 996170754Sdelphij rather than trying to have the child report failure. Check for 997170754Sdelphij pclose returning -1. 998170754Sdelphij 999170754Sdelphij * src/diff.c (DEFAULT_WIDTH): Remove. 1000170754Sdelphij (main): Use 130 instead of DEFAULT_WIDTH, since it's not really 1001170754Sdelphij builder-settable. Do not prepend DIFF_OPTIONS. 1002170754Sdelphij (check-stdout): If fclose (stdout) fails, print errno info. 1003170754Sdelphij (option_help_msgid): Default context is 3, not 2. 1004170754Sdelphij (usage): Work even if ptrdiff_t is wider than int. 1005170754Sdelphij 1006170754Sdelphij * doc/diff.texi (diff Options): Remove DIFF_OPTIONS. 1007170754Sdelphij (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM. 1008170754Sdelphij (diff3 Options, sdiff Options): Add --diff-program. 1009170754Sdelphij 1010170754Sdelphij * src/cmp.c (valid_suffixes): 1011170754Sdelphij Add '0', to support suffixes like "MB" and "MiB". 1012170754Sdelphij (check_stdout): Don't assume that the translations of "write failed" 1013170754Sdelphij and of "standard output" lack '%'. 1014170754Sdelphij (main): Check stdout after printing version. 1015170754Sdelphij 1016170754Sdelphij * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>. 1017170754Sdelphij [!HAVE_SETMODE_DOS]: Do not include <unistd.h>. 1018170754Sdelphij (set_binary_mode): Return mode (not 1) if fd is a tty. 1019170754Sdelphij Do not assume that O_TEXT is zero. 1020170754Sdelphij 1021170754Sdelphij * doc/diff.texi (cmp Options): 1022170754Sdelphij In byte counts, a plain suffix (without any integer) 1023170754Sdelphij is assumed to modify the integer 1. Index terms like "kibibyte". 1024170754Sdelphij Document plain "k". 1025170754Sdelphij 1026170754Sdelphij (Reporting Bugs): Mention bug-report archive and test version 1027170754Sdelphij location. Ask for "diff --version" in bug reports. 1028170754Sdelphij 1029170754Sdelphij2001-12-13 Paul Eggert <eggert@twinsun.com> 1030170754Sdelphij 1031170754Sdelphij * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without 1032170754Sdelphij also changing option_help_msgid. All uses replaced with 130. 1033170754Sdelphij 1034170754Sdelphij * lib/setmode.c: Include fcntl.h and unistd.h only if 1035170754Sdelphij HAVE_SETMODE_DOS. 1036170754Sdelphij (setmode): Assume a file is binary unless the mode is O_TEXT. 1037170754Sdelphij * ms/README: Fix minor typos. 1038170754Sdelphij 1039170754Sdelphij2001-12-13 Eli Zaretskii <eliz@is.elta.co.il> 1040170754Sdelphij 1041170754Sdelphij * ms/README: New file. 1042170754Sdelphij 1043170754Sdelphij * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume 1044170754Sdelphij O_TEXT has a zero value. If FD is a terminal device, do nothing 1045170754Sdelphij and return MODE, thus pretending that it was already in the 1046170754Sdelphij requested MODE. 1047170754Sdelphij [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY). 1048170754Sdelphij 1049170754Sdelphij * ms/config.sed: Remove the split prevention of config.status. 1050170754Sdelphij Fix Sed commands for converting absolute file names into 1051170754Sdelphij top_srcdir-relative ones. 1052170754Sdelphij 1053170754Sdelphij * ms/config.bat: Fix typos. 1054170754Sdelphij 1055170754Sdelphij2001-12-12 Neal H Walfield <neal@cs.uml.edu> 1056170754Sdelphij 1057170754Sdelphij * diff.c (option_help_msgid): Correct the default context width 1058170754Sdelphij from 2 to 3. 1059170754Sdelphij 1060170754Sdelphij2001-12-11 Paul Eggert <eggert@twinsun.com> 1061170754Sdelphij 1062170754Sdelphij * m4/Makefile.am.in: Remove jm-glibc-io.m4 1063170754Sdelphij 1064170754Sdelphij * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5. 1065170754Sdelphij 1066170754Sdelphij * configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that 1067170754Sdelphij $PR_PROGRAM is expanded by sh. 1068170754Sdelphij (ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int, 1069170754Sdelphij not AC_CHECK_TYPES. 1070170754Sdelphij (jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros. 1071170754Sdelphij (AC_CONFIG_FILES): Add ms/Makefile. 1072170754Sdelphij 1073170754Sdelphij * doc/diff.texi: Add --no-ignore-file-name-case. 1074170754Sdelphij File name case sensitivity now affects file name exclusion. 1075170754Sdelphij Fix typos. 1076170754Sdelphij 1077170754Sdelphij * src/util.c: Include dirname.h. 1078170754Sdelphij (dir_file_pathname): Use base_name rather than file_name_lastdirchar. 1079170754Sdelphij 1080170754Sdelphij * src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros. 1081170754Sdelphij Include <libgettext.h> rather than rolling it ourselves. 1082170754Sdelphij (file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove. 1083170754Sdelphij 1084170754Sdelphij * src/sdiff.c: Include <dirname.h>. 1085170754Sdelphij (expand_name): Use base_name rather than file_name_lastdirchar, for 1086170754Sdelphij portability to DOS. 1087170754Sdelphij (main): Initialize xalloc_exit_failure before possibly invoking 1088170754Sdelphij any memory allocator. 1089170754Sdelphij 1090170754Sdelphij * src/io.c: Include setmode.h. 1091170754Sdelphij 1092170754Sdelphij * src/diff3.c (main): 1093170754Sdelphij Initialize xalloc_exit_failure before possibly invoking any memory 1094170754Sdelphij allocator. 1095170754Sdelphij 1096170754Sdelphij * src/diff.c: Include dirname.h, setmode.h. 1097170754Sdelphij 1098170754Sdelphij (main): Later values and/or styles now silently override earlier. 1099170754Sdelphij (specify_value, specify_style): Likewise. All callers changed. 1100170754Sdelphij Remove. 1101170754Sdelphij (binary, main, option_help_msgid, compare_files): 1102170754Sdelphij HAVE_SETMODE -> HAVE_SETMODE_DOS. 1103170754Sdelphij (NO_IGNORE_FILE_NAME_CASE_OPTION): New constant. 1104170754Sdelphij (longopts, main, option_help_msgid): Support it. 1105170754Sdelphij (exclude_options): New function. 1106170754Sdelphij (main): Use it. Initialize xalloc_exit_failure before potentially 1107170754Sdelphij allocating memory. 1108170754Sdelphij 1109170754Sdelphij (filetype): Distinguish executable files from others, as POSIX 1110170754Sdelphij suggests. 1111170754Sdelphij 1112170754Sdelphij (compare_files): Use base_name instead of file_name_lastdirchar. 1113170754Sdelphij 1114170754Sdelphij * src/cmp.c: Include <hard-locale.h>, <setmode.h>. 1115170754Sdelphij (hard_locale_LC_MESSAGES): New macro. 1116170754Sdelphij (sprintc): Remove int width arg; it's now the caller's responsibility 1117170754Sdelphij to pad. All callers changed. 1118170754Sdelphij (stat_buf): New static var; was formerly a local var in 'main'. 1119170754Sdelphij (valid_suffixes): Add 'K', for 'KiB'. 1120170754Sdelphij (option_help_msgid): Don't confuse bytes with characters. 1121170754Sdelphij (main): Set xalloc_exit_failure before invoking anything that might 1122170754Sdelphij allocate memory. Fix bug: -n was incorrectly ignored when optimizing 1123170754Sdelphij the case of regular files with different lengths. 1124170754Sdelphij (cmp): Use an index column wide enough to store this comparison's 1125170754Sdelphij indexes. In locales other than the POSIX locale, say "byte" 1126170754Sdelphij rather than "char". 1127170754Sdelphij 1128170754Sdelphij * ms/config.bat: pc -> ms 1129170754Sdelphij 1130170754Sdelphij * ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h: 1131170754Sdelphij New file. 1132170754Sdelphij 1133170754Sdelphij * lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h. 1134170754Sdelphij (libdiffutils_a_SOURCES): Add basename.c, setmode.c. 1135170754Sdelphij 1136170754Sdelphij * Makefile.am (SUBDIRS): Add ms. 1137170754Sdelphij 1138170754Sdelphij2001-12-10 Paul Eggert <eggert@twinsun.com> 1139170754Sdelphij 1140170754Sdelphij * m4/fnmatch.m4: Test for FNM_CASEFOLD. 1141170754Sdelphij 1142170754Sdelphij2001-12-03 Paul Eggert <eggert@twinsun.com> 1143170754Sdelphij 1144170754Sdelphij * lib/posix/regex.h: Fix copyright notice. 1145170754Sdelphij 1146170754Sdelphij2001-12-03 Paul Eggert <eggert@twinsun.com> 1147170754Sdelphij 1148170754Sdelphij * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4. 1149170754Sdelphij 1150170754Sdelphij * diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp): 1151170754Sdelphij Use "byte" rather than "character" when talking about cmp, since 1152170754Sdelphij it compares bytes, not character. 1153170754Sdelphij (Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP. 1154170754Sdelphij -i or --ignore-initial now accepts FROM-SKIP:TO-SKIP. 1155170754Sdelphij New option -n or --bytes. 1156170754Sdelphij Count operands now may be in octal or hex, and may be followed by a 1157170754Sdelphij size multiplier. 1158170754Sdelphij 1159170754Sdelphij * configure.ac (DEFAULT_DIFF_PROGRAM): 1160170754Sdelphij Define to "diff", not "$bindir/diff" (which didn't work anyway). 1161170754Sdelphij (AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev. 1162170754Sdelphij (AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent. 1163170754Sdelphij (AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK. 1164170754Sdelphij (AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add. 1165170754Sdelphij (AC_OUTPUT): Remove args; they were obsolescent. 1166170754Sdelphij 1167170754Sdelphij * util.c (setup_output, begin_output, finish_output): 1168170754Sdelphij HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK. 1169170754Sdelphij * sdiff.c (diffpid, cleanup, main, edit): Likewise. 1170170754Sdelphij * diff3.c (read_diff): Likewise. 1171170754Sdelphij 1172170754Sdelphij * system.h (STAT_BLOCKSIZE): 1173170754Sdelphij Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE. 1174170754Sdelphij (vfork): New macro. 1175170754Sdelphij (HAVE_FORK): Remove. 1176170754Sdelphij (set_binary_mode): New macro. 1177170754Sdelphij 1178170754Sdelphij * sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK. 1179170754Sdelphij (edit): Reopen the temporary file after the editor has run, in case 1180170754Sdelphij the editor operates by unlinking the old file and linking a new one. 1181170754Sdelphij (P_tmpdir): Rename from PVT_tmpdir; this fixes a typo. 1182170754Sdelphij All uses changed. 1183170754Sdelphij 1184170754Sdelphij * io.c (sip, read_files): 1185170754Sdelphij Remove tests for HAVE_SETMODE; use set_binary_mode 1186170754Sdelphij instead of setmode. 1187170754Sdelphij (sip): Fix typo in backward lseek when reverting to text mode. 1188170754Sdelphij 1189170754Sdelphij * config.site, config.sed, config.bat: New file. 1190170754Sdelphij 1191170754Sdelphij * Makefile.am (EXTRA_DIST): Add xstrtol.c. 1192170754Sdelphij (noinst_HEADERS): Add xstrtol.h. 1193170754Sdelphij (libdiffutils_a_SOURCES): Add xstrtoumax.c. 1194170754Sdelphij 1195170754Sdelphij * cmp.c: <xstrtol.h>: Include. 1196170754Sdelphij (ignore_initial): Now an array with 2 elements. All uses changed. 1197170754Sdelphij (bytes): New var. 1198170754Sdelphij (HELP_OPTION): New constant. 1199170754Sdelphij (long_options, main): Use it. 1200170754Sdelphij (long_options, option_help_msgid, main, cmp): 1201170754Sdelphij Add support for -n or --bytes. 1202170754Sdelphij (parse_ignore_initial): New function. 1203170754Sdelphij (option_help_msgid, main): Add -i M:N. 1204170754Sdelphij (usage, main): Add two optional trailing operands, a la BSD. 1205170754Sdelphij (main): setmode -> set_binary_mode. 1206170754Sdelphij (cmp): Report byte number of what we've seen, not of the entire file. 1207170754Sdelphij This is to be consistent with the line number, which is always relative 1208170754Sdelphij with what we've seen. 1209170754Sdelphij 1210170754Sdelphij2001-12-02 Paul Eggert <eggert@twinsun.com> 1211170754Sdelphij 1212170754Sdelphij * diff.c (main, compare_files): setmode -> set_binary_mode. 1213170754Sdelphij 1214170754Sdelphij * xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'. 1215170754Sdelphij 1216170754Sdelphij * xstrtol.c (__xstrtol): Add support for IEC 60027-2. 1217170754Sdelphij 1218170754Sdelphij2001-11-25 Paul Eggert <eggert@twinsun.com> 1219170754Sdelphij 1220170754Sdelphij * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3. 1221170754Sdelphij 1222170754Sdelphij * README-alpha: New file. 1223170754Sdelphij 1224170754Sdelphij * src/Makefile.am (INCLUDES): Add -I../lib, for regex.h. 1225170754Sdelphij 1226170754Sdelphij * configure.ac: 1227170754Sdelphij Don't set LIB_CLOCK_GETTIME to 'none required'; set it to 1228170754Sdelphij the empty string instead. 1229170754Sdelphij 1230170754Sdelphij * lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c. 1231170754Sdelphij 1232170754Sdelphij * Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists. 1233170754Sdelphij 1234170754Sdelphij * lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h. 1235170754Sdelphij 1236170754Sdelphij * configure.ac (__EXTENSIONS__): New define, for the unlocked macros. 1237170754Sdelphij 1238170754Sdelphij * README: Add copyright notice. 1239170754Sdelphij Remove stuff that doesn't apply any more. 1240170754Sdelphij 1241170754Sdelphij * doc/diff.texi: offsets -> indices for cmp 1242170754Sdelphij 1243170754Sdelphij * src/cmp.c (option_help_msgid): offsets -> indices 1244170754Sdelphij 1245170754Sdelphij * src/diff.c (option_help_msgid): 1246170754Sdelphij Don't mention --binary on POSIX hosts. 1247170754Sdelphij 1248170754Sdelphij * src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant. 1249170754Sdelphij (longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion, 1250170754Sdelphij --strip-trailing-cr. 1251170754Sdelphij 1252170754Sdelphij * doc/diff.texi: Change direcategory from Utilities to GNU Packages. 1253170754Sdelphij Add individual utilities. 1254170754Sdelphij Switch to Free Documentation License. 1255170754Sdelphij @code -> @command 1256170754Sdelphij @samp -> @option 1257170754Sdelphij GNU -> @sc{gnu} 1258170754Sdelphij Expand tabs to spaces, except when in an example that actually 1259170754Sdelphij uses tabs. 1260170754Sdelphij Prefer @node with just one arg. 1261170754Sdelphij Document -E or --ignore-tab-expansion, --strip-trailing-cr, 1262170754Sdelphij --ignore-file-name-case. 1263170754Sdelphij Regular expressions are now grep style, not Emacs style. 1264170754Sdelphij cmp's -c or --print-chars option is now -b or --print-bytes. 1265170754Sdelphij Time stamps now depend on LC_TIME. 1266170754Sdelphij -p now implies ^[[:alpha:]$_]. 1267170754Sdelphij Flags now include ' and 0. 1268170754Sdelphij cmp -i is an alias for --ignore-initial 1269170754Sdelphij Document --from-file, --to-file. 1270170754Sdelphij Document DIFF_OPTIONS. 1271170754Sdelphij 1272170754Sdelphij * configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime. 1273170754Sdelphij (LIB_CLOCK_GETTIME): New subst. 1274170754Sdelphij 1275170754Sdelphij * src/system.h: Assume C89 or better. 1276170754Sdelphij (_GNU_SOURCE): Remove; config.h now defines it. 1277170754Sdelphij (alloca): Declare like coreutils does it. 1278170754Sdelphij (verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR, 1279170754Sdelphij S_IRUSR, S_IWUSR): New macros. 1280170754Sdelphij (STAT_BLOCKSIZE): Parenthesize definiens. 1281170754Sdelphij <inttypes.h>: Include if HAVE_INTTYPES_H. 1282170754Sdelphij (CHAR_MAX, INT_MAX): Remove. 1283170754Sdelphij (PTRDIFF_MAX, SIZE_MAX): New macros. 1284170754Sdelphij (strtoumax): New decl. 1285170754Sdelphij Include stddef.h. 1286170754Sdelphij (bzero): Remove. 1287170754Sdelphij (bindtextdomain, textdomain, N_): New macros. 1288170754Sdelphij (ISPRINT, ISSPACE): Remove ifndef wrappers. 1289170754Sdelphij (ISUPPER, ISDIGIT): Remove. 1290170754Sdelphij (TOLOWER): New macro. 1291170754Sdelphij (MIN): Renamed from min; all callers changed. 1292170754Sdelphij (MAX): Likewise, from max. 1293170754Sdelphij (lin): New type. 1294170754Sdelphij (LIN_MAX): New macro. 1295170754Sdelphij (file_name_cmp): Renamed from filename_cmp. All callers changed. 1296170754Sdelphij (file_name_lastdirchar): Renamed from file_name_lastdirchar. 1297170754Sdelphij All callers changed. 1298170754Sdelphij (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, 1299170754Sdelphij dev_may_have_duplicate_ino): Remove. 1300170754Sdelphij (HAVE_SETMODE, NULL_DEVICE): New macros. 1301170754Sdelphij (same_file): Do not check attributes. 1302170754Sdelphij (same_file_attributes): New macro. 1303170754Sdelphij 1304170754Sdelphij * src/util.c: Assume C89 or better. 1305170754Sdelphij int -> bool for booleans. 1306170754Sdelphij int -> lin for line numbers. 1307170754Sdelphij int -> size_t for sizes. 1308170754Sdelphij Use angle-brackets when including quotesys.h. 1309170754Sdelphij Include error.h, regex.h, xalloc.h. 1310170754Sdelphij (message5): sizeof -> offsetof 1311170754Sdelphij (begin_output): Invoke pr without -f. 1312170754Sdelphij (lines_differ): Renamed from line_cmp, and return bool not 3-way int. 1313170754Sdelphij All callers changed. 1314170754Sdelphij Add support for IGNORE_TAB_EXPANSION. 1315170754Sdelphij (change_letter): Now an array rather than a function. All 1316170754Sdelphij callers changed. 1317170754Sdelphij (translate_range): Translate line numbers to long, not lin, 1318170754Sdelphij for convenience with printf. 1319170754Sdelphij (analyze_hunk): Return enum changes instead of a count of 1320170754Sdelphij inserts and deletes. All callers changed. 1321170754Sdelphij (zalloc): New function. 1322170754Sdelphij 1323170754Sdelphij * src/side.c: Assume C89 or better. 1324170754Sdelphij int -> bool for booleans. 1325170754Sdelphij int -> lin for line numbers. 1326170754Sdelphij 1327170754Sdelphij * src/sdiff.c: Assume C89 or better. 1328170754Sdelphij int -> bool for booleans. 1329170754Sdelphij int -> lin for line numbers. 1330170754Sdelphij Use angle-brackets when including getopt.h, quotesys.h. 1331170754Sdelphij Include error.h, freesoft.h, stdio.h, xalloc.h. 1332170754Sdelphij (copyright_string): Use only most recent year. 1333170754Sdelphij (authorship_msgid, option_help_msgid): Wrap in N_(). 1334170754Sdelphij 1335170754Sdelphij (tmpname): Now volatile. 1336170754Sdelphij (tmpmade): Remove. 1337170754Sdelphij (tmp): New var. 1338170754Sdelphij (private_tempnam, exists, letters): Remove. 1339170754Sdelphij (temporary_file): New function. 1340170754Sdelphij (edit): Use it. 1341170754Sdelphij (interact): Use strtoumax, not atoi. 1342170754Sdelphij 1343170754Sdelphij * src/normal.c: Assume C89 or better. 1344170754Sdelphij int -> lin for line numbers. 1345170754Sdelphij 1346170754Sdelphij * src/io.c: Assume C89 or better. 1347170754Sdelphij int -> bool for booleans. 1348170754Sdelphij int -> lin for line numbers. 1349170754Sdelphij int -> size_t for sizes. 1350170754Sdelphij Use angle-brackets when including cmpbuf.h. 1351170754Sdelphij Include regex.h, xalloc.h. 1352170754Sdelphij (word): Remove; now done in system.h. 1353170754Sdelphij (hash_value): New type; use it instead of 'unsigned' for hash values. 1354170754Sdelphij (file_block_read): New function. 1355170754Sdelphij (sip, slurp): Use it. Now static. 1356170754Sdelphij (sip): Ensure block size is a multiple of word size. Clear eof flag. 1357170754Sdelphij (slurp): Use xalloc_die to report memory exhaustion. 1358170754Sdelphij (find_and_hash_each_line): Use TOLOWER instead of _tolower. 1359170754Sdelphij Add support for IGNORE_TAB_EXPANSION. 1360170754Sdelphij (prepare_text_end): Strip trailing CR if requested. 1361170754Sdelphij (find_identical_ends): Prepare the text only once, 1362170754Sdelphij if they're duplicates. 1363170754Sdelphij Let the compiler take advantage more of the fact that the buffers are 1364170754Sdelphij word-aligned. 1365170754Sdelphij (primes): Remove. 1366170754Sdelphij (prime_offset): New var. 1367170754Sdelphij (read_var): Use prime_offset instead of primes. 1368170754Sdelphij Use zalloc instead of xmalloc + bzero. 1369170754Sdelphij 1370170754Sdelphij * src/ifdef.c: Assume C89 or better. 1371170754Sdelphij int -> lin for line numbers. 1372170754Sdelphij (format_group): Use strtoumax to parse line numbers. 1373170754Sdelphij (format_group, print_ifdef_lines): Use do_printf_spec to 1374170754Sdelphij handle printf specs. 1375170754Sdelphij (groups_letter_value): Don't use _tolower; it's locale-dependent. 1376170754Sdelphij (do_printf_spec): Renamed from scan_printf_spec; now does the printing. 1377170754Sdelphij 1378170754Sdelphij * src/ed.c: Assume C89 or better. 1379170754Sdelphij int -> lin for line numbers (or 'long' when that's more convenient). 1380170754Sdelphij (print_ed_hunk): Fix bug when handling double-dot inserts. 1381170754Sdelphij 1382170754Sdelphij * src/dir.c: Assume C89 or better. 1383170754Sdelphij int -> bool for booleans. 1384170754Sdelphij Include error.h, exclude.h, xalloc.h. 1385170754Sdelphij 1386170754Sdelphij (dir_sort): Return 0 on error, 1 on success. All callers changed. 1387170754Sdelphij compare_names -> compare_names_for_qsort. 1388170754Sdelphij 1389170754Sdelphij (compare_names): Try strcasecmp if ignore_file_name_case. Then try 1390170754Sdelphij strcoll. Use file_name_cmp only as a last resort. Warn about 1391170754Sdelphij strcasecmp or strcoll failure. 1392170754Sdelphij (compare_names_for_qsort): New function. 1393170754Sdelphij 1394170754Sdelphij (diff_dirs): Use compare_names rather than filename_cmp. 1395170754Sdelphij 1396170754Sdelphij * src/diff3.c: Assume C89 or better. 1397170754Sdelphij int -> bool for booleans. 1398170754Sdelphij int -> lin for line numbers. 1399170754Sdelphij Use angle-brackets when including getopt.h, quotesys.h. 1400170754Sdelphij Include error.h, freesoft.h, inttostr.h, xalloc.h. 1401170754Sdelphij (copyright_string): Use only most recent year. 1402170754Sdelphij (authorship_msgid, option_help_msgid): Wrap in N_(). 1403170754Sdelphij 1404170754Sdelphij Rename the following variables for consistency with user-visible 1405170754Sdelphij option spellings. All uses changed. 1406170754Sdelphij (text): Renamed from always_text. 1407170754Sdelphij (initial_tab): Renamed from tab_align_flag. 1408170754Sdelphij 1409170754Sdelphij (horizon_lines): Remove. Remove all uses. 1410170754Sdelphij 1411170754Sdelphij (main): Invoke bindtextdomain and textdomain after setlocale. 1412170754Sdelphij Rename "DIFF" to "DIFF_PROGRAM". 1413170754Sdelphij 1414170754Sdelphij Try to compare file0 to file1, because this is where changes are 1415170754Sdelphij expected to come from. Diffing between these pairs of files is more 1416170754Sdelphij likely to avoid phantom changes from file0 to file1. 1417170754Sdelphij However, use file2 as the common file if this is a 3-way diff, 1418170754Sdelphij for backward compatibility. Suggested by Karl Tomlinson. 1419170754Sdelphij 1420170754Sdelphij (create_diff3_block): Use xcalloc instead of malloc + bzero. 1421170754Sdelphij 1422170754Sdelphij (INT_STRLEN_BOUND): Remove; now in system.h. 1423170754Sdelphij 1424170754Sdelphij (read_diff): Always use --horizon-lines=100 rather than trying 1425170754Sdelphij to guess it. 1426170754Sdelphij Do not pass --inhibit-hunk-merge. 1427170754Sdelphij Minimum chunk size is 1, not 8KiB. 1428170754Sdelphij Use xalloc_die to report memory exhaustion. 1429170754Sdelphij (undotlines): Use long for start, not int. 1430170754Sdelphij 1431170754Sdelphij * src/diff.h: Assume C89 or better. 1432170754Sdelphij int -> bool for booleans. 1433170754Sdelphij int -> lin for line numbers. 1434170754Sdelphij Don't include regex.h. 1435170754Sdelphij (enum changes): New enum. 1436170754Sdelphij (enum line_class): Remove; subsumed by enum changes. 1437170754Sdelphij (enum output_style): New constant OUTPUT_UNSPECIFIED. 1438170754Sdelphij 1439170754Sdelphij (ignore_space_change_flag, ignore_all_space_flag): Remove. 1440170754Sdelphij (ignore_white_space): New decl, subsuming the above two. All 1441170754Sdelphij uses changed. 1442170754Sdelphij 1443170754Sdelphij Rename the following decls for consistency with user-visible 1444170754Sdelphij option spellings. All uses changed. 1445170754Sdelphij (text): Renamed from always_text_flag. 1446170754Sdelphij (ignore_blank_lines): Renamed from ignore_blank_lines_flag. 1447170754Sdelphij (ignore_case): Renamed from ignore_case_flag. 1448170754Sdelphij (brief): Renamed from no_details_flag. 1449170754Sdelphij (initial_tab): Renamed from tab_align_flag. 1450170754Sdelphij (expand_tabs): Renamed from tab_expand_flag. 1451170754Sdelphij (starting_file): Renamed from dir_start_file. 1452170754Sdelphij (paginate): Renamed from paginate_flag. 1453170754Sdelphij (sdiff_merge_assist): Renamed from sdiff_help_sdiff. 1454170754Sdelphij (left_column): Renamed from sdiff_left_only. 1455170754Sdelphij (suppress_common_lines): Renamed from sdiff_skip_common_lines. 1456170754Sdelphij (speed_large_files): Renamed from heuristic. 1457170754Sdelphij (minimal): Renamed from no_discards. 1458170754Sdelphij 1459170754Sdelphij (inhibit_hunk_merge): Remove. 1460170754Sdelphij 1461170754Sdelphij (strip_trailing_cr, excluded, time_format): New decls. 1462170754Sdelphij 1463170754Sdelphij (files_can_be_treated_as_binary): Renamed from ignore_some_changes. 1464170754Sdelphij 1465170754Sdelphij (group_format, line_format): Now char const *[], not char *[]. 1466170754Sdelphij 1467170754Sdelphij (struct file_data): Buffer is now word*, not char*, as it's always 1468170754Sdelphij aligned and this can help the compiler. buffered_chars -> buffered 1469170754Sdelphij (since it's a byte count, not a char count). All uses changed. 1470170754Sdelphij New member `eof'. 1471170754Sdelphij 1472170754Sdelphij (FILE_BUFFER): New macro. 1473170754Sdelphij 1474170754Sdelphij (excluded_filename, error, free_software_msgid): Remove decls; now in 1475170754Sdelphij other .h files. 1476170754Sdelphij 1477170754Sdelphij (sip, slurp): Remove decls. 1478170754Sdelphij (file_block_read): New decl. 1479170754Sdelphij (change_letter): Now an array, not a function. 1480170754Sdelphij (lines_differ): Renamed from line_cmp. 1481170754Sdelphij (analyze_hunk): Now returns enum changes rather than two change counts. 1482170754Sdelphij 1483170754Sdelphij * src/Makefile.am (diff_LDADD): New symbol. 1484170754Sdelphij 1485170754Sdelphij * src/diff.c: Assume C89 or better. 1486170754Sdelphij int -> bool for booleans. 1487170754Sdelphij long -> off_t for line numbers. 1488170754Sdelphij Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h. 1489170754Sdelphij Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h, 1490170754Sdelphij regex.h, signal.h, xalloc.h. 1491170754Sdelphij (copyright_string): Use only most recent year. 1492170754Sdelphij (authorship_msgid, option_help_msgid): Wrap in N_(). 1493170754Sdelphij 1494170754Sdelphij Rename the following variables for consistency with user-visible 1495170754Sdelphij option spellings. All uses changed. 1496170754Sdelphij (binary): Renamed from binary_flag. 1497170754Sdelphij (new_file): Renamed from entire_new_file_flag. 1498170754Sdelphij (unidirectional_new_file): Renamed from unidirectional_new_file_flag. 1499170754Sdelphij (report_identical_files): Renamed from print_file_same_flag. 1500170754Sdelphij 1501170754Sdelphij (numeric_arg): Remove. 1502170754Sdelphij 1503170754Sdelphij (exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude, 1504170754Sdelphij add_exclude_file): 1505170754Sdelphij Remove; now done by exclude.h. 1506170754Sdelphij 1507170754Sdelphij (BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION, 1508170754Sdelphij IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION, 1509170754Sdelphij LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION, 1510170754Sdelphij SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION, 1511170754Sdelphij SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION, 1512170754Sdelphij UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION, 1513170754Sdelphij NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION, 1514170754Sdelphij OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION, 1515170754Sdelphij CHANGED_GROUP_FORMAT_OPTION): New constants. 1516170754Sdelphij (longopts, main): Use them. 1517170754Sdelphij 1518170754Sdelphij (longopts, main, option_help_msgid): Add -E, --from-file, --to-file. 1519170754Sdelphij 1520170754Sdelphij (main): Invoke bindtextdomain and textdomain after setlocale. 1521170754Sdelphij Use grep syntax, not Emacs, for regular expressions. 1522170754Sdelphij Use exclude.h, not our own functions. 1523170754Sdelphij Use ISO 8601 time format in hard locales. 1524170754Sdelphij Prepend DIFF_OPTIONS. 1525170754Sdelphij Don't update ignore_some_changes. 1526170754Sdelphij Use strtoumax instead of numeric_arg. 1527170754Sdelphij Use specify_value when appropriate. 1528170754Sdelphij error -> try_help when appropriate. 1529170754Sdelphij -p now means ^[[:alpha:]$_], not ^[_a-zA-Z$]. 1530170754Sdelphij Ignore --inhibit-hunk-merge. 1531170754Sdelphij Prefer changed group formats to unchanged ones. 1532170754Sdelphij Remove now-unnecessary casts. 1533170754Sdelphij Set files_can_be_treated_as_binary. 1534170754Sdelphij 1535170754Sdelphij (specify_value): Renamed from specify_format. All uses changed. 1536170754Sdelphij 1537170754Sdelphij (specify_style): Default is now unspecified, not normal. All 1538170754Sdelphij uses changed. 1539170754Sdelphij 1540170754Sdelphij (set_mtime_to_now): New function. 1541170754Sdelphij (compare_files): Use it. Use memset, not bzero. 1542170754Sdelphij Set stdin mtime to current time even when stdin is not a regular file. 1543170754Sdelphij Check for same file attributes, as well as for same file. 1544170754Sdelphij Use files_can_be_treated_as_binary. 1545170754Sdelphij "write failed" -> "standard output on output failure. 1546170754Sdelphij 1547170754Sdelphij * src/context.c: Assume C89 or better. 1548170754Sdelphij int -> lin for line numbers. 1549170754Sdelphij Include inttostr.h, regex.h. 1550170754Sdelphij (TIMESPEC_NS): New macro. 1551170754Sdelphij (nstrftime): New decl. 1552170754Sdelphij (print_context_label): Use nstrftime and time_format to format times. 1553170754Sdelphij Print numeric time stamp value if localtime fails. 1554170754Sdelphij (print_context_function): New function. 1555170754Sdelphij (pr_context_hunk, pr_unidiff_hunk): Use it. 1556170754Sdelphij (find_function): Use size_t for sizes, not int. 1557170754Sdelphij 1558170754Sdelphij * src/cmp.c: Assume C89 or better. 1559170754Sdelphij int -> bool for booleans. 1560170754Sdelphij long -> off_t for line numbers. 1561170754Sdelphij Use angle-brackets when including cmpbuf.h, getopt.h. 1562170754Sdelphij Include error.h, freesoft.h, inttostr.h, xalloc.h. 1563170754Sdelphij (copyright_string): Use only most recent year. 1564170754Sdelphij (authorship_msgid): Wrap in N_(). 1565170754Sdelphij (buffer): Now word*, not char*. All uses changed. 1566170754Sdelphij (word): Remove macro; now in system.h. 1567170754Sdelphij (long_options, option_help_msgid, main): -c --print-chars -> 1568170754Sdelphij -b --print-bytes 1569170754Sdelphij (check_stdout): "write failed" -> "standard output" 1570170754Sdelphij (option_help_msgid): Wrap in N_(). 1571170754Sdelphij (main): Invoke bindtextdomain and textdomain after setlocale. 1572170754Sdelphij Use strtoumax instead of doing the work ourselves. 1573170754Sdelphij Check for same_file_attributes as well as same_file. 1574170754Sdelphij (cmp): Use ssize_t for read returns, not size_t. 1575170754Sdelphij Do not assume that size_t is not narrower than int. 1576170754Sdelphij Do not assume that line numbers fit in 'long'. 1577170754Sdelphij (block_compare_and_count, block_compare): 1578170754Sdelphij Compiler now checks that buffers are word-aligned. 1579170754Sdelphij (block_compare_and_count): Count sizes with size_t, not long. 1580170754Sdelphij (sprintc): byte arg is unsigned char, not unsigned. 1581170754Sdelphij 1582170754Sdelphij * src/analyze.c: Assume C89 or better. 1583170754Sdelphij int -> lin for line numbers. 1584170754Sdelphij int -> bool for booleans. 1585170754Sdelphij unsigned int -> size_t for sizes. 1586170754Sdelphij Use angle-brackets when including cmpbuf.h. 1587170754Sdelphij Include error.h, regex.h, xalloc.h. 1588170754Sdelphij (discard_confusing_lines, diff_2_files): Use zalloc rather 1589170754Sdelphij than xalloc+bzero. 1590170754Sdelphij (discard_confusing_lines): unsigned int -> lin for values that 1591170754Sdelphij are really line numbers. 1592170754Sdelphij (shift_boundaries): Do not inhibit hunk merges. 1593170754Sdelphij (build_reverse_script, build_script, diff_2_files): Use |, not ||. 1594170754Sdelphij (diff_2_files): no_details_flag & ~ignore_some_changes -> 1595170754Sdelphij files_can_be_treated_as_binary. Esure that buffer size is a multiple 1596170754Sdelphij of sizeof (word). Use file_block_read to read buffers. 1597170754Sdelphij (diff_2_files): Abort if output style is not one of the 1598170754Sdelphij expected styles. 1599170754Sdelphij 1600170754Sdelphij2001-11-23 Paul Eggert <eggert@twinsun.com> 1601170754Sdelphij 1602170754Sdelphij * src/Makefile.am, m4/vararrays.m4: New file. 1603170754Sdelphij 1604170754Sdelphij * m4/prereq.m4 (jm_PREREQ_READUTMP): 1605170754Sdelphij Remove, as it gives autoheader the willies. 1606170754Sdelphij 1607170754Sdelphij * m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c, 1608170754Sdelphij lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h, 1609170754Sdelphij lib/imaxtostr.c, lib/freesoft.h: New files. 1610170754Sdelphij 1611170754Sdelphij * lib/freesoft.c: Include config.h, freesoft.h rather than diff.h. 1612170754Sdelphij (free_software_msgid): Wrap contents in N_. 1613170754Sdelphij 1614170754Sdelphij * lib/cmpbuf.h: Use prototypes instead of old-style functions. 1615170754Sdelphij 1616170754Sdelphij * lib/cmpbuf.c: 1617170754Sdelphij Don't include system.h; instead, include config.h, unistd.h. 1618170754Sdelphij Use prototypes instead of old-style functions. 1619170754Sdelphij (block_read): Don't assume that int is no wider than size_t. 1620170754Sdelphij 1621170754Sdelphij * lib/Makefile.am, po/POTFILES.in: New file. 1622170754Sdelphij 1623170754Sdelphij2001-11-22 Paul Eggert <eggert@twinsun.com> 1624170754Sdelphij 1625170754Sdelphij * pc/config.h: 1626170754Sdelphij Define filename_cmp as an object-like macro, not as a function-like 1627170754Sdelphij macro. 1628170754Sdelphij 1629170754Sdelphij * exgettext: Always operate in the C locale. 1630170754Sdelphij Set AWK using a method that works even with broken shells. 1631170754Sdelphij 1632170754Sdelphij * doc/Makefile.am: New file. 1633170754Sdelphij 1634170754Sdelphij * configure.ac (AC_INIT): 1635170754Sdelphij Use src/diff.c, not diff.h, as the source files got removed. 1636170754Sdelphij (AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER. 1637170754Sdelphij (AC_ARG_PROGRAM, AC_MINIX): Remove. 1638170754Sdelphij 1639170754Sdelphij (AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK, 1640170754Sdelphij AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS, 1641170754Sdelphij DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM, 1642170754Sdelphij AC_STRUCT_ST_MTIM_NSEC): Add. 1643170754Sdelphij 1644170754Sdelphij (PR_PROGRAM): AC_DEFINE. 1645170754Sdelphij 1646170754Sdelphij (AC_SYS_LARGEFILE): Use instead of our homebrew version. 1647170754Sdelphij 1648170754Sdelphij (_GNU_SOURCE): Define if not defined. 1649170754Sdelphij 1650170754Sdelphij (AC_CHECK_HEADERS): Add stdbool.h, unistd.h. 1651170754Sdelphij (AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t. 1652170754Sdelphij (AM_GNU_GETTEXT, XGETTEXT): Add. 1653170754Sdelphij 1654170754Sdelphij (WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove. 1655170754Sdelphij (HAVE_MEMCHR): Remove. 1656170754Sdelphij (AC_CHECK_FUNCS): Add diraccess. 1657170754Sdelphij (AC_REPLACE_FUNCS): Add memchr, waitpid. 1658170754Sdelphij (jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC, 1659170754Sdelphij jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX, 1660170754Sdelphij jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add. 1661170754Sdelphij (fnmatch.h, regex.h): Do not create these files unless we're using 1662170754Sdelphij our own fnmatch and regex. 1663170754Sdelphij 1664170754Sdelphij (AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile, 1665170754Sdelphij lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile. 1666170754Sdelphij 1667170754Sdelphij * Makefile.am: New file. 1668170754Sdelphij 1669170754Sdelphij * po/en_GB.po: Don't translate "program" to "programme". 1670170754Sdelphij 1671170754Sdelphij2001-11-20 Paul Eggert <eggert@twinsun.com> 1672170754Sdelphij 1673170754Sdelphij * m4/prereq.m4: New file. 1674170754Sdelphij 1675170754Sdelphij2001-03-16 Paul Eggert <eggert@twinsun.com> 1676170754Sdelphij 1677170754Sdelphij * lib/tempname.c (uint64_t): 1678170754Sdelphij Define if not defined, and if UINT64_MAX is not defined. 1679170754Sdelphij 1680170754Sdelphij2001-02-26 Paul Eggert <eggert@twinsun.com> 1681170754Sdelphij 1682170754Sdelphij * lib/tempname.c: glibc 1.32 1683170754Sdelphij 1684170754Sdelphij2001-02-17 Paul Eggert <eggert@twinsun.com> 1685170754Sdelphij 1686170754Sdelphij * m4/Makefile.am.in: GNU fileutils 4.1 1687170754Sdelphij 1688170754Sdelphij2001-01-09 Paul Eggert <eggert@twinsun.com> 1689170754Sdelphij 1690170754Sdelphij * lib/tempname.c (struct_stat64): New macro. 1691170754Sdelphij (direxists, __gen_tempname): Use it. This avoids a portability problem 1692170754Sdelphij with Solaris 8. 1693170754Sdelphij 1694170754Sdelphij * lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H. 1695170754Sdelphij (<stddef.h>, <stdint.h>, <string.h>): 1696170754Sdelphij Include only if STDC_HEADERS || _LIBC. 1697170754Sdelphij (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC. 1698170754Sdelphij (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC. 1699170754Sdelphij (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC. 1700170754Sdelphij (__set_errno): Define this macro if <errno.h> doesn't. 1701170754Sdelphij (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE): 1702170754Sdelphij Define these macros if <stdio.h> doesn't. 1703170754Sdelphij (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR): 1704170754Sdelphij Define these macros if <sys/stat.h> 1705170754Sdelphij doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN. 1706170754Sdelphij (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64, 1707170754Sdelphij __xstat64): Define if not _LIBC. 1708170754Sdelphij (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC). 1709170754Sdelphij (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY 1710170754Sdelphij || _LIBC; otherwise, fall back on plain "time". 1711170754Sdelphij Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600. 1712170754Sdelphij 1713170754Sdelphij * lib/mkstemp.c (__GT_FILE): Define to zero if not defined. 1714170754Sdelphij 1715170754Sdelphij2000-10-25 Paul Eggert <eggert@twinsun.com> 1716170754Sdelphij 1717170754Sdelphij * lib/hard-locale.c: New file. 1718170754Sdelphij 1719170754Sdelphij2000-02-05 Paul Eggert <eggert@twinsun.com> 1720170754Sdelphij 1721170754Sdelphij * exgettext: From GCC repository 1722170754Sdelphij 1723170754Sdelphij1999-07-06 Paul Eggert <eggert@twinsun.com> 1724170754Sdelphij 1725170754Sdelphij * lib/mkstemp.c: glibc 2.2 1726170754Sdelphij 1727170754Sdelphij1998-12-11 Paul Eggert <eggert@twinsun.com> 1728170754Sdelphij 1729170754Sdelphij * src/sdiff.c (lf_snarf): 1730170754Sdelphij Fix bug when help line wrapped around the input buffer. 1731170754Sdelphij 1732170754Sdelphij1998-09-15 Paul Eggert <eggert@twinsun.com> 1733170754Sdelphij 1734170754Sdelphij * diff.texi: Add @dircategory and @direntry. 1735170754Sdelphij 1736170754Sdelphij1998-09-14 Paul Eggert <eggert@twinsun.com> 1737170754Sdelphij 1738170754Sdelphij * Makefile.in (VERSION): Version 2.7.2. 1739170754Sdelphij (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. 1740170754Sdelphij (PR_PROGRAM): All `configure' to define it. 1741170754Sdelphij (srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of 1742170754Sdelphij quote.c, quotearg.h. 1743170754Sdelphij (distfiles): Add acconfig.h, message/*. 1744170754Sdelphij (all): Depend on $(destfiles), not info. 1745170754Sdelphij (version.c): Parenthesize `GNU diffutils'. 1746170754Sdelphij (common_o): Add freesoft.o 1747170754Sdelphij (diff_o): quote.o -> quotearg.o 1748170754Sdelphij (diff3_o, sdiff_o): Likewise. 1749170754Sdelphij (diff.dvi): Depend on version.texi. 1750170754Sdelphij (diff.o diff3.o quotearg.o sdiff.o util.o): 1751170754Sdelphij New dependency on quotearg.h 1752170754Sdelphij (diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM. 1753170754Sdelphij (sdiff.o): Likewise. 1754170754Sdelphij (messages.po): Remove. 1755170754Sdelphij (message/msgid.po, message/template.po): New rules. 1756170754Sdelphij (maintainer-clean): Renamed from realclean. 1757170754Sdelphij (install): Install from source directory, if applicable. 1758170754Sdelphij Invoke install-info if needed. 1759170754Sdelphij (install-strip): New rule. 1760170754Sdelphij (check): Set DIFF. 1761170754Sdelphij (stamp-h.in): Don't put the date into the timestamp. 1762170754Sdelphij (D_dirs): Add $D/message. 1763170754Sdelphij ($D.tar.gz): Compress with gzip -9. 1764170754Sdelphij Don't use ln to create distribution; it doesn't work with symlinks. 1765170754Sdelphij (srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to 1766170754Sdelphij quotesys.c and quotearg.h to quotesys.h. 1767170754Sdelphij 1768170754Sdelphij * configure.in (AC_PATH_PROG): Add PR_PROGRAM. 1769170754Sdelphij If available, prefer support for large files unless the user specified 1770170754Sdelphij one of the CPPFLAGS, LDFLAGS, or LIBS variables. 1771170754Sdelphij (AC_STRUCT_ST_RDEV): Add. 1772170754Sdelphij (HAVE_ST_FSTYPE_STRING): Add. 1773170754Sdelphij (--with-mvfs-stat-bug, --with-nfs-stat-bug): New options. 1774170754Sdelphij (HAVE_MEMCHR): New macro. 1775170754Sdelphij (AC_CHECK_FUNCS): Add sicprocmask. 1776170754Sdelphij 1777170754Sdelphij * diff.h (XTERN): Renamed from EXTERN. 1778170754Sdelphij (struct filedata): Remove dir_p arg. 1779170754Sdelphij (struct comparison): New type. 1780170754Sdelphij (diff_2_files, diff_dirs)" Ise ot/ 1781170754Sdelphij (error): Add printf attribute if applicable. 1782170754Sdelphij (free_software_msgid): New decl. 1783170754Sdelphij (pr_program): New decl. 1784170754Sdelphij (fatal): Add noreturn attribute. 1785170754Sdelphij (pfatal_with_name): Likewise. 1786170754Sdelphij 1787170754Sdelphij * system.h (__attribute__): New macro. 1788170754Sdelphij (getenv): Don't declare if HAVE_STDLIB_H. 1789170754Sdelphij (CHAR_MAX): New macro. 1790170754Sdelphij (<locale.h>): New include. 1791170754Sdelphij (<locale.h>): Include before <libintl.h>. 1792170754Sdelphij (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, 1793170754Sdelphij dev_may_have_duplicate_ino, same_special_file): New macros. 1794170754Sdelphij (same_file): Use them. 1795170754Sdelphij 1796170754Sdelphij * cmp.c (authorship_msgid): New var. 1797170754Sdelphij (free_software_msgid): New decl. 1798170754Sdelphij (error): Now has printf attribute. 1799170754Sdelphij (try_help): Likewise. 1800170754Sdelphij (long_options): Don't assume ASCII. 1801170754Sdelphij (try_help): Now accepts operand arg. 1802170754Sdelphij (main): Check for -1, not EOF, when calling getopt_long. 1803170754Sdelphij Report --ignore-initial value when complaining about it. 1804170754Sdelphij Output copyright and free software info with -v. 1805170754Sdelphij Don't assume ASCII. 1806170754Sdelphij Report last operand when one is missing. 1807170754Sdelphij Report text of extra operand. 1808170754Sdelphij Move block_read into cmpbuf.c. 1809170754Sdelphij 1810170754Sdelphij * diff.c (authorship_msgid): New var. 1811170754Sdelphij (quotesys.h): Include. 1812170754Sdelphij (ck_atoi): Remove. 1813170754Sdelphij (function_regexp_list, ignore_regexp_list): Now static. 1814170754Sdelphij (binary_flag): Renamed from binary_I_O. 1815170754Sdelphij (entire_new_file_flag, unidirectional_new_file_flag, 1816170754Sdelphij print_file_same_flag): Now static. 1817170754Sdelphij (numeric_arg): Renamed from ck_atoi. 1818170754Sdelphij New argument specifying the argument type. 1819170754Sdelphij (longopts, main): Don't assume ASCII. 1820170754Sdelphij (longopts): Remove old aliases --file-label, --entire-new-file, 1821170754Sdelphij --ascii, --print. 1822170754Sdelphij (main): Check for -1, not EOF, when calling getopt_long. 1823170754Sdelphij Use numeric_arg to report errors. 1824170754Sdelphij Report error if -l specified but pagination is not supported. 1825170754Sdelphij Report error if -S is specified twice with conflicting values. 1826170754Sdelphij Have --version conform to the new GNU standards. 1827170754Sdelphij Add new --from-file, --to-file, --inhibit-hun,-merge options. 1828170754Sdelphij Make the horizon at least as large as the context. 1829170754Sdelphij Add casts to pacify gcc -Wall. 1830170754Sdelphij (try_help): Add operand arg. 1831170754Sdelphij (option_help_msgid): Doc fix to match above. 1832170754Sdelphij (usage): Indent option_help_msgid. 1833170754Sdelphij (compare_files): Now takes struct comparison 1834170754Sdelphij instead of two directory names and a depth. 1835170754Sdelphij (NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE): 1836170754Sdelphij New macros. 1837170754Sdelphij (DIR_P): New macro. 1838170754Sdelphij Report error if fflush does. 1839170754Sdelphij 1840170754Sdelphij * cmpbuf.c (block_read): Moved here from cmp.c. 1841170754Sdelphij 1842170754Sdelphij * cmpbuf.h (block_read): New decl. 1843170754Sdelphij 1844170754Sdelphij * io.c (cmpbuf.h): Include. 1845170754Sdelphij (slurp): Check for arithmetic overflow when computing buffer size. 1846170754Sdelphij 1847170754Sdelphij * dir.c (diff_dirs): Check for recursive directory loop. 1848170754Sdelphij Arg is now struct comparison const *. 1849170754Sdelphij (dir_loop): New function 1850170754Sdelphij 1851170754Sdelphij * analyze.c (no_discards): Remove. 1852170754Sdelphij (inhibit): Remove. 1853170754Sdelphij (shift_boundaries): Don't inhibit. If inhibit_hunk_merge is nonzero, 1854170754Sdelphij don't merge hunks. 1855170754Sdelphij (briefly_report): Now returns 2 if trouble, CHANGES otherwise. 1856170754Sdelphij (diff_2_files): Now takes struct comparison. If briefly_report reports 1857170754Sdelphij trouble, pass it on to caller. 1858170754Sdelphij 1859170754Sdelphij * side.c (print_half_line): Add brackets to pacify GCC -Wall. 1860170754Sdelphij 1861170754Sdelphij * sdiff.c (quotesys.h): Include. 1862170754Sdelphij (DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove. 1863170754Sdelphij (free_software_msgid, editor_program, not_found): New vars. 1864170754Sdelphij (diffbin, edbin): Remove. 1865170754Sdelphij (editor_program): Renamed from edbin. 1866170754Sdelphij (edit, interact): Now take extra string arg. 1867170754Sdelphij (exiterr, fatal, perror_fatal, try_help): Add noreturn attribute. 1868170754Sdelphij (sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK): 1869170754Sdelphij (sigprocmask): New macros, if !HAVE_SIGPROCMASK. 1870170754Sdelphij (error): Now has printf attribute. 1871170754Sdelphij (longopts, main): Don't assume ASCII. 1872170754Sdelphij (try_help): New operand arg. 1873170754Sdelphij (usage): Conform to new GNU standards. 1874170754Sdelphij (main): Set static vars for editor and diff program. 1875170754Sdelphij Compare getopt_long result to -1, not EOF. 1876170754Sdelphij -v conforms to new GNU standard. 1877170754Sdelphij Complain better about extra and missing operands. 1878170754Sdelphij If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when 1879170754Sdelphij the child munges its handlers it may somp on the parent. 1880170754Sdelphij Pass rname to intract. 1881170754Sdelphij Translate not-found message before forking. 1882170754Sdelphij (give_help): Just output it all at once. 1883170754Sdelphij (edit): New args lname, lline, rname, rline. 1884170754Sdelphij (edit): New command 'd'. 1885170754Sdelphij (interact): New args lname, rname. 1886170754Sdelphij 1887170754Sdelphij * util.c (quotesys.h): Include. 1888170754Sdelphij (PR_PROGRAM): New macro. 1889170754Sdelphij (pfatal_with_name): Abort if error returns. 1890170754Sdelphij (fatal): Likewise. 1891170754Sdelphij (print_message_queue): Free message chain after printing. 1892170754Sdelphij (currently_recursive): Renamed from current_depth, and now a boolean. 1893170754Sdelphij (begin_output): Report error if fflush does. 1894170754Sdelphij Avoid stdio and gettext in child. 1895170754Sdelphij 1896170754Sdelphij * diff3.c (quotesys.h): Include. 1897170754Sdelphij (free_software_msgid): New decl. 1898170754Sdelphij (RANGE_START, RANGE_END): Renamed from START and END. 1899170754Sdelphij (fatal, perror_with_exit, try_help): Add noreturn attribute. 1900170754Sdelphij (error): Add printf attribute. 1901170754Sdelphij (diff_program): Now a ptr, not an array. 1902170754Sdelphij Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM. 1903170754Sdelphij (longopts, main): Don't assume ASCII. 1904170754Sdelphij (main): Use DIFF environment var to specify name of diff program. 1905170754Sdelphij Compare getopt_long result to -1, not EOF. 1906170754Sdelphij -v now reports version according to new GNU standard. 1907170754Sdelphij Report spelling of extra operand, or last operand before missing one. 1908170754Sdelphij (try_help): Now takes operand arg. 1909170754Sdelphij (option_help_ms): Fix typo: missing comma. 1910170754Sdelphij (usage): Update as per current GNU standards. 1911170754Sdelphij (environ): Remove decl. 1912170754Sdelphij (read_diff): Invoke diff with --inhibit-hunk-merge. 1913170754Sdelphij Translate `not found' message before forking. 1914170754Sdelphij Quote name of diff program. 1915170754Sdelphij Pass horizon lines. 1916170754Sdelphij `memory exhausted' -> `Memory exhausted' 1917170754Sdelphij 1918170754Sdelphij * pc/makefile (%.exe): Remove. 1919170754Sdelphij (pc-clean): Remove *.exe 1920170754Sdelphij * pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. 1921170754Sdelphij When editing mkinstalldirs rule, look for exec_prefix and prefix. 1922170754Sdelphij Add .exe when installing files. 1923170754Sdelphij * pc/emx/config.h (same_file): Add. 1924170754Sdelphij * pc/config.h (same_file): Remove. 1925170754Sdelphij * pc/djgpp/config.h: Adjust to latest patch from eliz. 1926170754Sdelphij * pc/djgpp/makefile.sed: Don't alter PROGRAMS. 1927170754Sdelphij * pc/pc.c: Update FSF address. 1928170754Sdelphij (quote_system_arg): Renamed from system_quote_arg. 1929170754Sdelphij 1930170754Sdelphij * README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug. 1931170754Sdelphij 1932170754Sdelphij * getmsgids: Add copyright date and update FSF address. 1933170754Sdelphij 1934170754Sdelphij * diff.texi: Document recent changes. 1935170754Sdelphij The patch doc still corresponds to patch 2.2, unfortunately. 1936170754Sdelphij Update GNU bug reporting address. Omit Larry Wall's address; 1937170754Sdelphij it's obsolete and he's busy with perl. 1938170754Sdelphij 1939170754Sdelphij * context.c: Fix spacing. 1940170754Sdelphij 1941170754Sdelphij * NEWS: Mention --from-file=FILE, --to-file=FILE, ed. 1942170754Sdelphij 1943170754Sdelphij * acconfig.h, freesoft.c, message/de.po, message/en_UK.po, 1944170754Sdelphij message/es.po, message/fr.po, message/pl.po, message/sv.po: 1945170754Sdelphij New files. 1946170754Sdelphij 1947170754Sdelphij * ed.c: Remove `#if 0'ed code. 1948170754Sdelphij 1949170754Sdelphij * normal.c, waitpid.c: Update FSF address. 1950170754Sdelphij 1951170754Sdelphij1998-03-15 Paul Eggert <eggert@twinsun.com> 1952170754Sdelphij 1953170754Sdelphij * quotesys.c: Renamed from quotearg.c. 1954170754Sdelphij 1955170754Sdelphij * quotesys.h: Renamed from quotearg.h 1956170754Sdelphij (__QUOTESYS_P): Renamed from __QUOTEARG_P. 1957170754Sdelphij 1958170754Sdelphij1997-05-05 Paul Eggert <eggert@twinsun.com> 1959170754Sdelphij 1960170754Sdelphij * quotesys.c, quotesys.h: New file. 1961170754Sdelphij 1962170754SdelphijMon Nov 14 05:10:56 1994 Paul Eggert <eggert@twinsun.com> 1963170754Sdelphij 1964170754Sdelphij Add internationalization support. 1965170754Sdelphij Several messages have been changed slightly, 1966170754Sdelphij to make them more consistent and easier to translate. 1967170754Sdelphij All strings that are messages are passed through gettext once before 1968170754Sdelphij being used, so that they can be localized. 1969170754Sdelphij Each function and macro whose first parameter is a gettext msgid 1970170754Sdelphij has had its first parameter's name changed so it ends in `msgid'. 1971170754Sdelphij All arrays of msgids have had their names changed to end in `msgid'. 1972170754Sdelphij `getmsgids' uses this to determine which strings are msgids. 1973170754Sdelphij 1974170754Sdelphij * pc/COPYING, pc/INSTALL, pc/config.h, 1975170754Sdelphij pc/djgpp/config.h, pc/djgpp/makefile.sed, 1976170754Sdelphij pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def, 1977170754Sdelphij pc/emx/makefile.sed, 1978170754Sdelphij pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support. 1979170754Sdelphij 1980170754Sdelphij * getmsgids: New file. 1981170754Sdelphij 1982170754Sdelphij * Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars. 1983170754Sdelphij (version.c, version.texi, messages.po): New files. 1984170754Sdelphij messages.po is built automatically from source files and `getmsgids'. 1985170754Sdelphij (distfiles): Add them, pc/*, and getmsgids. 1986170754Sdelphij (diff.info): Now depends on version.texi. 1987170754Sdelphij (realclean): Clean messages.po, version.*. 1988170754Sdelphij (dist): Just build $D.tar.gz. 1989170754Sdelphij ($D.tar.gz): New file, takes over old `dist' function. 1990170754Sdelphij Don't assume $(distfiles) are all in same directory. 1991170754Sdelphij 1992170754Sdelphij * configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h. 1993170754Sdelphij (AC_CHECK_LIB): Check for -lintl. 1994170754Sdelphij 1995170754Sdelphij * analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as 1996170754Sdelphij `if (A) message ("B") : message ("C")'; this is for getmsgids. 1997170754Sdelphij (briefly_report, diff_2_files): For label, use file_label if set. 1998170754Sdelphij * diff.c (compare_files): Likewise. 1999170754Sdelphij 2000170754Sdelphij * system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H. 2001170754Sdelphij (setlocale): Declare; use a stub if ! HAVE_LOCALE_H. 2002170754Sdelphij 2003170754Sdelphij * cmp.c, diff.c, diff3.c, sdiff.c (main): 2004170754Sdelphij Invoke setlocale first thing, to tell library we're internationalized. 2005170754Sdelphij (option_help_msgid): New constant. 2006170754Sdelphij (usage): Use it, so message is translated one option at a time. 2007170754Sdelphij * sdiff (help_msgid, give_help): Likewise. 2008170754Sdelphij 2009170754Sdelphij * cmp.c (sprintc): Renamed from `printc'. 2010170754Sdelphij Now outputs to a buffer instead of stdout. 2011170754Sdelphij (cmp): Use new sprintc; it's easier to internationalize. 2012170754Sdelphij 2013170754Sdelphij * diff.c (main): -D FOO now outputs `/* ! FOO */ instead of 2014170754Sdelphij `/* not FOO */'. 2015170754Sdelphij 2016170754Sdelphij * sdiff.c (version_string): Fix decl typo: `const' was missing. 2017170754Sdelphij (trapsigs): Ignore sigaction failure, to be compatible with `signal'. 2018170754Sdelphij 2019170754Sdelphij * util.c (struct msg, message5, print_message_queue): 2020170754Sdelphij Allocate just one block of memory to save a message. 2021170754Sdelphij 2022170754SdelphijWed Nov 9 17:42:44 1994 Paul Eggert <eggert@twinsun.com> 2023170754Sdelphij 2024170754Sdelphij * sdiff.c (trapsigs): Don't check signal return value, since it's 2025170754Sdelphij bogus under djgpp. 2026170754Sdelphij 2027170754SdelphijMon Oct 31 07:27:27 1994 Paul Eggert <eggert@twinsun.com> 2028170754Sdelphij 2029170754Sdelphij * Makefile.in (srcs, diff_o, diff3_o, sdiff_o): 2030170754Sdelphij New files quote.c, quote.o. 2031170754Sdelphij 2032170754Sdelphij * diff.h (function_regexp, ignore_regexp): Replace lists of compiled 2033170754Sdelphij regexps with these single compiled regexps. All users changed. 2034170754Sdelphij (regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c. 2035170754Sdelphij * diff.c (add_regexp): Build one big regexp instead of a regexp list. 2036170754Sdelphij (summarize_regexp_list): New function. 2037170754Sdelphij (regexp_list): Redesigned struct; moved here from diff.h. 2038170754Sdelphij (function_regexp_list, ignore_regexp_list): Likewise, for vars. 2039170754Sdelphij 2040170754Sdelphij * context.c (find_function): Simplify interface: 2041170754Sdelphij don't return size of function line. All callers changed. 2042170754Sdelphij (print_context_script, find_function): INT_MAX now denotes no 2043170754Sdelphij previous match; this is simpler than `- file->prefix_lines - 1'. 2044170754Sdelphij 2045170754Sdelphij * diff3.c (read_diff): Quote arguments with system_quote_arg. 2046170754Sdelphij * sdiff.c (main): Use system_quote_arg to compute command. 2047170754Sdelphij * diff.c (option_list): Quote options with system_quote_arg. 2048170754Sdelphij * util.c (begin_output): Use system_quote_arg to compute command. 2049170754Sdelphij 2050170754Sdelphij * util.c (pr_program): New var. 2051170754Sdelphij (analyze_hunk): Fix off-by-1 line length bug. 2052170754Sdelphij Match with one big regexp instead of a list of regexps. 2053170754Sdelphij Use new `trivial_length' local instead of comparing first byte to `\n'. 2054170754Sdelphij Help the compiler with linbuf local vars. 2055170754Sdelphij 2056170754Sdelphij * system.h (system_quote_arg): 2057170754Sdelphij New function; replaces SYSTEM_QUOTE_ARG macro. 2058170754Sdelphij 2059170754SdelphijSat Oct 15 20:09:12 1994 Paul Eggert <eggert@twinsun.com> 2060170754Sdelphij 2061170754Sdelphij * system.h (_tolower): Define if not already defined. 2062170754Sdelphij * io.c (find_and_hash_each_line): Change tolower to _tolower; this 2063170754Sdelphij speeds up diff -i considerably on some hosts (e.g. Solaris 2.3). 2064170754Sdelphij * util.c (line_cmp): Likewise. 2065170754Sdelphij * ifdef.c (groups_letter_value): Likewise. 2066170754Sdelphij 2067170754Sdelphij * diff.h (ignore_some_line_changes): Remove. All users changed. 2068170754Sdelphij * io.c (find_and_hash_each_line): Don't invoke line_cmp if the length 2069170754Sdelphij differs and -i is in force. Don't assume ISSPACE ('\n') is nonzero. 2070170754Sdelphij 2071170754Sdelphij * diff.h (xmalloc_exit_failure): New variable. 2072170754Sdelphij All `main' programs set this variable at the start. 2073170754Sdelphij xmalloc and xrealloc are now taken from GNU library. 2074170754Sdelphij * cmp.c (main): Align buffer size to word size; some mallocs care. 2075170754Sdelphij * io.c (slurp): Likewise. 2076170754Sdelphij * diff.c (add_exclude): Can now assume xrealloc (0, ...) works. 2077170754Sdelphij (add_regexp): Free storage on failure. Allocate storage all at one go. 2078170754Sdelphij * system.h (malloc, realloc): Remove unused declarations. 2079170754Sdelphij * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove. 2080170754Sdelphij * sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics. 2081170754Sdelphij 2082170754Sdelphij * io.c (ROL): Use sizeof to make it more generic. 2083170754Sdelphij 2084170754Sdelphij * Makefile.in (common_o): New variable. 2085170754Sdelphij Link error.o and xmalloc.o into all programs. 2086170754Sdelphij (check): Depend on $(PROGRAMS). 2087170754Sdelphij 2088170754Sdelphij * diff.h (error): Change to GNU library standard. All callers changed. 2089170754Sdelphij * diff3.c (main): Use strerror (EISDIR) instead of "Is a directory". 2090170754Sdelphij (fatal, perror_with_exit): Use `error'. 2091170754Sdelphij * util.c (perror_with_name, fatal): Use GNU `error'. 2092170754Sdelphij (error): Remove. 2093170754Sdelphij 2094170754SdelphijWed Oct 12 17:04:40 1994 David J. MacKenzie (djm@duality.gnu.ai.mit.edu) 2095170754Sdelphij 2096170754Sdelphij * cmp.c (main): Set xmalloc_exit_failure. 2097170754Sdelphij 209830839SacheSat Oct 1 05:24:19 1994 Paul Eggert <eggert@twinsun.com> 209930839Sache 210030839Sache * Version 2.7 released. 210130839Sache 210230839Sache * configure.in (AC_HEADER_SYS_WAIT): Add. 210330839Sache (AC_CHECK_HEADERS): Remove sys/wait.h. 210430839Sache (AC_CHECK_FUNCS): Add tmpnam. 210530839Sache * system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme 210630839Sache now that HAVE_SYS_WAIT_H is not set on hosts 210730839Sache that are incompatible with Posix applications. 210830839Sache 210930839Sache * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr. 211030839Sache * sdiff.c (expand_name): Likewise. 211130839Sache (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting. 211230839Sache (exists, letters): Omit if HAVE_TMPNAM. 211330839Sache 211430839Sache * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero, 211530839Sache adjust it to a more reasonable value. 211630839Sache 211730839SacheSat Sep 24 20:36:40 1994 Paul Eggert <eggert@twinsun.com> 211830839Sache 211930839Sache * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm. 212030839Sache (private_tempnam): Specialize for sdiff to avoid portability problems. 212130839Sache 212230839SacheThu Sep 22 16:47:00 1994 Paul Eggert <eggert@twinsun.com> 212330839Sache 212430839Sache * configure.in (AC_ARG_PROGRAM): Added. 212530839Sache (AC_OUTPUT): Add [date > stamp-h]. 212630839Sache 212730839Sache * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS, 212830839Sache NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables. 212930839Sache (check, stamp-h.in, cmp.o, util.o): New targets. 213030839Sache (edit_program_name): New variable; replaces old binprefix method. 213130839Sache (install, uninstall): Use it. 213230839Sache (binprefix): Removed. 213330839Sache (distfiles): Add stamp-h.in. 213430839Sache (clean): Clean stamp-h. 213530839Sache (config.hin, config.h): Use time stamp files. 213630839Sache (cmp_o): Add $(LIBOBJS). 213730839Sache (install): Install info files from srcdir if they're not in `.'. 213830839Sache 213930839Sache * cmp.c, io.c (word): Don't define if already defined. 214030839Sache 214130839Sache * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin. 214230839Sache Use NULL_DEVICE instead of "/dev/null". 214330839Sache (cmp): Use %lu instead of %ld when it is more likely to be right. 214430839Sache 214530839Sache * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in, 214630839Sache util.c. 214730839Sache 214830839Sache * diff3.c (main): Give proper diagnostic if too many labels were given. 214930839Sache (read_diff): Use SYSTEM_QUOTE_ARG. 215030839Sache 215130839Sache * system.h: <string.h>: Include if HAVE_STRING_H, too. 215230839Sache <ctype.h>: Include here. All includers changed. 215330839Sache (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that 215430839Sache work around common <ctype.h> problems. 215530839Sache (O_BINARY): Remove. 215630839Sache (SYSTEM_QUOTE_ARG): New macros. 215730839Sache 215830839Sache * diff.c: Add comment. 215930839Sache 216030839Sache * util.c (PR_PROGRAM): Moved here from diff.h. 216130839Sache (begin_output): Use SYSTEM_QUOTE_ARG. 216230839Sache 216330839Sache * io.c (read_files): Set mode to binary before returning 1. 216430839Sache 216530839Sache * sdiff.c (TMPDIR_ENV): New macro. 216630839Sache (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency. 216730839Sache (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype 216830839Sache namespace contamination. 216930839Sache (main): Use SYSTEM_QUOTE_ARG. 217030839Sache (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir. 217130839Sache 217230839SacheTue Sep 13 18:46:43 1994 Paul Eggert <eggert@twinsun.com> 217330839Sache 217430839Sache * configure.in (AC_FUNC_MEMCHR): Remove. Autoconf didn't adopt this, 217530839Sache since we need not worry about an old experimental library 217630839Sache where memchr didn't work. 217730839Sache (AC_FUNC_MEMCMP): Not needed, since we only test for equality. 217830839Sache (AC_REPLACE_FUNCS): Add test for memchr. 217930839Sache (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached. 218030839Sache (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts. 218130839Sache 218230839Sache * system.h (memcmp): Define in terms of bcmp. 218330839Sache Use HAVE_MEMCHR to test for all mem* routines. 218430839Sache 218530839Sache * Makefile.in (srcs): Remove memcmp.c. 218630839Sache We use bcmp if memcmp doesn't work, since we only test for equality. 218730839Sache 218830839SacheMon Sep 12 15:52:22 1994 Paul Eggert <eggert@twinsun.com> 218930839Sache 219030839Sache * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin. 219130839Sache (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2. 219230839Sache (AC_CHECK_HEADERS): Remove now-redundant check for <string.h>. 219330839Sache (AC_CHECK_FUNCS): Check for strchr. 219430839Sache (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose 219530839Sache macros when suitable. 219630839Sache * memcmp.c: New file. 219730839Sache * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix): 219830839Sache Default to autoconf-specified strings. 219930839Sache (COMPILE): Use the defaults. 220030839Sache (srcs): Add memcmp.c. 220130839Sache (distfiles): Rename config.h.in->config.hin, install.sh->install-sh. 220230839Sache (Makefile, config.h, config.hin, config.status): Rework for 220330839Sache compatibility with Autoconf 2. 220430839Sache * io.c (binary_file_p): Assume non-broken memchr. 220530839Sache * memchr.c: Assume compiler understands void *; otherwise 220630839Sache we don't match GCC's internal declaration of memchr. 220730839Sache * system.h: Use more modern autoconf approach to standard C headers. 220830839Sache * version.c: Include <config.h>, not "config.h". 220930839Sache 221030839Sache * diff.c, diff.h (ignore_some_line_changes): 221130839Sache New variable; replaces `length_varies'. 221230839Sache (line_end_char): Replace with '\n'; it wasn't being used consistently. 221330839Sache 221430839Sache * io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and 221530839Sache incomplete lines. Put incomplete lines into their own bucket. 221630839Sache This means line_cmp no longer needs line length arguments, 221730839Sache and equivalence classes' line lengths no longer need to include \n. 221830839Sache Invoke line_cmp only if ignore_some_line_changes. 221930839Sache (prepare_text_end): -B no longer ignores missing newlines. 222030839Sache (read_files): Allocate another bucket for incomplete lines. 222130839Sache 222230839Sache * util.c (line_cmp): Now takes just two arguments. No longer 222330839Sache optimizes for common case of exact equality; the caller does that 222430839Sache optimization now. The caller is changed accordingly. 222530839Sache Optimize for the common case of mostly equality. 222630839Sache Use isupper+tolower instead of islower+toupper, for consistency. 222730839Sache 222830839Sache * waitpid.c (waitpid): Fix typo with internal scoping. 222930839Sache 223030839SacheThu Sep 8 08:23:15 1994 Paul Eggert <eggert@twinsun.com> 223130839Sache 223230839Sache * configure.in: Revamp for Autoconf 2. 223330839Sache * memchr.c, waitpid.c: New source files for substitute functions. 223430839Sache * Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS). 223530839Sache (srcs): Add memchr.c, waitpid.c. 223630839Sache (distfiles): Add install.sh, memchr.c, waitpid.c, install.sh. 223730839Sache * system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs. 223830839Sache * dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name). 223930839Sache Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2. 224030839Sache * sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes. 224130839Sache * diff3.c (read_diff): Use new waitpid substitute. 224230839Sache 224330839Sache * cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns. 224430839Sache (usage): Just print more detailed usage message; let caller exit. 224530839Sache * diff.c (option_help): New variable. 224630839Sache (filetype): Add Posix.1b file types. 224730839Sache 224830839SacheFri Sep 2 16:01:49 1994 Paul Eggert <eggert@twinsun.com> 224930839Sache 225030839Sache * configure.in: Switch to new autoconf names. Add sys/file.h test. 225130839Sache * Makefile.in (distclean): Clean config.cache, config.log 225230839Sache (used by new autoconf). 225330839Sache 225430839Sache * diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children, 225530839Sache make sure SIGCHLD isn't ignored. 225630839Sache 225730839Sache * diff3.c (DIFF_CHUNK_SIZE): Removed. Get size from STAT_BLOCKSIZE. 225830839Sache (INT_STRLEN_BOUND): New macro. 225930839Sache 226030839Sache * ifdef.c (format_group, groups_letter_value): 226130839Sache Use * instead of [] in prototypes. 226230839Sache 226330839Sache * system.h: Include <sys/file.h> only if HAVE_SYS_FILE_H. 226430839Sache (S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros. 226530839Sache 226630839Sache * util.c (begin_output): Check fdopen result. 226730839Sache 226830839Sache The following changes simplify porting to non-Posix environments. 226930839Sache * cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first. 227030839Sache * diff.c (binary_I_O): New variable for --binary option. 227130839Sache (main, usage, compare_files): Support --binary option. 227230839Sache (compare_files): Use filename_lastdirchar to find last 227330839Sache directory char in a file name. 227430839Sache * cmp.c (main), diff.c (compare_files), dir.c (compare_names, 227530839Sache diff_dirs): Use filename_cmp to compare file names. 227630839Sache Use same_file to determine whether two files are the same. 227730839Sache * context.c (print_context_label): Check whether ctime yields 0. 227830839Sache * diff3.c (read_diff), sdiff.c (cleanup, main, waitpid), 227930839Sache util.c (begin_output): Use popen+pclose if !HAVE_FORK. 228030839Sache * io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode. 228130839Sache * sdiff.c (ck_fdopen): Function removed. 228230839Sache (edit): Use system if !HAVE_FORK. 228330839Sache (execdiff): Now assumes caller has pushed all args, plus trailing 0. 228430839Sache All callers changed. 228530839Sache (private_tempnam): Try TMP if TMPDIR isn't defined. 228630839Sache Fit temporary filenames into 8.3 limit. 228730839Sache * system.h (STAT_BLOCKSIZE): Don't define if already defined. 228830839Sache (min, max): Undef if already defined. 228930839Sache (filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE, 2290170754Sdelphij initialize_main, O_BINARY, same_file): New macros. 229130839Sache 229230839SacheFri Jun 17 11:23:53 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) 229330839Sache 229430839Sache * Makefile.in (info, dvi, diff.dvi): New targets. 229530839Sache (clean): Remove TeX output files. 229630839Sache 229730839SacheFri Jun 17 05:37:52 1994 Paul Eggert (eggert@twinsun.com) 229830839Sache 229930839Sache * cmp.c, io.c (word): Change from typedef to #define, to avoid 230030839Sache collision with Unicos 8.0 <sys/types.h>, which also typedefs `word'. 230130839Sache 230230839SacheThu Apr 15 00:53:01 1994 Paul Eggert (eggert@twinsun.com) 230330839Sache 230430839Sache * diff3.c (scan_diff_line), util.c (print_number_range): Don't 230530839Sache rely on promotion to make the old-style parameter type agree 230630839Sache with the prototype parameter type; this doesn't work on 230730839Sache Apollos running bsd4.3. 230830839Sache 230930839SacheMon Jan 3 02:05:51 1994 Paul Eggert (eggert@twinsun.com) 231030839Sache 231130839Sache * Makefile.in (LDFLAGS): Remove -g. Change all link commands 231230839Sache to use both $(CFLAGS) and $(LDFLAGS). 231330839Sache 231430839SacheMon Dec 13 12:23:27 1993 Paul Eggert (eggert@twinsun.com) 231530839Sache 231630839Sache * system.h: Don't assume dirent.h exists just because 231730839Sache _POSIX_VERSION is defined. 231830839Sache 231930839SacheFri Dec 3 18:39:39 1993 Paul Eggert (eggert@twinsun.com) 232030839Sache 232130839Sache * diff.c (main): allow -pu. 232230839Sache 232330839SacheTue Nov 23 03:51:08 1993 Paul Eggert (eggert@twinsun.com) 232430839Sache 232530839Sache * Makefile.in (distclean): Remove config.h. 232630839Sache 232730839SacheWed Nov 10 00:28:27 1993 Paul Eggert (eggert@twinsun.com) 232830839Sache 232930839Sache * Version 2.6 released. 233030839Sache 233130839Sache * analyze.c (too_expensive): New variable, for heuristic to 233230839Sache limit the worst-case cost to O(N**1.5 log N) at the price of 233330839Sache producing suboptimal output for large inputs with many differences. 233430839Sache (diff_2_files): Initialize it. 233530839Sache (struct partition): New type. 233630839Sache (SNAKE_LIMIT): New macro; merely documents already-used number 20. 233730839Sache (diag): New `minimal' arg; all callers changed. Put results into 233830839Sache struct partition. Apply `too_expensive' heuristic. Tune. 233930839Sache (compareseq): New `minimal' arg; all callers changed. Tune. 234030839Sache (shift_boundaries): Improve heuristic to also coalesce adjacent runs 234130839Sache of changes more often. 234230839Sache 234330839Sache * diff.c (long_options, main, usage): Add `--help'. 234430839Sache (main): Send version number to stdout, not stderr. 234530839Sache (usage): Send usage to stdout, not stderr. 234630839Sache (compare_files): Initialize `inf' properly. 234730839Sache 234830839Sache * io.c (word): Change to `int'; it makes a big difference on x86. 234930839Sache (sip, slurp): Put off allocating room to hold the whole file until we 235030839Sache have to read the whole file. This wins if the file turns out 235130839Sache to be binary. 235230839Sache 235330839Sache * util.c (xmalloc, xrealloc): "virtual memory" -> "memory" 235430839Sache (primes): Omit large primes if INT_MAX is small. 235530839Sache 235630839Sache * sdiff.c (usage): Send usage to stdout, not stderr. 235730839Sache (long_options, main, usage): Add `--help'. 235830839Sache (main): Send version number to stdout, not stderr. Exit afterwards. 235930839Sache 236030839Sache * diff3.c (usage): Send usage to stdout, not stderr. 236130839Sache (long_options, main, usage): Add `--help'. 236230839Sache (read_diff): Detect integer overflow in buffer size calculations. 236330839Sache 236430839Sache * cmp.c (word): New type. All uses of `long' for 236530839Sache word-at-a-time comparisons changed to `word'. 236630839Sache (long_options, main, usage): Add `--help'. 236730839Sache (usage): Send usage to stdout, not stderr. 236830839Sache (main): Add `-v'. Send version number to stdout, not stderr. 236930839Sache 237030839Sache * configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H. 237130839Sache 237230839SacheMon Sep 27 07:20:24 1993 Paul Eggert (eggert@twinsun.com) 237330839Sache 237430839Sache * diff.c (add_exclude_file): Cast memchr to (char *) 237530839Sache to suppress bogus warnings on some nonstandard hosts. 237630839Sache 237730839Sache * Makefile.in (cmp): Add version.o. 237830839Sache 237930839Sache * analyze.c (diff_2_files): Work around memcmp bug with size=0. 238030839Sache 238130839Sache * cmp.c (main, usage, version_string): Add --version option. 238230839Sache 238330839Sache * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 238430839Sache (memchr): Declare only if !HAVE_MEMCHR. These changes are 238530839Sache needed to keep some nonstandard hosts happy. 238630839Sache 238730839Sache * util.c (memchr): Make first arg char const * 238830839Sache to match standard. 238930839Sache (xmalloc, xrealloc): Cast malloc, realloc 239030839Sache to (VOID *) to suppress bogus warnings on some nonstandard hosts. 239130839Sache 239230839Sache * diff3.c (xmalloc, xrealloc): Cast malloc, realloc 239330839Sache to (VOID *) to suppress bogus warnings on some nonstandard hosts. 239430839Sache 239530839Sache * sdiff.c (xmalloc, xrealloc): Cast malloc, realloc 239630839Sache to (VOID *) to suppress bogus warnings on some nonstandard hosts. 239730839Sache (lf_copy, lf_skip, lf_snarf): Cast memchr to (char *) 239830839Sache to suppress bogus warnings on some nonstandard hosts. 239930839Sache (memchr): Make first arg char const * 240030839Sache to match standard. 240130839Sache 240230839SacheMon Sep 27 00:23:37 1993 Paul Eggert (eggert@twinsun.com) 240330839Sache 240430839Sache * Version 2.5 released. 240530839Sache 240630839Sache * analyze.c (diff_2_files): Work around memcmp bug with size=0. 240730839Sache 240830839Sache * cmp.c (main, usage, version_string): Add --version option. 240930839Sache * Makefile.in (cmp): Add version.o. 241030839Sache 241130839Sache * diff.c (add_exclude_file): Cast memchr to (char *) 241230839Sache to suppress bogus warnings on some nonstandard hosts. 241330839Sache * sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise. 241430839Sache 241530839Sache * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc 241630839Sache to (VOID *) to suppress bogus warnings on some nonstandard hosts. 241730839Sache 241830839Sache * sdiff.c, util.c (memchr): Make first arg char const * 241930839Sache to match standard. 242030839Sache 242130839Sache * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 242230839Sache (memchr): Declare only if !HAVE_MEMCHR. These changes are 242330839Sache needed to keep some nonstandard hosts happy. 242430839Sache 242530839Sache * xmalloc.c: Include <sys/types.h> always; some nonstandard hosts 242630839Sache need it for size_t even if STDC_HEADERS. 242730839Sache 242830839SacheSat Sep 18 01:33:07 1993 Paul Eggert (eggert@twinsun.com) 242930839Sache 243030839Sache * configure.in (AC_STAT_MACROS_BROKEN): Add. 243130839Sache * system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if 243230839Sache STAT_MACROS_BROKEN. 243330839Sache 243430839Sache * Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA). 243530839Sache 243630839Sache * analyze.c (discard_confusing_lines): Make defn static, like decl. 243730839Sache * sdiff.c (xmalloc): Likewise. 243830839Sache 243930839Sache * ifdef.c (format_group): Ensure isdigit argument isn't < 0. 244030839Sache 244130839Sache * side.c (print_half_line): Use isprint, since some hosts lack isgraph. 244230839Sache * util.c (output_1_line): Likewise. Ensure its argument isn't < 0. 244330839Sache (xmalloc, xrealloc): Remove needless casts. 244430839Sache 244530839Sache * system.h (volatile, const): 244630839Sache Define these before including any system headers, 244730839Sache so that they're used consistently in all system includes. 244830839Sache (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some 244930839Sache <stdlib.h>s don't declare them. 245030839Sache (memchr): Likewise for <string.h>. 245130839Sache 245230839Sache * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first. 245330839Sache * diff.c: Remove redundant "system.h" inclusion. 245430839Sache 245530839Sache * diff3.c (xmalloc): Now static. 245630839Sache (xmalloc, realloc): Remove needless casts. 245730839Sache (READNUM): Ensure isdigit argument isn't negative. 245830839Sache 245930839SacheWed Sep 14 07:14:15 1993 Paul Eggert (eggert@twinsun.com) 246030839Sache 246130839Sache * Version 2.4 released. 246230839Sache 246330839Sache * ifdef.c (scan_char_literal): New function, for new %c'x' and 246430839Sache %c'\ooo' format specs. 246530839Sache (format_group, print_ifdef_lines): Use it. Remove %0 format spec. 246630839Sache 246730839Sache * cmp.c (cmp): Don't try to read past end of file; this doesn't 246830839Sache work on ttys. 246930839Sache 247030839Sache * system.h, version.c: #include <config.h>, not "config.h", to allow 247130839Sache configuring in a separate directory when the source directory has 247230839Sache already been configured. 247330839Sache * Makefile.in (COMPILE): New defn, with proper -I options so that 247430839Sache `#include <config.h>' works. 247530839Sache (.c.o, diff3.o, sdiff.o): Use it. 247630839Sache 247730839SacheMon Sep 13 06:45:43 1993 Paul Eggert (eggert@twinsun.com) 247830839Sache 247930839Sache * diff.c (main, longopts): Add --line-format=FORMAT option. 248030839Sache (specify_format): Args no longer const pointers. All callers changed. 248130839Sache 248230839Sache * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats. 248330839Sache (struct group): New struct. 248430839Sache (print_ifdef_lines): Use it to simplify argument passing. 248530839Sache Remove the convention that last arg -1 signifies that the lines 248630839Sache from file 2 are the same as the lines from file 1; this 248730839Sache convention no longer works, now that line numbers might be 248830839Sache printed out, since the line numbers may differ. 248930839Sache Add first FILE * argument to output to. All callers changed. 249030839Sache Use a faster test for the single-fwrite optimization. 249130839Sache (format_group, scan_printf_spec, groups_letter_value): New functions. 249230839Sache 249330839Sache * diff.h (group_format, line_format): No longer const pointers. 249430839Sache (format_ifdef): 1st arg is no longer const pointer. 249530839Sache 249630839Sache * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H. 249730839Sache * system.h <limits.h>, <stdlib.h>, <string.h>: 249830839Sache Include only if HAVE_LIMITS_H etc. 249930839Sache 250030839Sache * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer 250130839Sache these standard names to the traditional names (bcmp, bcpy, index, 250230839Sache rindex, struct direct). All callers changed. 250330839Sache 250430839Sache * system.h (PARAMS, VOID): 250530839Sache Define earlier so that malloc decl can use VOID. 250630839Sache (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K. 250730839Sache 250830839SacheFri Sep 3 00:21:02 1993 Paul Eggert (eggert@twinsun.com) 250930839Sache 251030839Sache * diff.c (compare_files): Two files with the same name must be 251130839Sache the same file; avoid a needless `stat' in that case. 251230839Sache 251330839SacheFri Aug 27 06:59:03 1993 Paul Eggert (eggert@twinsun.com) 251430839Sache 251530839Sache * Pervasive changes for portability to 64-bit hosts: 251630839Sache Add prototypes to function declarations. 251730839Sache Use size_t, not int, when needed. 251830839Sache 251930839Sache * Other pervasive changes: 252030839Sache Use `const' more often. 252130839Sache Use STD{IN,OUT,ERR}_FILENO instead of [012]. 252230839Sache Use 0, not NULL, for portability to broken hosts. 252330839Sache 252430839Sache * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch]. 252530839Sache (distfiles): New files config.h.in, mkinstalldirs. 252630839Sache (.c.o): Add -DHAVE_CONFIG_H. 252730839Sache 252830839Sache * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment. 252930839Sache (diff_2_files): Use l.c.m., not max, of files' buffer sizes. 253030839Sache 253130839Sache * cmp.c: Make globals static when possible. 253230839Sache 253330839Sache (file): Now a 2-element array; replaces `file1' and `file2'. 253430839Sache (file_desc, buffer): Likewise, for file[12]_desc and buf[12]. 253530839Sache (main): Likewise, for stat_buf[12]. Index these variables with `i'. 253630839Sache 253730839Sache (ignore_initial): New var. 253830839Sache (long_options): Now const. Add `--ignore-initial'. 253930839Sache (usage): Sort options and add `--ignore-initial'. 254030839Sache (main, cmp): Add `--ignore-initial' support. 254130839Sache 254230839Sache (main): `cmp - -' now succeeds. 254330839Sache When comparing standard input to a file, and using a shortcut (e.g. 254430839Sache looking at file sizes or inode numbers), take the lseek offset into 254530839Sache account before deciding whether the files are identical. 254630839Sache Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts. 254730839Sache Use l.c.m. of files' buffer sizes, not 8 * 1024. 254830839Sache ferror (stdout) does not imply errno has a useful value. 254930839Sache If 2nd file is "-", treat it first, in case stdin is closed. 255030839Sache 255130839Sache (cmp): Always compute `char_number', `smaller' for speed and simplicity. 255230839Sache Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input', 255330839Sache as per Posix.2. 255430839Sache 255530839Sache (block_compare_and_count): Increment line_number argument. 255630839Sache Remove end_char argument; it's always '\n'. All callers changed. 255730839Sache Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts. 255830839Sache (block_compare): Minimize differences with block_compare_and_count. 255930839Sache 256030839Sache (block_read): Coalesce `bp += nread's. 256130839Sache 256230839Sache (printc): Remove `FILE *' arg; output to stdout. All callers changed. 256330839Sache 256430839Sache * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF. 256530839Sache Configure into config.h. 256630839Sache 256730839Sache * context.c (print_context_label): 256830839Sache Standard input's st_mtime is no longer a special case 256930839Sache here, since `compare_files' now sets it to the current time. 257030839Sache 257130839Sache * diff.c (usage): Sort options. 257230839Sache (filetype): New function. 257330839Sache (compare_files): Set stdin's st_mtime to be the current time. 257430839Sache Leave its name "-" instead of changing it to "Standard Input"; 257530839Sache to test whether a file is stdin, we must compare its name to "-" instead 257630839Sache of its desc to 0, since if it's closed other file descs may be 0. 257730839Sache When comparing standard input to a file, and using a shortcut (e.g. 257830839Sache looking at file sizes or inode numbers), take the lseek offset into 257930839Sache account before deciding whether the files are identical. 258030839Sache Pretend that nonexistent files have the same filetype as existing files. 258130839Sache Rename `errorcount' to `failed', since it's boolean. 258230839Sache In directory comparisons, if a file is neither a regular file nor a 258330839Sache directory, just print its type and the other file's type. 258430839Sache 258530839Sache * diff.h (Is_space, textchar): Remove. 258630839Sache (struct msg, msg_chain, msg_chain_end): Move to util.c. 258730839Sache (VOID): Move to system.h. 258830839Sache (line_cmp, version_string, change_letter, print_number_range, 258930839Sache find_change): New decls. 259030839Sache 259130839Sache * diff.texi: 259230839Sache whitespace -> white space. It now stands for whatever isspace yields. 259330839Sache Add --ignore-initial. 259430839Sache 259530839Sache * diff3.c (VOID): Move to system.h. 259630839Sache (version_string): Now char[]. 259730839Sache (usage): Sort options. 259830839Sache (process_diff): Pacify `gcc -Wall' with a useless assignment. 259930839Sache (read_diff): pid is of type pid_t, not int. Use waitpid if available. 260030839Sache (output_diff3): Simplify test for `\ No newline at end of file' message. 260130839Sache 260230839Sache * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion 260330839Sache with external struct file_data `files'. 260430839Sache 260530839Sache * io.c (line_cmp): Move declaration to diff.h. 260630839Sache (textchar): Remove. 260730839Sache (find_and_hash_each_line): Use locale's definition of white space 260830839Sache instead of using one hardwired defn for -b and another for -w. 260930839Sache 261030839Sache * normal.c (change_letter, print_number_range, find_change): 261130839Sache Move decls to diff.h. 261230839Sache (print_normal_hunk): Now static. 261330839Sache 261430839Sache * sdiff.c (SEEK_SET): Move to system.h. 261530839Sache (version_string): Now char[], not char*. 261630839Sache (private_tempnam): Remove hardcoded limit on temporary file names. 261730839Sache (exiterr, perror_fatal, main): When exiting because of a signal, 261830839Sache exit with that signal's status. 261930839Sache (lf_refill, main, skip_white, edit, interact): Check for signal. 262030839Sache (ignore_SIGINT): Renamed from `ignore_signals'. 262130839Sache (NUM_SIGS, initial_handler): New macros. 262230839Sache (initial_action, signal_received, sigs_trapped): New vars. 262330839Sache (catchsig, trapsigs): Use sigaction if possible, since this closes the 262430839Sache windows of vulnerability that `signal' has. Use RETSIGTYPE not void. 262530839Sache When a signal comes in, just set a global variable; this is safer. 262630839Sache (checksigs, untrapsig): New functions. 262730839Sache (edit): Pacify `gcc -Wall' with a useless assignment. 262830839Sache Respond to each empty line with help, not to every other empty line. 262930839Sache (private_tempnam): Remove hardcoded limit on temporary file name length. 263030839Sache Don't assume sizeof (pid_t) <= sizeof (int). 263130839Sache 263230839Sache * system.h: (S_IXOTH, S_IXGRP, S_IXUSR, 263330839Sache SEEK_SET, SEEK_CUR, 263430839Sache STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): 263530839Sache New macros, if system doesn't define them. 263630839Sache (volatile): Don't define if already defined. 263730839Sache (PARAMS): New macro. 263830839Sache (VOID): Move here from diff.h. 263930839Sache 264030839Sache * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h. 264130839Sache (message5): New function. 264230839Sache (pr_pid): New var. 264330839Sache (begin_output): Allocate `name' more precisely. 264430839Sache Put child pid into pr_pid, so that we can wait for it later. 264530839Sache Don't check execl's return value, since any return must be an error. 264630839Sache (finish_output): Detect and report output errors. 264730839Sache Use waitpid if available. Check pr exit status. 264830839Sache (line_cmp): Use locale's definition of white space 264930839Sache instead of using one hardwired defn for -b and another for -w. 265030839Sache (analyze_cmp): Avoid double negation with `! nontrivial'. 265130839Sache Pacify `gcc -Wall' be rewriting for-loop into do-while-loop. 265230839Sache (dir_file_pathname): New function. 265330839Sache 265430839Sache * version.c (version_string): Now char[], not char*. 265530839Sache 265630839SacheThu Jul 29 20:44:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) 265730839Sache 265830839Sache * Makefile.in (config.status): Run config.status --recheck, not 265930839Sache configure, to get the right args passed. 266030839Sache 266130839SacheThu Jul 22 10:46:30 1993 Paul Eggert (eggert@twinsun.com) 266230839Sache 266330839Sache * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi' 266430839Sache with `[ TEST ] || ACTION || exit' so that the containing for-loop exits 266530839Sache with proper status for `make'. 266630839Sache 266730839SacheThu Jul 8 19:47:22 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 266830839Sache 266930839Sache * Makefile.in (installdirs): New target. 267030839Sache (install): Use it. 267130839Sache (Makefile, config.status, configure): New targets. 267230839Sache 267330839SacheSat Jun 5 23:10:40 1993 Paul Eggert (eggert@twinsun.com) 267430839Sache 267530839Sache * Makefile.in (dist): Switch from .z to .gz. 267630839Sache 267730839SacheWed May 26 17:16:02 1993 Paul Eggert (eggert@twinsun.com) 267830839Sache 267930839Sache * diff.c (main): Cast args to compare_files, for traditional C. 2680170754Sdelphij * side.c (print_sdiff_common_lines, print_sdiff_hunk): Likewise. 268130839Sache * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined 268230839Sache properly. 268330839Sache 268430839SacheTue May 25 14:54:05 1993 Paul Eggert (eggert@twinsun.com) 268530839Sache 268630839Sache * analyze.c (diff_2_files): With -q, do not report that files differ 268730839Sache if all their differences are ignored. 268830839Sache (briefly_report): New function. 268930839Sache * diff.h (ignore_some_changes): New variable. 269030839Sache * diff.c (compare_files): Don't use the file size shortcut if 269130839Sache ignore_some_changes is nonzero, since the file size may differ 269230839Sache merely due to ignored changes. 269330839Sache (main): Set ignore_some_changes if we might ignore some changes. 269430839Sache Remove unsystematic assignment of 0 to static vars. 269530839Sache * io.c (read_files): New argument PRETEND_BINARY says whether to 269630839Sache pretend the files are binary. 269730839Sache 269830839Sache * diff3.c (tab_align_flag): New variable, for new -T option. 269930839Sache (main, usage, output_diff3): Add support for -T. 270030839Sache 270130839SacheSun May 23 15:25:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 270230839Sache 270330839Sache * dir.c (dir_sort): Always init `data' to avoid GCC warning. 270430839Sache 270530839SacheSat May 22 15:35:02 1993 Paul Eggert (eggert@twinsun.com) 270630839Sache 270730839Sache * Makefile.in (dist): Change name of package from diff to diffutils. 270830839Sache Don't bother to build .Z dist; .z suffices. 270930839Sache 271030839SacheFri May 21 16:35:22 1993 Paul Eggert (eggert@twinsun.com) 271130839Sache 271230839Sache * diff.c: Include "system.h" to get memchr declaration. 271330839Sache * system.h (memchr): Declare if !HAVE_MEMCHR, not if 271430839Sache !HAVE_MEMCHR && !STDC_HEADERS. 271530839Sache 271630839SacheWed May 19 17:43:55 1993 Paul Eggert (eggert@twinsun.com) 271730839Sache 271830839Sache * Version 2.3 released. 271930839Sache 272030839SacheFri Apr 23 17:18:44 1993 Paul Eggert (eggert@twinsun.com) 272130839Sache 272230839Sache * io.c (find_identical_ends): Do not discard the last HORIZON_LINES 272330839Sache lines of the prefix, or the first HORIZON_LINES lines of the suffix. 272430839Sache * diff.c (main, longopts, usage): Add --horizon-lines option. 272530839Sache * diff3.c (main, process_diff, read_diff): Invoke second diff 272630839Sache with --horizon-lines determined by the first diff. 272730839Sache * diff.h, diff3.c (horizon_lines): New variable. 272830839Sache 272930839SacheMon Mar 22 16:16:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 273030839Sache 273130839Sache * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero): 273230839Sache Don't define if already defined. 273330839Sache 273430839SacheFri Mar 5 00:20:16 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 273530839Sache 273630839Sache * diff.c (main): Use NULL in arg to compare_files. 273730839Sache 273830839SacheThu Feb 25 15:26:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 273930839Sache 274030839Sache * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS, 274130839Sache not #if !HAVE_MEMCHR || !STDC_HEADERS. 274230839Sache 274330839SacheMon Feb 22 15:04:46 1993 Richard Stallman (rms@geech.gnu.ai.mit.edu) 274430839Sache 274530839Sache * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES. 274630839Sache 274730839SacheMon Feb 22 12:56:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 274830839Sache 274930839Sache * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<. 275030839Sache 275130839SacheSat Feb 20 19:18:56 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 275230839Sache 275330839Sache * io.c (binary_file_p): Return zero if file size is zero. 275430839Sache 275530839SacheFri Feb 19 17:31:32 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 275630839Sache 275730839Sache * Version 2.2 released. 275830839Sache 275930839Sache * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't 276030839Sache define if already defined. 276130839Sache 276230839SacheWed Feb 17 17:08:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 276330839Sache 276430839Sache * Makefile.in (srcs): Remove limits.h. 276530839Sache 276630839SacheThu Feb 11 03:36:00 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 276730839Sache 276830839Sache * diff3.c (xmalloc): No longer static. 276930839Sache 277030839Sache * sdiff.c (edit): Allocate buf dynamically. 277130839Sache 277230839Sache * dir.c (dir_sort): Handle VOID_CLOSEDIR. 277330839Sache 277430839SacheWed Feb 10 00:15:54 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 277530839Sache 277630839Sache * limits.h: File deleted (should never have been there). 277730839Sache 277830839SacheTue Feb 9 03:53:22 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 277930839Sache 278030839Sache * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last. 278130839Sache 278230839SacheWed Feb 3 15:42:10 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 278330839Sache 278430839Sache * system.h: Don't #define const; let configure do it. 278530839Sache 278630839SacheMon Feb 1 02:13:23 1993 Paul Eggert (eggert@hal.gnu.ai.mit.edu) 278730839Sache 278830839Sache * Version 2.1 released. 278930839Sache 279030839Sache * Makefile.in (dist): Survive ln failures. Create .tar.z 279130839Sache (gzipped tar) file as well as .tar.Z (compressed tar) file. 279230839Sache 279330839SacheFri Jan 8 22:31:41 1993 Paul Eggert (eggert@twinsun.com) 279430839Sache 279530839Sache * side.c (print_half_line): When the input position falls 279630839Sache outside the column, do not output a tab even if the output 279730839Sache position still falls within the column. 279830839Sache 279930839SacheMon Dec 21 13:54:36 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) 280030839Sache 280130839Sache * Makefile.in (.c.o): Add -I. 280230839Sache 280330839SacheFri Dec 18 14:08:20 1992 Paul Eggert (eggert@twinsun.com) 280430839Sache 280530839Sache * configure.in: Add HAVE_FCNTL_H, since system.h uses it. 280630839Sache 280730839SacheTue Nov 24 10:06:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 280830839Sache 280930839Sache * Makefile.in: Note change from USG to HAVE_STRING_H. 281030839Sache 281130839SacheMon Nov 23 18:44:00 1992 Paul Eggert (eggert@twinsun.com) 281230839Sache 281330839Sache * io.c (find_and_hash_each_line): When running out of lines, 281430839Sache double the number of allocated lines, instead of just doubling 281530839Sache that number minus the prefix lines. This is more likely to 281630839Sache avoid the need for further memory allocation. 281730839Sache 281830839SacheWed Nov 18 20:40:28 1992 Paul Eggert (eggert@twinsun.com) 281930839Sache 282030839Sache * dir.c (dir_sort): Plug memory leak: space holding directory 282130839Sache contents was not being reclaimed. Get directory size from 282230839Sache struct file_data for initial guess at memory needed. 282330839Sache Detect errors when reading and closing directory. 282430839Sache (diff_dirs): Pass struct file_data to dir_sort. Finish plugging leak. 282530839Sache * diff.c (compare_files): Pass struct file_data to diff_dirs. 282630839Sache 282730839Sache * io.c (find_and_hash_each_line): Don't assume alloc_lines is 282830839Sache nonzero when allocating more lines. 282930839Sache 283030839SacheThu Nov 12 16:02:18 1992 Paul Eggert (eggert@twinsun.com) 283130839Sache 283230839Sache * diff.c (main): Add `-U lines' as an alias for `--unified=lines'. 283330839Sache 283430839Sache * diff3.c (usage): Add third --label option in example. 283530839Sache 283630839Sache * util.c (analyze_hunk): Fix test for ignoring blank lines. 283730839Sache 283830839Sache * configure.in, system.h: Avoid USG; use HAVE_TIME_H etc. instead. 283930839Sache 284030839SacheMon Nov 9 05:13:25 1992 Paul Eggert (eggert@twinsun.com) 284130839Sache 284230839Sache * diff3.c (main, usage): Add -A or --show-all. 284330839Sache -m now defaults to -A, not -E. Allow up to three -L options. 284430839Sache (output_diff3_edscript, output_diff3_merge): 284530839Sache Remove spurious differences between these two functions. 284630839Sache Output ||||||| for -A. Distinguish between conflicts and overlaps. 284730839Sache (dotlines, undotlines): New functions that output `Ns', not `N,Ns'. 284830839Sache (output_diff3_edscript, output_diff3_merge): Use them. 284930839Sache 285030839Sache * io.c (find_identical_ends): shift_boundaries needs an extra 285130839Sache identical line at the end, not at the beginning. 285230839Sache 285330839Sache * sdiff.c (edit): execvp wants char **, not const char **. 285430839Sache 285530839SacheMon Oct 19 04:39:32 1992 Paul Eggert (eggert@twinsun.com) 285630839Sache 285730839Sache * context.c (print_context_script, find_function): Context 285830839Sache line numbers start with - file->prefix_lines, not 0. 285930839Sache 286030839Sache * io.c (binary_file_p): Undo last change; it was a library bug. 286130839Sache 286230839SacheSun Oct 18 00:17:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 286330839Sache 286430839Sache * io.c (binary_file_p): Consider empty file as non-binary. 286530839Sache 286630839SacheMon Oct 5 05:18:46 1992 Paul Eggert (eggert@twinsun.com) 286730839Sache 286830839Sache * diff3.c (main, make_3way_diff, using_to_diff3_block): Don't 286930839Sache report bogus differences (for one of -mexEX3) just because the 287030839Sache file0-file1 diffs don't line up with the file0-file2 diffs. 287130839Sache (This is entirely possible since we don't use diff's -n 287230839Sache option.) Always compare file1 to file2, so that diff3 sees 287330839Sache those changes directly. Typically, file2 is now the common 287430839Sache file, not file0. 287530839Sache (output_diff3_merge): The input file is file 0, not the common file. 287630839Sache 287730839Sache (FC, FO): New macros; they replace FILE1, FILE0 for two-way diffs, 287830839Sache to distinguish them from three-way diffs. 287930839Sache 288030839Sache * diff3.c (using_to_diff3_block): Fold repeated code into loops. 288130839Sache 288230839Sache * diff3.c (make_3way_diff, process_diff): Have the *_end 288330839Sache variable point to the next field to be changed, not to the last 288430839Sache object allocated; this saves an if-then-else. 288530839Sache 288630839Sache * diff3.c (process_diff): Use D_NUMLINES instead of its definiens. 288730839Sache 288830839Sache * diff3.c: Make fns and vars static unless they must be external. 288930839Sache 289030839SacheWed Sep 30 09:21:59 1992 Paul Eggert (eggert@twinsun.com) 289130839Sache 289230839Sache * analyze.c (diff_2_files): OUTPUT_IFDEF is now robust. 289330839Sache * diff.h (ROBUST_OUTPUT_STYLE): Likewise. 289430839Sache (default_line_format): Remove. All refs removed. 289530839Sache 289630839Sache * ifdef.c (print_ifdef_lines): Add %L. Optimize %l\n even if user 289730839Sache specified it, as opposed to its being the default. 289830839Sache 289930839SacheTue Sep 29 19:01:28 1992 Paul Eggert (eggert@twinsun.com) 290030839Sache 290130839Sache * diff.c (longopts, main): --{old,new,unchanged,changed}--group-format 290230839Sache are new options, so that -D is no longer overloaded. Set 290330839Sache no_diff_means_no_output if --unchanged-{line,group}-format allows it. 290430839Sache * diff.h (enum line_class): New type. 290530839Sache (group_format, line_format): Use it to regularize option flags. 290630839Sache All refs changed. 290730839Sache 290830839Sache * ifdef.c (format_ifdef, print_ifdef_lines): %n is no longer a format. 290930839Sache 291030839SacheMon Sep 28 04:51:42 1992 Paul Eggert (eggert@twinsun.com) 291130839Sache 291230839Sache * diff.c (main, usage): Replace --line-prefix with the more general 291330839Sache --{old,new,unchanged}-line-format options. 291430839Sache * ifdef.c (format_ifdef, print_ifdef_lines): Likewise. 291530839Sache * diff.h (line_format): Renamed from line_prefix. All refs changed. 291630839Sache * diff.h, ifdef.c (default_line_format): New variable. 291730839Sache * util.c (output_1_line): New function. 291830839Sache (print_1_line): Use it. 291930839Sache 292030839Sache * ifdef.c: (format_ifdef, print_ifdef_lines): Add %0 format. 292130839Sache 292230839SacheSun Sep 27 05:38:13 1992 Paul Eggert (eggert@twinsun.com) 292330839Sache 292430839Sache * diff.c (main): Add -E or --line-prefix option. Add -D'=xxx' 292530839Sache for common lines. Change default -D< format from copy of -D> 292630839Sache format to to -D<%<; similarly for default -D> format. 292730839Sache * diff.h (common_format, line_prefix): New variables. 292830839Sache * ifdef.c (format_ifdef): New function. 292930839Sache (print_ifdef_script, print_ifdef_hunk, print_ifdef_lines): 293030839Sache Use it for -D'=xxx', -E. 293130839Sache 293230839Sache * context.c (find_hunk): Glue together two non-ignorable changes that 293330839Sache are exactly CONTEXT * 2 lines apart. This shortens output, removes 293430839Sache a behavioral discontinuity at CONTEXT = 0, and is more compatible 293530839Sache with traditional diff. 293630839Sache 293730839Sache * io.c (find_identical_ends): Slurp stdin at most once. 293830839Sache 293930839Sache * util.c (print_line_line): line_flag is const char *. 294030839Sache 294130839SacheThu Sep 24 15:18:07 1992 Paul Eggert (eggert@twinsun.com) 294230839Sache 294330839Sache * ifdef.c (print_ifdef_lines): New function, which fwrites a sequence 294430839Sache of lines all at once for speed. 294530839Sache (print_ifdef_script, print_ifdef_hunk): Use it. 294630839Sache 294730839SacheThu Sep 24 05:54:14 1992 Paul Eggert (eggert@twinsun.com) 294830839Sache 294930839Sache * diff.c (main): Support new -D options for if-then-else formats. 295030839Sache (specify_format): New function. 295130839Sache * diff.h (ifndef_format, ifdef_format, ifnelse_format): New variables. 295230839Sache * ifdef.c (print_ifdef_hunk): Use the new variables instead of 295330839Sache a hardwired format. 295430839Sache 295530839Sache * side.c (print_1sdiff_line): Represent incomplete lines on output. 295630839Sache (print_sdiff_script): Likewise. Don't print 'q' at end, 295730839Sache since that doesn't work with incomplete lines. 295830839Sache * sdiff.c (interact): Don't assume diff output ends with 'q' line. 295930839Sache * diff.h (ROBUST_OUTPUT_STYLE): OUTPUT_SDIFF is now robust. 296030839Sache 296130839Sache * sdiff.c (lf_copy, lf_snarf): Use memchr instead of index, 296230839Sache to avoid dumping core when files contain null characters. 296330839Sache (memchr): New function (if memchr is missing). 296430839Sache 296530839Sache * io.c (sip): New arg SKIP_TEST to skip test for binary file. 296630839Sache (read_files): Don't bother testing second file if first is binary. 296730839Sache 296830839SacheThu Sep 17 21:17:49 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 296930839Sache 297030839Sache * system.h [!USG && !_POSIX_VERSION]: Protect from conflicting 297130839Sache prototype for wait in sys/wait.h. 297230839Sache 297330839SacheWed Sep 16 12:32:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 297430839Sache 297530839Sache * Makefile.in: Include binprefix in -DDIFF_PROGRAM. 297630839Sache 297730839SacheTue Sep 15 14:27:25 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 297830839Sache 297930839Sache * Version 2.0. 298030839Sache 298130839SacheSat Sep 12 01:31:19 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 298230839Sache 298330839Sache * util.c, diff.h, system.h [!HAVE_MEMCHR]: Don't use void * 298430839Sache and const when declaring memchr replacement. Declare memchr 298530839Sache if !STDC_HEADERS && !USG. 298630839Sache 298730839SacheThu Sep 10 15:17:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 298830839Sache 298930839Sache * Makefile.in (uninstall): New target. 299030839Sache 299130839Sache * diff.c (excluded_filename): Use fnmatch, not wildmat. 299230839Sache (usage): Document -x, -X, --exclude, --exclude-from. 299330839Sache Makefile.in: Use fnmatch.c, not wildmat.c. 299430839Sache 299530839SacheSun Sep 6 23:46:25 1992 Paul Eggert (eggert@twinsun.com) 299630839Sache 299730839Sache * configure.in: Add HAVE_MEMCHR. 299830839Sache * diff.h, util.c: Use it instead of MEMCHR_MISSING. 299930839Sache 300030839SacheSun Sep 6 07:25:49 1992 Paul Eggert (eggert@twinsun.com) 300130839Sache 300230839Sache * diff.h: (struct line_def): Replace this 3-word struct with char *. 300330839Sache This uses less memory, particularly for large files with short lines. 300430839Sache (struct file_data): New member linbuf_base counts number of lines 300530839Sache in common prefix that are not recorded in linbuf; 300630839Sache this uses less memory if files are identical or differ only at end. 300730839Sache New member buffered_lines counts possibly differing lines. 300830839Sache New member valid_lines counts valid data. 300930839Sache New member alloc_lines - linbuf_base replaces old linbufsize. 301030839Sache linbuf[0] now always points at first differing line. 301130839Sache Remove unused members ltran, suffix_lines. 301230839Sache Add const where appropriate. 301330839Sache (Is_space): New macro, for consistent definition of `white space'. 301430839Sache (excluded_filename, memchr, sip, slurp): New declarations. 301530839Sache * ed.c (print_ed_hunk): Adjust to diff.h's struct changes. 301630839Sache * context.c (pr_context_hunk): Likewise. 301730839Sache * ifdef.c (print_ifdef_script): Likewise. 301830839Sache * side.c (print_sdiff_script, print_half_line): Likewise. 301930839Sache * util.c (analyze_hunk, line_cmp, print_1_line): Likewise. 302030839Sache 302130839Sache * analyze.c (shift_boundaries): Remove unneeded variable `end' and 302230839Sache unnecessary comparisons of `preceding' and `other_preceding' against 0. 302330839Sache (diff_2_files): When comparing files byte-by-byte for equality, 302430839Sache don't slurp them all in at once; just compare them a buffer at a time. 302530839Sache This can win big if they differ early on. 302630839Sache Move some code to compare_files to enable this change. 302730839Sache Use only one buffer for stdin with `diff - -'. 302830839Sache (discard_confusing_lines, diff_2_files): Coalesce malloc/free calls. 302930839Sache (build_script): Remove obsolete OUTPUT_RCS code. 303030839Sache 303130839Sache * diff.c (add_exclude, add_exclude_file, excluded_filename): New fns. 303230839Sache (main): Use them for the new --exclude and --exclude-from options. 303330839Sache (compare_files): Don't open a file unless it must be read. 303430839Sache Treat `diff file file' and `diff file dir' similarly. 303530839Sache Move some code here from diff_2_files to enable this. 303630839Sache Simplify file vs dir warning. 303730839Sache 303830839Sache * dir.c (dir_sort): Support new --exclude* options. 303930839Sache 304030839Sache * io.c (struct equivclass): Put hash code and line length here instead 304130839Sache of struct line_def, so that they can be shared. 304230839Sache (find_and_hash_each_line): Compute equivalence class as we go, 304330839Sache instead of doing it in a separate pass; this thrashes memory less. 304430839Sache Make buckets realloc-able, since we can't preallocate them. 304530839Sache Record one more line start than there are lines, so that we can compute 304630839Sache any line's length by subtracting its start from the next line's, 304730839Sache instead of storing the length explicitly. This saves memory. 304830839Sache Move prefix-handling code to find_identical_ends; 304930839Sache this wins with large prefixes. 305030839Sache Use Is_space, not is_space, for consistent treatment of white space. 305130839Sache (prepare_text_end): New function. 305230839Sache (find_identical_ends): Move slurping here, so it's only done when 305330839Sache needed. Work even if the buffers are the same (because of `diff - -'). 305430839Sache Compare prefixes a word at a time for speed. 305530839Sache (find_equiv_class): Delete; now done by find_and_hash_each_line. 305630839Sache (read_files): Don't slurp unless needed. 305730839Sache find_equiv_class's work is now folded into find_and_hash_each_line. 305830839Sache Don't copy stdin buffer if `diff - -'. 305930839Sache Check for running out of primes. 306030839Sache (sip, slurp): Split first part of `slurp' into another function `sip'. 306130839Sache `sip' sets things up and perhaps reads the first ST_BLKSIZE buffer to 306230839Sache see whether the file is binary; `slurp' now just finishes the job. 306330839Sache This lets diff_2_files compare binary files lazily. 306430839Sache Allocate a one-word sentinel to allow word-at-a-time prefix comparison. 306530839Sache Count prefix lines only if needed, only count the first file's prefix. 306630839Sache Don't bother to count suffix lines; it's never needed. 306730839Sache Set up linbuf[0] to point at first differing line. 306830839Sache (binary_file_p): Change test for binary files: 306930839Sache if it has a null byte in its first buffer, it's binary. 307030839Sache (primes): Add more primes. 307130839Sache 307230839Sache * util.c (line_cmp): Use bcmp for speed. 307330839Sache Use Is_space, not is_space, for consistent treatment of white space. 307430839Sache (translate_line_number): Internal line numbers now count from 0 307530839Sache starting after the prefix. 307630839Sache (memchr): New function (if memchr is missing). 307730839Sache 307830839Sache * Makefile.in: Document HAVE_ST_BLKSIZE. Link with wildmat.o. 307930839Sache * system.h (STAT_BLOCKSIZE): New macro based on HAVE_ST_BLKSIZE. 308030839Sache * configure.in: Add AC_ST_BLKSIZE. 308130839Sache * wildmat.c: New file. 308230839Sache 308330839SacheFri Sep 4 01:28:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 308430839Sache 308530839Sache * sdiff.c (xmalloc): Renamed from ck_malloc. Callers changed. 308630839Sache 308730839SacheThu Sep 3 15:28:59 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 308830839Sache 308930839Sache * diff.h: Don't declare free, index, rindex. 309030839Sache 309130839SacheTue Aug 11 22:18:06 1992 John Gilmore (gnu at cygnus.com) 309230839Sache 309330839Sache * io.c (binary_file_p): Use heuristic to avoid declaring info 309430839Sache files as binary files. Allow about 1.5% non-printing 309530839Sache characters (in info's case, ^_). 309630839Sache 309730839SacheTue Jul 7 01:09:26 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 309830839Sache 309930839Sache * diff.h: Replace function_regexp and ignore_regexp with lists 310030839Sache of compiled regexps. 310130839Sache * analyze.c, context.c, util.c: Test whether the lists, not 310230839Sache the old variables, are empty. 310330839Sache * util.c (analyze_hunk), context.c (find_function): Compare 310430839Sache lines with the lists of regexps. 310530839Sache * diff.c (add_regexp): New function. 310630839Sache (main): Use it. 310730839Sache 310830839Sache * diff3: Add -v --version option. 310930839Sache * Makefile.in: Link with version.o. 311030839Sache 311130839Sache * system.h: New file. 311230839Sache * diff.h, cmp.c, diff3.c, sdiff.c: Use it. 311330839Sache 311430839Sache * diff.h, diff3.c: Include string.h or strings.h, as appropriate. 311530839Sache Declare malloc and realloc. 311630839Sache 311730839Sache * diff3.c (perror_with_exit): Include program name in message. 311830839Sache 311930839Sache * diff3.c: Lowercase error messages for GNU standards. 312030839Sache 312130839Sache * sdiff.c [USG || STDC_HEADERS]: Define bcopy in terms of memcpy. 312230839Sache 312330839Sache * sdiff.c: Use the version number from version.c. 312430839Sache * Makefile.in: Link with version.o. 312530839Sache 312630839Sache * cmp.c error.c xmalloc.c: New files from textutils. 312730839Sache * Makefile.in: Add rules for them. 312830839Sache 312930839Sache * diff.c (longopts): --unidirectional-new-file is like -P, not -N. 313030839Sache Rename --file-label to --label (leave old name, but undocumented). 313130839Sache 313230839Sache * sdiff.c, diff.c (usage): Condense messages and fix some errors. 313330839Sache 313430839Sache * diff3.c (main, usage): Add long-named options. 313530839Sache 313630839SacheFri Jul 3 14:31:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 313730839Sache 313830839Sache * diff.h, diff3.c, sdiff.c: Change FOO_MISSING macros to HAVE_FOO. 313930839Sache 314030839SacheThu Jun 25 16:59:47 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) 314130839Sache 314230839Sache * diff.c: --reversed-ed -> --forward-ed. 314330839Sache 314430839SacheWed Feb 26 12:17:32 1992 Paul Eggert (eggert@yata.uucp) 314530839Sache 314630839Sache * analyze.c, diff.c, diff.h, io.c: For -y, compare even if same file. 314730839Sache 314830839SacheFri Feb 14 22:46:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 314930839Sache 315030839Sache * io.c, diff3.c, analyze.c: Add extra parentheses. 315130839Sache 315230839SacheSun Feb 9 00:22:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 315330839Sache 315430839Sache * diff.h (unidirectional_new_file_flag): New variable. 315530839Sache * diff.c (main): Set that for -P. 315630839Sache (compare_files): Support -P, somewhat like -N. 315730839Sache (longopts): Support long name for -P. 315830839Sache 315930839SacheSat Jan 4 20:10:34 1992 Paul Eggert (eggert at yata.uucp) 316030839Sache 316130839Sache * Makefile.in: Distribute diff.info-* too. 316230839Sache 316330839Sache * README, sdiff.c: version number now matches version.c. 316430839Sache 316530839Sache * configure: Fix and document vfork test. 316630839Sache 316730839Sache * ifdef.c: Don't dump core if `diff -Dx f f'. 316830839Sache 316930839SacheMon Dec 23 23:36:08 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 317030839Sache 317130839Sache * diff.h, diff3.c, sdiff.c: Change POSIX ifdefs to 317230839Sache HAVE_UNISTD_H and _POSIX_VERSION. 317330839Sache 317430839SacheWed Dec 18 17:00:31 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 317530839Sache 317630839Sache * Makefile.in (srcs): Add sdiff.c. 317730839Sache (tapefiles): Add diff.texi and diff.info. 317830839Sache 317930839Sache * diff.h, diff3.c, sdiff.c: Use HAVE_VFORK_H instead of 318030839Sache VFORK_HEADER and VFORK_WORKS. 318130839Sache 318230839SacheTue Dec 17 00:02:59 1991 Paul Eggert (eggert at yata.uucp) 318330839Sache 318430839Sache * Makefile.in (all): Add diff.info, sdiff. 318530839Sache 318630839Sache * configure, diff.c, sdiff.c: 318730839Sache Prefix long options with `--', not `+'. 318830839Sache * diff.c: Regularize option names. 318930839Sache 319030839Sache * configure: Fix check for vfork. 319130839Sache * configure, diff.c, diff.h, diff3.c, sdiff.c: 319230839Sache Use Posix definitions when possible. 319330839Sache 319430839Sache * context.c: Align context with tab if -T is given. Tune. 319530839Sache * diff.c, diff.h, side.c: Calculate column widths so that tabs line up. 319630839Sache * io.c: Add distinction between white space and printing chars. 319730839Sache * side.c: Don't expand tabs unless -t is given. 319830839Sache * side.c, util.c: Tab expansion now knows about '\b', '\f', '\r', '\v'. 319930839Sache * util.c: -w skips all white space. Remove lint. Tune. 320030839Sache 320130839Sache * sdiff.c: Support many more diff options, e.g. `-', `sdiff file dir'. 320230839Sache Ignore interrupts while the subsidiary editor is in control. 320330839Sache Clean up temporary file and kill subsidiary diff if interrupted. 320430839Sache Ensure subsidiary diff doesn't ignore SIGPIPE. 320530839Sache Don't get confused while waiting for two subprocesses. 320630839Sache Don't let buffers overflow. Check for I/O errors. 320730839Sache Convert to GNU style. Tune. 320830839Sache 320930839Sache * sdiff.c, util.c: Don't lose errno. 321030839Sache Don't confuse sdiff with messages like `Binary files differ'. 321130839Sache * sdiff.c, side.c: Don't assume that common lines are identical. 321230839Sache Simplify --sdiff-merge-assist format. 321330839Sache 321430839SacheMon Sep 16 16:42:01 1991 Tom Lord (lord at churchy.gnu.ai.mit.edu) 321530839Sache 321630839Sache * Makefile.in, sdiff.c: introduced sdiff front end to diff. 321730839Sache 321830839Sache * Makefile.in, analyze.c, diff.c, diff.h, io.c, side.c: Added 321930839Sache sdiff-style output format to diff. 322030839Sache 322130839SacheMon Aug 26 16:44:55 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu) 322230839Sache 322330839Sache * Makefile.in, configure: Only put $< in Makefile if using VPATH, 322430839Sache because older makes don't understand it. 322530839Sache 322630839SacheFri Aug 2 12:22:30 1991 David J. MacKenzie (djm at apple-gunkies) 322730839Sache 322830839Sache * configure: Create config.status. Remove it and Makefile if 322930839Sache interrupted while creating them. 323030839Sache 323130839SacheThu Aug 1 22:24:31 1991 David J. MacKenzie (djm at apple-gunkies) 323230839Sache 323330839Sache * configure: Check for +srcdir etc. arg and look for 323430839Sache Makefile.in in that directory. Set VPATH if srcdir is not `.'. 323530839Sache * Makefile.in: Get rid of $(archpfx). 323630839Sache 323730839SacheTue Jul 30 21:28:44 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 323830839Sache 323930839Sache * Makefile.in (prefix): Renamed from DESTDIR. 324030839Sache 324130839SacheWed Jul 24 23:08:56 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 324230839Sache 324330839Sache * diff.h, diff3.c: Rearrange ifdefs to use POSIX, 324430839Sache STDC_HEADERS, VFORK_MISSING, DIRENT. This way it works on 324530839Sache more systems that aren't pure USG or BSD. 324630839Sache Don't not define const if __GNUC__ is defined -- that would 324730839Sache break with -traditional. 324830839Sache * configure: Check for those features. 324930839Sache 325030839SacheWed Jul 10 01:39:23 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 325130839Sache 325230839Sache * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL). 325330839Sache 325430839SacheSat Jul 6 16:39:04 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 325530839Sache 325630839Sache * Replace Makefile with configure and Makefile.in. 325730839Sache Update README with current compilation instructions. 325830839Sache 325930839SacheSat Jul 6 14:03:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 326030839Sache 326130839Sache * util.c (setup_output): Just save the args for later use. 326230839Sache (begin_output): Do the real work, with the values that were saved. 326330839Sache It's safe to call begin_output more than once. 326430839Sache Print the special headers for context format here. 326530839Sache * analyze.c (diff_2_files): Don't print special headers here. 326630839Sache * context.c (pr_context_hunk, pr_unidiff_hunk): Call begin_output. 326730839Sache * ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk): 326830839Sache * normal.c (print_normal_hunk): Likewise. 326930839Sache * ifdef.c (print_ifdef_hunk): Likewise. 327030839Sache * util.c (finish_output): Don't die if begin_output was not called. 327130839Sache 327230839SacheThu Jun 20 23:10:01 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 327330839Sache 327430839Sache * Makefile: Add TAGS, distclean, and realclean targets. 327530839Sache Set SHELL. 327630839Sache 327730839SacheTue Apr 30 13:54:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 327830839Sache 327930839Sache * diff.h (TRUE, FALSE): Undefine these before defining. 328030839Sache 328130839SacheThu Mar 14 18:27:27 1991 Richard Stallman (rms@mole.ai.mit.edu) 328230839Sache 328330839Sache * Makefile (objs): Include $(ALLOCA). 328430839Sache 328530839SacheSat Mar 9 22:34:03 1991 Richard Stallman (rms at mole.ai.mit.edu) 328630839Sache 328730839Sache * diff.h: Include regex.h. 328830839Sache 328930839SacheThu Feb 28 18:59:53 1991 Richard Stallman (rms at mole.ai.mit.edu) 329030839Sache 329130839Sache * Makefile (diff3): Link with GNU getopt. 329230839Sache 329330839SacheSat Feb 23 12:49:43 1991 Richard Stallman (rms at mole.ai.mit.edu) 329430839Sache 329530839Sache * io.c (find_equiv_class): Make hash code unsigned before mod. 329630839Sache 329730839Sache * diff.h (files): Add EXTERN. 329830839Sache 329930839SacheSun Jan 13 21:33:01 1991 Richard Stallman (rms at mole.ai.mit.edu) 330030839Sache 330130839Sache * diff.c: +print option renamed +paginate. Remove +all-text. 330230839Sache 330330839SacheMon Jan 7 06:18:01 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 330430839Sache 330530839Sache * Makefile (dist): New target, replacing diff.tar and 330630839Sache diff.tar.Z, to encode version number in distribution directory 330730839Sache and tar file names. 330830839Sache 330930839SacheSun Jan 6 18:42:23 1991 Michael I Bushnell (mib at geech.ai.mit.edu) 331030839Sache 331130839Sache * Version 1.15 released. 331230839Sache 331330839Sache * version.c: Updated from 1.15 alpha to 1.15 331430839Sache 331530839Sache * context.c (print_context_number_range, 331630839Sache print_unidiff_number_range): Don't print N,M when N=M, print 331730839Sache just N instead. 331830839Sache 331930839Sache * README: Updated for version 1.15. 332030839Sache Makefile: Updated for version 1.15. 332130839Sache 332230839Sache * diff3.c (main): Don't get confused if one of the arguments 332330839Sache is a directory. 332430839Sache 332530839Sache * diff.c (compare_files): Don't get confused if comparing 332630839Sache standard input to a directory; print error instead. 332730839Sache 332830839Sache * analyze.c (diff_2_files), context.c (print_context_header, 332930839Sache print_context_script), diff.c (main), diff.h (enum 333030839Sache output_style): Tread unidiff as an output style in its own 333130839Sache right. This also generates an error when both -u and -c are 333230839Sache given. 333330839Sache 333430839Sache * diff.c (main): Better error messages when regexps are bad. 333530839Sache 333630839Sache * diff.c (compare_files): Don't assume stdin is opened. 333730839Sache 333830839Sache * diff3.c (read_diff): Don't assume things about the order of 333930839Sache descriptor assignment and closes. 334030839Sache 334130839Sache * util.c (setup_output): Don't assume things about the order 334230839Sache of descriptor assignment and closes. 334330839Sache 334430839Sache * diff.c (compare_files): Set a flag so that closes don't 334530839Sache happen more than once. 334630839Sache 334730839Sache * diff.c (main): Don't just flush stdout, do a close. That 334830839Sache way on broken systems we can still get errors. 334930839Sache 335030839SacheMon Dec 24 16:24:17 1990 Richard Stallman (rms at mole.ai.mit.edu) 335130839Sache 335230839Sache * diff.c (usage): Use = for args of long options. 335330839Sache 335430839SacheMon Dec 17 18:19:20 1990 Michael I Bushnell (mib at geech.ai.mit.edu) 335530839Sache 335630839Sache * context.c (print_context_label): Labels were interchanged badly. 335730839Sache 335830839Sache * context.c (pr_unidiff_hunk): Changes to deal with files 335930839Sache ending in incomplete lines. 336030839Sache * util.c (print_1_line): Other half of the changes. 336130839Sache 336230839SacheMon Dec 3 14:23:55 1990 Richard Stallman (rms at mole.ai.mit.edu) 336330839Sache 336430839Sache * diff.c (longopts, usage): unidiff => unified. 336530839Sache 336630839SacheWed Nov 7 17:13:08 1990 Richard Stallman (rms at mole.ai.mit.edu) 336730839Sache 336830839Sache * analyze.c (diff_2_files): No warnings about newlines for -D. 336930839Sache 337030839Sache * diff.c (pr_unidiff_hunk): Remove ref to output_patch_flag. 337130839Sache 337230839SacheTue Oct 23 23:19:18 1990 Richard Stallman (rms at mole.ai.mit.edu) 337330839Sache 337430839Sache * diff.c (compare_files): For -D, compare even args are same file. 337530839Sache * analyze.c (diff_2_files): Likewise. 337630839Sache Also, output even if files have no differences. 337730839Sache 337830839Sache * analyze.c (diff_2_files): Print missing newline messages last. 337930839Sache Return 2 if a newline is missing. 338030839Sache Print them even if files end with identical text. 338130839Sache 338230839SacheMon Oct 22 19:40:09 1990 Richard Stallman (rms at mole.ai.mit.edu) 338330839Sache 338430839Sache * diff.c (usage): Return 2. 338530839Sache 338630839SacheWed Oct 10 20:54:04 1990 Richard Stallman (rms at mole.ai.mit.edu) 338730839Sache 338830839Sache * diff.c (longopts): Add +new-files. 338930839Sache 339030839SacheSun Sep 23 22:49:29 1990 Richard Stallman (rms at mole.ai.mit.edu) 339130839Sache 339230839Sache * context.c (print_context_script): Handle unidiff_flag. 339330839Sache (print_context_header): Likewise. 339430839Sache (print_unidiff_number_range, pr_unidiff_hunk): New functions. 339530839Sache * diff.c (longopts): Add element for +unidiff. 339630839Sache (main): Handle +unidiff and -u. 339730839Sache (usage): Mention them. 339830839Sache 339930839SacheWed Sep 5 16:33:22 1990 Richard Stallman (rms at mole.ai.mit.edu) 340030839Sache 340130839Sache * io.c (find_and_hash_each_line): Deal with missing final newline 340230839Sache after buffering necessary context lines. 340330839Sache 340430839SacheSat Sep 1 16:32:32 1990 Richard Stallman (rms at mole.ai.mit.edu) 340530839Sache 340630839Sache * io.c (find_identical_ends): ROBUST_OUTPUT_FORMAT test was backward. 340730839Sache 340830839SacheThu Aug 23 17:17:20 1990 Richard Stallman (rms at mole.ai.mit.edu) 340930839Sache 341030839Sache * diff3.c (WIFEXITED): Undef it if WEXITSTATUS is not defined. 341130839Sache * context.c (find_function): Don't try to return values. 341230839Sache 341330839SacheWed Aug 22 11:54:39 1990 Richard Stallman (rms at mole.ai.mit.edu) 341430839Sache 341530839Sache * diff.h (O_RDONLY): Define if not defined. 341630839Sache 341730839SacheTue Aug 21 13:49:26 1990 Richard Stallman (rms at mole.ai.mit.edu) 341830839Sache 341930839Sache * Handle -L option. 342030839Sache * context.c (print_context_label): New function. 342130839Sache (print_context_header): Use that. 342230839Sache * diff.c (main): Recognize the option. 342330839Sache (usage): Updated. 342430839Sache * diff.h (file_label): New variable. 342530839Sache * diff3.c (main): Recognize -L instead of -t. 342630839Sache 342730839Sache * diff3.c (main): Support -m without other option. 342830839Sache 342930839Sache * diff3.c (WEXITSTATUS, WIFEXITED): Define whenever not defined. 343030839Sache 343130839Sache * diff3.c (bcopy, index, rindex): Delete definitions; not used. 343230839Sache (D_LINENUM, D_LINELEN): Likewise. 343330839Sache (struct diff_block): lengths includes newlines. 343430839Sache (struct diff3_block): Likewise. 343530839Sache (always_text, merge): New variables. 343630839Sache (read_diff): Return address of end, not size read. Calls changed. 343730839Sache Pass -a to diff if given to diff3. 343830839Sache current_chunk_size now an int. Detect error in `pipe'. 343930839Sache Check for incomplete line of output here. 344030839Sache (scan_diff_line): Don't make scan_ptr + 2 before knowing it is valid. 344130839Sache No need to check validity of diff output here. 344230839Sache Include newline in length of line. 344330839Sache (main): Compute rev_mapping here. Handle -a and -m. 344430839Sache Error message if excess -t operands. Error for incompatible options. 344530839Sache Error if `-' given more than once. 344630839Sache Fix error storing in tag_strings. 344730839Sache (output_diff3): REV_MAPPING is now an arg. Call changed. 344830839Sache Change syntax of "missing newline" message. 344930839Sache Expect length of line to include newline. 345030839Sache (output_diff3_edscript): Return just 0 or 1. 345130839Sache REV_MAPPING is now an arg. Call changed. 345230839Sache (output_diff3_merge): New function. 345330839Sache (process_diff): Better error message for bad diff format. 345430839Sache (fatal, perror_with_exit): Return status 2. 345530839Sache 345630839Sache * analyze.c (diff_2_files): Report missing newline in either 345730839Sache or both files, if not robust output style. 345830839Sache 345930839Sache * util.c (setup_output): Detect error from pipe. 346030839Sache No need to close stdin. 346130839Sache 346230839Sache * util.c (print_1_line): Change format of missing-newline msg. 346330839Sache Change if statements to switch. 346430839Sache 346530839Sache * io.c (slurp): Don't mention differences in final newline if -B. 346630839Sache 346730839Sache * io.c (binary_file_p): Use ISO char set as criterion, not ASCII. 346830839Sache 346930839Sache * io.c (find_identical_ends): Increase value of BEG0 by 1. 347030839Sache Other changes in backwards scan to avoid decrementing pointers 347130839Sache before start of array, and set LINES properly. 347230839Sache 347330839Sache * diff.h (ROBUST_OUTPUT_STYLE): New macro. 347430839Sache * io.c (find_identical_ends, find_and_hash_each_line): Use that macro. 347530839Sache 347630839Sache * diff.h (dup2): Don't define if XENIX. 347730839Sache 347830839Sache * diff.c (main): Check for write error at end. 347930839Sache 348030839Sache * context.c (find_function): Don't return a value. 348130839Sache Use argument FILE rather than global files. 348230839Sache 348330839Sache * analyze.c: Add external function declarations. 348430839Sache * analyze.c (build_script): Turn off explicit check for final newline. 348530839Sache 348630839Sache * analyze.c (discard_confusing_lines): Make integers unsigned. 348730839Sache 348830839SacheTue Jul 31 21:37:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 348930839Sache 349030839Sache * io.c (find_and_hash_each_line): Correct the criterion 349130839Sache for leaving out the newline from the end of the line. 349230839Sache 349330839SacheTue May 29 21:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 349430839Sache 349530839Sache * dir.c (diff_dirs): Free things only if nonzero. 349630839Sache 349730839SacheMon Apr 16 18:31:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 349830839Sache 349930839Sache * diff.h (NDIR_IN_SYS): New macro controls location of ndir.h. 350030839Sache 350130839Sache * diff3.c (xmalloc, xrealloc): Don't die if size == 0 returns 0. 350230839Sache 350330839SacheSun Mar 25 15:58:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 350430839Sache 350530839Sache * analyze.c (discard_confusing_lines): 350630839Sache `many' wasn't being used; use it. 3507170754Sdelphij Canceling provisionals near start of run must handle already 3508170754Sdelphij canceled provisionals. 3509170754Sdelphij Canceling subruns of provisionals was canceling last nonprovisional. 351030839Sache 351130839SacheSat Mar 24 14:02:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 351230839Sache 351330839Sache * analyze.c (discard_confusing_lines): 351430839Sache Threshold for line occurring many times scales by square root 351530839Sache of total lines. 351630839Sache Within each run, cancel any long subrun of provisionals. 3517170754Sdelphij Don't update `provisional' while canceling provisionals. 351830839Sache In big outer loop, handle provisional and nonprovisional separately. 351930839Sache 352030839SacheThu Mar 22 16:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 352130839Sache 352230839Sache * analyze.c (discard_confusing_lines): 352330839Sache The first loops to discard provisionals from ends failed to step. 352430839Sache In second such loops, keep discarding all consecutive provisionals. 352530839Sache Increase threshold for stopping discarding, and also check for 352630839Sache consecutive nondiscardables as separate threshold. 352730839Sache 352830839SacheFri Mar 16 00:33:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 352930839Sache 353030839Sache * diff3.c (read_diff): Pass -- as first arg to diff. 353130839Sache 353230839Sache * diff3.c: Include wait.h or define equivalent macros. 353330839Sache (read_diff): Don't use stdio printing error in the inferior. 353430839Sache Remember the pid and wait for it. Report failing status. 353530839Sache Report failure of vfork. 353630839Sache 353730839SacheSun Mar 11 17:10:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 353830839Sache 353930839Sache * diff3.c (main): Accept -t options and pass to output_diff3_edscript. 354030839Sache (usage): Mention -t. 354130839Sache (read_diff): Use vfork. 354230839Sache (vfork): Don't use it on Sparc. 354330839Sache 354430839Sache * diff.h (vfork): Don't use it on Sparc. 354530839Sache 354630839SacheTue Mar 6 22:37:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 354730839Sache 354830839Sache * diff3.c (dup2): Don't define on Xenix. 354930839Sache 355030839Sache * Makefile: Comments for Xenix. 355130839Sache 355230839SacheThu Mar 1 17:19:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 355330839Sache 355430839Sache * analyze.c (diff_2_files): `message' requires three args. 355530839Sache 355630839SacheFri Feb 23 10:56:50 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 355730839Sache 355830839Sache * diff.h, util.c, diff3.c: Change 'void *' to 'VOID *', with 355930839Sache VOID defined as void if __STDC__, char if not. 356030839Sache 356130839SacheSun Feb 18 20:31:58 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 356230839Sache 356330839Sache * Makefile: Add rules for getopt.c, getopt1.c, getopt.h. 356430839Sache 356530839Sache * getopt.c, getopt.h, getopt1.c: New files. 356630839Sache 356730839Sache * main.c (main, usage): Add long options. 356830839Sache 356930839Sache * analyze.c (shift_boundaries): Remove unused var 'j_end'. 357030839Sache 357130839SacheThu Feb 8 02:43:16 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) 357230839Sache 357330839Sache * GNUmakefile: include ../Makerules before Makefile. 357430839Sache 357530839SacheFri Feb 2 23:21:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 357630839Sache 3577170754Sdelphij * analyze.c (diff_2_files): If -B or -I, don't return 1 357830839Sache if all changes were ignored. 357930839Sache 358030839SacheWed Jan 24 20:43:57 1990 Richard Stallman (rms at albert.ai.mit.edu) 358130839Sache 358230839Sache * diff3.c (fatal): Output to stderr. 358330839Sache 358430839SacheThu Jan 11 00:25:56 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) 358530839Sache 358630839Sache * diff.c (usage): Mention -v. 358730839Sache 358830839SacheWed Jan 10 16:06:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 358930839Sache 359030839Sache * diff3.c (output_diff3_edscript): Return number of overlaps. 359130839Sache (main): If have overlaps, exit with status 1. 359230839Sache 359330839SacheSun Dec 24 10:29:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 359430839Sache 359530839Sache * io.c (find_equiv_class): Fix typo that came from changing init of B 3596170754Sdelphij to an assignment. 359730839Sache 359830839Sache * version.c: New file. 359930839Sache * diff.c (main): -v prints version number. 360030839Sache 360130839Sache * io.c (binary_file_p): Null char implies binary file. 360230839Sache 360330839SacheFri Nov 17 23:44:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 360430839Sache 360530839Sache * util.c (print_1_line): Fix off by 1 error. 360630839Sache 360730839SacheThu Nov 16 13:51:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 360830839Sache 360930839Sache * util.c (xcalloc): Function deleted. 361030839Sache 361130839Sache * io.c (slurp): Null-terminate the buffer. 361230839Sache 361330839Sache * io.c (read_files): Delete unused vars. 361430839Sache 361530839Sache * io.c (find_equiv_class): Don't index by N if too low. 361630839Sache 361730839Sache * dir.c (dir_sort): Delete the extra declaration of compare_names. 361830839Sache 361930839Sache * diff.h: Don't declare xcalloc. Declare some other functions. 362030839Sache 362130839Sache * analyze.c (shift_boundaries): 362230839Sache Test for END at end of range before indexing by it. 3623170754Sdelphij Fix misspelling of `preceding' in var names. 362430839Sache 362530839SacheSat Nov 11 14:04:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 362630839Sache 362730839Sache * diff3.c (using_to_diff3_block): Delete unused vars. 362830839Sache (make_3way_diff, process_diff_control, read_diff, output_diff3): Likewise. 362930839Sache 363030839SacheMon Nov 6 18:15:50 EST 1989 Jay Fenlason (hack@ai.mit.edu) 363130839Sache 363230839Sache * README Fix typo. 363330839Sache 363430839SacheFri Nov 3 15:27:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 363530839Sache 363630839Sache * diff.c (usage): Mention -D. 363730839Sache 363830839Sache * ifdef.c (print_ifdef_hunk): Write comments on #else and #endif. 363930839Sache 364030839SacheSun Oct 29 16:41:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 364130839Sache 364230839Sache * diff.c (compare_files): Don't fflush for identical files. 364330839Sache 364430839SacheWed Oct 25 17:57:12 1989 Randy Smith (randy at apple-gunkies.ai.mit.edu) 364530839Sache 364630839Sache * diff3.c (using_to_diff3_block): When defaulting lines from 364730839Sache FILE0, only copy up to just under the *lowest* line mentioned 364830839Sache in the next diff. 364930839Sache 365030839Sache * diff3.c (fatal): Add \n to error messages. 365130839Sache 365230839SacheWed Oct 25 15:05:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 365330839Sache 365430839Sache * Makefile (tapefiles): Add ChangeLog. 365530839Sache 365630839SacheTue Oct 3 00:51:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 365730839Sache 365830839Sache * diff3.c (process_diff, create_diff3_block): Init ->next field. 365930839Sache 366030839SacheFri Sep 29 08:16:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 366130839Sache 366230839Sache * util.c (line_cmp): Alter end char of line 2, not line 1. 366330839Sache 366430839SacheWed Sep 20 00:12:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 366530839Sache 366630839Sache * Makefile (diff.tar): Expect ln to fail on some files; 366730839Sache copy them with cp. 366830839Sache 366930839SacheMon Sep 18 02:54:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 367030839Sache 367130839Sache * Handle -D option: 367230839Sache * io.c (find_and_hash_each_line): Keep all lines of 1st file. 367330839Sache * diff.c (main): Handle -D option. 367430839Sache (compare_files): Reject -D if files spec'd are directories. 367530839Sache * analyze.c (diff_2_files): Handle OUTPUT_IFDEF case. 367630839Sache 367730839SacheFri Sep 1 20:15:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 367830839Sache 367930839Sache * diff.c (option_list): Rename arg VECTOR as OPTIONVEC. 368030839Sache 368130839SacheMon Aug 28 17:58:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 368230839Sache 368330839Sache * diff.c (compare_files): Clear entire inf[i].stat. 368430839Sache 368530839SacheWed Aug 23 17:48:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 368630839Sache 368730839Sache * io.c (find_identical_ends): Sign was backward 368830839Sache determining where to bound the scan for the suffix. 368930839Sache 369030839SacheWed Aug 16 12:49:16 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 369130839Sache 369230839Sache * analyze.c (diff_2_files): If -q, treat all files as binary. 369330839Sache * diff.c (main): Detect -q, record in no_details_flag. 369430839Sache 369530839SacheSun Jul 30 23:12:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 369630839Sache 369730839Sache * diff.c (usage): New function. 369830839Sache (main): Call it. 369930839Sache 370030839SacheWed Jul 26 02:02:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 370130839Sache 370230839Sache * diff.c (main): Make -C imply -c. 370330839Sache 370430839SacheThu Jul 20 17:57:51 1989 Chris Hanson (cph at kleph) 370530839Sache 370630839Sache * io.c (find_and_hash_each_line): Bug fix in context handling, 370730839Sache introduced by last change. 370830839Sache 370930839SacheFri Jul 14 17:39:20 1989 Chris Hanson (cph at kleph) 371030839Sache 371130839Sache * analyze.c: To make RCS work correctly on files that don't 371230839Sache necessarily end in newline, introduce some changes that cause 371330839Sache diffs to be sensitive to missing final newline. Because 371430839Sache non-RCS modes don't want to be affected by these changes, they 371530839Sache are conditional on `output_style == OUTPUT_RCS'. 371630839Sache (diff_2_files) [OUTPUT_RCS]: Suppress the "File X missing 371730839Sache newline" message. 371830839Sache (build_script) [OUTPUT_RCS]: Cause the last line to compare as 371930839Sache different if exactly one of the files is missing its final 372030839Sache newline. 372130839Sache 372230839Sache * io.c (find_and_hash_each_line): Bug fix in 372330839Sache ignore_space_change mode. Change line's length to include the 372430839Sache newline. For OUTPUT_RCS, decrement last line's length if 372530839Sache there is no final newline. 372630839Sache (find_identical_ends) [OUTPUT_RCS]: If one of the files is 372730839Sache missing a final newline, make sure it's not included in either 372830839Sache the prefix or suffix. 372930839Sache 373030839Sache * util.c (print_1_line): Change line output routine to account 373130839Sache for line length including the newline. 373230839Sache 373330839SacheTue Jun 27 02:35:28 1989 Roland McGrath (roland at hobbes.ai.mit.edu) 373430839Sache 373530839Sache * Makefile: Inserted $(archpfx) where appropriate. 373630839Sache 373730839SacheWed May 17 20:18:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 373830839Sache 373930839Sache * diff3.c [USG]: Include fcntl.h. 374030839Sache 374130839Sache * diff.h [USG]: New compilation flags HAVE_NDIR, HAVE_DIRECT. 374230839Sache 374330839SacheWed Apr 26 15:35:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 374430839Sache 374530839Sache * dir.c (diff_dirs): Two new args, NONEX1 and NONEX2, say to pretend 374630839Sache nonex dirs are empty. 374730839Sache (dir_sort): New arg NONEX, likewise. 374830839Sache * diff.c (compare_files): Pass those args. 374930839Sache Sometimes call diff_dirs if subdir exists in just one place. 375030839Sache 375130839SacheWed Apr 12 01:10:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 375230839Sache 375330839Sache * io.c (find_identical_ends): Set END0 *after* last char 375430839Sache during backward scan for suffix. 375530839Sache 375630839SacheSat Apr 8 15:49:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 375730839Sache 375830839Sache * diff3.c (using_to_diff3_block): Now find high marks in files 1 375930839Sache and 2 through mapping off of the last difference instead of the 376030839Sache first. 376130839Sache 376230839Sache * diff3.c: Many trivial changes to spelling inside comments. 376330839Sache 376430839SacheFri Feb 24 12:38:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) 376530839Sache 376630839Sache * util.c, normal.c, io.c, ed.c, dir.c, diff.h, diff.c, context.c, 376730839Sache analyze.c, Makefile: Changed copyright header to conform with new 376830839Sache GNU General Public license. 376930839Sache * diff3.c: Changed copyright header to conform with new GNU 377030839Sache General Public license. 377130839Sache * COPYING: Made a hard link to /gp/rms/COPYING. 377230839Sache 377330839SacheFri Feb 24 10:01:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 377430839Sache 377530839Sache * io.c (slurp): Leave 2 chars space at end of buffer, not one. 377630839Sache (find_identical_ends): Special case if either file is empty; 377730839Sache don't try to make a sentinel since could crash. 377830839Sache 377930839SacheWed Feb 15 14:24:48 1989 Jay Fenlason (hack at apple-gunkies.ai.mit.edu) 378030839Sache 378130839Sache * diff3.c (message) Re-wrote routine to avoid using alloca() 378230839Sache 378330839SacheWed Feb 15 06:19:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 378430839Sache 378530839Sache * io.c (find_identical_ends): Delete the variable `bytes'. 378630839Sache 378730839SacheSun Feb 12 11:50:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 378830839Sache 378930839Sache * io.c (slurp): ->bufsize is nominal amount we have room for; 379030839Sache add room for sentinel when calling xmalloc or xrealloc. 379130839Sache 379230839Sache * io.c (find_identical_ends): Do need overrun check in finding suffix. 379330839Sache 379430839SacheFri Feb 10 01:28:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 379530839Sache 379630839Sache * diff.c (main): -C now takes arg to specify context length. 379730839Sache Now -p to show C function name--Damned IEEE! 379830839Sache Fatal error if context length spec'd twice. 379930839Sache 380030839Sache * ed.c (print_ed_hunk): Now special treatment only for lines containing 380130839Sache precisely a dot and nothing else. Output `..', end the insert, 380230839Sache substitute that one line, then resume the insert if nec. 380330839Sache 380430839Sache * io.c (find_and_hash_lines): When backing up over starting context, 380530839Sache don't move past buffer-beg. 380630839Sache 380730839Sache * io.c (find_identical_ends): Use sentinels to make the loops faster. 380830839Sache If files are identical, skip the 2nd loop and return quickly. 380930839Sache (slurp): Leave 1 char extra space after each buffer. 381030839Sache 381130839Sache * analyze.c (diff_2_files): Mention difference in final newlines. 381230839Sache 381330839SacheWed Jan 25 22:44:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 381430839Sache 381530839Sache * dir.c (diff_dirs): Use * when calling fcn ptr variable. 381630839Sache 381730839SacheSat Dec 17 14:12:06 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 381830839Sache 381930839Sache * Makefile: New vars INSTALL and LIBS used in some rules; 382030839Sache provide default defns plus commented-put defns for sysV. 382130839Sache 382230839SacheThu Nov 17 16:42:53 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 382330839Sache 382430839Sache * dir.c (dir_sort): Open-trouble not fatal; just say # files is -1. 382530839Sache (diff_dirs): If dir_sort does that, give up and return 2. 382630839Sache 382730839Sache * diff.c (compare_files): Don't open directories. 382830839Sache Don't close them specially either. 382930839Sache Cross-propagate inf[i].dir_p sooner. 383030839Sache 383130839SacheSun Nov 13 11:19:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 383230839Sache 383330839Sache * diff.h: Declare index, rindex. 383430839Sache 383530839Sache * diff.c (compare_files): If comparing foodir with b/f, 383630839Sache use foodir/f, not foodir/b/f. 383730839Sache 383830839Sache * diff.c (compare_files): Don't print "are identical" msg for 2 dirs. 383930839Sache Status now 1 if one file is a dir and the other isn't, etc. 384030839Sache 384130839SacheThu Nov 3 16:30:24 1988 Randall Smith (randy at gluteus.ai.mit.edu) 384230839Sache 384330839Sache * Makefile: Added a define for diff3 to define DIFF_PROGRAM. 384430839Sache 384530839Sache * util.c: Added hack to make sure that perror was not called with 384630839Sache a null pointer. 384730839Sache 384830839Sache * diff.c: Changed S_IFDIR to S_IFMT in masking type of file bits 384930839Sache out. 385030839Sache 385130839Sache * diff3.c: Included USG compatibility defines. 385230839Sache 385330839Sache * diff.h: Moved sys/file.h into #else USG section (not needed or 385430839Sache wanted on System V). 385530839Sache 385630839Sache * ed.c, analyze.c, context.c: Shortened names to 12 characters for 385730839Sache the sake of System V (too simple not to do). 3858170754Sdelphij 3859170754Sdelphij 3860170754SdelphijCopyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 1998, 1999, 3861170754Sdelphij2000, 2001, 2002 Free Software Foundation, Inc. 3862170754Sdelphij 3863170754SdelphijThis file is part of GNU Diffutils. 3864170754Sdelphij 3865170754SdelphijThis program is free software; you can redistribute it and/or modify 3866170754Sdelphijit under the terms of the GNU General Public License as published by 3867170754Sdelphijthe Free Software Foundation; either version 2, or (at your option) 3868170754Sdelphijany later version. 3869170754Sdelphij 3870170754SdelphijThis program is distributed in the hope that they will be useful, 3871170754Sdelphijbut WITHOUT ANY WARRANTY; without even the implied warranty of 3872170754SdelphijMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 3873170754SdelphijGNU General Public License for more details. 3874170754Sdelphij 3875170754SdelphijYou should have received a copy of the GNU General Public License 3876170754Sdelphijalong with this program; see the file COPYING. If not, write to 3877170754Sdelphijthe Free Software Foundation, Inc., 59 Temple Place - Suite 330, 3878170754SdelphijBoston, MA 02111-1307, USA. 3879