1*75f6d617Schristos2002-04-05 Paul Eggert <eggert@sic.twinsun.com> 2*75f6d617Schristos 3*75f6d617Schristos * NEWS, configure.ac (AC_INIT): Version 2.8.1. 4*75f6d617Schristos 5*75f6d617Schristos * configure.ac (AC_HEADER_STDBOOL): Add. 6*75f6d617Schristos (AC_CHECK_HEADERS): Remove stdbool.h. 7*75f6d617Schristos * m4/stdbool.m4: New file. 8*75f6d617Schristos * m4/prereq.m4 (jm_PREREQ_EXCLUDE): 9*75f6d617Schristos Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h). 10*75f6d617Schristos (jm_PREREQ_HASH): Likewise. 11*75f6d617Schristos 12*75f6d617Schristos * src/system.h (SSIZE_MAX): Define if limits.h doesn't. 13*75f6d617Schristos 14*75f6d617Schristos * src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a 15*75f6d617Schristos size_t variable, just in case there's a problem with ptrdiff_t 16*75f6d617Schristos versus size_t. 17*75f6d617Schristos 18*75f6d617Schristos * lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported. 19*75f6d617Schristos Include limits.h. 20*75f6d617Schristos (SIZE_MAX, SSIZE_MAX): Define if standard headers don't. 21*75f6d617Schristos (MIN): New macro. 22*75f6d617Schristos (block_read): Do not attempt to read more than SSIZE_MAX bytes, as the 23*75f6d617Schristos resulting behavior is implementation-defined. Work around bug in 24*75f6d617Schristos Tru64 5.1, which can't read more than INT_MAX bytes at a time. 25*75f6d617Schristos * src/cmp.c (cmp): Use block_read instead of read, to work 26*75f6d617Schristos around Tru64 5.1 bug. 27*75f6d617Schristos * src/diff3.c (read_diff): Likewise. 28*75f6d617Schristos * src/diff3.c: Include cmpbuf.h. 29*75f6d617Schristos 30*75f6d617Schristos * THANKS: Add Ulrich Drepper. 31*75f6d617Schristos 32*75f6d617Schristos * INSTALLME: Mention GNU texinfo. 33*75f6d617Schristos 34*75f6d617Schristos * doc/diff.texi: 35*75f6d617Schristos Use new @copying directive. 36*75f6d617Schristos Put @contents first, not last, since Texinfo now suggests this. 37*75f6d617Schristos Fix bug in -w documentation noted by Karl Berry. 38*75f6d617Schristos Mention links for speedup. 39*75f6d617Schristos New node "Speedups" for future speedups. 40*75f6d617Schristos Just say "Index", not "Concept Index". 41*75f6d617Schristos 42*75f6d617Schristos2002-03-26 Paul Eggert <eggert@twinsun.com> 43*75f6d617Schristos 44*75f6d617Schristos * src/Makefile.am: 45*75f6d617Schristos (INCLUDES): Remove this obsolete macro, replacing it with: 46*75f6d617Schristos (AM_CPPFLAGS): New macro. 47*75f6d617Schristos 48*75f6d617Schristos2002-03-26 Albert Chin-A-Young <china@thewrittenword.com> 49*75f6d617Schristos 50*75f6d617Schristos * src/Makefile.am (datadir): Remove, as it conflicts with --datadir. 51*75f6d617Schristos 52*75f6d617Schristos2002-03-26 Paul Eggert <eggert@twinsun.com> 53*75f6d617Schristos 54*75f6d617Schristos * doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was 55*75f6d617Schristos missing before the menu entry. Bug diagnosed by Adam Heath. 56*75f6d617Schristos Also, put this dircategory after the Individual utilities dircategory, 57*75f6d617Schristos to work around a compatibility problem with Debian install-info. 58*75f6d617Schristos 59*75f6d617Schristos2002-03-24 Eli Zaretskii <eliz@is.elta.co.il> 60*75f6d617Schristos 61*75f6d617Schristos * src/io.c (sip): Do not mishandle buffered count when reverting 62*75f6d617Schristos to text mode. 63*75f6d617Schristos 64*75f6d617Schristos2002-03-23 Paul Eggert <eggert@twinsun.com> 65*75f6d617Schristos 66*75f6d617Schristos * NEWS, configure.ac (AC_INIT): Version 2.8. 67*75f6d617Schristos * configure.ac (AC_PREREQ): 2.53. 68*75f6d617Schristos * INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27. 69*75f6d617Schristos 70*75f6d617Schristos * doc/diff.texi: Upgrade the description of `patch' to GNU patch 71*75f6d617Schristos 2.5.4, and revamp the documentation accordingly. 72*75f6d617Schristos 73*75f6d617Schristos * src/diff.c (main): Fix typo that prevented diff -y from working. 74*75f6d617Schristos Bug reported by Mitsuru Chinen. 75*75f6d617Schristos 76*75f6d617Schristos2002-03-15 Paul Eggert <eggert@twinsun.com> 77*75f6d617Schristos 78*75f6d617Schristos * lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info. 79*75f6d617Schristos Bug reported by Eli Zaretskii. 80*75f6d617Schristos 81*75f6d617Schristos2002-03-15 Eli Zaretskii <eliz@is.elta.co.il> 82*75f6d617Schristos 83*75f6d617Schristos * ms/config.sed: Tweak editing of install-info-am target. 84*75f6d617Schristos 85*75f6d617Schristos2002-03-12 Paul Eggert <eggert@twinsun.com> 86*75f6d617Schristos 87*75f6d617Schristos * NEWS, configure.ac (AC_INIT): Version 2.7.10. 88*75f6d617Schristos 89*75f6d617Schristos * NEWS: cmp -l -s and cmp -s -l are not allowed. 90*75f6d617Schristos Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge. 91*75f6d617Schristos 92*75f6d617Schristos * configure.ac (jm_PREREQ_HARD_LOCALE): Add. 93*75f6d617Schristos (AM_INIT_AUTOMAKE): Do not distribute shar file. 94*75f6d617Schristos 95*75f6d617Schristos * doc/diff.texi (Overview): byte != character. 96*75f6d617Schristos (Detailed Context, Detailed Unified, Alternate Names, diff Options): 97*75f6d617Schristos Do not document diff -L. 98*75f6d617Schristos (Comparing Directories, Making Patches, diff Options): 99*75f6d617Schristos Do not document diff -P. 100*75f6d617Schristos (diff Performance, sdiff Option Summary, diff Options, sdiff Options): 101*75f6d617Schristos Do not document diff -H. 102*75f6d617Schristos (diff Performance, diff Options): Do not document --horizon-lines. 103*75f6d617Schristos (cmp Options): Prefer -b to -c. 104*75f6d617Schristos (cmp Options, diff Options, diff3 Options, patch Options, 105*75f6d617Schristos sdiff Options): Put short options next to the similar long options. 106*75f6d617Schristos Document --help, and use the same wording for --verbose. 107*75f6d617Schristos (diff3 Options): Fix typo in description of -E, which used wrongly used 108*75f6d617Schristos "-e" instead of "-E". 109*75f6d617Schristos 110*75f6d617Schristos * lib/hard-locale.c (alloca): Remove. 111*75f6d617Schristos Include stdlib.h if available, for malloc. 112*75f6d617Schristos (hard_locale): Use malloc, not alloca, so that we need not worry about 113*75f6d617Schristos alloca issues. Test for storage allocation failure. 114*75f6d617Schristos 115*75f6d617Schristos * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE. 116*75f6d617Schristos (jm_PREREQ_HARD_LOCALE): New macro. 117*75f6d617Schristos 118*75f6d617Schristos * src/cmp.c (specify_comparison_type): New function. 119*75f6d617Schristos (check_stdout): "indices and codes" -> "byte numbers and values" 120*75f6d617Schristos (main): Detect clashing options. 121*75f6d617Schristos (cmp): Use "byte" rather than "char" if a translation for "byte" 122*75f6d617Schristos is available, even when in the POSIX locale. 123*75f6d617Schristos 124*75f6d617Schristos * src/diff.c (option_help_msgid): Do not document -L, -P, 125*75f6d617Schristos --horizon-lines, --inhibit-hunk-merge, -H. 126*75f6d617Schristos * src/diff.h: -L -> --label 127*75f6d617Schristos 128*75f6d617Schristos2002-03-11 Paul Eggert <eggert@twinsun.com> 129*75f6d617Schristos 130*75f6d617Schristos * NEWS, configure.ac (AC_INIT): Version 2.7.9. 131*75f6d617Schristos 132*75f6d617Schristos * INSTALLME: Update to autoconf 2.53, automake 1.6, help2man 133*75f6d617Schristos 1.25 with patch. 134*75f6d617Schristos 135*75f6d617Schristos * configure.ac (AC_INIT): 136*75f6d617Schristos Change package name from diff to diffutils. 137*75f6d617Schristos (AM_INIT_AUTOMAKE): Use new form, with option gnits, 138*75f6d617Schristos rather than old from that duplicated AC_INIT. 139*75f6d617Schristos (AM_MISSING_PROG): Add help2man. 140*75f6d617Schristos (REGEX_MALLOC): Define. 141*75f6d617Schristos (AC_CONFIG_FILES): Add man/Makefile. 142*75f6d617Schristos 143*75f6d617Schristos * Makefile.am (AUTOMAKE_OPTIONS): Remove. 144*75f6d617Schristos * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove. 145*75f6d617Schristos * lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 146*75f6d617Schristos * ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 147*75f6d617Schristos * src/Makefile.am (AUTOMAKE_OPTIONS): Likewise. 148*75f6d617Schristos 149*75f6d617Schristos * lib/c-stack.c: Include <errno.h> 150*75f6d617Schristos (ENOTSUP): Define if errno.h doesn't. 151*75f6d617Schristos (SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ, 152*75f6d617Schristos _SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack): 153*75f6d617Schristos Remove; we now assume them all when 154*75f6d617Schristos HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need 155*75f6d617Schristos substitutes. 156*75f6d617Schristos (<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC. 157*75f6d617Schristos (alternate_signal_stack): Now of size SIGSTKSZ. 158*75f6d617Schristos (segv_handler): Simplify, under the assumption that 159*75f6d617Schristos HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero. 160*75f6d617Schristos (c_stack_action): Likewise. 161*75f6d617Schristos (exit_failure) [DEBUG]: Initialize to 0, not 1. 162*75f6d617Schristos (recurse, main) [DEBUG]: Remove main args. 163*75f6d617Schristos 164*75f6d617Schristos * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change 165*75f6d617Schristos wording of message. Do not check for stdbool.h or ucontext.h, 166*75f6d617Schristos or for ucontext_t or sigaction or sigaltstack. 167*75f6d617Schristos 168*75f6d617Schristos * po/LINGUAS: Add zh_TW. 169*75f6d617Schristos 170*75f6d617Schristos * Makefile.am (SUBDIRS): Add man. 171*75f6d617Schristos * man/Makefile.am: New file. 172*75f6d617Schristos * src/cmp.c (usage): Reword for help2man. 173*75f6d617Schristos * src/diff.c (option_help_msgid): Likewise. 174*75f6d617Schristos * src/diff3.c (option_help_msgid, usage): Likewise. 175*75f6d617Schristos * src/sdiff3.c (option_help_msgid, usage): Likewise. 176*75f6d617Schristos Reword for help2man. 177*75f6d617Schristos 178*75f6d617Schristos * THANKS: Add email address for Tower. 179*75f6d617Schristos 180*75f6d617Schristos * config/config.guess, config/config.sub, config/depcomp, 181*75f6d617Schristos config/install-sh, config/mdate-sh, config/missing, 182*75f6d617Schristos config/mkinstalldirs, config/texinfo.texi: Update 183*75f6d617Schristos to recent version (maintained in other packages). 184*75f6d617Schristos 185*75f6d617Schristos2002-03-04 Bruno Haible <haible@ilog.fr> 186*75f6d617Schristos 187*75f6d617Schristos * m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if 188*75f6d617Schristos no preinstalled GNU gettext was found. 189*75f6d617Schristos 190*75f6d617Schristos2002-03-02 Eli Zaretskii <eliz@is.elta.co.il> 191*75f6d617Schristos 192*75f6d617Schristos * ms/config.sed: Tweak editing of install-info-am and 193*75f6d617Schristos uninstall-info-am targets, to include 8+3-butchered names of Info 194*75f6d617Schristos files. 195*75f6d617Schristos 196*75f6d617Schristos2002-02-28 Paul Eggert <eggert@twinsun.com> 197*75f6d617Schristos 198*75f6d617Schristos * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8. 199*75f6d617Schristos 200*75f6d617Schristos * doc/diff.texi: Add vr index. 201*75f6d617Schristos Update copyright to 2002. 202*75f6d617Schristos (Standards conformance): New chapter. 203*75f6d617Schristos (Binary): Differing binary files are trouble unless the user asked for 204*75f6d617Schristos brief output. 205*75f6d617Schristos (Detailed Context): Prefer ISO time stamp format in discussion. 206*75f6d617Schristos (Detailed Unified, Pagination): Likewise. 207*75f6d617Schristos (Less Context): Likewise. Also use short option. 208*75f6d617Schristos (Alternate Names): Separate option from arg. 209*75f6d617Schristos (Making Patches): Mention -U 2. 210*75f6d617Schristos (diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not 211*75f6d617Schristos allow it. 212*75f6d617Schristos 213*75f6d617Schristos * INSTALLME: Update advice for Solaris installation problems. 214*75f6d617Schristos We no longer use a test version of gettext. 215*75f6d617Schristos Autoconf test version updated from 2.52f to 2.52h. 216*75f6d617Schristos POSIX 1003.1-2001 patch for Automake. 217*75f6d617Schristos 218*75f6d617Schristos * configure.ac (AC__GNU_SOURCE): Add this, 219*75f6d617Schristos replacing AH_VERBATIM of _GNU_SOURCE. 220*75f6d617Schristos (tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf. 221*75f6d617Schristos (jm_PREREQ_C_STACK): Add. 222*75f6d617Schristos (AC_CONFIG_FILES): Remove intl/Makefile. 223*75f6d617Schristos (AM_GNU_GETTEXT): Add external arg, from gettext 0.11. 224*75f6d617Schristos 225*75f6d617Schristos * lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h, 226*75f6d617Schristos lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4, 227*75f6d617Schristos po/cs.po, po/ja.po: New files. 228*75f6d617Schristos 229*75f6d617Schristos * intl/ChangeLog, intl/Makefile.in, intl/VERSION, 230*75f6d617Schristos intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c, 231*75f6d617Schristos intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, 232*75f6d617Schristos intl/dngettext.c, intl/explodename.c, intl/finddomain.c, 233*75f6d617Schristos intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h, 234*75f6d617Schristos intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h, 235*75f6d617Schristos intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c, 236*75f6d617Schristos intl/locale.alias, intl/localealias.c, intl/localename.c, 237*75f6d617Schristos intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c, 238*75f6d617Schristos intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h, 239*75f6d617Schristos intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin, 240*75f6d617Schristos intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove. 241*75f6d617Schristos 242*75f6d617Schristos * ABOUT-NLS: Update to Gettext 0.11. 243*75f6d617Schristos 244*75f6d617Schristos * Makefile.am (SUBDIRS): Remove intl. 245*75f6d617Schristos 246*75f6d617Schristos * config/config.guess, config/config.rpath, config/config.sub, 247*75f6d617Schristos config/texinfo.tex, config/depcomp, config/texinfo.tex, 248*75f6d617Schristos lib/tempname.c: Update to latest version from other packages. 249*75f6d617Schristos 250*75f6d617Schristos * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure. 251*75f6d617Schristos * lib/xmalloc.c: Include exitfail.h. 252*75f6d617Schristos (xalloc_exit_failure): Remove; subsumed by exit_failure. 253*75f6d617Schristos All uses changed. 254*75f6d617Schristos 255*75f6d617Schristos * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h. 256*75f6d617Schristos (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c. 257*75f6d617Schristos (INCLUDES): Remove. 258*75f6d617Schristos 259*75f6d617Schristos * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX. 260*75f6d617Schristos * lib/cmpbuf.c: Include errno.h. 261*75f6d617Schristos (errno): Declare if !STDC_HEADERS. 262*75f6d617Schristos Include signal.h. 263*75f6d617Schristos (SA_RESTART): Define if not already defined. 264*75f6d617Schristos Include <inttypes.h>. 265*75f6d617Schristos (PTRDIFF_MAX): Define if not already defined. 266*75f6d617Schristos (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. 267*75f6d617Schristos (block_read): Accommodate ancient AIX hosts that set errno to EINTR 268*75f6d617Schristos after uncaught SIGCONT. 269*75f6d617Schristos (buffer_lcm): Return a reasonable size if the multiple is too large. 270*75f6d617Schristos New arg LCM_MAX. All callers changed. 271*75f6d617Schristos 272*75f6d617Schristos * lib/hard-locale.c: Include "hard-locale.h". 273*75f6d617Schristos (hard_locale): Ignore ENABLE_NLS, since we want to operate on 274*75f6d617Schristos locales other than LC_MESSAGES. 275*75f6d617Schristos 276*75f6d617Schristos * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER. 277*75f6d617Schristos (jm_PREREQ_POSIXVER): New macro. 278*75f6d617Schristos 279*75f6d617Schristos * m4/setmode.m4 (AC_FUNC_SETMODE_DOS): 280*75f6d617Schristos Check for fcntl.h and unistd.h unconditionally. 281*75f6d617Schristos Suggested by Bruno Haible. 282*75f6d617Schristos 283*75f6d617Schristos * po/LINGUAS: Add cs, ja. 284*75f6d617Schristos * po/POTFILES.in: Add lib/c-stack.c, src/dir.c. 285*75f6d617Schristos 286*75f6d617Schristos * src/Makefile.am (datadir): @DATADIRNAME@ -> share. 287*75f6d617Schristos (INCLUDES): Remove intl. 288*75f6d617Schristos (LDADD): Change INTLLIBS to LIBINTL. 289*75f6d617Schristos No longer need to link libdiffutils.a twice. 290*75f6d617Schristos 291*75f6d617Schristos * src/analyze.c (diff_2_files): 292*75f6d617Schristos Avoid arithmetic overflow in buffer size calculation. 293*75f6d617Schristos 294*75f6d617Schristos * src/cmp.c: Include c-stack.h, exitfail.h. 295*75f6d617Schristos (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS. 296*75f6d617Schristos (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE. 297*75f6d617Schristos (main): Check for stack overflow. 298*75f6d617Schristos 0 -> EXIT_SUCCESS. 299*75f6d617Schristos 1 -> EXIT_FAILURE. 300*75f6d617Schristos (cmp): Likewise. 301*75f6d617Schristos Accommodate ancient AIX hosts that set errno to 302*75f6d617Schristos EINTR after uncaught SIGCONT. 303*75f6d617Schristos 304*75f6d617Schristos * src/context.c (pr_context_hunk): 305*75f6d617Schristos Do not dump core if an enormous context causes an 306*75f6d617Schristos arithmetic overflow. 307*75f6d617Schristos (pr_unidiff_hunk): Likewise. 308*75f6d617Schristos (find_hunk): Likewise. 309*75f6d617Schristos 310*75f6d617Schristos * src/diff.h: unsigned -> unsigned int. 311*75f6d617Schristos * src/diff.c: Include c-stack.h, exitfail.h. 312*75f6d617Schristos Do not include signal.h. 313*75f6d617Schristos (specify_style, specify_value): Bring these routines back, as POSIX 314*75f6d617Schristos requires that the order of options not matter. 315*75f6d617Schristos (shortopts): New constant. 316*75f6d617Schristos (group_format_option, line_format_option): New constants. 317*75f6d617Schristos (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. 318*75f6d617Schristos Ensure that order of options does not matter. 319*75f6d617Schristos Check for stack overflow. 320*75f6d617Schristos If contexts overflow, substitute LIN_MAX, as that's good enough. 321*75f6d617Schristos If multiple contexts are specified, use their maximum. 322*75f6d617Schristos -c is equivalent to -C 3 now, instead of having an implicit context; 323*75f6d617Schristos likewise for -u and -U 3. 324*75f6d617Schristos Use specify_style and specify_value. 325*75f6d617Schristos (SIGCHLD): Do not define; now done in a header. 326*75f6d617Schristos Use new style time stamp format for -u / -U. 327*75f6d617Schristos Reject numeric-string options if operating in POSIX 1003.1-2001 mode. 328*75f6d617Schristos Avoid overflow problems with tab width. 329*75f6d617Schristos Simplify from-file and to-file code. 330*75f6d617Schristos (usage): Do not mention obsolete options. 331*75f6d617Schristos (filetype): Do not mention whether a file is executable. 332*75f6d617Schristos Add typed memory objects. 333*75f6d617Schristos (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> 334*75f6d617Schristos EXIT_TROUBLE. 335*75f6d617Schristos 336*75f6d617Schristos * src/diff3.c: Include c-stack.h, exitfail.h. 337*75f6d617Schristos (ALLOCATE): Remove. All uses changed to xmalloc, or to xmalloc plus 338*75f6d617Schristos an overflow check. 339*75f6d617Schristos (myread): Remove. 340*75f6d617Schristos (main): Check for stack overflow. 341*75f6d617Schristos 0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE. 342*75f6d617Schristos (try_help): Likewise. 343*75f6d617Schristos (process_diff): Check for integer overflow, to avoid core dumps. 344*75f6d617Schristos 2 -> EXIT_TROUBLE. 345*75f6d617Schristos (read_diff): Exit with status 126 if the file is not executable, 346*75f6d617Schristos for compatibility with POSIX 1003.1-2001. 347*75f6d617Schristos Accommodate ancient AIX hosts that set errno to EINTR after uncaught 348*75f6d617Schristos SIGCONT. 349*75f6d617Schristos Check for integer overflow to avoid core dumps. 350*75f6d617Schristos (fatal, perror_with_exit): 2 -> EXIT_TROUBLE. 351*75f6d617Schristos 352*75f6d617Schristos * src/dir.c (dir_read): 353*75f6d617Schristos Ignore st_size of directories: POSIX says it's garbage. 354*75f6d617Schristos Check for integer overflow to avoid core dumps. 355*75f6d617Schristos (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE. 356*75f6d617Schristos 357*75f6d617Schristos * src/ifdef.c: Include <xalloc.h>. 358*75f6d617Schristos (format_group, print_ifdef_lines): Avoid core dumps with bad formats. 359*75f6d617Schristos (do_printf_spec): Avoid alloca. 360*75f6d617Schristos 361*75f6d617Schristos * src/io.c (sip): 362*75f6d617Schristos Avoid integer overflow and core dumps if buffer alignments are 363*75f6d617Schristos preposterously incompatible. 364*75f6d617Schristos (slurp): Do not dump core if the file is growing as we read it. 365*75f6d617Schristos If a regular file grows, keep reading until we catch up with its EOF. 366*75f6d617Schristos (find_and_hash_each_line): Check for integer overflow to avoid cores. 367*75f6d617Schristos (GUESS_LINES): Remove. 368*75f6d617Schristos (guess_lines): New function. Avoid integer overflow. 369*75f6d617Schristos (find_identical_ends): Use it. 370*75f6d617Schristos Avoid integer overflow and possible core dumps. 371*75f6d617Schristos 372*75f6d617Schristos * src/sdiff.c: Include c-stack.h, exitfail.h. Do not include signal.h. 373*75f6d617Schristos 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. 374*75f6d617Schristos (ck_editor_status): New function. 375*75f6d617Schristos (main): Check for stack overflow. 376*75f6d617Schristos Adopt POSIX convention for subsidiary programs not found. 377*75f6d617Schristos (diffarg): Check for integer overflow to avoid core dumps. 378*75f6d617Schristos (trapsigs): Remove SA_INTERRUPT special case; now done by header. 379*75f6d617Schristos (SIGCHLD): Likewise. 380*75f6d617Schristos (edit): Adopt POSIX convention for subsidiary programs not found. 381*75f6d617Schristos 382*75f6d617Schristos * src/side.c: unsigned -> unsigned int. 383*75f6d617Schristos 384*75f6d617Schristos * src/system.h: Don't use alloca or include <alloca.h>. 385*75f6d617Schristos unsigned -> unsigned int 386*75f6d617Schristos (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined. 387*75f6d617Schristos Include signal.h. 388*75f6d617Schristos (SA_RESTART): Define if not defined. 389*75f6d617Schristos (SIGCHLD): Likewise. 390*75f6d617Schristos 391*75f6d617Schristos * src/util.c: 2 -> EXIT_TROUBLE. 392*75f6d617Schristos Adopt POSIX convention for ENOEXEC and exit status 126. 393*75f6d617Schristos unsigned -> unsigned int 394*75f6d617Schristos 395*75f6d617Schristos2002-01-24 Paul Eggert <eggert@twinsun.com> 396*75f6d617Schristos 397*75f6d617Schristos * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7. 398*75f6d617Schristos 399*75f6d617Schristos * intl/plural.c: Regenerate with Bison 1.31. 400*75f6d617Schristos 401*75f6d617Schristos * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++. 402*75f6d617Schristos * INSTALL: Update to Autoconf 2.52f. 403*75f6d617Schristos 404*75f6d617Schristos * INSTALLME: New file. 405*75f6d617Schristos * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME. 406*75f6d617Schristos (DISTCLEANFILES): Remove. 407*75f6d617Schristos * NEWS: Reformat for imminent 2.8 release. 408*75f6d617Schristos * README: Mention INSTALLME. 409*75f6d617Schristos * README-alpha: Move most of contents to INSTALLME. 410*75f6d617Schristos * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii. 411*75f6d617Schristos 412*75f6d617Schristos * config: New subdirectory, containing the following files from .: 413*75f6d617Schristos config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs. 414*75f6d617Schristos Move the following files here from doc: texinfo.tex, mdate-sh. 415*75f6d617Schristos * config/config.guess, config/config.sub, config/texinfo.tex: 416*75f6d617Schristos Update to latest version from FSF. 417*75f6d617Schristos * config/config.rpath: New file, from Gettext 0.11-pre5++. 418*75f6d617Schristos 419*75f6d617Schristos * configure.ac (AC_INIT): Use new 3-arg form. 420*75f6d617Schristos (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT. 421*75f6d617Schristos (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11. 422*75f6d617Schristos (AC_CONFIG_AUX_DIR): New macro invocation. 423*75f6d617Schristos 424*75f6d617Schristos * lib/Makefile.am (noinst_HEADERS): Add gettext.h. 425*75f6d617Schristos * lib/gettext.h: New file, from Gettext 0.11-pre5++. 426*75f6d617Schristos * lib/prepargs.c: Include <string.h>. Reported by Bruno Haible. 427*75f6d617Schristos 428*75f6d617Schristos * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4, 429*75f6d617Schristos lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++. 430*75f6d617Schristos * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from 431*75f6d617Schristos Gettext 0.11-pre5++. 432*75f6d617Schristos 433*75f6d617Schristos * po/LINGUAS: New file. 434*75f6d617Schristos * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++. 435*75f6d617Schristos * po/Makevars, po/Rules-quot, po/boldquot.sed: New files, 436*75f6d617Schristos from Gettext 0.11-pre5++. 437*75f6d617Schristos 438*75f6d617Schristos * src/cmp.c (copyright_string): Update to 2002. 439*75f6d617Schristos * src/diff.c (copyright_string): Likewise. 440*75f6d617Schristos * src/diff3.c (copyright_string): Likewise. 441*75f6d617Schristos * src/sdiff.c (copyright_string): Likewise. 442*75f6d617Schristos 443*75f6d617Schristos * src/cmp.c (bytes, parse_ignore_initial, cmp): Use UINTMAX_MAX 444*75f6d617Schristos instead of (uintmax_t) -1, to avoid warnings on some compilers. 445*75f6d617Schristos * src/io.c (file_block_read): Likewise, for SIZE_MAX. 446*75f6d617Schristos 447*75f6d617Schristos * src/cmp.c (usage): Reformat messages to ease translation. 448*75f6d617Schristos * src/diff3.c (usage): Likewise. 449*75f6d617Schristos * src/sdiff.c (usage): Likewise. 450*75f6d617Schristos 451*75f6d617Schristos * src/diff3.c (main): Remove unused variable. 452*75f6d617Schristos 453*75f6d617Schristos * src/dir.c: Include <setjmp.h> 454*75f6d617Schristos (struct dirdata): New member nnames. 455*75f6d617Schristos (locale_specific_sorting, failed_strcoll): New vars. 456*75f6d617Schristos (dir_read): Renamed from dir_sort. Don't sort the dir. 457*75f6d617Schristos Set new nnames member of struct dirdata. All callers changed. 458*75f6d617Schristos (compare_names): Don't check for errno after strcasecmp. 459*75f6d617Schristos Use strcoll only if locale_specific_sorting is nonzero. 460*75f6d617Schristos If strcoll fails, longjmp out rather than returning a value 461*75f6d617Schristos that might result in an invalid comparison function that might 462*75f6d617Schristos make qsort dump core. 463*75f6d617Schristos (diff_dirs): Sort the directory ourselves. Use setjmp to recover 464*75f6d617Schristos from strcoll failure, falling back on native byte comparison. 465*75f6d617Schristos Make local variables volatile if they need to preserve their value 466*75f6d617Schristos after setjmp/longjmp. 467*75f6d617Schristos 468*75f6d617Schristos * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE): 469*75f6d617Schristos New macros. 470*75f6d617Schristos (main): Do not confuse signal numbers with their indices. 471*75f6d617Schristos Bug reported by Bruno Haible. 472*75f6d617Schristos (edit): Cat lin to long before printing with %ld, since lin might 473*75f6d617Schristos be narrow than long. 474*75f6d617Schristos 475*75f6d617Schristos * src/system.h (UINTMAX_MAX): New macro. 476*75f6d617Schristos Include gettext.h, not libgettext.h. 477*75f6d617Schristos (N_): Do not wrap arg in parentheses. Fix from Bruno Haible. 478*75f6d617Schristos 479*75f6d617Schristos * src/util.c (finish_output): Ensure that werrno is initialized. 480*75f6d617Schristos (lines_differ): Have an explicit do-nothing case for 481*75f6d617Schristos IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall. 482*75f6d617Schristos 483*75f6d617Schristos2001-12-29 Eli Zaretskii <eliz@is.elta.co.il> 484*75f6d617Schristos 485*75f6d617Schristos * src/sdiff.c (interact): After extracting rlen from the editor 486*75f6d617Schristos command, test for a terminating null character, not for a newline. 487*75f6d617Schristos 488*75f6d617Schristos * ms/config.bat: Allow longer source directory names without 489*75f6d617Schristos overflowing the line length limits. Create the cache in the 490*75f6d617Schristos build directory, not in the source directory 491*75f6d617Schristos * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are 492*75f6d617Schristos unavailable. 493*75f6d617Schristos 494*75f6d617Schristos2001-12-23 Paul Eggert <eggert@twinsun.com> 495*75f6d617Schristos 496*75f6d617Schristos * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6. 497*75f6d617Schristos 498*75f6d617Schristos * configure.ac (ALL_LINGUAS): Add tr. 499*75f6d617Schristos 500*75f6d617Schristos * src/util.c (begin_output): 501*75f6d617Schristos Have child exit with status 127 rather than reporting 502*75f6d617Schristos failure on its own. Set errno to 0 before invoking popen. 503*75f6d617Schristos (finish_output): Report errno on pclose failure. 504*75f6d617Schristos Distinguish between subsidiary program not found, and failure. 505*75f6d617Schristos 506*75f6d617Schristos * src/sdiff.c (not_found, execdiff): Remove. 507*75f6d617Schristos (DIFF_PROGRAM_OPTION): New constant. 508*75f6d617Schristos (longopts, option_help_msgid, main): Add --diff-program=PROGRAM. 509*75f6d617Schristos (check_stdout): New function. 510*75f6d617Schristos (main): Remove DIFF_PROGRAM. Check stdout after printing version. 511*75f6d617Schristos Use check_stdout after printing help. Use execvp/perror_fatail rather 512*75f6d617Schristos than execdiff. Set errno to 0 before invoking popen. 513*75f6d617Schristos Check for pclose failure properly. 514*75f6d617Schristos (main, edit): If child exec fails, exit with 127 rather than trying to 515*75f6d617Schristos print diagnostic. 516*75f6d617Schristos Distinguish between subsidiary program failing and not being found. 517*75f6d617Schristos (edit): Handle signals the same way, regardless of whether we're using 518*75f6d617Schristos system or fork+exec. Check for system returning -1. 519*75f6d617Schristos 520*75f6d617Schristos * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants. 521*75f6d617Schristos (longopts, main): Use them. 522*75f6d617Schristos (longopts, main, option_help_msgid): New option --diff-option=PROGRAM. 523*75f6d617Schristos (main): Remove DIFF_PROGRAM support. 524*75f6d617Schristos Check stdout after printing version. 525*75f6d617Schristos (check_stdout): Report errno info if fclose fails. 526*75f6d617Schristos (read_diff): Have child exit with status 127 when program is not found, 527*75f6d617Schristos rather than trying to have the child report failure. Check for 528*75f6d617Schristos pclose returning -1. 529*75f6d617Schristos 530*75f6d617Schristos * src/diff.c (DEFAULT_WIDTH): Remove. 531*75f6d617Schristos (main): Use 130 instead of DEFAULT_WIDTH, since it's not really 532*75f6d617Schristos builder-settable. Do not prepend DIFF_OPTIONS. 533*75f6d617Schristos (check-stdout): If fclose (stdout) fails, print errno info. 534*75f6d617Schristos (option_help_msgid): Default context is 3, not 2. 535*75f6d617Schristos (usage): Work even if ptrdiff_t is wider than int. 536*75f6d617Schristos 537*75f6d617Schristos * doc/diff.texi (diff Options): Remove DIFF_OPTIONS. 538*75f6d617Schristos (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM. 539*75f6d617Schristos (diff3 Options, sdiff Options): Add --diff-program. 540*75f6d617Schristos 541*75f6d617Schristos * src/cmp.c (valid_suffixes): 542*75f6d617Schristos Add '0', to support suffixes like "MB" and "MiB". 543*75f6d617Schristos (check_stdout): Don't assume that the translations of "write failed" 544*75f6d617Schristos and of "standard output" lack '%'. 545*75f6d617Schristos (main): Check stdout after printing version. 546*75f6d617Schristos 547*75f6d617Schristos * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>. 548*75f6d617Schristos [!HAVE_SETMODE_DOS]: Do not include <unistd.h>. 549*75f6d617Schristos (set_binary_mode): Return mode (not 1) if fd is a tty. 550*75f6d617Schristos Do not assume that O_TEXT is zero. 551*75f6d617Schristos 552*75f6d617Schristos * doc/diff.texi (cmp Options): 553*75f6d617Schristos In byte counts, a plain suffix (without any integer) 554*75f6d617Schristos is assumed to modify the integer 1. Index terms like "kibibyte". 555*75f6d617Schristos Document plain "k". 556*75f6d617Schristos 557*75f6d617Schristos (Reporting Bugs): Mention bug-report archive and test version 558*75f6d617Schristos location. Ask for "diff --version" in bug reports. 559*75f6d617Schristos 560*75f6d617Schristos2001-12-13 Paul Eggert <eggert@twinsun.com> 561*75f6d617Schristos 562*75f6d617Schristos * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without 563*75f6d617Schristos also changing option_help_msgid. All uses replaced with 130. 564*75f6d617Schristos 565*75f6d617Schristos * lib/setmode.c: Include fcntl.h and unistd.h only if 566*75f6d617Schristos HAVE_SETMODE_DOS. 567*75f6d617Schristos (setmode): Assume a file is binary unless the mode is O_TEXT. 568*75f6d617Schristos * ms/README: Fix minor typos. 569*75f6d617Schristos 570*75f6d617Schristos2001-12-13 Eli Zaretskii <eliz@is.elta.co.il> 571*75f6d617Schristos 572*75f6d617Schristos * ms/README: New file. 573*75f6d617Schristos 574*75f6d617Schristos * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume 575*75f6d617Schristos O_TEXT has a zero value. If FD is a terminal device, do nothing 576*75f6d617Schristos and return MODE, thus pretending that it was already in the 577*75f6d617Schristos requested MODE. 578*75f6d617Schristos [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY). 579*75f6d617Schristos 580*75f6d617Schristos * ms/config.sed: Remove the split prevention of config.status. 581*75f6d617Schristos Fix Sed commands for converting absolute file names into 582*75f6d617Schristos top_srcdir-relative ones. 583*75f6d617Schristos 584*75f6d617Schristos * ms/config.bat: Fix typos. 585*75f6d617Schristos 586*75f6d617Schristos2001-12-12 Neal H Walfield <neal@cs.uml.edu> 587*75f6d617Schristos 588*75f6d617Schristos * diff.c (option_help_msgid): Correct the default context width 589*75f6d617Schristos from 2 to 3. 590*75f6d617Schristos 591*75f6d617Schristos2001-12-11 Paul Eggert <eggert@twinsun.com> 592*75f6d617Schristos 593*75f6d617Schristos * m4/Makefile.am.in: Remove jm-glibc-io.m4 594*75f6d617Schristos 595*75f6d617Schristos * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5. 596*75f6d617Schristos 597*75f6d617Schristos * configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that 598*75f6d617Schristos $PR_PROGRAM is expanded by sh. 599*75f6d617Schristos (ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int, 600*75f6d617Schristos not AC_CHECK_TYPES. 601*75f6d617Schristos (jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros. 602*75f6d617Schristos (AC_CONFIG_FILES): Add ms/Makefile. 603*75f6d617Schristos 604*75f6d617Schristos * doc/diff.texi: Add --no-ignore-file-name-case. 605*75f6d617Schristos File name case sensitivity now affects file name exclusion. 606*75f6d617Schristos Fix typos. 607*75f6d617Schristos 608*75f6d617Schristos * src/util.c: Include dirname.h. 609*75f6d617Schristos (dir_file_pathname): Use base_name rather than file_name_lastdirchar. 610*75f6d617Schristos 611*75f6d617Schristos * src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros. 612*75f6d617Schristos Include <libgettext.h> rather than rolling it ourselves. 613*75f6d617Schristos (file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove. 614*75f6d617Schristos 615*75f6d617Schristos * src/sdiff.c: Include <dirname.h>. 616*75f6d617Schristos (expand_name): Use base_name rather than file_name_lastdirchar, for 617*75f6d617Schristos portability to DOS. 618*75f6d617Schristos (main): Initialize xalloc_exit_failure before possibly invoking 619*75f6d617Schristos any memory allocator. 620*75f6d617Schristos 621*75f6d617Schristos * src/io.c: Include setmode.h. 622*75f6d617Schristos 623*75f6d617Schristos * src/diff3.c (main): 624*75f6d617Schristos Initialize xalloc_exit_failure before possibly invoking any memory 625*75f6d617Schristos allocator. 626*75f6d617Schristos 627*75f6d617Schristos * src/diff.c: Include dirname.h, setmode.h. 628*75f6d617Schristos 629*75f6d617Schristos (main): Later values and/or styles now silently override earlier. 630*75f6d617Schristos (specify_value, specify_style): Likewise. All callers changed. 631*75f6d617Schristos Remove. 632*75f6d617Schristos (binary, main, option_help_msgid, compare_files): 633*75f6d617Schristos HAVE_SETMODE -> HAVE_SETMODE_DOS. 634*75f6d617Schristos (NO_IGNORE_FILE_NAME_CASE_OPTION): New constant. 635*75f6d617Schristos (longopts, main, option_help_msgid): Support it. 636*75f6d617Schristos (exclude_options): New function. 637*75f6d617Schristos (main): Use it. Initialize xalloc_exit_failure before potentially 638*75f6d617Schristos allocating memory. 639*75f6d617Schristos 640*75f6d617Schristos (filetype): Distinguish executable files from others, as POSIX 641*75f6d617Schristos suggests. 642*75f6d617Schristos 643*75f6d617Schristos (compare_files): Use base_name instead of file_name_lastdirchar. 644*75f6d617Schristos 645*75f6d617Schristos * src/cmp.c: Include <hard-locale.h>, <setmode.h>. 646*75f6d617Schristos (hard_locale_LC_MESSAGES): New macro. 647*75f6d617Schristos (sprintc): Remove int width arg; it's now the caller's responsibility 648*75f6d617Schristos to pad. All callers changed. 649*75f6d617Schristos (stat_buf): New static var; was formerly a local var in 'main'. 650*75f6d617Schristos (valid_suffixes): Add 'K', for 'KiB'. 651*75f6d617Schristos (option_help_msgid): Don't confuse bytes with characters. 652*75f6d617Schristos (main): Set xalloc_exit_failure before invoking anything that might 653*75f6d617Schristos allocate memory. Fix bug: -n was incorrectly ignored when optimizing 654*75f6d617Schristos the case of regular files with different lengths. 655*75f6d617Schristos (cmp): Use an index column wide enough to store this comparison's 656*75f6d617Schristos indexes. In locales other than the POSIX locale, say "byte" 657*75f6d617Schristos rather than "char". 658*75f6d617Schristos 659*75f6d617Schristos * ms/config.bat: pc -> ms 660*75f6d617Schristos 661*75f6d617Schristos * ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h: 662*75f6d617Schristos New file. 663*75f6d617Schristos 664*75f6d617Schristos * lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h. 665*75f6d617Schristos (libdiffutils_a_SOURCES): Add basename.c, setmode.c. 666*75f6d617Schristos 667*75f6d617Schristos * Makefile.am (SUBDIRS): Add ms. 668*75f6d617Schristos 669*75f6d617Schristos2001-12-10 Paul Eggert <eggert@twinsun.com> 670*75f6d617Schristos 671*75f6d617Schristos * m4/fnmatch.m4: Test for FNM_CASEFOLD. 672*75f6d617Schristos 673*75f6d617Schristos2001-12-03 Paul Eggert <eggert@twinsun.com> 674*75f6d617Schristos 675*75f6d617Schristos * lib/posix/regex.h: Fix copyright notice. 676*75f6d617Schristos 677*75f6d617Schristos2001-12-03 Paul Eggert <eggert@twinsun.com> 678*75f6d617Schristos 679*75f6d617Schristos * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4. 680*75f6d617Schristos 681*75f6d617Schristos * diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp): 682*75f6d617Schristos Use "byte" rather than "character" when talking about cmp, since 683*75f6d617Schristos it compares bytes, not character. 684*75f6d617Schristos (Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP. 685*75f6d617Schristos -i or --ignore-initial now accepts FROM-SKIP:TO-SKIP. 686*75f6d617Schristos New option -n or --bytes. 687*75f6d617Schristos Count operands now may be in octal or hex, and may be followed by a 688*75f6d617Schristos size multiplier. 689*75f6d617Schristos 690*75f6d617Schristos * configure.ac (DEFAULT_DIFF_PROGRAM): 691*75f6d617Schristos Define to "diff", not "$bindir/diff" (which didn't work anyway). 692*75f6d617Schristos (AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev. 693*75f6d617Schristos (AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent. 694*75f6d617Schristos (AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK. 695*75f6d617Schristos (AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add. 696*75f6d617Schristos (AC_OUTPUT): Remove args; they were obsolescent. 697*75f6d617Schristos 698*75f6d617Schristos * util.c (setup_output, begin_output, finish_output): 699*75f6d617Schristos HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK. 700*75f6d617Schristos * sdiff.c (diffpid, cleanup, main, edit): Likewise. 701*75f6d617Schristos * diff3.c (read_diff): Likewise. 702*75f6d617Schristos 703*75f6d617Schristos * system.h (STAT_BLOCKSIZE): 704*75f6d617Schristos Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE. 705*75f6d617Schristos (vfork): New macro. 706*75f6d617Schristos (HAVE_FORK): Remove. 707*75f6d617Schristos (set_binary_mode): New macro. 708*75f6d617Schristos 709*75f6d617Schristos * sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK. 710*75f6d617Schristos (edit): Reopen the temporary file after the editor has run, in case 711*75f6d617Schristos the editor operates by unlinking the old file and linking a new one. 712*75f6d617Schristos (P_tmpdir): Rename from PVT_tmpdir; this fixes a typo. 713*75f6d617Schristos All uses changed. 714*75f6d617Schristos 715*75f6d617Schristos * io.c (sip, read_files): 716*75f6d617Schristos Remove tests for HAVE_SETMODE; use set_binary_mode 717*75f6d617Schristos instead of setmode. 718*75f6d617Schristos (sip): Fix typo in backward lseek when reverting to text mode. 719*75f6d617Schristos 720*75f6d617Schristos * config.site, config.sed, config.bat: New file. 721*75f6d617Schristos 722*75f6d617Schristos * Makefile.am (EXTRA_DIST): Add xstrtol.c. 723*75f6d617Schristos (noinst_HEADERS): Add xstrtol.h. 724*75f6d617Schristos (libdiffutils_a_SOURCES): Add xstrtoumax.c. 725*75f6d617Schristos 726*75f6d617Schristos * cmp.c: <xstrtol.h>: Include. 727*75f6d617Schristos (ignore_initial): Now an array with 2 elements. All uses changed. 728*75f6d617Schristos (bytes): New var. 729*75f6d617Schristos (HELP_OPTION): New constant. 730*75f6d617Schristos (long_options, main): Use it. 731*75f6d617Schristos (long_options, option_help_msgid, main, cmp): 732*75f6d617Schristos Add support for -n or --bytes. 733*75f6d617Schristos (parse_ignore_initial): New function. 734*75f6d617Schristos (option_help_msgid, main): Add -i M:N. 735*75f6d617Schristos (usage, main): Add two optional trailing operands, a la BSD. 736*75f6d617Schristos (main): setmode -> set_binary_mode. 737*75f6d617Schristos (cmp): Report byte number of what we've seen, not of the entire file. 738*75f6d617Schristos This is to be consistent with the line number, which is always relative 739*75f6d617Schristos with what we've seen. 740*75f6d617Schristos 741*75f6d617Schristos2001-12-02 Paul Eggert <eggert@twinsun.com> 742*75f6d617Schristos 743*75f6d617Schristos * diff.c (main, compare_files): setmode -> set_binary_mode. 744*75f6d617Schristos 745*75f6d617Schristos * xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'. 746*75f6d617Schristos 747*75f6d617Schristos * xstrtol.c (__xstrtol): Add support for IEC 60027-2. 748*75f6d617Schristos 749*75f6d617Schristos2001-11-25 Paul Eggert <eggert@twinsun.com> 750*75f6d617Schristos 751*75f6d617Schristos * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3. 752*75f6d617Schristos 753*75f6d617Schristos * README-alpha: New file. 754*75f6d617Schristos 755*75f6d617Schristos * src/Makefile.am (INCLUDES): Add -I../lib, for regex.h. 756*75f6d617Schristos 757*75f6d617Schristos * configure.ac: 758*75f6d617Schristos Don't set LIB_CLOCK_GETTIME to 'none required'; set it to 759*75f6d617Schristos the empty string instead. 760*75f6d617Schristos 761*75f6d617Schristos * lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c. 762*75f6d617Schristos 763*75f6d617Schristos * Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists. 764*75f6d617Schristos 765*75f6d617Schristos * lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h. 766*75f6d617Schristos 767*75f6d617Schristos * configure.ac (__EXTENSIONS__): New define, for the unlocked macros. 768*75f6d617Schristos 769*75f6d617Schristos * README: Add copyright notice. 770*75f6d617Schristos Remove stuff that doesn't apply any more. 771*75f6d617Schristos 772*75f6d617Schristos * doc/diff.texi: offsets -> indices for cmp 773*75f6d617Schristos 774*75f6d617Schristos * src/cmp.c (option_help_msgid): offsets -> indices 775*75f6d617Schristos 776*75f6d617Schristos * src/diff.c (option_help_msgid): 777*75f6d617Schristos Don't mention --binary on POSIX hosts. 778*75f6d617Schristos 779*75f6d617Schristos * src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant. 780*75f6d617Schristos (longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion, 781*75f6d617Schristos --strip-trailing-cr. 782*75f6d617Schristos 783*75f6d617Schristos * doc/diff.texi: Change direcategory from Utilities to GNU Packages. 784*75f6d617Schristos Add individual utilities. 785*75f6d617Schristos Switch to Free Documentation License. 786*75f6d617Schristos @code -> @command 787*75f6d617Schristos @samp -> @option 788*75f6d617Schristos GNU -> @sc{gnu} 789*75f6d617Schristos Expand tabs to spaces, except when in an example that actually 790*75f6d617Schristos uses tabs. 791*75f6d617Schristos Prefer @node with just one arg. 792*75f6d617Schristos Document -E or --ignore-tab-expansion, --strip-trailing-cr, 793*75f6d617Schristos --ignore-file-name-case. 794*75f6d617Schristos Regular expressions are now grep style, not Emacs style. 795*75f6d617Schristos cmp's -c or --print-chars option is now -b or --print-bytes. 796*75f6d617Schristos Time stamps now depend on LC_TIME. 797*75f6d617Schristos -p now implies ^[[:alpha:]$_]. 798*75f6d617Schristos Flags now include ' and 0. 799*75f6d617Schristos cmp -i is an alias for --ignore-initial 800*75f6d617Schristos Document --from-file, --to-file. 801*75f6d617Schristos Document DIFF_OPTIONS. 802*75f6d617Schristos 803*75f6d617Schristos * configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime. 804*75f6d617Schristos (LIB_CLOCK_GETTIME): New subst. 805*75f6d617Schristos 806*75f6d617Schristos * src/system.h: Assume C89 or better. 807*75f6d617Schristos (_GNU_SOURCE): Remove; config.h now defines it. 808*75f6d617Schristos (alloca): Declare like coreutils does it. 809*75f6d617Schristos (verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR, 810*75f6d617Schristos S_IRUSR, S_IWUSR): New macros. 811*75f6d617Schristos (STAT_BLOCKSIZE): Parenthesize definiens. 812*75f6d617Schristos <inttypes.h>: Include if HAVE_INTTYPES_H. 813*75f6d617Schristos (CHAR_MAX, INT_MAX): Remove. 814*75f6d617Schristos (PTRDIFF_MAX, SIZE_MAX): New macros. 815*75f6d617Schristos (strtoumax): New decl. 816*75f6d617Schristos Include stddef.h. 817*75f6d617Schristos (bzero): Remove. 818*75f6d617Schristos (bindtextdomain, textdomain, N_): New macros. 819*75f6d617Schristos (ISPRINT, ISSPACE): Remove ifndef wrappers. 820*75f6d617Schristos (ISUPPER, ISDIGIT): Remove. 821*75f6d617Schristos (TOLOWER): New macro. 822*75f6d617Schristos (MIN): Renamed from min; all callers changed. 823*75f6d617Schristos (MAX): Likewise, from max. 824*75f6d617Schristos (lin): New type. 825*75f6d617Schristos (LIN_MAX): New macro. 826*75f6d617Schristos (file_name_cmp): Renamed from filename_cmp. All callers changed. 827*75f6d617Schristos (file_name_lastdirchar): Renamed from file_name_lastdirchar. 828*75f6d617Schristos All callers changed. 829*75f6d617Schristos (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, 830*75f6d617Schristos dev_may_have_duplicate_ino): Remove. 831*75f6d617Schristos (HAVE_SETMODE, NULL_DEVICE): New macros. 832*75f6d617Schristos (same_file): Do not check attributes. 833*75f6d617Schristos (same_file_attributes): New macro. 834*75f6d617Schristos 835*75f6d617Schristos * src/util.c: Assume C89 or better. 836*75f6d617Schristos int -> bool for booleans. 837*75f6d617Schristos int -> lin for line numbers. 838*75f6d617Schristos int -> size_t for sizes. 839*75f6d617Schristos Use angle-brackets when including quotesys.h. 840*75f6d617Schristos Include error.h, regex.h, xalloc.h. 841*75f6d617Schristos (message5): sizeof -> offsetof 842*75f6d617Schristos (begin_output): Invoke pr without -f. 843*75f6d617Schristos (lines_differ): Renamed from line_cmp, and return bool not 3-way int. 844*75f6d617Schristos All callers changed. 845*75f6d617Schristos Add support for IGNORE_TAB_EXPANSION. 846*75f6d617Schristos (change_letter): Now an array rather than a function. All 847*75f6d617Schristos callers changed. 848*75f6d617Schristos (translate_range): Translate line numbers to long, not lin, 849*75f6d617Schristos for convenience with printf. 850*75f6d617Schristos (analyze_hunk): Return enum changes instead of a count of 851*75f6d617Schristos inserts and deletes. All callers changed. 852*75f6d617Schristos (zalloc): New function. 853*75f6d617Schristos 854*75f6d617Schristos * src/side.c: Assume C89 or better. 855*75f6d617Schristos int -> bool for booleans. 856*75f6d617Schristos int -> lin for line numbers. 857*75f6d617Schristos 858*75f6d617Schristos * src/sdiff.c: Assume C89 or better. 859*75f6d617Schristos int -> bool for booleans. 860*75f6d617Schristos int -> lin for line numbers. 861*75f6d617Schristos Use angle-brackets when including getopt.h, quotesys.h. 862*75f6d617Schristos Include error.h, freesoft.h, stdio.h, xalloc.h. 863*75f6d617Schristos (copyright_string): Use only most recent year. 864*75f6d617Schristos (authorship_msgid, option_help_msgid): Wrap in N_(). 865*75f6d617Schristos 866*75f6d617Schristos (tmpname): Now volatile. 867*75f6d617Schristos (tmpmade): Remove. 868*75f6d617Schristos (tmp): New var. 869*75f6d617Schristos (private_tempnam, exists, letters): Remove. 870*75f6d617Schristos (temporary_file): New function. 871*75f6d617Schristos (edit): Use it. 872*75f6d617Schristos (interact): Use strtoumax, not atoi. 873*75f6d617Schristos 874*75f6d617Schristos * src/normal.c: Assume C89 or better. 875*75f6d617Schristos int -> lin for line numbers. 876*75f6d617Schristos 877*75f6d617Schristos * src/io.c: Assume C89 or better. 878*75f6d617Schristos int -> bool for booleans. 879*75f6d617Schristos int -> lin for line numbers. 880*75f6d617Schristos int -> size_t for sizes. 881*75f6d617Schristos Use angle-brackets when including cmpbuf.h. 882*75f6d617Schristos Include regex.h, xalloc.h. 883*75f6d617Schristos (word): Remove; now done in system.h. 884*75f6d617Schristos (hash_value): New type; use it instead of 'unsigned' for hash values. 885*75f6d617Schristos (file_block_read): New function. 886*75f6d617Schristos (sip, slurp): Use it. Now static. 887*75f6d617Schristos (sip): Ensure block size is a multiple of word size. Clear eof flag. 888*75f6d617Schristos (slurp): Use xalloc_die to report memory exhaustion. 889*75f6d617Schristos (find_and_hash_each_line): Use TOLOWER instead of _tolower. 890*75f6d617Schristos Add support for IGNORE_TAB_EXPANSION. 891*75f6d617Schristos (prepare_text_end): Strip trailing CR if requested. 892*75f6d617Schristos (find_identical_ends): Prepare the text only once, 893*75f6d617Schristos if they're duplicates. 894*75f6d617Schristos Let the compiler take advantage more of the fact that the buffers are 895*75f6d617Schristos word-aligned. 896*75f6d617Schristos (primes): Remove. 897*75f6d617Schristos (prime_offset): New var. 898*75f6d617Schristos (read_var): Use prime_offset instead of primes. 899*75f6d617Schristos Use zalloc instead of xmalloc + bzero. 900*75f6d617Schristos 901*75f6d617Schristos * src/ifdef.c: Assume C89 or better. 902*75f6d617Schristos int -> lin for line numbers. 903*75f6d617Schristos (format_group): Use strtoumax to parse line numbers. 904*75f6d617Schristos (format_group, print_ifdef_lines): Use do_printf_spec to 905*75f6d617Schristos handle printf specs. 906*75f6d617Schristos (groups_letter_value): Don't use _tolower; it's locale-dependent. 907*75f6d617Schristos (do_printf_spec): Renamed from scan_printf_spec; now does the printing. 908*75f6d617Schristos 909*75f6d617Schristos * src/ed.c: Assume C89 or better. 910*75f6d617Schristos int -> lin for line numbers (or 'long' when that's more convenient). 911*75f6d617Schristos (print_ed_hunk): Fix bug when handling double-dot inserts. 912*75f6d617Schristos 913*75f6d617Schristos * src/dir.c: Assume C89 or better. 914*75f6d617Schristos int -> bool for booleans. 915*75f6d617Schristos Include error.h, exclude.h, xalloc.h. 916*75f6d617Schristos 917*75f6d617Schristos (dir_sort): Return 0 on error, 1 on success. All callers changed. 918*75f6d617Schristos compare_names -> compare_names_for_qsort. 919*75f6d617Schristos 920*75f6d617Schristos (compare_names): Try strcasecmp if ignore_file_name_case. Then try 921*75f6d617Schristos strcoll. Use file_name_cmp only as a last resort. Warn about 922*75f6d617Schristos strcasecmp or strcoll failure. 923*75f6d617Schristos (compare_names_for_qsort): New function. 924*75f6d617Schristos 925*75f6d617Schristos (diff_dirs): Use compare_names rather than filename_cmp. 926*75f6d617Schristos 927*75f6d617Schristos * src/diff3.c: Assume C89 or better. 928*75f6d617Schristos int -> bool for booleans. 929*75f6d617Schristos int -> lin for line numbers. 930*75f6d617Schristos Use angle-brackets when including getopt.h, quotesys.h. 931*75f6d617Schristos Include error.h, freesoft.h, inttostr.h, xalloc.h. 932*75f6d617Schristos (copyright_string): Use only most recent year. 933*75f6d617Schristos (authorship_msgid, option_help_msgid): Wrap in N_(). 934*75f6d617Schristos 935*75f6d617Schristos Rename the following variables for consistency with user-visible 936*75f6d617Schristos option spellings. All uses changed. 937*75f6d617Schristos (text): Renamed from always_text. 938*75f6d617Schristos (initial_tab): Renamed from tab_align_flag. 939*75f6d617Schristos 940*75f6d617Schristos (horizon_lines): Remove. Remove all uses. 941*75f6d617Schristos 942*75f6d617Schristos (main): Invoke bindtextdomain and textdomain after setlocale. 943*75f6d617Schristos Rename "DIFF" to "DIFF_PROGRAM". 944*75f6d617Schristos 945*75f6d617Schristos Try to compare file0 to file1, because this is where changes are 946*75f6d617Schristos expected to come from. Diffing between these pairs of files is more 947*75f6d617Schristos likely to avoid phantom changes from file0 to file1. 948*75f6d617Schristos However, use file2 as the common file if this is a 3-way diff, 949*75f6d617Schristos for backward compatibility. Suggested by Karl Tomlinson. 950*75f6d617Schristos 951*75f6d617Schristos (create_diff3_block): Use xcalloc instead of malloc + bzero. 952*75f6d617Schristos 953*75f6d617Schristos (INT_STRLEN_BOUND): Remove; now in system.h. 954*75f6d617Schristos 955*75f6d617Schristos (read_diff): Always use --horizon-lines=100 rather than trying 956*75f6d617Schristos to guess it. 957*75f6d617Schristos Do not pass --inhibit-hunk-merge. 958*75f6d617Schristos Minimum chunk size is 1, not 8KiB. 959*75f6d617Schristos Use xalloc_die to report memory exhaustion. 960*75f6d617Schristos (undotlines): Use long for start, not int. 961*75f6d617Schristos 962*75f6d617Schristos * src/diff.h: Assume C89 or better. 963*75f6d617Schristos int -> bool for booleans. 964*75f6d617Schristos int -> lin for line numbers. 965*75f6d617Schristos Don't include regex.h. 966*75f6d617Schristos (enum changes): New enum. 967*75f6d617Schristos (enum line_class): Remove; subsumed by enum changes. 968*75f6d617Schristos (enum output_style): New constant OUTPUT_UNSPECIFIED. 969*75f6d617Schristos 970*75f6d617Schristos (ignore_space_change_flag, ignore_all_space_flag): Remove. 971*75f6d617Schristos (ignore_white_space): New decl, subsuming the above two. All 972*75f6d617Schristos uses changed. 973*75f6d617Schristos 974*75f6d617Schristos Rename the following decls for consistency with user-visible 975*75f6d617Schristos option spellings. All uses changed. 976*75f6d617Schristos (text): Renamed from always_text_flag. 977*75f6d617Schristos (ignore_blank_lines): Renamed from ignore_blank_lines_flag. 978*75f6d617Schristos (ignore_case): Renamed from ignore_case_flag. 979*75f6d617Schristos (brief): Renamed from no_details_flag. 980*75f6d617Schristos (initial_tab): Renamed from tab_align_flag. 981*75f6d617Schristos (expand_tabs): Renamed from tab_expand_flag. 982*75f6d617Schristos (starting_file): Renamed from dir_start_file. 983*75f6d617Schristos (paginate): Renamed from paginate_flag. 984*75f6d617Schristos (sdiff_merge_assist): Renamed from sdiff_help_sdiff. 985*75f6d617Schristos (left_column): Renamed from sdiff_left_only. 986*75f6d617Schristos (suppress_common_lines): Renamed from sdiff_skip_common_lines. 987*75f6d617Schristos (speed_large_files): Renamed from heuristic. 988*75f6d617Schristos (minimal): Renamed from no_discards. 989*75f6d617Schristos 990*75f6d617Schristos (inhibit_hunk_merge): Remove. 991*75f6d617Schristos 992*75f6d617Schristos (strip_trailing_cr, excluded, time_format): New decls. 993*75f6d617Schristos 994*75f6d617Schristos (files_can_be_treated_as_binary): Renamed from ignore_some_changes. 995*75f6d617Schristos 996*75f6d617Schristos (group_format, line_format): Now char const *[], not char *[]. 997*75f6d617Schristos 998*75f6d617Schristos (struct file_data): Buffer is now word*, not char*, as it's always 999*75f6d617Schristos aligned and this can help the compiler. buffered_chars -> buffered 1000*75f6d617Schristos (since it's a byte count, not a char count). All uses changed. 1001*75f6d617Schristos New member `eof'. 1002*75f6d617Schristos 1003*75f6d617Schristos (FILE_BUFFER): New macro. 1004*75f6d617Schristos 1005*75f6d617Schristos (excluded_filename, error, free_software_msgid): Remove decls; now in 1006*75f6d617Schristos other .h files. 1007*75f6d617Schristos 1008*75f6d617Schristos (sip, slurp): Remove decls. 1009*75f6d617Schristos (file_block_read): New decl. 1010*75f6d617Schristos (change_letter): Now an array, not a function. 1011*75f6d617Schristos (lines_differ): Renamed from line_cmp. 1012*75f6d617Schristos (analyze_hunk): Now returns enum changes rather than two change counts. 1013*75f6d617Schristos 1014*75f6d617Schristos * src/Makefile.am (diff_LDADD): New symbol. 1015*75f6d617Schristos 1016*75f6d617Schristos * src/diff.c: Assume C89 or better. 1017*75f6d617Schristos int -> bool for booleans. 1018*75f6d617Schristos long -> off_t for line numbers. 1019*75f6d617Schristos Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h. 1020*75f6d617Schristos Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h, 1021*75f6d617Schristos regex.h, signal.h, xalloc.h. 1022*75f6d617Schristos (copyright_string): Use only most recent year. 1023*75f6d617Schristos (authorship_msgid, option_help_msgid): Wrap in N_(). 1024*75f6d617Schristos 1025*75f6d617Schristos Rename the following variables for consistency with user-visible 1026*75f6d617Schristos option spellings. All uses changed. 1027*75f6d617Schristos (binary): Renamed from binary_flag. 1028*75f6d617Schristos (new_file): Renamed from entire_new_file_flag. 1029*75f6d617Schristos (unidirectional_new_file): Renamed from unidirectional_new_file_flag. 1030*75f6d617Schristos (report_identical_files): Renamed from print_file_same_flag. 1031*75f6d617Schristos 1032*75f6d617Schristos (numeric_arg): Remove. 1033*75f6d617Schristos 1034*75f6d617Schristos (exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude, 1035*75f6d617Schristos add_exclude_file): 1036*75f6d617Schristos Remove; now done by exclude.h. 1037*75f6d617Schristos 1038*75f6d617Schristos (BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION, 1039*75f6d617Schristos IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION, 1040*75f6d617Schristos LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION, 1041*75f6d617Schristos SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION, 1042*75f6d617Schristos SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION, 1043*75f6d617Schristos UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION, 1044*75f6d617Schristos NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION, 1045*75f6d617Schristos OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION, 1046*75f6d617Schristos CHANGED_GROUP_FORMAT_OPTION): New constants. 1047*75f6d617Schristos (longopts, main): Use them. 1048*75f6d617Schristos 1049*75f6d617Schristos (longopts, main, option_help_msgid): Add -E, --from-file, --to-file. 1050*75f6d617Schristos 1051*75f6d617Schristos (main): Invoke bindtextdomain and textdomain after setlocale. 1052*75f6d617Schristos Use grep syntax, not Emacs, for regular expressions. 1053*75f6d617Schristos Use exclude.h, not our own functions. 1054*75f6d617Schristos Use ISO 8601 time format in hard locales. 1055*75f6d617Schristos Prepend DIFF_OPTIONS. 1056*75f6d617Schristos Don't update ignore_some_changes. 1057*75f6d617Schristos Use strtoumax instead of numeric_arg. 1058*75f6d617Schristos Use specify_value when appropriate. 1059*75f6d617Schristos error -> try_help when appropriate. 1060*75f6d617Schristos -p now means ^[[:alpha:]$_], not ^[_a-zA-Z$]. 1061*75f6d617Schristos Ignore --inhibit-hunk-merge. 1062*75f6d617Schristos Prefer changed group formats to unchanged ones. 1063*75f6d617Schristos Remove now-unnecessary casts. 1064*75f6d617Schristos Set files_can_be_treated_as_binary. 1065*75f6d617Schristos 1066*75f6d617Schristos (specify_value): Renamed from specify_format. All uses changed. 1067*75f6d617Schristos 1068*75f6d617Schristos (specify_style): Default is now unspecified, not normal. All 1069*75f6d617Schristos uses changed. 1070*75f6d617Schristos 1071*75f6d617Schristos (set_mtime_to_now): New function. 1072*75f6d617Schristos (compare_files): Use it. Use memset, not bzero. 1073*75f6d617Schristos Set stdin mtime to current time even when stdin is not a regular file. 1074*75f6d617Schristos Check for same file attributes, as well as for same file. 1075*75f6d617Schristos Use files_can_be_treated_as_binary. 1076*75f6d617Schristos "write failed" -> "standard output on output failure. 1077*75f6d617Schristos 1078*75f6d617Schristos * src/context.c: Assume C89 or better. 1079*75f6d617Schristos int -> lin for line numbers. 1080*75f6d617Schristos Include inttostr.h, regex.h. 1081*75f6d617Schristos (TIMESPEC_NS): New macro. 1082*75f6d617Schristos (nstrftime): New decl. 1083*75f6d617Schristos (print_context_label): Use nstrftime and time_format to format times. 1084*75f6d617Schristos Print numeric time stamp value if localtime fails. 1085*75f6d617Schristos (print_context_function): New function. 1086*75f6d617Schristos (pr_context_hunk, pr_unidiff_hunk): Use it. 1087*75f6d617Schristos (find_function): Use size_t for sizes, not int. 1088*75f6d617Schristos 1089*75f6d617Schristos * src/cmp.c: Assume C89 or better. 1090*75f6d617Schristos int -> bool for booleans. 1091*75f6d617Schristos long -> off_t for line numbers. 1092*75f6d617Schristos Use angle-brackets when including cmpbuf.h, getopt.h. 1093*75f6d617Schristos Include error.h, freesoft.h, inttostr.h, xalloc.h. 1094*75f6d617Schristos (copyright_string): Use only most recent year. 1095*75f6d617Schristos (authorship_msgid): Wrap in N_(). 1096*75f6d617Schristos (buffer): Now word*, not char*. All uses changed. 1097*75f6d617Schristos (word): Remove macro; now in system.h. 1098*75f6d617Schristos (long_options, option_help_msgid, main): -c --print-chars -> 1099*75f6d617Schristos -b --print-bytes 1100*75f6d617Schristos (check_stdout): "write failed" -> "standard output" 1101*75f6d617Schristos (option_help_msgid): Wrap in N_(). 1102*75f6d617Schristos (main): Invoke bindtextdomain and textdomain after setlocale. 1103*75f6d617Schristos Use strtoumax instead of doing the work ourselves. 1104*75f6d617Schristos Check for same_file_attributes as well as same_file. 1105*75f6d617Schristos (cmp): Use ssize_t for read returns, not size_t. 1106*75f6d617Schristos Do not assume that size_t is not narrower than int. 1107*75f6d617Schristos Do not assume that line numbers fit in 'long'. 1108*75f6d617Schristos (block_compare_and_count, block_compare): 1109*75f6d617Schristos Compiler now checks that buffers are word-aligned. 1110*75f6d617Schristos (block_compare_and_count): Count sizes with size_t, not long. 1111*75f6d617Schristos (sprintc): byte arg is unsigned char, not unsigned. 1112*75f6d617Schristos 1113*75f6d617Schristos * src/analyze.c: Assume C89 or better. 1114*75f6d617Schristos int -> lin for line numbers. 1115*75f6d617Schristos int -> bool for booleans. 1116*75f6d617Schristos unsigned int -> size_t for sizes. 1117*75f6d617Schristos Use angle-brackets when including cmpbuf.h. 1118*75f6d617Schristos Include error.h, regex.h, xalloc.h. 1119*75f6d617Schristos (discard_confusing_lines, diff_2_files): Use zalloc rather 1120*75f6d617Schristos than xalloc+bzero. 1121*75f6d617Schristos (discard_confusing_lines): unsigned int -> lin for values that 1122*75f6d617Schristos are really line numbers. 1123*75f6d617Schristos (shift_boundaries): Do not inhibit hunk merges. 1124*75f6d617Schristos (build_reverse_script, build_script, diff_2_files): Use |, not ||. 1125*75f6d617Schristos (diff_2_files): no_details_flag & ~ignore_some_changes -> 1126*75f6d617Schristos files_can_be_treated_as_binary. Esure that buffer size is a multiple 1127*75f6d617Schristos of sizeof (word). Use file_block_read to read buffers. 1128*75f6d617Schristos (diff_2_files): Abort if output style is not one of the 1129*75f6d617Schristos expected styles. 1130*75f6d617Schristos 1131*75f6d617Schristos2001-11-23 Paul Eggert <eggert@twinsun.com> 1132*75f6d617Schristos 1133*75f6d617Schristos * src/Makefile.am, m4/vararrays.m4: New file. 1134*75f6d617Schristos 1135*75f6d617Schristos * m4/prereq.m4 (jm_PREREQ_READUTMP): 1136*75f6d617Schristos Remove, as it gives autoheader the willies. 1137*75f6d617Schristos 1138*75f6d617Schristos * m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c, 1139*75f6d617Schristos lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h, 1140*75f6d617Schristos lib/imaxtostr.c, lib/freesoft.h: New files. 1141*75f6d617Schristos 1142*75f6d617Schristos * lib/freesoft.c: Include config.h, freesoft.h rather than diff.h. 1143*75f6d617Schristos (free_software_msgid): Wrap contents in N_. 1144*75f6d617Schristos 1145*75f6d617Schristos * lib/cmpbuf.h: Use prototypes instead of old-style functions. 1146*75f6d617Schristos 1147*75f6d617Schristos * lib/cmpbuf.c: 1148*75f6d617Schristos Don't include system.h; instead, include config.h, unistd.h. 1149*75f6d617Schristos Use prototypes instead of old-style functions. 1150*75f6d617Schristos (block_read): Don't assume that int is no wider than size_t. 1151*75f6d617Schristos 1152*75f6d617Schristos * lib/Makefile.am, po/POTFILES.in: New file. 1153*75f6d617Schristos 1154*75f6d617Schristos2001-11-22 Paul Eggert <eggert@twinsun.com> 1155*75f6d617Schristos 1156*75f6d617Schristos * pc/config.h: 1157*75f6d617Schristos Define filename_cmp as an object-like macro, not as a function-like 1158*75f6d617Schristos macro. 1159*75f6d617Schristos 1160*75f6d617Schristos * exgettext: Always operate in the C locale. 1161*75f6d617Schristos Set AWK using a method that works even with broken shells. 1162*75f6d617Schristos 1163*75f6d617Schristos * doc/Makefile.am: New file. 1164*75f6d617Schristos 1165*75f6d617Schristos * configure.ac (AC_INIT): 1166*75f6d617Schristos Use src/diff.c, not diff.h, as the source files got removed. 1167*75f6d617Schristos (AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER. 1168*75f6d617Schristos (AC_ARG_PROGRAM, AC_MINIX): Remove. 1169*75f6d617Schristos 1170*75f6d617Schristos (AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK, 1171*75f6d617Schristos AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS, 1172*75f6d617Schristos DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM, 1173*75f6d617Schristos AC_STRUCT_ST_MTIM_NSEC): Add. 1174*75f6d617Schristos 1175*75f6d617Schristos (PR_PROGRAM): AC_DEFINE. 1176*75f6d617Schristos 1177*75f6d617Schristos (AC_SYS_LARGEFILE): Use instead of our homebrew version. 1178*75f6d617Schristos 1179*75f6d617Schristos (_GNU_SOURCE): Define if not defined. 1180*75f6d617Schristos 1181*75f6d617Schristos (AC_CHECK_HEADERS): Add stdbool.h, unistd.h. 1182*75f6d617Schristos (AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t. 1183*75f6d617Schristos (AM_GNU_GETTEXT, XGETTEXT): Add. 1184*75f6d617Schristos 1185*75f6d617Schristos (WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove. 1186*75f6d617Schristos (HAVE_MEMCHR): Remove. 1187*75f6d617Schristos (AC_CHECK_FUNCS): Add diraccess. 1188*75f6d617Schristos (AC_REPLACE_FUNCS): Add memchr, waitpid. 1189*75f6d617Schristos (jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC, 1190*75f6d617Schristos jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX, 1191*75f6d617Schristos jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add. 1192*75f6d617Schristos (fnmatch.h, regex.h): Do not create these files unless we're using 1193*75f6d617Schristos our own fnmatch and regex. 1194*75f6d617Schristos 1195*75f6d617Schristos (AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile, 1196*75f6d617Schristos lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile. 1197*75f6d617Schristos 1198*75f6d617Schristos * Makefile.am: New file. 1199*75f6d617Schristos 1200*75f6d617Schristos * po/en_GB.po: Don't translate "program" to "programme". 1201*75f6d617Schristos 1202*75f6d617Schristos2001-11-20 Paul Eggert <eggert@twinsun.com> 1203*75f6d617Schristos 1204*75f6d617Schristos * m4/prereq.m4: New file. 1205*75f6d617Schristos 1206*75f6d617Schristos2001-03-16 Paul Eggert <eggert@twinsun.com> 1207*75f6d617Schristos 1208*75f6d617Schristos * lib/tempname.c (uint64_t): 1209*75f6d617Schristos Define if not defined, and if UINT64_MAX is not defined. 1210*75f6d617Schristos 1211*75f6d617Schristos2001-02-26 Paul Eggert <eggert@twinsun.com> 1212*75f6d617Schristos 1213*75f6d617Schristos * lib/tempname.c: glibc 1.32 1214*75f6d617Schristos 1215*75f6d617Schristos2001-02-17 Paul Eggert <eggert@twinsun.com> 1216*75f6d617Schristos 1217*75f6d617Schristos * m4/Makefile.am.in: GNU fileutils 4.1 1218*75f6d617Schristos 1219*75f6d617Schristos2001-01-09 Paul Eggert <eggert@twinsun.com> 1220*75f6d617Schristos 1221*75f6d617Schristos * lib/tempname.c (struct_stat64): New macro. 1222*75f6d617Schristos (direxists, __gen_tempname): Use it. This avoids a portability problem 1223*75f6d617Schristos with Solaris 8. 1224*75f6d617Schristos 1225*75f6d617Schristos * lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H. 1226*75f6d617Schristos (<stddef.h>, <stdint.h>, <string.h>): 1227*75f6d617Schristos Include only if STDC_HEADERS || _LIBC. 1228*75f6d617Schristos (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC. 1229*75f6d617Schristos (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC. 1230*75f6d617Schristos (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC. 1231*75f6d617Schristos (__set_errno): Define this macro if <errno.h> doesn't. 1232*75f6d617Schristos (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE): 1233*75f6d617Schristos Define these macros if <stdio.h> doesn't. 1234*75f6d617Schristos (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR): 1235*75f6d617Schristos Define these macros if <sys/stat.h> 1236*75f6d617Schristos doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN. 1237*75f6d617Schristos (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64, 1238*75f6d617Schristos __xstat64): Define if not _LIBC. 1239*75f6d617Schristos (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC). 1240*75f6d617Schristos (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY 1241*75f6d617Schristos || _LIBC; otherwise, fall back on plain "time". 1242*75f6d617Schristos Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600. 1243*75f6d617Schristos 1244*75f6d617Schristos * lib/mkstemp.c (__GT_FILE): Define to zero if not defined. 1245*75f6d617Schristos 1246*75f6d617Schristos2000-10-25 Paul Eggert <eggert@twinsun.com> 1247*75f6d617Schristos 1248*75f6d617Schristos * lib/hard-locale.c: New file. 1249*75f6d617Schristos 1250*75f6d617Schristos2000-02-05 Paul Eggert <eggert@twinsun.com> 1251*75f6d617Schristos 1252*75f6d617Schristos * exgettext: From GCC repository 1253*75f6d617Schristos 1254*75f6d617Schristos1999-07-06 Paul Eggert <eggert@twinsun.com> 1255*75f6d617Schristos 1256*75f6d617Schristos * lib/mkstemp.c: glibc 2.2 1257*75f6d617Schristos 1258*75f6d617Schristos1998-12-11 Paul Eggert <eggert@twinsun.com> 1259*75f6d617Schristos 1260*75f6d617Schristos * src/sdiff.c (lf_snarf): 1261*75f6d617Schristos Fix bug when help line wrapped around the input buffer. 1262*75f6d617Schristos 1263*75f6d617Schristos1998-09-15 Paul Eggert <eggert@twinsun.com> 1264*75f6d617Schristos 1265*75f6d617Schristos * diff.texi: Add @dircategory and @direntry. 1266*75f6d617Schristos 1267*75f6d617Schristos1998-09-14 Paul Eggert <eggert@twinsun.com> 1268*75f6d617Schristos 1269*75f6d617Schristos * Makefile.in (VERSION): Version 2.7.2. 1270*75f6d617Schristos (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. 1271*75f6d617Schristos (PR_PROGRAM): All `configure' to define it. 1272*75f6d617Schristos (srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of 1273*75f6d617Schristos quote.c, quotearg.h. 1274*75f6d617Schristos (distfiles): Add acconfig.h, message/*. 1275*75f6d617Schristos (all): Depend on $(destfiles), not info. 1276*75f6d617Schristos (version.c): Parenthesize `GNU diffutils'. 1277*75f6d617Schristos (common_o): Add freesoft.o 1278*75f6d617Schristos (diff_o): quote.o -> quotearg.o 1279*75f6d617Schristos (diff3_o, sdiff_o): Likewise. 1280*75f6d617Schristos (diff.dvi): Depend on version.texi. 1281*75f6d617Schristos (diff.o diff3.o quotearg.o sdiff.o util.o): 1282*75f6d617Schristos New dependency on quotearg.h 1283*75f6d617Schristos (diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM. 1284*75f6d617Schristos (sdiff.o): Likewise. 1285*75f6d617Schristos (messages.po): Remove. 1286*75f6d617Schristos (message/msgid.po, message/template.po): New rules. 1287*75f6d617Schristos (maintainer-clean): Renamed from realclean. 1288*75f6d617Schristos (install): Install from source directory, if applicable. 1289*75f6d617Schristos Invoke install-info if needed. 1290*75f6d617Schristos (install-strip): New rule. 1291*75f6d617Schristos (check): Set DIFF. 1292*75f6d617Schristos (stamp-h.in): Don't put the date into the timestamp. 1293*75f6d617Schristos (D_dirs): Add $D/message. 1294*75f6d617Schristos ($D.tar.gz): Compress with gzip -9. 1295*75f6d617Schristos Don't use ln to create distribution; it doesn't work with symlinks. 1296*75f6d617Schristos (srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to 1297*75f6d617Schristos quotesys.c and quotearg.h to quotesys.h. 1298*75f6d617Schristos 1299*75f6d617Schristos * configure.in (AC_PATH_PROG): Add PR_PROGRAM. 1300*75f6d617Schristos If available, prefer support for large files unless the user specified 1301*75f6d617Schristos one of the CPPFLAGS, LDFLAGS, or LIBS variables. 1302*75f6d617Schristos (AC_STRUCT_ST_RDEV): Add. 1303*75f6d617Schristos (HAVE_ST_FSTYPE_STRING): Add. 1304*75f6d617Schristos (--with-mvfs-stat-bug, --with-nfs-stat-bug): New options. 1305*75f6d617Schristos (HAVE_MEMCHR): New macro. 1306*75f6d617Schristos (AC_CHECK_FUNCS): Add sicprocmask. 1307*75f6d617Schristos 1308*75f6d617Schristos * diff.h (XTERN): Renamed from EXTERN. 1309*75f6d617Schristos (struct filedata): Remove dir_p arg. 1310*75f6d617Schristos (struct comparison): New type. 1311*75f6d617Schristos (diff_2_files, diff_dirs)" Ise ot/ 1312*75f6d617Schristos (error): Add printf attribute if applicable. 1313*75f6d617Schristos (free_software_msgid): New decl. 1314*75f6d617Schristos (pr_program): New decl. 1315*75f6d617Schristos (fatal): Add noreturn attribute. 1316*75f6d617Schristos (pfatal_with_name): Likewise. 1317*75f6d617Schristos 1318*75f6d617Schristos * system.h (__attribute__): New macro. 1319*75f6d617Schristos (getenv): Don't declare if HAVE_STDLIB_H. 1320*75f6d617Schristos (CHAR_MAX): New macro. 1321*75f6d617Schristos (<locale.h>): New include. 1322*75f6d617Schristos (<locale.h>): Include before <libintl.h>. 1323*75f6d617Schristos (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, 1324*75f6d617Schristos dev_may_have_duplicate_ino, same_special_file): New macros. 1325*75f6d617Schristos (same_file): Use them. 1326*75f6d617Schristos 1327*75f6d617Schristos * cmp.c (authorship_msgid): New var. 1328*75f6d617Schristos (free_software_msgid): New decl. 1329*75f6d617Schristos (error): Now has printf attribute. 1330*75f6d617Schristos (try_help): Likewise. 1331*75f6d617Schristos (long_options): Don't assume ASCII. 1332*75f6d617Schristos (try_help): Now accepts operand arg. 1333*75f6d617Schristos (main): Check for -1, not EOF, when calling getopt_long. 1334*75f6d617Schristos Report --ignore-initial value when complaining about it. 1335*75f6d617Schristos Output copyright and free software info with -v. 1336*75f6d617Schristos Don't assume ASCII. 1337*75f6d617Schristos Report last operand when one is missing. 1338*75f6d617Schristos Report text of extra operand. 1339*75f6d617Schristos Move block_read into cmpbuf.c. 1340*75f6d617Schristos 1341*75f6d617Schristos * diff.c (authorship_msgid): New var. 1342*75f6d617Schristos (quotesys.h): Include. 1343*75f6d617Schristos (ck_atoi): Remove. 1344*75f6d617Schristos (function_regexp_list, ignore_regexp_list): Now static. 1345*75f6d617Schristos (binary_flag): Renamed from binary_I_O. 1346*75f6d617Schristos (entire_new_file_flag, unidirectional_new_file_flag, 1347*75f6d617Schristos print_file_same_flag): Now static. 1348*75f6d617Schristos (numeric_arg): Renamed from ck_atoi. 1349*75f6d617Schristos New argument specifying the argument type. 1350*75f6d617Schristos (longopts, main): Don't assume ASCII. 1351*75f6d617Schristos (longopts): Remove old aliases --file-label, --entire-new-file, 1352*75f6d617Schristos --ascii, --print. 1353*75f6d617Schristos (main): Check for -1, not EOF, when calling getopt_long. 1354*75f6d617Schristos Use numeric_arg to report errors. 1355*75f6d617Schristos Report error if -l specified but pagination is not supported. 1356*75f6d617Schristos Report error if -S is specified twice with conflicting values. 1357*75f6d617Schristos Have --version conform to the new GNU standards. 1358*75f6d617Schristos Add new --from-file, --to-file, --inhibit-hun,-merge options. 1359*75f6d617Schristos Make the horizon at least as large as the context. 1360*75f6d617Schristos Add casts to pacify gcc -Wall. 1361*75f6d617Schristos (try_help): Add operand arg. 1362*75f6d617Schristos (option_help_msgid): Doc fix to match above. 1363*75f6d617Schristos (usage): Indent option_help_msgid. 1364*75f6d617Schristos (compare_files): Now takes struct comparison 1365*75f6d617Schristos instead of two directory names and a depth. 1366*75f6d617Schristos (NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE): 1367*75f6d617Schristos New macros. 1368*75f6d617Schristos (DIR_P): New macro. 1369*75f6d617Schristos Report error if fflush does. 1370*75f6d617Schristos 1371*75f6d617Schristos * cmpbuf.c (block_read): Moved here from cmp.c. 1372*75f6d617Schristos 1373*75f6d617Schristos * cmpbuf.h (block_read): New decl. 1374*75f6d617Schristos 1375*75f6d617Schristos * io.c (cmpbuf.h): Include. 1376*75f6d617Schristos (slurp): Check for arithmetic overflow when computing buffer size. 1377*75f6d617Schristos 1378*75f6d617Schristos * dir.c (diff_dirs): Check for recursive directory loop. 1379*75f6d617Schristos Arg is now struct comparison const *. 1380*75f6d617Schristos (dir_loop): New function 1381*75f6d617Schristos 1382*75f6d617Schristos * analyze.c (no_discards): Remove. 1383*75f6d617Schristos (inhibit): Remove. 1384*75f6d617Schristos (shift_boundaries): Don't inhibit. If inhibit_hunk_merge is nonzero, 1385*75f6d617Schristos don't merge hunks. 1386*75f6d617Schristos (briefly_report): Now returns 2 if trouble, CHANGES otherwise. 1387*75f6d617Schristos (diff_2_files): Now takes struct comparison. If briefly_report reports 1388*75f6d617Schristos trouble, pass it on to caller. 1389*75f6d617Schristos 1390*75f6d617Schristos * side.c (print_half_line): Add brackets to pacify GCC -Wall. 1391*75f6d617Schristos 1392*75f6d617Schristos * sdiff.c (quotesys.h): Include. 1393*75f6d617Schristos (DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove. 1394*75f6d617Schristos (free_software_msgid, editor_program, not_found): New vars. 1395*75f6d617Schristos (diffbin, edbin): Remove. 1396*75f6d617Schristos (editor_program): Renamed from edbin. 1397*75f6d617Schristos (edit, interact): Now take extra string arg. 1398*75f6d617Schristos (exiterr, fatal, perror_fatal, try_help): Add noreturn attribute. 1399*75f6d617Schristos (sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK): 1400*75f6d617Schristos (sigprocmask): New macros, if !HAVE_SIGPROCMASK. 1401*75f6d617Schristos (error): Now has printf attribute. 1402*75f6d617Schristos (longopts, main): Don't assume ASCII. 1403*75f6d617Schristos (try_help): New operand arg. 1404*75f6d617Schristos (usage): Conform to new GNU standards. 1405*75f6d617Schristos (main): Set static vars for editor and diff program. 1406*75f6d617Schristos Compare getopt_long result to -1, not EOF. 1407*75f6d617Schristos -v conforms to new GNU standard. 1408*75f6d617Schristos Complain better about extra and missing operands. 1409*75f6d617Schristos If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when 1410*75f6d617Schristos the child munges its handlers it may somp on the parent. 1411*75f6d617Schristos Pass rname to intract. 1412*75f6d617Schristos Translate not-found message before forking. 1413*75f6d617Schristos (give_help): Just output it all at once. 1414*75f6d617Schristos (edit): New args lname, lline, rname, rline. 1415*75f6d617Schristos (edit): New command 'd'. 1416*75f6d617Schristos (interact): New args lname, rname. 1417*75f6d617Schristos 1418*75f6d617Schristos * util.c (quotesys.h): Include. 1419*75f6d617Schristos (PR_PROGRAM): New macro. 1420*75f6d617Schristos (pfatal_with_name): Abort if error returns. 1421*75f6d617Schristos (fatal): Likewise. 1422*75f6d617Schristos (print_message_queue): Free message chain after printing. 1423*75f6d617Schristos (currently_recursive): Renamed from current_depth, and now a boolean. 1424*75f6d617Schristos (begin_output): Report error if fflush does. 1425*75f6d617Schristos Avoid stdio and gettext in child. 1426*75f6d617Schristos 1427*75f6d617Schristos * diff3.c (quotesys.h): Include. 1428*75f6d617Schristos (free_software_msgid): New decl. 1429*75f6d617Schristos (RANGE_START, RANGE_END): Renamed from START and END. 1430*75f6d617Schristos (fatal, perror_with_exit, try_help): Add noreturn attribute. 1431*75f6d617Schristos (error): Add printf attribute. 1432*75f6d617Schristos (diff_program): Now a ptr, not an array. 1433*75f6d617Schristos Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM. 1434*75f6d617Schristos (longopts, main): Don't assume ASCII. 1435*75f6d617Schristos (main): Use DIFF environment var to specify name of diff program. 1436*75f6d617Schristos Compare getopt_long result to -1, not EOF. 1437*75f6d617Schristos -v now reports version according to new GNU standard. 1438*75f6d617Schristos Report spelling of extra operand, or last operand before missing one. 1439*75f6d617Schristos (try_help): Now takes operand arg. 1440*75f6d617Schristos (option_help_ms): Fix typo: missing comma. 1441*75f6d617Schristos (usage): Update as per current GNU standards. 1442*75f6d617Schristos (environ): Remove decl. 1443*75f6d617Schristos (read_diff): Invoke diff with --inhibit-hunk-merge. 1444*75f6d617Schristos Translate `not found' message before forking. 1445*75f6d617Schristos Quote name of diff program. 1446*75f6d617Schristos Pass horizon lines. 1447*75f6d617Schristos `memory exhausted' -> `Memory exhausted' 1448*75f6d617Schristos 1449*75f6d617Schristos * pc/makefile (%.exe): Remove. 1450*75f6d617Schristos (pc-clean): Remove *.exe 1451*75f6d617Schristos * pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. 1452*75f6d617Schristos When editing mkinstalldirs rule, look for exec_prefix and prefix. 1453*75f6d617Schristos Add .exe when installing files. 1454*75f6d617Schristos * pc/emx/config.h (same_file): Add. 1455*75f6d617Schristos * pc/config.h (same_file): Remove. 1456*75f6d617Schristos * pc/djgpp/config.h: Adjust to latest patch from eliz. 1457*75f6d617Schristos * pc/djgpp/makefile.sed: Don't alter PROGRAMS. 1458*75f6d617Schristos * pc/pc.c: Update FSF address. 1459*75f6d617Schristos (quote_system_arg): Renamed from system_quote_arg. 1460*75f6d617Schristos 1461*75f6d617Schristos * README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug. 1462*75f6d617Schristos 1463*75f6d617Schristos * getmsgids: Add copyright date and update FSF address. 1464*75f6d617Schristos 1465*75f6d617Schristos * diff.texi: Document recent changes. 1466*75f6d617Schristos The patch doc still corresponds to patch 2.2, unfortunately. 1467*75f6d617Schristos Update GNU bug reporting address. Omit Larry Wall's address; 1468*75f6d617Schristos it's obsolete and he's busy with perl. 1469*75f6d617Schristos 1470*75f6d617Schristos * context.c: Fix spacing. 1471*75f6d617Schristos 1472*75f6d617Schristos * NEWS: Mention --from-file=FILE, --to-file=FILE, ed. 1473*75f6d617Schristos 1474*75f6d617Schristos * acconfig.h, freesoft.c, message/de.po, message/en_UK.po, 1475*75f6d617Schristos message/es.po, message/fr.po, message/pl.po, message/sv.po: 1476*75f6d617Schristos New files. 1477*75f6d617Schristos 1478*75f6d617Schristos * ed.c: Remove `#if 0'ed code. 1479*75f6d617Schristos 1480*75f6d617Schristos * normal.c, waitpid.c: Update FSF address. 1481*75f6d617Schristos 1482*75f6d617Schristos1998-03-15 Paul Eggert <eggert@twinsun.com> 1483*75f6d617Schristos 1484*75f6d617Schristos * quotesys.c: Renamed from quotearg.c. 1485*75f6d617Schristos 1486*75f6d617Schristos * quotesys.h: Renamed from quotearg.h 1487*75f6d617Schristos (__QUOTESYS_P): Renamed from __QUOTEARG_P. 1488*75f6d617Schristos 1489*75f6d617Schristos1997-05-05 Paul Eggert <eggert@twinsun.com> 1490*75f6d617Schristos 1491*75f6d617Schristos * quotesys.c, quotesys.h: New file. 1492*75f6d617Schristos 1493*75f6d617SchristosMon Nov 14 05:10:56 1994 Paul Eggert <eggert@twinsun.com> 1494*75f6d617Schristos 1495*75f6d617Schristos Add internationalization support. 1496*75f6d617Schristos Several messages have been changed slightly, 1497*75f6d617Schristos to make them more consistent and easier to translate. 1498*75f6d617Schristos All strings that are messages are passed through gettext once before 1499*75f6d617Schristos being used, so that they can be localized. 1500*75f6d617Schristos Each function and macro whose first parameter is a gettext msgid 1501*75f6d617Schristos has had its first parameter's name changed so it ends in `msgid'. 1502*75f6d617Schristos All arrays of msgids have had their names changed to end in `msgid'. 1503*75f6d617Schristos `getmsgids' uses this to determine which strings are msgids. 1504*75f6d617Schristos 1505*75f6d617Schristos * pc/COPYING, pc/INSTALL, pc/config.h, 1506*75f6d617Schristos pc/djgpp/config.h, pc/djgpp/makefile.sed, 1507*75f6d617Schristos pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def, 1508*75f6d617Schristos pc/emx/makefile.sed, 1509*75f6d617Schristos pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support. 1510*75f6d617Schristos 1511*75f6d617Schristos * getmsgids: New file. 1512*75f6d617Schristos 1513*75f6d617Schristos * Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars. 1514*75f6d617Schristos (version.c, version.texi, messages.po): New files. 1515*75f6d617Schristos messages.po is built automatically from source files and `getmsgids'. 1516*75f6d617Schristos (distfiles): Add them, pc/*, and getmsgids. 1517*75f6d617Schristos (diff.info): Now depends on version.texi. 1518*75f6d617Schristos (realclean): Clean messages.po, version.*. 1519*75f6d617Schristos (dist): Just build $D.tar.gz. 1520*75f6d617Schristos ($D.tar.gz): New file, takes over old `dist' function. 1521*75f6d617Schristos Don't assume $(distfiles) are all in same directory. 1522*75f6d617Schristos 1523*75f6d617Schristos * configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h. 1524*75f6d617Schristos (AC_CHECK_LIB): Check for -lintl. 1525*75f6d617Schristos 1526*75f6d617Schristos * analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as 1527*75f6d617Schristos `if (A) message ("B") : message ("C")'; this is for getmsgids. 1528*75f6d617Schristos (briefly_report, diff_2_files): For label, use file_label if set. 1529*75f6d617Schristos * diff.c (compare_files): Likewise. 1530*75f6d617Schristos 1531*75f6d617Schristos * system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H. 1532*75f6d617Schristos (setlocale): Declare; use a stub if ! HAVE_LOCALE_H. 1533*75f6d617Schristos 1534*75f6d617Schristos * cmp.c, diff.c, diff3.c, sdiff.c (main): 1535*75f6d617Schristos Invoke setlocale first thing, to tell library we're internationalized. 1536*75f6d617Schristos (option_help_msgid): New constant. 1537*75f6d617Schristos (usage): Use it, so message is translated one option at a time. 1538*75f6d617Schristos * sdiff (help_msgid, give_help): Likewise. 1539*75f6d617Schristos 1540*75f6d617Schristos * cmp.c (sprintc): Renamed from `printc'. 1541*75f6d617Schristos Now outputs to a buffer instead of stdout. 1542*75f6d617Schristos (cmp): Use new sprintc; it's easier to internationalize. 1543*75f6d617Schristos 1544*75f6d617Schristos * diff.c (main): -D FOO now outputs `/* ! FOO */ instead of 1545*75f6d617Schristos `/* not FOO */'. 1546*75f6d617Schristos 1547*75f6d617Schristos * sdiff.c (version_string): Fix decl typo: `const' was missing. 1548*75f6d617Schristos (trapsigs): Ignore sigaction failure, to be compatible with `signal'. 1549*75f6d617Schristos 1550*75f6d617Schristos * util.c (struct msg, message5, print_message_queue): 1551*75f6d617Schristos Allocate just one block of memory to save a message. 1552*75f6d617Schristos 1553*75f6d617SchristosWed Nov 9 17:42:44 1994 Paul Eggert <eggert@twinsun.com> 1554*75f6d617Schristos 1555*75f6d617Schristos * sdiff.c (trapsigs): Don't check signal return value, since it's 1556*75f6d617Schristos bogus under djgpp. 1557*75f6d617Schristos 1558*75f6d617SchristosMon Oct 31 07:27:27 1994 Paul Eggert <eggert@twinsun.com> 1559*75f6d617Schristos 1560*75f6d617Schristos * Makefile.in (srcs, diff_o, diff3_o, sdiff_o): 1561*75f6d617Schristos New files quote.c, quote.o. 1562*75f6d617Schristos 1563*75f6d617Schristos * diff.h (function_regexp, ignore_regexp): Replace lists of compiled 1564*75f6d617Schristos regexps with these single compiled regexps. All users changed. 1565*75f6d617Schristos (regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c. 1566*75f6d617Schristos * diff.c (add_regexp): Build one big regexp instead of a regexp list. 1567*75f6d617Schristos (summarize_regexp_list): New function. 1568*75f6d617Schristos (regexp_list): Redesigned struct; moved here from diff.h. 1569*75f6d617Schristos (function_regexp_list, ignore_regexp_list): Likewise, for vars. 1570*75f6d617Schristos 1571*75f6d617Schristos * context.c (find_function): Simplify interface: 1572*75f6d617Schristos don't return size of function line. All callers changed. 1573*75f6d617Schristos (print_context_script, find_function): INT_MAX now denotes no 1574*75f6d617Schristos previous match; this is simpler than `- file->prefix_lines - 1'. 1575*75f6d617Schristos 1576*75f6d617Schristos * diff3.c (read_diff): Quote arguments with system_quote_arg. 1577*75f6d617Schristos * sdiff.c (main): Use system_quote_arg to compute command. 1578*75f6d617Schristos * diff.c (option_list): Quote options with system_quote_arg. 1579*75f6d617Schristos * util.c (begin_output): Use system_quote_arg to compute command. 1580*75f6d617Schristos 1581*75f6d617Schristos * util.c (pr_program): New var. 1582*75f6d617Schristos (analyze_hunk): Fix off-by-1 line length bug. 1583*75f6d617Schristos Match with one big regexp instead of a list of regexps. 1584*75f6d617Schristos Use new `trivial_length' local instead of comparing first byte to `\n'. 1585*75f6d617Schristos Help the compiler with linbuf local vars. 1586*75f6d617Schristos 1587*75f6d617Schristos * system.h (system_quote_arg): 1588*75f6d617Schristos New function; replaces SYSTEM_QUOTE_ARG macro. 1589*75f6d617Schristos 1590*75f6d617SchristosSat Oct 15 20:09:12 1994 Paul Eggert <eggert@twinsun.com> 1591*75f6d617Schristos 1592*75f6d617Schristos * system.h (_tolower): Define if not already defined. 1593*75f6d617Schristos * io.c (find_and_hash_each_line): Change tolower to _tolower; this 1594*75f6d617Schristos speeds up diff -i considerably on some hosts (e.g. Solaris 2.3). 1595*75f6d617Schristos * util.c (line_cmp): Likewise. 1596*75f6d617Schristos * ifdef.c (groups_letter_value): Likewise. 1597*75f6d617Schristos 1598*75f6d617Schristos * diff.h (ignore_some_line_changes): Remove. All users changed. 1599*75f6d617Schristos * io.c (find_and_hash_each_line): Don't invoke line_cmp if the length 1600*75f6d617Schristos differs and -i is in force. Don't assume ISSPACE ('\n') is nonzero. 1601*75f6d617Schristos 1602*75f6d617Schristos * diff.h (xmalloc_exit_failure): New variable. 1603*75f6d617Schristos All `main' programs set this variable at the start. 1604*75f6d617Schristos xmalloc and xrealloc are now taken from GNU library. 1605*75f6d617Schristos * cmp.c (main): Align buffer size to word size; some mallocs care. 1606*75f6d617Schristos * io.c (slurp): Likewise. 1607*75f6d617Schristos * diff.c (add_exclude): Can now assume xrealloc (0, ...) works. 1608*75f6d617Schristos (add_regexp): Free storage on failure. Allocate storage all at one go. 1609*75f6d617Schristos * system.h (malloc, realloc): Remove unused declarations. 1610*75f6d617Schristos * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove. 1611*75f6d617Schristos * sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics. 1612*75f6d617Schristos 1613*75f6d617Schristos * io.c (ROL): Use sizeof to make it more generic. 1614*75f6d617Schristos 1615*75f6d617Schristos * Makefile.in (common_o): New variable. 1616*75f6d617Schristos Link error.o and xmalloc.o into all programs. 1617*75f6d617Schristos (check): Depend on $(PROGRAMS). 1618*75f6d617Schristos 1619*75f6d617Schristos * diff.h (error): Change to GNU library standard. All callers changed. 1620*75f6d617Schristos * diff3.c (main): Use strerror (EISDIR) instead of "Is a directory". 1621*75f6d617Schristos (fatal, perror_with_exit): Use `error'. 1622*75f6d617Schristos * util.c (perror_with_name, fatal): Use GNU `error'. 1623*75f6d617Schristos (error): Remove. 1624*75f6d617Schristos 1625*75f6d617SchristosWed Oct 12 17:04:40 1994 David J. MacKenzie (djm@duality.gnu.ai.mit.edu) 1626*75f6d617Schristos 1627*75f6d617Schristos * cmp.c (main): Set xmalloc_exit_failure. 1628*75f6d617Schristos 1629*75f6d617SchristosSat Oct 1 05:24:19 1994 Paul Eggert <eggert@twinsun.com> 1630*75f6d617Schristos 1631*75f6d617Schristos * Version 2.7 released. 1632*75f6d617Schristos 1633*75f6d617Schristos * configure.in (AC_HEADER_SYS_WAIT): Add. 1634*75f6d617Schristos (AC_CHECK_HEADERS): Remove sys/wait.h. 1635*75f6d617Schristos (AC_CHECK_FUNCS): Add tmpnam. 1636*75f6d617Schristos * system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme 1637*75f6d617Schristos now that HAVE_SYS_WAIT_H is not set on hosts 1638*75f6d617Schristos that are incompatible with Posix applications. 1639*75f6d617Schristos 1640*75f6d617Schristos * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr. 1641*75f6d617Schristos * sdiff.c (expand_name): Likewise. 1642*75f6d617Schristos (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting. 1643*75f6d617Schristos (exists, letters): Omit if HAVE_TMPNAM. 1644*75f6d617Schristos 1645*75f6d617Schristos * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero, 1646*75f6d617Schristos adjust it to a more reasonable value. 1647*75f6d617Schristos 1648*75f6d617SchristosSat Sep 24 20:36:40 1994 Paul Eggert <eggert@twinsun.com> 1649*75f6d617Schristos 1650*75f6d617Schristos * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm. 1651*75f6d617Schristos (private_tempnam): Specialize for sdiff to avoid portability problems. 1652*75f6d617Schristos 1653*75f6d617SchristosThu Sep 22 16:47:00 1994 Paul Eggert <eggert@twinsun.com> 1654*75f6d617Schristos 1655*75f6d617Schristos * configure.in (AC_ARG_PROGRAM): Added. 1656*75f6d617Schristos (AC_OUTPUT): Add [date > stamp-h]. 1657*75f6d617Schristos 1658*75f6d617Schristos * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS, 1659*75f6d617Schristos NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables. 1660*75f6d617Schristos (check, stamp-h.in, cmp.o, util.o): New targets. 1661*75f6d617Schristos (edit_program_name): New variable; replaces old binprefix method. 1662*75f6d617Schristos (install, uninstall): Use it. 1663*75f6d617Schristos (binprefix): Removed. 1664*75f6d617Schristos (distfiles): Add stamp-h.in. 1665*75f6d617Schristos (clean): Clean stamp-h. 1666*75f6d617Schristos (config.hin, config.h): Use time stamp files. 1667*75f6d617Schristos (cmp_o): Add $(LIBOBJS). 1668*75f6d617Schristos (install): Install info files from srcdir if they're not in `.'. 1669*75f6d617Schristos 1670*75f6d617Schristos * cmp.c, io.c (word): Don't define if already defined. 1671*75f6d617Schristos 1672*75f6d617Schristos * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin. 1673*75f6d617Schristos Use NULL_DEVICE instead of "/dev/null". 1674*75f6d617Schristos (cmp): Use %lu instead of %ld when it is more likely to be right. 1675*75f6d617Schristos 1676*75f6d617Schristos * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in, 1677*75f6d617Schristos util.c. 1678*75f6d617Schristos 1679*75f6d617Schristos * diff3.c (main): Give proper diagnostic if too many labels were given. 1680*75f6d617Schristos (read_diff): Use SYSTEM_QUOTE_ARG. 1681*75f6d617Schristos 1682*75f6d617Schristos * system.h: <string.h>: Include if HAVE_STRING_H, too. 1683*75f6d617Schristos <ctype.h>: Include here. All includers changed. 1684*75f6d617Schristos (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that 1685*75f6d617Schristos work around common <ctype.h> problems. 1686*75f6d617Schristos (O_BINARY): Remove. 1687*75f6d617Schristos (SYSTEM_QUOTE_ARG): New macros. 1688*75f6d617Schristos 1689*75f6d617Schristos * diff.c: Add comment. 1690*75f6d617Schristos 1691*75f6d617Schristos * util.c (PR_PROGRAM): Moved here from diff.h. 1692*75f6d617Schristos (begin_output): Use SYSTEM_QUOTE_ARG. 1693*75f6d617Schristos 1694*75f6d617Schristos * io.c (read_files): Set mode to binary before returning 1. 1695*75f6d617Schristos 1696*75f6d617Schristos * sdiff.c (TMPDIR_ENV): New macro. 1697*75f6d617Schristos (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency. 1698*75f6d617Schristos (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype 1699*75f6d617Schristos namespace contamination. 1700*75f6d617Schristos (main): Use SYSTEM_QUOTE_ARG. 1701*75f6d617Schristos (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir. 1702*75f6d617Schristos 1703*75f6d617SchristosTue Sep 13 18:46:43 1994 Paul Eggert <eggert@twinsun.com> 1704*75f6d617Schristos 1705*75f6d617Schristos * configure.in (AC_FUNC_MEMCHR): Remove. Autoconf didn't adopt this, 1706*75f6d617Schristos since we need not worry about an old experimental library 1707*75f6d617Schristos where memchr didn't work. 1708*75f6d617Schristos (AC_FUNC_MEMCMP): Not needed, since we only test for equality. 1709*75f6d617Schristos (AC_REPLACE_FUNCS): Add test for memchr. 1710*75f6d617Schristos (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached. 1711*75f6d617Schristos (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts. 1712*75f6d617Schristos 1713*75f6d617Schristos * system.h (memcmp): Define in terms of bcmp. 1714*75f6d617Schristos Use HAVE_MEMCHR to test for all mem* routines. 1715*75f6d617Schristos 1716*75f6d617Schristos * Makefile.in (srcs): Remove memcmp.c. 1717*75f6d617Schristos We use bcmp if memcmp doesn't work, since we only test for equality. 1718*75f6d617Schristos 1719*75f6d617SchristosMon Sep 12 15:52:22 1994 Paul Eggert <eggert@twinsun.com> 1720*75f6d617Schristos 1721*75f6d617Schristos * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin. 1722*75f6d617Schristos (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2. 1723*75f6d617Schristos (AC_CHECK_HEADERS): Remove now-redundant check for <string.h>. 1724*75f6d617Schristos (AC_CHECK_FUNCS): Check for strchr. 1725*75f6d617Schristos (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose 1726*75f6d617Schristos macros when suitable. 1727*75f6d617Schristos * memcmp.c: New file. 1728*75f6d617Schristos * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix): 1729*75f6d617Schristos Default to autoconf-specified strings. 1730*75f6d617Schristos (COMPILE): Use the defaults. 1731*75f6d617Schristos (srcs): Add memcmp.c. 1732*75f6d617Schristos (distfiles): Rename config.h.in->config.hin, install.sh->install-sh. 1733*75f6d617Schristos (Makefile, config.h, config.hin, config.status): Rework for 1734*75f6d617Schristos compatibility with Autoconf 2. 1735*75f6d617Schristos * io.c (binary_file_p): Assume non-broken memchr. 1736*75f6d617Schristos * memchr.c: Assume compiler understands void *; otherwise 1737*75f6d617Schristos we don't match GCC's internal declaration of memchr. 1738*75f6d617Schristos * system.h: Use more modern autoconf approach to standard C headers. 1739*75f6d617Schristos * version.c: Include <config.h>, not "config.h". 1740*75f6d617Schristos 1741*75f6d617Schristos * diff.c, diff.h (ignore_some_line_changes): 1742*75f6d617Schristos New variable; replaces `length_varies'. 1743*75f6d617Schristos (line_end_char): Replace with '\n'; it wasn't being used consistently. 1744*75f6d617Schristos 1745*75f6d617Schristos * io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and 1746*75f6d617Schristos incomplete lines. Put incomplete lines into their own bucket. 1747*75f6d617Schristos This means line_cmp no longer needs line length arguments, 1748*75f6d617Schristos and equivalence classes' line lengths no longer need to include \n. 1749*75f6d617Schristos Invoke line_cmp only if ignore_some_line_changes. 1750*75f6d617Schristos (prepare_text_end): -B no longer ignores missing newlines. 1751*75f6d617Schristos (read_files): Allocate another bucket for incomplete lines. 1752*75f6d617Schristos 1753*75f6d617Schristos * util.c (line_cmp): Now takes just two arguments. No longer 1754*75f6d617Schristos optimizes for common case of exact equality; the caller does that 1755*75f6d617Schristos optimization now. The caller is changed accordingly. 1756*75f6d617Schristos Optimize for the common case of mostly equality. 1757*75f6d617Schristos Use isupper+tolower instead of islower+toupper, for consistency. 1758*75f6d617Schristos 1759*75f6d617Schristos * waitpid.c (waitpid): Fix typo with internal scoping. 1760*75f6d617Schristos 1761*75f6d617SchristosThu Sep 8 08:23:15 1994 Paul Eggert <eggert@twinsun.com> 1762*75f6d617Schristos 1763*75f6d617Schristos * configure.in: Revamp for Autoconf 2. 1764*75f6d617Schristos * memchr.c, waitpid.c: New source files for substitute functions. 1765*75f6d617Schristos * Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS). 1766*75f6d617Schristos (srcs): Add memchr.c, waitpid.c. 1767*75f6d617Schristos (distfiles): Add install.sh, memchr.c, waitpid.c, install.sh. 1768*75f6d617Schristos * system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs. 1769*75f6d617Schristos * dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name). 1770*75f6d617Schristos Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2. 1771*75f6d617Schristos * sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes. 1772*75f6d617Schristos * diff3.c (read_diff): Use new waitpid substitute. 1773*75f6d617Schristos 1774*75f6d617Schristos * cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns. 1775*75f6d617Schristos (usage): Just print more detailed usage message; let caller exit. 1776*75f6d617Schristos * diff.c (option_help): New variable. 1777*75f6d617Schristos (filetype): Add Posix.1b file types. 1778*75f6d617Schristos 1779*75f6d617SchristosFri Sep 2 16:01:49 1994 Paul Eggert <eggert@twinsun.com> 1780*75f6d617Schristos 1781*75f6d617Schristos * configure.in: Switch to new autoconf names. Add sys/file.h test. 1782*75f6d617Schristos * Makefile.in (distclean): Clean config.cache, config.log 1783*75f6d617Schristos (used by new autoconf). 1784*75f6d617Schristos 1785*75f6d617Schristos * diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children, 1786*75f6d617Schristos make sure SIGCHLD isn't ignored. 1787*75f6d617Schristos 1788*75f6d617Schristos * diff3.c (DIFF_CHUNK_SIZE): Removed. Get size from STAT_BLOCKSIZE. 1789*75f6d617Schristos (INT_STRLEN_BOUND): New macro. 1790*75f6d617Schristos 1791*75f6d617Schristos * ifdef.c (format_group, groups_letter_value): 1792*75f6d617Schristos Use * instead of [] in prototypes. 1793*75f6d617Schristos 1794*75f6d617Schristos * system.h: Include <sys/file.h> only if HAVE_SYS_FILE_H. 1795*75f6d617Schristos (S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros. 1796*75f6d617Schristos 1797*75f6d617Schristos * util.c (begin_output): Check fdopen result. 1798*75f6d617Schristos 1799*75f6d617Schristos The following changes simplify porting to non-Posix environments. 1800*75f6d617Schristos * cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first. 1801*75f6d617Schristos * diff.c (binary_I_O): New variable for --binary option. 1802*75f6d617Schristos (main, usage, compare_files): Support --binary option. 1803*75f6d617Schristos (compare_files): Use filename_lastdirchar to find last 1804*75f6d617Schristos directory char in a file name. 1805*75f6d617Schristos * cmp.c (main), diff.c (compare_files), dir.c (compare_names, 1806*75f6d617Schristos diff_dirs): Use filename_cmp to compare file names. 1807*75f6d617Schristos Use same_file to determine whether two files are the same. 1808*75f6d617Schristos * context.c (print_context_label): Check whether ctime yields 0. 1809*75f6d617Schristos * diff3.c (read_diff), sdiff.c (cleanup, main, waitpid), 1810*75f6d617Schristos util.c (begin_output): Use popen+pclose if !HAVE_FORK. 1811*75f6d617Schristos * io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode. 1812*75f6d617Schristos * sdiff.c (ck_fdopen): Function removed. 1813*75f6d617Schristos (edit): Use system if !HAVE_FORK. 1814*75f6d617Schristos (execdiff): Now assumes caller has pushed all args, plus trailing 0. 1815*75f6d617Schristos All callers changed. 1816*75f6d617Schristos (private_tempnam): Try TMP if TMPDIR isn't defined. 1817*75f6d617Schristos Fit temporary filenames into 8.3 limit. 1818*75f6d617Schristos * system.h (STAT_BLOCKSIZE): Don't define if already defined. 1819*75f6d617Schristos (min, max): Undef if already defined. 1820*75f6d617Schristos (filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE, 1821*75f6d617Schristos initialize_main, O_BINARY, same_file): New macros. 1822*75f6d617Schristos 1823*75f6d617SchristosFri Jun 17 11:23:53 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) 1824*75f6d617Schristos 1825*75f6d617Schristos * Makefile.in (info, dvi, diff.dvi): New targets. 1826*75f6d617Schristos (clean): Remove TeX output files. 1827*75f6d617Schristos 1828*75f6d617SchristosFri Jun 17 05:37:52 1994 Paul Eggert (eggert@twinsun.com) 1829*75f6d617Schristos 1830*75f6d617Schristos * cmp.c, io.c (word): Change from typedef to #define, to avoid 1831*75f6d617Schristos collision with Unicos 8.0 <sys/types.h>, which also typedefs `word'. 1832*75f6d617Schristos 1833*75f6d617SchristosThu Apr 15 00:53:01 1994 Paul Eggert (eggert@twinsun.com) 1834*75f6d617Schristos 1835*75f6d617Schristos * diff3.c (scan_diff_line), util.c (print_number_range): Don't 1836*75f6d617Schristos rely on promotion to make the old-style parameter type agree 1837*75f6d617Schristos with the prototype parameter type; this doesn't work on 1838*75f6d617Schristos Apollos running bsd4.3. 1839*75f6d617Schristos 1840*75f6d617SchristosMon Jan 3 02:05:51 1994 Paul Eggert (eggert@twinsun.com) 1841*75f6d617Schristos 1842*75f6d617Schristos * Makefile.in (LDFLAGS): Remove -g. Change all link commands 1843*75f6d617Schristos to use both $(CFLAGS) and $(LDFLAGS). 1844*75f6d617Schristos 1845*75f6d617SchristosMon Dec 13 12:23:27 1993 Paul Eggert (eggert@twinsun.com) 1846*75f6d617Schristos 1847*75f6d617Schristos * system.h: Don't assume dirent.h exists just because 1848*75f6d617Schristos _POSIX_VERSION is defined. 1849*75f6d617Schristos 1850*75f6d617SchristosFri Dec 3 18:39:39 1993 Paul Eggert (eggert@twinsun.com) 1851*75f6d617Schristos 1852*75f6d617Schristos * diff.c (main): allow -pu. 1853*75f6d617Schristos 1854*75f6d617SchristosTue Nov 23 03:51:08 1993 Paul Eggert (eggert@twinsun.com) 1855*75f6d617Schristos 1856*75f6d617Schristos * Makefile.in (distclean): Remove config.h. 1857*75f6d617Schristos 1858*75f6d617SchristosWed Nov 10 00:28:27 1993 Paul Eggert (eggert@twinsun.com) 1859*75f6d617Schristos 1860*75f6d617Schristos * Version 2.6 released. 1861*75f6d617Schristos 1862*75f6d617Schristos * analyze.c (too_expensive): New variable, for heuristic to 1863*75f6d617Schristos limit the worst-case cost to O(N**1.5 log N) at the price of 1864*75f6d617Schristos producing suboptimal output for large inputs with many differences. 1865*75f6d617Schristos (diff_2_files): Initialize it. 1866*75f6d617Schristos (struct partition): New type. 1867*75f6d617Schristos (SNAKE_LIMIT): New macro; merely documents already-used number 20. 1868*75f6d617Schristos (diag): New `minimal' arg; all callers changed. Put results into 1869*75f6d617Schristos struct partition. Apply `too_expensive' heuristic. Tune. 1870*75f6d617Schristos (compareseq): New `minimal' arg; all callers changed. Tune. 1871*75f6d617Schristos (shift_boundaries): Improve heuristic to also coalesce adjacent runs 1872*75f6d617Schristos of changes more often. 1873*75f6d617Schristos 1874*75f6d617Schristos * diff.c (long_options, main, usage): Add `--help'. 1875*75f6d617Schristos (main): Send version number to stdout, not stderr. 1876*75f6d617Schristos (usage): Send usage to stdout, not stderr. 1877*75f6d617Schristos (compare_files): Initialize `inf' properly. 1878*75f6d617Schristos 1879*75f6d617Schristos * io.c (word): Change to `int'; it makes a big difference on x86. 1880*75f6d617Schristos (sip, slurp): Put off allocating room to hold the whole file until we 1881*75f6d617Schristos have to read the whole file. This wins if the file turns out 1882*75f6d617Schristos to be binary. 1883*75f6d617Schristos 1884*75f6d617Schristos * util.c (xmalloc, xrealloc): "virtual memory" -> "memory" 1885*75f6d617Schristos (primes): Omit large primes if INT_MAX is small. 1886*75f6d617Schristos 1887*75f6d617Schristos * sdiff.c (usage): Send usage to stdout, not stderr. 1888*75f6d617Schristos (long_options, main, usage): Add `--help'. 1889*75f6d617Schristos (main): Send version number to stdout, not stderr. Exit afterwards. 1890*75f6d617Schristos 1891*75f6d617Schristos * diff3.c (usage): Send usage to stdout, not stderr. 1892*75f6d617Schristos (long_options, main, usage): Add `--help'. 1893*75f6d617Schristos (read_diff): Detect integer overflow in buffer size calculations. 1894*75f6d617Schristos 1895*75f6d617Schristos * cmp.c (word): New type. All uses of `long' for 1896*75f6d617Schristos word-at-a-time comparisons changed to `word'. 1897*75f6d617Schristos (long_options, main, usage): Add `--help'. 1898*75f6d617Schristos (usage): Send usage to stdout, not stderr. 1899*75f6d617Schristos (main): Add `-v'. Send version number to stdout, not stderr. 1900*75f6d617Schristos 1901*75f6d617Schristos * configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H. 1902*75f6d617Schristos 1903*75f6d617SchristosMon Sep 27 07:20:24 1993 Paul Eggert (eggert@twinsun.com) 1904*75f6d617Schristos 1905*75f6d617Schristos * diff.c (add_exclude_file): Cast memchr to (char *) 1906*75f6d617Schristos to suppress bogus warnings on some nonstandard hosts. 1907*75f6d617Schristos 1908*75f6d617Schristos * Makefile.in (cmp): Add version.o. 1909*75f6d617Schristos 1910*75f6d617Schristos * analyze.c (diff_2_files): Work around memcmp bug with size=0. 1911*75f6d617Schristos 1912*75f6d617Schristos * cmp.c (main, usage, version_string): Add --version option. 1913*75f6d617Schristos 1914*75f6d617Schristos * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 1915*75f6d617Schristos (memchr): Declare only if !HAVE_MEMCHR. These changes are 1916*75f6d617Schristos needed to keep some nonstandard hosts happy. 1917*75f6d617Schristos 1918*75f6d617Schristos * util.c (memchr): Make first arg char const * 1919*75f6d617Schristos to match standard. 1920*75f6d617Schristos (xmalloc, xrealloc): Cast malloc, realloc 1921*75f6d617Schristos to (VOID *) to suppress bogus warnings on some nonstandard hosts. 1922*75f6d617Schristos 1923*75f6d617Schristos * diff3.c (xmalloc, xrealloc): Cast malloc, realloc 1924*75f6d617Schristos to (VOID *) to suppress bogus warnings on some nonstandard hosts. 1925*75f6d617Schristos 1926*75f6d617Schristos * sdiff.c (xmalloc, xrealloc): Cast malloc, realloc 1927*75f6d617Schristos to (VOID *) to suppress bogus warnings on some nonstandard hosts. 1928*75f6d617Schristos (lf_copy, lf_skip, lf_snarf): Cast memchr to (char *) 1929*75f6d617Schristos to suppress bogus warnings on some nonstandard hosts. 1930*75f6d617Schristos (memchr): Make first arg char const * 1931*75f6d617Schristos to match standard. 1932*75f6d617Schristos 1933*75f6d617SchristosMon Sep 27 00:23:37 1993 Paul Eggert (eggert@twinsun.com) 1934*75f6d617Schristos 1935*75f6d617Schristos * Version 2.5 released. 1936*75f6d617Schristos 1937*75f6d617Schristos * analyze.c (diff_2_files): Work around memcmp bug with size=0. 1938*75f6d617Schristos 1939*75f6d617Schristos * cmp.c (main, usage, version_string): Add --version option. 1940*75f6d617Schristos * Makefile.in (cmp): Add version.o. 1941*75f6d617Schristos 1942*75f6d617Schristos * diff.c (add_exclude_file): Cast memchr to (char *) 1943*75f6d617Schristos to suppress bogus warnings on some nonstandard hosts. 1944*75f6d617Schristos * sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise. 1945*75f6d617Schristos 1946*75f6d617Schristos * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc 1947*75f6d617Schristos to (VOID *) to suppress bogus warnings on some nonstandard hosts. 1948*75f6d617Schristos 1949*75f6d617Schristos * sdiff.c, util.c (memchr): Make first arg char const * 1950*75f6d617Schristos to match standard. 1951*75f6d617Schristos 1952*75f6d617Schristos * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 1953*75f6d617Schristos (memchr): Declare only if !HAVE_MEMCHR. These changes are 1954*75f6d617Schristos needed to keep some nonstandard hosts happy. 1955*75f6d617Schristos 1956*75f6d617Schristos * xmalloc.c: Include <sys/types.h> always; some nonstandard hosts 1957*75f6d617Schristos need it for size_t even if STDC_HEADERS. 1958*75f6d617Schristos 1959*75f6d617SchristosSat Sep 18 01:33:07 1993 Paul Eggert (eggert@twinsun.com) 1960*75f6d617Schristos 1961*75f6d617Schristos * configure.in (AC_STAT_MACROS_BROKEN): Add. 1962*75f6d617Schristos * system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if 1963*75f6d617Schristos STAT_MACROS_BROKEN. 1964*75f6d617Schristos 1965*75f6d617Schristos * Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA). 1966*75f6d617Schristos 1967*75f6d617Schristos * analyze.c (discard_confusing_lines): Make defn static, like decl. 1968*75f6d617Schristos * sdiff.c (xmalloc): Likewise. 1969*75f6d617Schristos 1970*75f6d617Schristos * ifdef.c (format_group): Ensure isdigit argument isn't < 0. 1971*75f6d617Schristos 1972*75f6d617Schristos * side.c (print_half_line): Use isprint, since some hosts lack isgraph. 1973*75f6d617Schristos * util.c (output_1_line): Likewise. Ensure its argument isn't < 0. 1974*75f6d617Schristos (xmalloc, xrealloc): Remove needless casts. 1975*75f6d617Schristos 1976*75f6d617Schristos * system.h (volatile, const): 1977*75f6d617Schristos Define these before including any system headers, 1978*75f6d617Schristos so that they're used consistently in all system includes. 1979*75f6d617Schristos (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some 1980*75f6d617Schristos <stdlib.h>s don't declare them. 1981*75f6d617Schristos (memchr): Likewise for <string.h>. 1982*75f6d617Schristos 1983*75f6d617Schristos * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first. 1984*75f6d617Schristos * diff.c: Remove redundant "system.h" inclusion. 1985*75f6d617Schristos 1986*75f6d617Schristos * diff3.c (xmalloc): Now static. 1987*75f6d617Schristos (xmalloc, realloc): Remove needless casts. 1988*75f6d617Schristos (READNUM): Ensure isdigit argument isn't negative. 1989*75f6d617Schristos 1990*75f6d617SchristosWed Sep 14 07:14:15 1993 Paul Eggert (eggert@twinsun.com) 1991*75f6d617Schristos 1992*75f6d617Schristos * Version 2.4 released. 1993*75f6d617Schristos 1994*75f6d617Schristos * ifdef.c (scan_char_literal): New function, for new %c'x' and 1995*75f6d617Schristos %c'\ooo' format specs. 1996*75f6d617Schristos (format_group, print_ifdef_lines): Use it. Remove %0 format spec. 1997*75f6d617Schristos 1998*75f6d617Schristos * cmp.c (cmp): Don't try to read past end of file; this doesn't 1999*75f6d617Schristos work on ttys. 2000*75f6d617Schristos 2001*75f6d617Schristos * system.h, version.c: #include <config.h>, not "config.h", to allow 2002*75f6d617Schristos configuring in a separate directory when the source directory has 2003*75f6d617Schristos already been configured. 2004*75f6d617Schristos * Makefile.in (COMPILE): New defn, with proper -I options so that 2005*75f6d617Schristos `#include <config.h>' works. 2006*75f6d617Schristos (.c.o, diff3.o, sdiff.o): Use it. 2007*75f6d617Schristos 2008*75f6d617SchristosMon Sep 13 06:45:43 1993 Paul Eggert (eggert@twinsun.com) 2009*75f6d617Schristos 2010*75f6d617Schristos * diff.c (main, longopts): Add --line-format=FORMAT option. 2011*75f6d617Schristos (specify_format): Args no longer const pointers. All callers changed. 2012*75f6d617Schristos 2013*75f6d617Schristos * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats. 2014*75f6d617Schristos (struct group): New struct. 2015*75f6d617Schristos (print_ifdef_lines): Use it to simplify argument passing. 2016*75f6d617Schristos Remove the convention that last arg -1 signifies that the lines 2017*75f6d617Schristos from file 2 are the same as the lines from file 1; this 2018*75f6d617Schristos convention no longer works, now that line numbers might be 2019*75f6d617Schristos printed out, since the line numbers may differ. 2020*75f6d617Schristos Add first FILE * argument to output to. All callers changed. 2021*75f6d617Schristos Use a faster test for the single-fwrite optimization. 2022*75f6d617Schristos (format_group, scan_printf_spec, groups_letter_value): New functions. 2023*75f6d617Schristos 2024*75f6d617Schristos * diff.h (group_format, line_format): No longer const pointers. 2025*75f6d617Schristos (format_ifdef): 1st arg is no longer const pointer. 2026*75f6d617Schristos 2027*75f6d617Schristos * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H. 2028*75f6d617Schristos * system.h <limits.h>, <stdlib.h>, <string.h>: 2029*75f6d617Schristos Include only if HAVE_LIMITS_H etc. 2030*75f6d617Schristos 2031*75f6d617Schristos * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer 2032*75f6d617Schristos these standard names to the traditional names (bcmp, bcpy, index, 2033*75f6d617Schristos rindex, struct direct). All callers changed. 2034*75f6d617Schristos 2035*75f6d617Schristos * system.h (PARAMS, VOID): 2036*75f6d617Schristos Define earlier so that malloc decl can use VOID. 2037*75f6d617Schristos (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K. 2038*75f6d617Schristos 2039*75f6d617SchristosFri Sep 3 00:21:02 1993 Paul Eggert (eggert@twinsun.com) 2040*75f6d617Schristos 2041*75f6d617Schristos * diff.c (compare_files): Two files with the same name must be 2042*75f6d617Schristos the same file; avoid a needless `stat' in that case. 2043*75f6d617Schristos 2044*75f6d617SchristosFri Aug 27 06:59:03 1993 Paul Eggert (eggert@twinsun.com) 2045*75f6d617Schristos 2046*75f6d617Schristos * Pervasive changes for portability to 64-bit hosts: 2047*75f6d617Schristos Add prototypes to function declarations. 2048*75f6d617Schristos Use size_t, not int, when needed. 2049*75f6d617Schristos 2050*75f6d617Schristos * Other pervasive changes: 2051*75f6d617Schristos Use `const' more often. 2052*75f6d617Schristos Use STD{IN,OUT,ERR}_FILENO instead of [012]. 2053*75f6d617Schristos Use 0, not NULL, for portability to broken hosts. 2054*75f6d617Schristos 2055*75f6d617Schristos * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch]. 2056*75f6d617Schristos (distfiles): New files config.h.in, mkinstalldirs. 2057*75f6d617Schristos (.c.o): Add -DHAVE_CONFIG_H. 2058*75f6d617Schristos 2059*75f6d617Schristos * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment. 2060*75f6d617Schristos (diff_2_files): Use l.c.m., not max, of files' buffer sizes. 2061*75f6d617Schristos 2062*75f6d617Schristos * cmp.c: Make globals static when possible. 2063*75f6d617Schristos 2064*75f6d617Schristos (file): Now a 2-element array; replaces `file1' and `file2'. 2065*75f6d617Schristos (file_desc, buffer): Likewise, for file[12]_desc and buf[12]. 2066*75f6d617Schristos (main): Likewise, for stat_buf[12]. Index these variables with `i'. 2067*75f6d617Schristos 2068*75f6d617Schristos (ignore_initial): New var. 2069*75f6d617Schristos (long_options): Now const. Add `--ignore-initial'. 2070*75f6d617Schristos (usage): Sort options and add `--ignore-initial'. 2071*75f6d617Schristos (main, cmp): Add `--ignore-initial' support. 2072*75f6d617Schristos 2073*75f6d617Schristos (main): `cmp - -' now succeeds. 2074*75f6d617Schristos When comparing standard input to a file, and using a shortcut (e.g. 2075*75f6d617Schristos looking at file sizes or inode numbers), take the lseek offset into 2076*75f6d617Schristos account before deciding whether the files are identical. 2077*75f6d617Schristos Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts. 2078*75f6d617Schristos Use l.c.m. of files' buffer sizes, not 8 * 1024. 2079*75f6d617Schristos ferror (stdout) does not imply errno has a useful value. 2080*75f6d617Schristos If 2nd file is "-", treat it first, in case stdin is closed. 2081*75f6d617Schristos 2082*75f6d617Schristos (cmp): Always compute `char_number', `smaller' for speed and simplicity. 2083*75f6d617Schristos Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input', 2084*75f6d617Schristos as per Posix.2. 2085*75f6d617Schristos 2086*75f6d617Schristos (block_compare_and_count): Increment line_number argument. 2087*75f6d617Schristos Remove end_char argument; it's always '\n'. All callers changed. 2088*75f6d617Schristos Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts. 2089*75f6d617Schristos (block_compare): Minimize differences with block_compare_and_count. 2090*75f6d617Schristos 2091*75f6d617Schristos (block_read): Coalesce `bp += nread's. 2092*75f6d617Schristos 2093*75f6d617Schristos (printc): Remove `FILE *' arg; output to stdout. All callers changed. 2094*75f6d617Schristos 2095*75f6d617Schristos * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF. 2096*75f6d617Schristos Configure into config.h. 2097*75f6d617Schristos 2098*75f6d617Schristos * context.c (print_context_label): 2099*75f6d617Schristos Standard input's st_mtime is no longer a special case 2100*75f6d617Schristos here, since `compare_files' now sets it to the current time. 2101*75f6d617Schristos 2102*75f6d617Schristos * diff.c (usage): Sort options. 2103*75f6d617Schristos (filetype): New function. 2104*75f6d617Schristos (compare_files): Set stdin's st_mtime to be the current time. 2105*75f6d617Schristos Leave its name "-" instead of changing it to "Standard Input"; 2106*75f6d617Schristos to test whether a file is stdin, we must compare its name to "-" instead 2107*75f6d617Schristos of its desc to 0, since if it's closed other file descs may be 0. 2108*75f6d617Schristos When comparing standard input to a file, and using a shortcut (e.g. 2109*75f6d617Schristos looking at file sizes or inode numbers), take the lseek offset into 2110*75f6d617Schristos account before deciding whether the files are identical. 2111*75f6d617Schristos Pretend that nonexistent files have the same filetype as existing files. 2112*75f6d617Schristos Rename `errorcount' to `failed', since it's boolean. 2113*75f6d617Schristos In directory comparisons, if a file is neither a regular file nor a 2114*75f6d617Schristos directory, just print its type and the other file's type. 2115*75f6d617Schristos 2116*75f6d617Schristos * diff.h (Is_space, textchar): Remove. 2117*75f6d617Schristos (struct msg, msg_chain, msg_chain_end): Move to util.c. 2118*75f6d617Schristos (VOID): Move to system.h. 2119*75f6d617Schristos (line_cmp, version_string, change_letter, print_number_range, 2120*75f6d617Schristos find_change): New decls. 2121*75f6d617Schristos 2122*75f6d617Schristos * diff.texi: 2123*75f6d617Schristos whitespace -> white space. It now stands for whatever isspace yields. 2124*75f6d617Schristos Add --ignore-initial. 2125*75f6d617Schristos 2126*75f6d617Schristos * diff3.c (VOID): Move to system.h. 2127*75f6d617Schristos (version_string): Now char[]. 2128*75f6d617Schristos (usage): Sort options. 2129*75f6d617Schristos (process_diff): Pacify `gcc -Wall' with a useless assignment. 2130*75f6d617Schristos (read_diff): pid is of type pid_t, not int. Use waitpid if available. 2131*75f6d617Schristos (output_diff3): Simplify test for `\ No newline at end of file' message. 2132*75f6d617Schristos 2133*75f6d617Schristos * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion 2134*75f6d617Schristos with external struct file_data `files'. 2135*75f6d617Schristos 2136*75f6d617Schristos * io.c (line_cmp): Move declaration to diff.h. 2137*75f6d617Schristos (textchar): Remove. 2138*75f6d617Schristos (find_and_hash_each_line): Use locale's definition of white space 2139*75f6d617Schristos instead of using one hardwired defn for -b and another for -w. 2140*75f6d617Schristos 2141*75f6d617Schristos * normal.c (change_letter, print_number_range, find_change): 2142*75f6d617Schristos Move decls to diff.h. 2143*75f6d617Schristos (print_normal_hunk): Now static. 2144*75f6d617Schristos 2145*75f6d617Schristos * sdiff.c (SEEK_SET): Move to system.h. 2146*75f6d617Schristos (version_string): Now char[], not char*. 2147*75f6d617Schristos (private_tempnam): Remove hardcoded limit on temporary file names. 2148*75f6d617Schristos (exiterr, perror_fatal, main): When exiting because of a signal, 2149*75f6d617Schristos exit with that signal's status. 2150*75f6d617Schristos (lf_refill, main, skip_white, edit, interact): Check for signal. 2151*75f6d617Schristos (ignore_SIGINT): Renamed from `ignore_signals'. 2152*75f6d617Schristos (NUM_SIGS, initial_handler): New macros. 2153*75f6d617Schristos (initial_action, signal_received, sigs_trapped): New vars. 2154*75f6d617Schristos (catchsig, trapsigs): Use sigaction if possible, since this closes the 2155*75f6d617Schristos windows of vulnerability that `signal' has. Use RETSIGTYPE not void. 2156*75f6d617Schristos When a signal comes in, just set a global variable; this is safer. 2157*75f6d617Schristos (checksigs, untrapsig): New functions. 2158*75f6d617Schristos (edit): Pacify `gcc -Wall' with a useless assignment. 2159*75f6d617Schristos Respond to each empty line with help, not to every other empty line. 2160*75f6d617Schristos (private_tempnam): Remove hardcoded limit on temporary file name length. 2161*75f6d617Schristos Don't assume sizeof (pid_t) <= sizeof (int). 2162*75f6d617Schristos 2163*75f6d617Schristos * system.h: (S_IXOTH, S_IXGRP, S_IXUSR, 2164*75f6d617Schristos SEEK_SET, SEEK_CUR, 2165*75f6d617Schristos STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): 2166*75f6d617Schristos New macros, if system doesn't define them. 2167*75f6d617Schristos (volatile): Don't define if already defined. 2168*75f6d617Schristos (PARAMS): New macro. 2169*75f6d617Schristos (VOID): Move here from diff.h. 2170*75f6d617Schristos 2171*75f6d617Schristos * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h. 2172*75f6d617Schristos (message5): New function. 2173*75f6d617Schristos (pr_pid): New var. 2174*75f6d617Schristos (begin_output): Allocate `name' more precisely. 2175*75f6d617Schristos Put child pid into pr_pid, so that we can wait for it later. 2176*75f6d617Schristos Don't check execl's return value, since any return must be an error. 2177*75f6d617Schristos (finish_output): Detect and report output errors. 2178*75f6d617Schristos Use waitpid if available. Check pr exit status. 2179*75f6d617Schristos (line_cmp): Use locale's definition of white space 2180*75f6d617Schristos instead of using one hardwired defn for -b and another for -w. 2181*75f6d617Schristos (analyze_cmp): Avoid double negation with `! nontrivial'. 2182*75f6d617Schristos Pacify `gcc -Wall' be rewriting for-loop into do-while-loop. 2183*75f6d617Schristos (dir_file_pathname): New function. 2184*75f6d617Schristos 2185*75f6d617Schristos * version.c (version_string): Now char[], not char*. 2186*75f6d617Schristos 2187*75f6d617SchristosThu Jul 29 20:44:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) 2188*75f6d617Schristos 2189*75f6d617Schristos * Makefile.in (config.status): Run config.status --recheck, not 2190*75f6d617Schristos configure, to get the right args passed. 2191*75f6d617Schristos 2192*75f6d617SchristosThu Jul 22 10:46:30 1993 Paul Eggert (eggert@twinsun.com) 2193*75f6d617Schristos 2194*75f6d617Schristos * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi' 2195*75f6d617Schristos with `[ TEST ] || ACTION || exit' so that the containing for-loop exits 2196*75f6d617Schristos with proper status for `make'. 2197*75f6d617Schristos 2198*75f6d617SchristosThu Jul 8 19:47:22 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 2199*75f6d617Schristos 2200*75f6d617Schristos * Makefile.in (installdirs): New target. 2201*75f6d617Schristos (install): Use it. 2202*75f6d617Schristos (Makefile, config.status, configure): New targets. 2203*75f6d617Schristos 2204*75f6d617SchristosSat Jun 5 23:10:40 1993 Paul Eggert (eggert@twinsun.com) 2205*75f6d617Schristos 2206*75f6d617Schristos * Makefile.in (dist): Switch from .z to .gz. 2207*75f6d617Schristos 2208*75f6d617SchristosWed May 26 17:16:02 1993 Paul Eggert (eggert@twinsun.com) 2209*75f6d617Schristos 2210*75f6d617Schristos * diff.c (main): Cast args to compare_files, for traditional C. 2211*75f6d617Schristos * side.c (print_sdiff_common_lines_print_sdiff_hunk): Likewise. 2212*75f6d617Schristos * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined 2213*75f6d617Schristos properly. 2214*75f6d617Schristos 2215*75f6d617SchristosTue May 25 14:54:05 1993 Paul Eggert (eggert@twinsun.com) 2216*75f6d617Schristos 2217*75f6d617Schristos * analyze.c (diff_2_files): With -q, do not report that files differ 2218*75f6d617Schristos if all their differences are ignored. 2219*75f6d617Schristos (briefly_report): New function. 2220*75f6d617Schristos * diff.h (ignore_some_changes): New variable. 2221*75f6d617Schristos * diff.c (compare_files): Don't use the file size shortcut if 2222*75f6d617Schristos ignore_some_changes is nonzero, since the file size may differ 2223*75f6d617Schristos merely due to ignored changes. 2224*75f6d617Schristos (main): Set ignore_some_changes if we might ignore some changes. 2225*75f6d617Schristos Remove unsystematic assignment of 0 to static vars. 2226*75f6d617Schristos * io.c (read_files): New argument PRETEND_BINARY says whether to 2227*75f6d617Schristos pretend the files are binary. 2228*75f6d617Schristos 2229*75f6d617Schristos * diff3.c (tab_align_flag): New variable, for new -T option. 2230*75f6d617Schristos (main, usage, output_diff3): Add support for -T. 2231*75f6d617Schristos 2232*75f6d617SchristosSun May 23 15:25:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2233*75f6d617Schristos 2234*75f6d617Schristos * dir.c (dir_sort): Always init `data' to avoid GCC warning. 2235*75f6d617Schristos 2236*75f6d617SchristosSat May 22 15:35:02 1993 Paul Eggert (eggert@twinsun.com) 2237*75f6d617Schristos 2238*75f6d617Schristos * Makefile.in (dist): Change name of package from diff to diffutils. 2239*75f6d617Schristos Don't bother to build .Z dist; .z suffices. 2240*75f6d617Schristos 2241*75f6d617SchristosFri May 21 16:35:22 1993 Paul Eggert (eggert@twinsun.com) 2242*75f6d617Schristos 2243*75f6d617Schristos * diff.c: Include "system.h" to get memchr declaration. 2244*75f6d617Schristos * system.h (memchr): Declare if !HAVE_MEMCHR, not if 2245*75f6d617Schristos !HAVE_MEMCHR && !STDC_HEADERS. 2246*75f6d617Schristos 2247*75f6d617SchristosWed May 19 17:43:55 1993 Paul Eggert (eggert@twinsun.com) 2248*75f6d617Schristos 2249*75f6d617Schristos * Version 2.3 released. 2250*75f6d617Schristos 2251*75f6d617SchristosFri Apr 23 17:18:44 1993 Paul Eggert (eggert@twinsun.com) 2252*75f6d617Schristos 2253*75f6d617Schristos * io.c (find_identical_ends): Do not discard the last HORIZON_LINES 2254*75f6d617Schristos lines of the prefix, or the first HORIZON_LINES lines of the suffix. 2255*75f6d617Schristos * diff.c (main, longopts, usage): Add --horizon-lines option. 2256*75f6d617Schristos * diff3.c (main, process_diff, read_diff): Invoke second diff 2257*75f6d617Schristos with --horizon-lines determined by the first diff. 2258*75f6d617Schristos * diff.h, diff3.c (horizon_lines): New variable. 2259*75f6d617Schristos 2260*75f6d617SchristosMon Mar 22 16:16:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 2261*75f6d617Schristos 2262*75f6d617Schristos * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero): 2263*75f6d617Schristos Don't define if already defined. 2264*75f6d617Schristos 2265*75f6d617SchristosFri Mar 5 00:20:16 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2266*75f6d617Schristos 2267*75f6d617Schristos * diff.c (main): Use NULL in arg to compare_files. 2268*75f6d617Schristos 2269*75f6d617SchristosThu Feb 25 15:26:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 2270*75f6d617Schristos 2271*75f6d617Schristos * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS, 2272*75f6d617Schristos not #if !HAVE_MEMCHR || !STDC_HEADERS. 2273*75f6d617Schristos 2274*75f6d617SchristosMon Feb 22 15:04:46 1993 Richard Stallman (rms@geech.gnu.ai.mit.edu) 2275*75f6d617Schristos 2276*75f6d617Schristos * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES. 2277*75f6d617Schristos 2278*75f6d617SchristosMon Feb 22 12:56:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 2279*75f6d617Schristos 2280*75f6d617Schristos * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<. 2281*75f6d617Schristos 2282*75f6d617SchristosSat Feb 20 19:18:56 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2283*75f6d617Schristos 2284*75f6d617Schristos * io.c (binary_file_p): Return zero if file size is zero. 2285*75f6d617Schristos 2286*75f6d617SchristosFri Feb 19 17:31:32 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 2287*75f6d617Schristos 2288*75f6d617Schristos * Version 2.2 released. 2289*75f6d617Schristos 2290*75f6d617Schristos * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't 2291*75f6d617Schristos define if already defined. 2292*75f6d617Schristos 2293*75f6d617SchristosWed Feb 17 17:08:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 2294*75f6d617Schristos 2295*75f6d617Schristos * Makefile.in (srcs): Remove limits.h. 2296*75f6d617Schristos 2297*75f6d617SchristosThu Feb 11 03:36:00 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2298*75f6d617Schristos 2299*75f6d617Schristos * diff3.c (xmalloc): No longer static. 2300*75f6d617Schristos 2301*75f6d617Schristos * sdiff.c (edit): Allocate buf dynamically. 2302*75f6d617Schristos 2303*75f6d617Schristos * dir.c (dir_sort): Handle VOID_CLOSEDIR. 2304*75f6d617Schristos 2305*75f6d617SchristosWed Feb 10 00:15:54 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2306*75f6d617Schristos 2307*75f6d617Schristos * limits.h: File deleted (should never have been there). 2308*75f6d617Schristos 2309*75f6d617SchristosTue Feb 9 03:53:22 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2310*75f6d617Schristos 2311*75f6d617Schristos * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last. 2312*75f6d617Schristos 2313*75f6d617SchristosWed Feb 3 15:42:10 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 2314*75f6d617Schristos 2315*75f6d617Schristos * system.h: Don't #define const; let configure do it. 2316*75f6d617Schristos 2317*75f6d617SchristosMon Feb 1 02:13:23 1993 Paul Eggert (eggert@hal.gnu.ai.mit.edu) 2318*75f6d617Schristos 2319*75f6d617Schristos * Version 2.1 released. 2320*75f6d617Schristos 2321*75f6d617Schristos * Makefile.in (dist): Survive ln failures. Create .tar.z 2322*75f6d617Schristos (gzipped tar) file as well as .tar.Z (compressed tar) file. 2323*75f6d617Schristos 2324*75f6d617SchristosFri Jan 8 22:31:41 1993 Paul Eggert (eggert@twinsun.com) 2325*75f6d617Schristos 2326*75f6d617Schristos * side.c (print_half_line): When the input position falls 2327*75f6d617Schristos outside the column, do not output a tab even if the output 2328*75f6d617Schristos position still falls within the column. 2329*75f6d617Schristos 2330*75f6d617SchristosMon Dec 21 13:54:36 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) 2331*75f6d617Schristos 2332*75f6d617Schristos * Makefile.in (.c.o): Add -I. 2333*75f6d617Schristos 2334*75f6d617SchristosFri Dec 18 14:08:20 1992 Paul Eggert (eggert@twinsun.com) 2335*75f6d617Schristos 2336*75f6d617Schristos * configure.in: Add HAVE_FCNTL_H, since system.h uses it. 2337*75f6d617Schristos 2338*75f6d617SchristosTue Nov 24 10:06:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 2339*75f6d617Schristos 2340*75f6d617Schristos * Makefile.in: Note change from USG to HAVE_STRING_H. 2341*75f6d617Schristos 2342*75f6d617SchristosMon Nov 23 18:44:00 1992 Paul Eggert (eggert@twinsun.com) 2343*75f6d617Schristos 2344*75f6d617Schristos * io.c (find_and_hash_each_line): When running out of lines, 2345*75f6d617Schristos double the number of allocated lines, instead of just doubling 2346*75f6d617Schristos that number minus the prefix lines. This is more likely to 2347*75f6d617Schristos avoid the need for further memory allocation. 2348*75f6d617Schristos 2349*75f6d617SchristosWed Nov 18 20:40:28 1992 Paul Eggert (eggert@twinsun.com) 2350*75f6d617Schristos 2351*75f6d617Schristos * dir.c (dir_sort): Plug memory leak: space holding directory 2352*75f6d617Schristos contents was not being reclaimed. Get directory size from 2353*75f6d617Schristos struct file_data for initial guess at memory needed. 2354*75f6d617Schristos Detect errors when reading and closing directory. 2355*75f6d617Schristos (diff_dirs): Pass struct file_data to dir_sort. Finish plugging leak. 2356*75f6d617Schristos * diff.c (compare_files): Pass struct file_data to diff_dirs. 2357*75f6d617Schristos 2358*75f6d617Schristos * io.c (find_and_hash_each_line): Don't assume alloc_lines is 2359*75f6d617Schristos nonzero when allocating more lines. 2360*75f6d617Schristos 2361*75f6d617SchristosThu Nov 12 16:02:18 1992 Paul Eggert (eggert@twinsun.com) 2362*75f6d617Schristos 2363*75f6d617Schristos * diff.c (main): Add `-U lines' as an alias for `--unified=lines'. 2364*75f6d617Schristos 2365*75f6d617Schristos * diff3.c (usage): Add third --label option in example. 2366*75f6d617Schristos 2367*75f6d617Schristos * util.c (analyze_hunk): Fix test for ignoring blank lines. 2368*75f6d617Schristos 2369*75f6d617Schristos * configure.in, system.h: Avoid USG; use HAVE_TIME_H etc. instead. 2370*75f6d617Schristos 2371*75f6d617SchristosMon Nov 9 05:13:25 1992 Paul Eggert (eggert@twinsun.com) 2372*75f6d617Schristos 2373*75f6d617Schristos * diff3.c (main, usage): Add -A or --show-all. 2374*75f6d617Schristos -m now defaults to -A, not -E. Allow up to three -L options. 2375*75f6d617Schristos (output_diff3_edscript, output_diff3_merge): 2376*75f6d617Schristos Remove spurious differences between these two functions. 2377*75f6d617Schristos Output ||||||| for -A. Distinguish between conflicts and overlaps. 2378*75f6d617Schristos (dotlines, undotlines): New functions that output `Ns', not `N,Ns'. 2379*75f6d617Schristos (output_diff3_edscript, output_diff3_merge): Use them. 2380*75f6d617Schristos 2381*75f6d617Schristos * io.c (find_identical_ends): shift_boundaries needs an extra 2382*75f6d617Schristos identical line at the end, not at the beginning. 2383*75f6d617Schristos 2384*75f6d617Schristos * sdiff.c (edit): execvp wants char **, not const char **. 2385*75f6d617Schristos 2386*75f6d617SchristosMon Oct 19 04:39:32 1992 Paul Eggert (eggert@twinsun.com) 2387*75f6d617Schristos 2388*75f6d617Schristos * context.c (print_context_script, find_function): Context 2389*75f6d617Schristos line numbers start with - file->prefix_lines, not 0. 2390*75f6d617Schristos 2391*75f6d617Schristos * io.c (binary_file_p): Undo last change; it was a library bug. 2392*75f6d617Schristos 2393*75f6d617SchristosSun Oct 18 00:17:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2394*75f6d617Schristos 2395*75f6d617Schristos * io.c (binary_file_p): Consider empty file as non-binary. 2396*75f6d617Schristos 2397*75f6d617SchristosMon Oct 5 05:18:46 1992 Paul Eggert (eggert@twinsun.com) 2398*75f6d617Schristos 2399*75f6d617Schristos * diff3.c (main, make_3way_diff, using_to_diff3_block): Don't 2400*75f6d617Schristos report bogus differences (for one of -mexEX3) just because the 2401*75f6d617Schristos file0-file1 diffs don't line up with the file0-file2 diffs. 2402*75f6d617Schristos (This is entirely possible since we don't use diff's -n 2403*75f6d617Schristos option.) Always compare file1 to file2, so that diff3 sees 2404*75f6d617Schristos those changes directly. Typically, file2 is now the common 2405*75f6d617Schristos file, not file0. 2406*75f6d617Schristos (output_diff3_merge): The input file is file 0, not the common file. 2407*75f6d617Schristos 2408*75f6d617Schristos (FC, FO): New macros; they replace FILE1, FILE0 for two-way diffs, 2409*75f6d617Schristos to distinguish them from three-way diffs. 2410*75f6d617Schristos 2411*75f6d617Schristos * diff3.c (using_to_diff3_block): Fold repeated code into loops. 2412*75f6d617Schristos 2413*75f6d617Schristos * diff3.c (make_3way_diff, process_diff): Have the *_end 2414*75f6d617Schristos variable point to the next field to be changed, not to the last 2415*75f6d617Schristos object allocated; this saves an if-then-else. 2416*75f6d617Schristos 2417*75f6d617Schristos * diff3.c (process_diff): Use D_NUMLINES instead of its definiens. 2418*75f6d617Schristos 2419*75f6d617Schristos * diff3.c: Make fns and vars static unless they must be external. 2420*75f6d617Schristos 2421*75f6d617SchristosWed Sep 30 09:21:59 1992 Paul Eggert (eggert@twinsun.com) 2422*75f6d617Schristos 2423*75f6d617Schristos * analyze.c (diff_2_files): OUTPUT_IFDEF is now robust. 2424*75f6d617Schristos * diff.h (ROBUST_OUTPUT_STYLE): Likewise. 2425*75f6d617Schristos (default_line_format): Remove. All refs removed. 2426*75f6d617Schristos 2427*75f6d617Schristos * ifdef.c (print_ifdef_lines): Add %L. Optimize %l\n even if user 2428*75f6d617Schristos specified it, as opposed to its being the default. 2429*75f6d617Schristos 2430*75f6d617SchristosTue Sep 29 19:01:28 1992 Paul Eggert (eggert@twinsun.com) 2431*75f6d617Schristos 2432*75f6d617Schristos * diff.c (longopts, main): --{old,new,unchanged,changed}--group-format 2433*75f6d617Schristos are new options, so that -D is no longer overloaded. Set 2434*75f6d617Schristos no_diff_means_no_output if --unchanged-{line,group}-format allows it. 2435*75f6d617Schristos * diff.h (enum line_class): New type. 2436*75f6d617Schristos (group_format, line_format): Use it to regularize option flags. 2437*75f6d617Schristos All refs changed. 2438*75f6d617Schristos 2439*75f6d617Schristos * ifdef.c (format_ifdef, print_ifdef_lines): %n is no longer a format. 2440*75f6d617Schristos 2441*75f6d617SchristosMon Sep 28 04:51:42 1992 Paul Eggert (eggert@twinsun.com) 2442*75f6d617Schristos 2443*75f6d617Schristos * diff.c (main, usage): Replace --line-prefix with the more general 2444*75f6d617Schristos --{old,new,unchanged}-line-format options. 2445*75f6d617Schristos * ifdef.c (format_ifdef, print_ifdef_lines): Likewise. 2446*75f6d617Schristos * diff.h (line_format): Renamed from line_prefix. All refs changed. 2447*75f6d617Schristos * diff.h, ifdef.c (default_line_format): New variable. 2448*75f6d617Schristos * util.c (output_1_line): New function. 2449*75f6d617Schristos (print_1_line): Use it. 2450*75f6d617Schristos 2451*75f6d617Schristos * ifdef.c: (format_ifdef, print_ifdef_lines): Add %0 format. 2452*75f6d617Schristos 2453*75f6d617SchristosSun Sep 27 05:38:13 1992 Paul Eggert (eggert@twinsun.com) 2454*75f6d617Schristos 2455*75f6d617Schristos * diff.c (main): Add -E or --line-prefix option. Add -D'=xxx' 2456*75f6d617Schristos for common lines. Change default -D< format from copy of -D> 2457*75f6d617Schristos format to to -D<%<; similarly for default -D> format. 2458*75f6d617Schristos * diff.h (common_format, line_prefix): New variables. 2459*75f6d617Schristos * ifdef.c (format_ifdef): New function. 2460*75f6d617Schristos (print_ifdef_script, print_ifdef_hunk, print_ifdef_lines): 2461*75f6d617Schristos Use it for -D'=xxx', -E. 2462*75f6d617Schristos 2463*75f6d617Schristos * context.c (find_hunk): Glue together two non-ignorable changes that 2464*75f6d617Schristos are exactly CONTEXT * 2 lines apart. This shortens output, removes 2465*75f6d617Schristos a behavioral discontinuity at CONTEXT = 0, and is more compatible 2466*75f6d617Schristos with traditional diff. 2467*75f6d617Schristos 2468*75f6d617Schristos * io.c (find_identical_ends): Slurp stdin at most once. 2469*75f6d617Schristos 2470*75f6d617Schristos * util.c (print_line_line): line_flag is const char *. 2471*75f6d617Schristos 2472*75f6d617SchristosThu Sep 24 15:18:07 1992 Paul Eggert (eggert@twinsun.com) 2473*75f6d617Schristos 2474*75f6d617Schristos * ifdef.c (print_ifdef_lines): New function, which fwrites a sequence 2475*75f6d617Schristos of lines all at once for speed. 2476*75f6d617Schristos (print_ifdef_script, print_ifdef_hunk): Use it. 2477*75f6d617Schristos 2478*75f6d617SchristosThu Sep 24 05:54:14 1992 Paul Eggert (eggert@twinsun.com) 2479*75f6d617Schristos 2480*75f6d617Schristos * diff.c (main): Support new -D options for if-then-else formats. 2481*75f6d617Schristos (specify_format): New function. 2482*75f6d617Schristos * diff.h (ifndef_format, ifdef_format, ifnelse_format): New variables. 2483*75f6d617Schristos * ifdef.c (print_ifdef_hunk): Use the new variables instead of 2484*75f6d617Schristos a hardwired format. 2485*75f6d617Schristos 2486*75f6d617Schristos * side.c (print_1sdiff_line): Represent incomplete lines on output. 2487*75f6d617Schristos (print_sdiff_script): Likewise. Don't print 'q' at end, 2488*75f6d617Schristos since that doesn't work with incomplete lines. 2489*75f6d617Schristos * sdiff.c (interact): Don't assume diff output ends with 'q' line. 2490*75f6d617Schristos * diff.h (ROBUST_OUTPUT_STYLE): OUTPUT_SDIFF is now robust. 2491*75f6d617Schristos 2492*75f6d617Schristos * sdiff.c (lf_copy, lf_snarf): Use memchr instead of index, 2493*75f6d617Schristos to avoid dumping core when files contain null characters. 2494*75f6d617Schristos (memchr): New function (if memchr is missing). 2495*75f6d617Schristos 2496*75f6d617Schristos * io.c (sip): New arg SKIP_TEST to skip test for binary file. 2497*75f6d617Schristos (read_files): Don't bother testing second file if first is binary. 2498*75f6d617Schristos 2499*75f6d617SchristosThu Sep 17 21:17:49 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2500*75f6d617Schristos 2501*75f6d617Schristos * system.h [!USG && !_POSIX_VERSION]: Protect from conflicting 2502*75f6d617Schristos prototype for wait in sys/wait.h. 2503*75f6d617Schristos 2504*75f6d617SchristosWed Sep 16 12:32:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2505*75f6d617Schristos 2506*75f6d617Schristos * Makefile.in: Include binprefix in -DDIFF_PROGRAM. 2507*75f6d617Schristos 2508*75f6d617SchristosTue Sep 15 14:27:25 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2509*75f6d617Schristos 2510*75f6d617Schristos * Version 2.0. 2511*75f6d617Schristos 2512*75f6d617SchristosSat Sep 12 01:31:19 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2513*75f6d617Schristos 2514*75f6d617Schristos * util.c, diff.h, system.h [!HAVE_MEMCHR]: Don't use void * 2515*75f6d617Schristos and const when declaring memchr replacement. Declare memchr 2516*75f6d617Schristos if !STDC_HEADERS && !USG. 2517*75f6d617Schristos 2518*75f6d617SchristosThu Sep 10 15:17:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2519*75f6d617Schristos 2520*75f6d617Schristos * Makefile.in (uninstall): New target. 2521*75f6d617Schristos 2522*75f6d617Schristos * diff.c (excluded_filename): Use fnmatch, not wildmat. 2523*75f6d617Schristos (usage): Document -x, -X, --exclude, --exclude-from. 2524*75f6d617Schristos Makefile.in: Use fnmatch.c, not wildmat.c. 2525*75f6d617Schristos 2526*75f6d617SchristosSun Sep 6 23:46:25 1992 Paul Eggert (eggert@twinsun.com) 2527*75f6d617Schristos 2528*75f6d617Schristos * configure.in: Add HAVE_MEMCHR. 2529*75f6d617Schristos * diff.h, util.c: Use it instead of MEMCHR_MISSING. 2530*75f6d617Schristos 2531*75f6d617SchristosSun Sep 6 07:25:49 1992 Paul Eggert (eggert@twinsun.com) 2532*75f6d617Schristos 2533*75f6d617Schristos * diff.h: (struct line_def): Replace this 3-word struct with char *. 2534*75f6d617Schristos This uses less memory, particularly for large files with short lines. 2535*75f6d617Schristos (struct file_data): New member linbuf_base counts number of lines 2536*75f6d617Schristos in common prefix that are not recorded in linbuf; 2537*75f6d617Schristos this uses less memory if files are identical or differ only at end. 2538*75f6d617Schristos New member buffered_lines counts possibly differing lines. 2539*75f6d617Schristos New member valid_lines counts valid data. 2540*75f6d617Schristos New member alloc_lines - linbuf_base replaces old linbufsize. 2541*75f6d617Schristos linbuf[0] now always points at first differing line. 2542*75f6d617Schristos Remove unused members ltran, suffix_lines. 2543*75f6d617Schristos Add const where appropriate. 2544*75f6d617Schristos (Is_space): New macro, for consistent definition of `white space'. 2545*75f6d617Schristos (excluded_filename, memchr, sip, slurp): New declarations. 2546*75f6d617Schristos * ed.c (print_ed_hunk): Adjust to diff.h's struct changes. 2547*75f6d617Schristos * context.c (pr_context_hunk): Likewise. 2548*75f6d617Schristos * ifdef.c (print_ifdef_script): Likewise. 2549*75f6d617Schristos * side.c (print_sdiff_script, print_half_line): Likewise. 2550*75f6d617Schristos * util.c (analyze_hunk, line_cmp, print_1_line): Likewise. 2551*75f6d617Schristos 2552*75f6d617Schristos * analyze.c (shift_boundaries): Remove unneeded variable `end' and 2553*75f6d617Schristos unnecessary comparisons of `preceding' and `other_preceding' against 0. 2554*75f6d617Schristos (diff_2_files): When comparing files byte-by-byte for equality, 2555*75f6d617Schristos don't slurp them all in at once; just compare them a buffer at a time. 2556*75f6d617Schristos This can win big if they differ early on. 2557*75f6d617Schristos Move some code to compare_files to enable this change. 2558*75f6d617Schristos Use only one buffer for stdin with `diff - -'. 2559*75f6d617Schristos (discard_confusing_lines, diff_2_files): Coalesce malloc/free calls. 2560*75f6d617Schristos (build_script): Remove obsolete OUTPUT_RCS code. 2561*75f6d617Schristos 2562*75f6d617Schristos * diff.c (add_exclude, add_exclude_file, excluded_filename): New fns. 2563*75f6d617Schristos (main): Use them for the new --exclude and --exclude-from options. 2564*75f6d617Schristos (compare_files): Don't open a file unless it must be read. 2565*75f6d617Schristos Treat `diff file file' and `diff file dir' similarly. 2566*75f6d617Schristos Move some code here from diff_2_files to enable this. 2567*75f6d617Schristos Simplify file vs dir warning. 2568*75f6d617Schristos 2569*75f6d617Schristos * dir.c (dir_sort): Support new --exclude* options. 2570*75f6d617Schristos 2571*75f6d617Schristos * io.c (struct equivclass): Put hash code and line length here instead 2572*75f6d617Schristos of struct line_def, so that they can be shared. 2573*75f6d617Schristos (find_and_hash_each_line): Compute equivalence class as we go, 2574*75f6d617Schristos instead of doing it in a separate pass; this thrashes memory less. 2575*75f6d617Schristos Make buckets realloc-able, since we can't preallocate them. 2576*75f6d617Schristos Record one more line start than there are lines, so that we can compute 2577*75f6d617Schristos any line's length by subtracting its start from the next line's, 2578*75f6d617Schristos instead of storing the length explicitly. This saves memory. 2579*75f6d617Schristos Move prefix-handling code to find_identical_ends; 2580*75f6d617Schristos this wins with large prefixes. 2581*75f6d617Schristos Use Is_space, not is_space, for consistent treatment of white space. 2582*75f6d617Schristos (prepare_text_end): New function. 2583*75f6d617Schristos (find_identical_ends): Move slurping here, so it's only done when 2584*75f6d617Schristos needed. Work even if the buffers are the same (because of `diff - -'). 2585*75f6d617Schristos Compare prefixes a word at a time for speed. 2586*75f6d617Schristos (find_equiv_class): Delete; now done by find_and_hash_each_line. 2587*75f6d617Schristos (read_files): Don't slurp unless needed. 2588*75f6d617Schristos find_equiv_class's work is now folded into find_and_hash_each_line. 2589*75f6d617Schristos Don't copy stdin buffer if `diff - -'. 2590*75f6d617Schristos Check for running out of primes. 2591*75f6d617Schristos (sip, slurp): Split first part of `slurp' into another function `sip'. 2592*75f6d617Schristos `sip' sets things up and perhaps reads the first ST_BLKSIZE buffer to 2593*75f6d617Schristos see whether the file is binary; `slurp' now just finishes the job. 2594*75f6d617Schristos This lets diff_2_files compare binary files lazily. 2595*75f6d617Schristos Allocate a one-word sentinel to allow word-at-a-time prefix comparison. 2596*75f6d617Schristos Count prefix lines only if needed, only count the first file's prefix. 2597*75f6d617Schristos Don't bother to count suffix lines; it's never needed. 2598*75f6d617Schristos Set up linbuf[0] to point at first differing line. 2599*75f6d617Schristos (binary_file_p): Change test for binary files: 2600*75f6d617Schristos if it has a null byte in its first buffer, it's binary. 2601*75f6d617Schristos (primes): Add more primes. 2602*75f6d617Schristos 2603*75f6d617Schristos * util.c (line_cmp): Use bcmp for speed. 2604*75f6d617Schristos Use Is_space, not is_space, for consistent treatment of white space. 2605*75f6d617Schristos (translate_line_number): Internal line numbers now count from 0 2606*75f6d617Schristos starting after the prefix. 2607*75f6d617Schristos (memchr): New function (if memchr is missing). 2608*75f6d617Schristos 2609*75f6d617Schristos * Makefile.in: Document HAVE_ST_BLKSIZE. Link with wildmat.o. 2610*75f6d617Schristos * system.h (STAT_BLOCKSIZE): New macro based on HAVE_ST_BLKSIZE. 2611*75f6d617Schristos * configure.in: Add AC_ST_BLKSIZE. 2612*75f6d617Schristos * wildmat.c: New file. 2613*75f6d617Schristos 2614*75f6d617SchristosFri Sep 4 01:28:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2615*75f6d617Schristos 2616*75f6d617Schristos * sdiff.c (xmalloc): Renamed from ck_malloc. Callers changed. 2617*75f6d617Schristos 2618*75f6d617SchristosThu Sep 3 15:28:59 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2619*75f6d617Schristos 2620*75f6d617Schristos * diff.h: Don't declare free, index, rindex. 2621*75f6d617Schristos 2622*75f6d617SchristosTue Aug 11 22:18:06 1992 John Gilmore (gnu at cygnus.com) 2623*75f6d617Schristos 2624*75f6d617Schristos * io.c (binary_file_p): Use heuristic to avoid declaring info 2625*75f6d617Schristos files as binary files. Allow about 1.5% non-printing 2626*75f6d617Schristos characters (in info's case, ^_). 2627*75f6d617Schristos 2628*75f6d617SchristosTue Jul 7 01:09:26 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2629*75f6d617Schristos 2630*75f6d617Schristos * diff.h: Replace function_regexp and ignore_regexp with lists 2631*75f6d617Schristos of compiled regexps. 2632*75f6d617Schristos * analyze.c, context.c, util.c: Test whether the lists, not 2633*75f6d617Schristos the old variables, are empty. 2634*75f6d617Schristos * util.c (analyze_hunk), context.c (find_function): Compare 2635*75f6d617Schristos lines with the lists of regexps. 2636*75f6d617Schristos * diff.c (add_regexp): New function. 2637*75f6d617Schristos (main): Use it. 2638*75f6d617Schristos 2639*75f6d617Schristos * diff3: Add -v --version option. 2640*75f6d617Schristos * Makefile.in: Link with version.o. 2641*75f6d617Schristos 2642*75f6d617Schristos * system.h: New file. 2643*75f6d617Schristos * diff.h, cmp.c, diff3.c, sdiff.c: Use it. 2644*75f6d617Schristos 2645*75f6d617Schristos * diff.h, diff3.c: Include string.h or strings.h, as appropriate. 2646*75f6d617Schristos Declare malloc and realloc. 2647*75f6d617Schristos 2648*75f6d617Schristos * diff3.c (perror_with_exit): Include program name in message. 2649*75f6d617Schristos 2650*75f6d617Schristos * diff3.c: Lowercase error messages for GNU standards. 2651*75f6d617Schristos 2652*75f6d617Schristos * sdiff.c [USG || STDC_HEADERS]: Define bcopy in terms of memcpy. 2653*75f6d617Schristos 2654*75f6d617Schristos * sdiff.c: Use the version number from version.c. 2655*75f6d617Schristos * Makefile.in: Link with version.o. 2656*75f6d617Schristos 2657*75f6d617Schristos * cmp.c error.c xmalloc.c: New files from textutils. 2658*75f6d617Schristos * Makefile.in: Add rules for them. 2659*75f6d617Schristos 2660*75f6d617Schristos * diff.c (longopts): --unidirectional-new-file is like -P, not -N. 2661*75f6d617Schristos Rename --file-label to --label (leave old name, but undocumented). 2662*75f6d617Schristos 2663*75f6d617Schristos * sdiff.c, diff.c (usage): Condense messages and fix some errors. 2664*75f6d617Schristos 2665*75f6d617Schristos * diff3.c (main, usage): Add long-named options. 2666*75f6d617Schristos 2667*75f6d617SchristosFri Jul 3 14:31:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 2668*75f6d617Schristos 2669*75f6d617Schristos * diff.h, diff3.c, sdiff.c: Change FOO_MISSING macros to HAVE_FOO. 2670*75f6d617Schristos 2671*75f6d617SchristosThu Jun 25 16:59:47 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) 2672*75f6d617Schristos 2673*75f6d617Schristos * diff.c: --reversed-ed -> --forward-ed. 2674*75f6d617Schristos 2675*75f6d617SchristosWed Feb 26 12:17:32 1992 Paul Eggert (eggert@yata.uucp) 2676*75f6d617Schristos 2677*75f6d617Schristos * analyze.c, diff.c, diff.h, io.c: For -y, compare even if same file. 2678*75f6d617Schristos 2679*75f6d617SchristosFri Feb 14 22:46:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2680*75f6d617Schristos 2681*75f6d617Schristos * io.c, diff3.c, analyze.c: Add extra parentheses. 2682*75f6d617Schristos 2683*75f6d617SchristosSun Feb 9 00:22:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 2684*75f6d617Schristos 2685*75f6d617Schristos * diff.h (unidirectional_new_file_flag): New variable. 2686*75f6d617Schristos * diff.c (main): Set that for -P. 2687*75f6d617Schristos (compare_files): Support -P, somewhat like -N. 2688*75f6d617Schristos (longopts): Support long name for -P. 2689*75f6d617Schristos 2690*75f6d617SchristosSat Jan 4 20:10:34 1992 Paul Eggert (eggert at yata.uucp) 2691*75f6d617Schristos 2692*75f6d617Schristos * Makefile.in: Distribute diff.info-* too. 2693*75f6d617Schristos 2694*75f6d617Schristos * README, sdiff.c: version number now matches version.c. 2695*75f6d617Schristos 2696*75f6d617Schristos * configure: Fix and document vfork test. 2697*75f6d617Schristos 2698*75f6d617Schristos * ifdef.c: Don't dump core if `diff -Dx f f'. 2699*75f6d617Schristos 2700*75f6d617SchristosMon Dec 23 23:36:08 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 2701*75f6d617Schristos 2702*75f6d617Schristos * diff.h, diff3.c, sdiff.c: Change POSIX ifdefs to 2703*75f6d617Schristos HAVE_UNISTD_H and _POSIX_VERSION. 2704*75f6d617Schristos 2705*75f6d617SchristosWed Dec 18 17:00:31 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 2706*75f6d617Schristos 2707*75f6d617Schristos * Makefile.in (srcs): Add sdiff.c. 2708*75f6d617Schristos (tapefiles): Add diff.texi and diff.info. 2709*75f6d617Schristos 2710*75f6d617Schristos * diff.h, diff3.c, sdiff.c: Use HAVE_VFORK_H instead of 2711*75f6d617Schristos VFORK_HEADER and VFORK_WORKS. 2712*75f6d617Schristos 2713*75f6d617SchristosTue Dec 17 00:02:59 1991 Paul Eggert (eggert at yata.uucp) 2714*75f6d617Schristos 2715*75f6d617Schristos * Makefile.in (all): Add diff.info, sdiff. 2716*75f6d617Schristos 2717*75f6d617Schristos * configure, diff.c, sdiff.c: 2718*75f6d617Schristos Prefix long options with `--', not `+'. 2719*75f6d617Schristos * diff.c: Regularize option names. 2720*75f6d617Schristos 2721*75f6d617Schristos * configure: Fix check for vfork. 2722*75f6d617Schristos * configure, diff.c, diff.h, diff3.c, sdiff.c: 2723*75f6d617Schristos Use Posix definitions when possible. 2724*75f6d617Schristos 2725*75f6d617Schristos * context.c: Align context with tab if -T is given. Tune. 2726*75f6d617Schristos * diff.c, diff.h, side.c: Calculate column widths so that tabs line up. 2727*75f6d617Schristos * io.c: Add distinction between white space and printing chars. 2728*75f6d617Schristos * side.c: Don't expand tabs unless -t is given. 2729*75f6d617Schristos * side.c, util.c: Tab expansion now knows about '\b', '\f', '\r', '\v'. 2730*75f6d617Schristos * util.c: -w skips all white space. Remove lint. Tune. 2731*75f6d617Schristos 2732*75f6d617Schristos * sdiff.c: Support many more diff options, e.g. `-', `sdiff file dir'. 2733*75f6d617Schristos Ignore interrupts while the subsidiary editor is in control. 2734*75f6d617Schristos Clean up temporary file and kill subsidiary diff if interrupted. 2735*75f6d617Schristos Ensure subsidiary diff doesn't ignore SIGPIPE. 2736*75f6d617Schristos Don't get confused while waiting for two subprocesses. 2737*75f6d617Schristos Don't let buffers overflow. Check for I/O errors. 2738*75f6d617Schristos Convert to GNU style. Tune. 2739*75f6d617Schristos 2740*75f6d617Schristos * sdiff.c, util.c: Don't lose errno. 2741*75f6d617Schristos Don't confuse sdiff with messages like `Binary files differ'. 2742*75f6d617Schristos * sdiff.c, side.c: Don't assume that common lines are identical. 2743*75f6d617Schristos Simplify --sdiff-merge-assist format. 2744*75f6d617Schristos 2745*75f6d617SchristosMon Sep 16 16:42:01 1991 Tom Lord (lord at churchy.gnu.ai.mit.edu) 2746*75f6d617Schristos 2747*75f6d617Schristos * Makefile.in, sdiff.c: introduced sdiff front end to diff. 2748*75f6d617Schristos 2749*75f6d617Schristos * Makefile.in, analyze.c, diff.c, diff.h, io.c, side.c: Added 2750*75f6d617Schristos sdiff-style output format to diff. 2751*75f6d617Schristos 2752*75f6d617SchristosMon Aug 26 16:44:55 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu) 2753*75f6d617Schristos 2754*75f6d617Schristos * Makefile.in, configure: Only put $< in Makefile if using VPATH, 2755*75f6d617Schristos because older makes don't understand it. 2756*75f6d617Schristos 2757*75f6d617SchristosFri Aug 2 12:22:30 1991 David J. MacKenzie (djm at apple-gunkies) 2758*75f6d617Schristos 2759*75f6d617Schristos * configure: Create config.status. Remove it and Makefile if 2760*75f6d617Schristos interrupted while creating them. 2761*75f6d617Schristos 2762*75f6d617SchristosThu Aug 1 22:24:31 1991 David J. MacKenzie (djm at apple-gunkies) 2763*75f6d617Schristos 2764*75f6d617Schristos * configure: Check for +srcdir etc. arg and look for 2765*75f6d617Schristos Makefile.in in that directory. Set VPATH if srcdir is not `.'. 2766*75f6d617Schristos * Makefile.in: Get rid of $(archpfx). 2767*75f6d617Schristos 2768*75f6d617SchristosTue Jul 30 21:28:44 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 2769*75f6d617Schristos 2770*75f6d617Schristos * Makefile.in (prefix): Renamed from DESTDIR. 2771*75f6d617Schristos 2772*75f6d617SchristosWed Jul 24 23:08:56 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 2773*75f6d617Schristos 2774*75f6d617Schristos * diff.h, diff3.c: Rearrange ifdefs to use POSIX, 2775*75f6d617Schristos STDC_HEADERS, VFORK_MISSING, DIRENT. This way it works on 2776*75f6d617Schristos more systems that aren't pure USG or BSD. 2777*75f6d617Schristos Don't not define const if __GNUC__ is defined -- that would 2778*75f6d617Schristos break with -traditional. 2779*75f6d617Schristos * configure: Check for those features. 2780*75f6d617Schristos 2781*75f6d617SchristosWed Jul 10 01:39:23 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 2782*75f6d617Schristos 2783*75f6d617Schristos * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL). 2784*75f6d617Schristos 2785*75f6d617SchristosSat Jul 6 16:39:04 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 2786*75f6d617Schristos 2787*75f6d617Schristos * Replace Makefile with configure and Makefile.in. 2788*75f6d617Schristos Update README with current compilation instructions. 2789*75f6d617Schristos 2790*75f6d617SchristosSat Jul 6 14:03:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 2791*75f6d617Schristos 2792*75f6d617Schristos * util.c (setup_output): Just save the args for later use. 2793*75f6d617Schristos (begin_output): Do the real work, with the values that were saved. 2794*75f6d617Schristos It's safe to call begin_output more than once. 2795*75f6d617Schristos Print the special headers for context format here. 2796*75f6d617Schristos * analyze.c (diff_2_files): Don't print special headers here. 2797*75f6d617Schristos * context.c (pr_context_hunk, pr_unidiff_hunk): Call begin_output. 2798*75f6d617Schristos * ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk): 2799*75f6d617Schristos * normal.c (print_normal_hunk): Likewise. 2800*75f6d617Schristos * ifdef.c (print_ifdef_hunk): Likewise. 2801*75f6d617Schristos * util.c (finish_output): Don't die if begin_output was not called. 2802*75f6d617Schristos 2803*75f6d617SchristosThu Jun 20 23:10:01 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 2804*75f6d617Schristos 2805*75f6d617Schristos * Makefile: Add TAGS, distclean, and realclean targets. 2806*75f6d617Schristos Set SHELL. 2807*75f6d617Schristos 2808*75f6d617SchristosTue Apr 30 13:54:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 2809*75f6d617Schristos 2810*75f6d617Schristos * diff.h (TRUE, FALSE): Undefine these before defining. 2811*75f6d617Schristos 2812*75f6d617SchristosThu Mar 14 18:27:27 1991 Richard Stallman (rms@mole.ai.mit.edu) 2813*75f6d617Schristos 2814*75f6d617Schristos * Makefile (objs): Include $(ALLOCA). 2815*75f6d617Schristos 2816*75f6d617SchristosSat Mar 9 22:34:03 1991 Richard Stallman (rms at mole.ai.mit.edu) 2817*75f6d617Schristos 2818*75f6d617Schristos * diff.h: Include regex.h. 2819*75f6d617Schristos 2820*75f6d617SchristosThu Feb 28 18:59:53 1991 Richard Stallman (rms at mole.ai.mit.edu) 2821*75f6d617Schristos 2822*75f6d617Schristos * Makefile (diff3): Link with GNU getopt. 2823*75f6d617Schristos 2824*75f6d617SchristosSat Feb 23 12:49:43 1991 Richard Stallman (rms at mole.ai.mit.edu) 2825*75f6d617Schristos 2826*75f6d617Schristos * io.c (find_equiv_class): Make hash code unsigned before mod. 2827*75f6d617Schristos 2828*75f6d617Schristos * diff.h (files): Add EXTERN. 2829*75f6d617Schristos 2830*75f6d617SchristosSun Jan 13 21:33:01 1991 Richard Stallman (rms at mole.ai.mit.edu) 2831*75f6d617Schristos 2832*75f6d617Schristos * diff.c: +print option renamed +paginate. Remove +all-text. 2833*75f6d617Schristos 2834*75f6d617SchristosMon Jan 7 06:18:01 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 2835*75f6d617Schristos 2836*75f6d617Schristos * Makefile (dist): New target, replacing diff.tar and 2837*75f6d617Schristos diff.tar.Z, to encode version number in distribution directory 2838*75f6d617Schristos and tar file names. 2839*75f6d617Schristos 2840*75f6d617SchristosSun Jan 6 18:42:23 1991 Michael I Bushnell (mib at geech.ai.mit.edu) 2841*75f6d617Schristos 2842*75f6d617Schristos * Version 1.15 released. 2843*75f6d617Schristos 2844*75f6d617Schristos * version.c: Updated from 1.15 alpha to 1.15 2845*75f6d617Schristos 2846*75f6d617Schristos * context.c (print_context_number_range, 2847*75f6d617Schristos print_unidiff_number_range): Don't print N,M when N=M, print 2848*75f6d617Schristos just N instead. 2849*75f6d617Schristos 2850*75f6d617Schristos * README: Updated for version 1.15. 2851*75f6d617Schristos Makefile: Updated for version 1.15. 2852*75f6d617Schristos 2853*75f6d617Schristos * diff3.c (main): Don't get confused if one of the arguments 2854*75f6d617Schristos is a directory. 2855*75f6d617Schristos 2856*75f6d617Schristos * diff.c (compare_files): Don't get confused if comparing 2857*75f6d617Schristos standard input to a directory; print error instead. 2858*75f6d617Schristos 2859*75f6d617Schristos * analyze.c (diff_2_files), context.c (print_context_header, 2860*75f6d617Schristos print_context_script), diff.c (main), diff.h (enum 2861*75f6d617Schristos output_style): Tread unidiff as an output style in its own 2862*75f6d617Schristos right. This also generates an error when both -u and -c are 2863*75f6d617Schristos given. 2864*75f6d617Schristos 2865*75f6d617Schristos * diff.c (main): Better error messages when regexps are bad. 2866*75f6d617Schristos 2867*75f6d617Schristos * diff.c (compare_files): Don't assume stdin is opened. 2868*75f6d617Schristos 2869*75f6d617Schristos * diff3.c (read_diff): Don't assume things about the order of 2870*75f6d617Schristos descriptor assignment and closes. 2871*75f6d617Schristos 2872*75f6d617Schristos * util.c (setup_output): Don't assume things about the order 2873*75f6d617Schristos of descriptor assignment and closes. 2874*75f6d617Schristos 2875*75f6d617Schristos * diff.c (compare_files): Set a flag so that closes don't 2876*75f6d617Schristos happen more than once. 2877*75f6d617Schristos 2878*75f6d617Schristos * diff.c (main): Don't just flush stdout, do a close. That 2879*75f6d617Schristos way on broken systems we can still get errors. 2880*75f6d617Schristos 2881*75f6d617SchristosMon Dec 24 16:24:17 1990 Richard Stallman (rms at mole.ai.mit.edu) 2882*75f6d617Schristos 2883*75f6d617Schristos * diff.c (usage): Use = for args of long options. 2884*75f6d617Schristos 2885*75f6d617SchristosMon Dec 17 18:19:20 1990 Michael I Bushnell (mib at geech.ai.mit.edu) 2886*75f6d617Schristos 2887*75f6d617Schristos * context.c (print_context_label): Labels were interchanged badly. 2888*75f6d617Schristos 2889*75f6d617Schristos * context.c (pr_unidiff_hunk): Changes to deal with files 2890*75f6d617Schristos ending in incomplete lines. 2891*75f6d617Schristos * util.c (print_1_line): Other half of the changes. 2892*75f6d617Schristos 2893*75f6d617SchristosMon Dec 3 14:23:55 1990 Richard Stallman (rms at mole.ai.mit.edu) 2894*75f6d617Schristos 2895*75f6d617Schristos * diff.c (longopts, usage): unidiff => unified. 2896*75f6d617Schristos 2897*75f6d617SchristosWed Nov 7 17:13:08 1990 Richard Stallman (rms at mole.ai.mit.edu) 2898*75f6d617Schristos 2899*75f6d617Schristos * analyze.c (diff_2_files): No warnings about newlines for -D. 2900*75f6d617Schristos 2901*75f6d617Schristos * diff.c (pr_unidiff_hunk): Remove ref to output_patch_flag. 2902*75f6d617Schristos 2903*75f6d617SchristosTue Oct 23 23:19:18 1990 Richard Stallman (rms at mole.ai.mit.edu) 2904*75f6d617Schristos 2905*75f6d617Schristos * diff.c (compare_files): For -D, compare even args are same file. 2906*75f6d617Schristos * analyze.c (diff_2_files): Likewise. 2907*75f6d617Schristos Also, output even if files have no differences. 2908*75f6d617Schristos 2909*75f6d617Schristos * analyze.c (diff_2_files): Print missing newline messages last. 2910*75f6d617Schristos Return 2 if a newline is missing. 2911*75f6d617Schristos Print them even if files end with identical text. 2912*75f6d617Schristos 2913*75f6d617SchristosMon Oct 22 19:40:09 1990 Richard Stallman (rms at mole.ai.mit.edu) 2914*75f6d617Schristos 2915*75f6d617Schristos * diff.c (usage): Return 2. 2916*75f6d617Schristos 2917*75f6d617SchristosWed Oct 10 20:54:04 1990 Richard Stallman (rms at mole.ai.mit.edu) 2918*75f6d617Schristos 2919*75f6d617Schristos * diff.c (longopts): Add +new-files. 2920*75f6d617Schristos 2921*75f6d617SchristosSun Sep 23 22:49:29 1990 Richard Stallman (rms at mole.ai.mit.edu) 2922*75f6d617Schristos 2923*75f6d617Schristos * context.c (print_context_script): Handle unidiff_flag. 2924*75f6d617Schristos (print_context_header): Likewise. 2925*75f6d617Schristos (print_unidiff_number_range, pr_unidiff_hunk): New functions. 2926*75f6d617Schristos * diff.c (longopts): Add element for +unidiff. 2927*75f6d617Schristos (main): Handle +unidiff and -u. 2928*75f6d617Schristos (usage): Mention them. 2929*75f6d617Schristos 2930*75f6d617SchristosWed Sep 5 16:33:22 1990 Richard Stallman (rms at mole.ai.mit.edu) 2931*75f6d617Schristos 2932*75f6d617Schristos * io.c (find_and_hash_each_line): Deal with missing final newline 2933*75f6d617Schristos after buffering necessary context lines. 2934*75f6d617Schristos 2935*75f6d617SchristosSat Sep 1 16:32:32 1990 Richard Stallman (rms at mole.ai.mit.edu) 2936*75f6d617Schristos 2937*75f6d617Schristos * io.c (find_identical_ends): ROBUST_OUTPUT_FORMAT test was backward. 2938*75f6d617Schristos 2939*75f6d617SchristosThu Aug 23 17:17:20 1990 Richard Stallman (rms at mole.ai.mit.edu) 2940*75f6d617Schristos 2941*75f6d617Schristos * diff3.c (WIFEXITED): Undef it if WEXITSTATUS is not defined. 2942*75f6d617Schristos * context.c (find_function): Don't try to return values. 2943*75f6d617Schristos 2944*75f6d617SchristosWed Aug 22 11:54:39 1990 Richard Stallman (rms at mole.ai.mit.edu) 2945*75f6d617Schristos 2946*75f6d617Schristos * diff.h (O_RDONLY): Define if not defined. 2947*75f6d617Schristos 2948*75f6d617SchristosTue Aug 21 13:49:26 1990 Richard Stallman (rms at mole.ai.mit.edu) 2949*75f6d617Schristos 2950*75f6d617Schristos * Handle -L option. 2951*75f6d617Schristos * context.c (print_context_label): New function. 2952*75f6d617Schristos (print_context_header): Use that. 2953*75f6d617Schristos * diff.c (main): Recognize the option. 2954*75f6d617Schristos (usage): Updated. 2955*75f6d617Schristos * diff.h (file_label): New variable. 2956*75f6d617Schristos * diff3.c (main): Recognize -L instead of -t. 2957*75f6d617Schristos 2958*75f6d617Schristos * diff3.c (main): Support -m without other option. 2959*75f6d617Schristos 2960*75f6d617Schristos * diff3.c (WEXITSTATUS, WIFEXITED): Define whenever not defined. 2961*75f6d617Schristos 2962*75f6d617Schristos * diff3.c (bcopy, index, rindex): Delete definitions; not used. 2963*75f6d617Schristos (D_LINENUM, D_LINELEN): Likewise. 2964*75f6d617Schristos (struct diff_block): lengths includes newlines. 2965*75f6d617Schristos (struct diff3_block): Likewise. 2966*75f6d617Schristos (always_text, merge): New variables. 2967*75f6d617Schristos (read_diff): Return address of end, not size read. Calls changed. 2968*75f6d617Schristos Pass -a to diff if given to diff3. 2969*75f6d617Schristos current_chunk_size now an int. Detect error in `pipe'. 2970*75f6d617Schristos Check for incomplete line of output here. 2971*75f6d617Schristos (scan_diff_line): Don't make scan_ptr + 2 before knowing it is valid. 2972*75f6d617Schristos No need to check validity of diff output here. 2973*75f6d617Schristos Include newline in length of line. 2974*75f6d617Schristos (main): Compute rev_mapping here. Handle -a and -m. 2975*75f6d617Schristos Error message if excess -t operands. Error for incompatible options. 2976*75f6d617Schristos Error if `-' given more than once. 2977*75f6d617Schristos Fix error storing in tag_strings. 2978*75f6d617Schristos (output_diff3): REV_MAPPING is now an arg. Call changed. 2979*75f6d617Schristos Change syntax of "missing newline" message. 2980*75f6d617Schristos Expect length of line to include newline. 2981*75f6d617Schristos (output_diff3_edscript): Return just 0 or 1. 2982*75f6d617Schristos REV_MAPPING is now an arg. Call changed. 2983*75f6d617Schristos (output_diff3_merge): New function. 2984*75f6d617Schristos (process_diff): Better error message for bad diff format. 2985*75f6d617Schristos (fatal, perror_with_exit): Return status 2. 2986*75f6d617Schristos 2987*75f6d617Schristos * analyze.c (diff_2_files): Report missing newline in either 2988*75f6d617Schristos or both files, if not robust output style. 2989*75f6d617Schristos 2990*75f6d617Schristos * util.c (setup_output): Detect error from pipe. 2991*75f6d617Schristos No need to close stdin. 2992*75f6d617Schristos 2993*75f6d617Schristos * util.c (print_1_line): Change format of missing-newline msg. 2994*75f6d617Schristos Change if statements to switch. 2995*75f6d617Schristos 2996*75f6d617Schristos * io.c (slurp): Don't mention differences in final newline if -B. 2997*75f6d617Schristos 2998*75f6d617Schristos * io.c (binary_file_p): Use ISO char set as criterion, not ASCII. 2999*75f6d617Schristos 3000*75f6d617Schristos * io.c (find_identical_ends): Increase value of BEG0 by 1. 3001*75f6d617Schristos Other changes in backwards scan to avoid decrementing pointers 3002*75f6d617Schristos before start of array, and set LINES properly. 3003*75f6d617Schristos 3004*75f6d617Schristos * diff.h (ROBUST_OUTPUT_STYLE): New macro. 3005*75f6d617Schristos * io.c (find_identical_ends, find_and_hash_each_line): Use that macro. 3006*75f6d617Schristos 3007*75f6d617Schristos * diff.h (dup2): Don't define if XENIX. 3008*75f6d617Schristos 3009*75f6d617Schristos * diff.c (main): Check for write error at end. 3010*75f6d617Schristos 3011*75f6d617Schristos * context.c (find_function): Don't return a value. 3012*75f6d617Schristos Use argument FILE rather than global files. 3013*75f6d617Schristos 3014*75f6d617Schristos * analyze.c: Add external function declarations. 3015*75f6d617Schristos * analyze.c (build_script): Turn off explicit check for final newline. 3016*75f6d617Schristos 3017*75f6d617Schristos * analyze.c (discard_confusing_lines): Make integers unsigned. 3018*75f6d617Schristos 3019*75f6d617SchristosTue Jul 31 21:37:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3020*75f6d617Schristos 3021*75f6d617Schristos * io.c (find_and_hash_each_line): Correct the criterion 3022*75f6d617Schristos for leaving out the newline from the end of the line. 3023*75f6d617Schristos 3024*75f6d617SchristosTue May 29 21:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3025*75f6d617Schristos 3026*75f6d617Schristos * dir.c (diff_dirs): Free things only if nonzero. 3027*75f6d617Schristos 3028*75f6d617SchristosMon Apr 16 18:31:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3029*75f6d617Schristos 3030*75f6d617Schristos * diff.h (NDIR_IN_SYS): New macro controls location of ndir.h. 3031*75f6d617Schristos 3032*75f6d617Schristos * diff3.c (xmalloc, xrealloc): Don't die if size == 0 returns 0. 3033*75f6d617Schristos 3034*75f6d617SchristosSun Mar 25 15:58:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3035*75f6d617Schristos 3036*75f6d617Schristos * analyze.c (discard_confusing_lines): 3037*75f6d617Schristos `many' wasn't being used; use it. 3038*75f6d617Schristos Canceling provisionals near start of run must handle already 3039*75f6d617Schristos canceled provisionals. 3040*75f6d617Schristos Canceling subruns of provisionals was canceling last nonprovisional. 3041*75f6d617Schristos 3042*75f6d617SchristosSat Mar 24 14:02:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3043*75f6d617Schristos 3044*75f6d617Schristos * analyze.c (discard_confusing_lines): 3045*75f6d617Schristos Threshold for line occurring many times scales by square root 3046*75f6d617Schristos of total lines. 3047*75f6d617Schristos Within each run, cancel any long subrun of provisionals. 3048*75f6d617Schristos Don't update `provisional' while canceling provisionals. 3049*75f6d617Schristos In big outer loop, handle provisional and nonprovisional separately. 3050*75f6d617Schristos 3051*75f6d617SchristosThu Mar 22 16:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3052*75f6d617Schristos 3053*75f6d617Schristos * analyze.c (discard_confusing_lines): 3054*75f6d617Schristos The first loops to discard provisionals from ends failed to step. 3055*75f6d617Schristos In second such loops, keep discarding all consecutive provisionals. 3056*75f6d617Schristos Increase threshold for stopping discarding, and also check for 3057*75f6d617Schristos consecutive nondiscardables as separate threshold. 3058*75f6d617Schristos 3059*75f6d617SchristosFri Mar 16 00:33:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3060*75f6d617Schristos 3061*75f6d617Schristos * diff3.c (read_diff): Pass -- as first arg to diff. 3062*75f6d617Schristos 3063*75f6d617Schristos * diff3.c: Include wait.h or define equivalent macros. 3064*75f6d617Schristos (read_diff): Don't use stdio printing error in the inferior. 3065*75f6d617Schristos Remember the pid and wait for it. Report failing status. 3066*75f6d617Schristos Report failure of vfork. 3067*75f6d617Schristos 3068*75f6d617SchristosSun Mar 11 17:10:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3069*75f6d617Schristos 3070*75f6d617Schristos * diff3.c (main): Accept -t options and pass to output_diff3_edscript. 3071*75f6d617Schristos (usage): Mention -t. 3072*75f6d617Schristos (read_diff): Use vfork. 3073*75f6d617Schristos (vfork): Don't use it on Sparc. 3074*75f6d617Schristos 3075*75f6d617Schristos * diff.h (vfork): Don't use it on Sparc. 3076*75f6d617Schristos 3077*75f6d617SchristosTue Mar 6 22:37:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3078*75f6d617Schristos 3079*75f6d617Schristos * diff3.c (dup2): Don't define on Xenix. 3080*75f6d617Schristos 3081*75f6d617Schristos * Makefile: Comments for Xenix. 3082*75f6d617Schristos 3083*75f6d617SchristosThu Mar 1 17:19:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3084*75f6d617Schristos 3085*75f6d617Schristos * analyze.c (diff_2_files): `message' requires three args. 3086*75f6d617Schristos 3087*75f6d617SchristosFri Feb 23 10:56:50 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 3088*75f6d617Schristos 3089*75f6d617Schristos * diff.h, util.c, diff3.c: Change 'void *' to 'VOID *', with 3090*75f6d617Schristos VOID defined as void if __STDC__, char if not. 3091*75f6d617Schristos 3092*75f6d617SchristosSun Feb 18 20:31:58 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 3093*75f6d617Schristos 3094*75f6d617Schristos * Makefile: Add rules for getopt.c, getopt1.c, getopt.h. 3095*75f6d617Schristos 3096*75f6d617Schristos * getopt.c, getopt.h, getopt1.c: New files. 3097*75f6d617Schristos 3098*75f6d617Schristos * main.c (main, usage): Add long options. 3099*75f6d617Schristos 3100*75f6d617Schristos * analyze.c (shift_boundaries): Remove unused var 'j_end'. 3101*75f6d617Schristos 3102*75f6d617SchristosThu Feb 8 02:43:16 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) 3103*75f6d617Schristos 3104*75f6d617Schristos * GNUmakefile: include ../Makerules before Makefile. 3105*75f6d617Schristos 3106*75f6d617SchristosFri Feb 2 23:21:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3107*75f6d617Schristos 3108*75f6d617Schristos * analyze.c (diff_2_files): If -B or -I, don't return 1 3109*75f6d617Schristos if all changes were ignored. 3110*75f6d617Schristos 3111*75f6d617SchristosWed Jan 24 20:43:57 1990 Richard Stallman (rms at albert.ai.mit.edu) 3112*75f6d617Schristos 3113*75f6d617Schristos * diff3.c (fatal): Output to stderr. 3114*75f6d617Schristos 3115*75f6d617SchristosThu Jan 11 00:25:56 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) 3116*75f6d617Schristos 3117*75f6d617Schristos * diff.c (usage): Mention -v. 3118*75f6d617Schristos 3119*75f6d617SchristosWed Jan 10 16:06:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3120*75f6d617Schristos 3121*75f6d617Schristos * diff3.c (output_diff3_edscript): Return number of overlaps. 3122*75f6d617Schristos (main): If have overlaps, exit with status 1. 3123*75f6d617Schristos 3124*75f6d617SchristosSun Dec 24 10:29:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3125*75f6d617Schristos 3126*75f6d617Schristos * io.c (find_equiv_class): Fix typo that came from changing init of B 3127*75f6d617Schristos to an assignment. 3128*75f6d617Schristos 3129*75f6d617Schristos * version.c: New file. 3130*75f6d617Schristos * diff.c (main): -v prints version number. 3131*75f6d617Schristos 3132*75f6d617Schristos * io.c (binary_file_p): Null char implies binary file. 3133*75f6d617Schristos 3134*75f6d617SchristosFri Nov 17 23:44:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3135*75f6d617Schristos 3136*75f6d617Schristos * util.c (print_1_line): Fix off by 1 error. 3137*75f6d617Schristos 3138*75f6d617SchristosThu Nov 16 13:51:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3139*75f6d617Schristos 3140*75f6d617Schristos * util.c (xcalloc): Function deleted. 3141*75f6d617Schristos 3142*75f6d617Schristos * io.c (slurp): Null-terminate the buffer. 3143*75f6d617Schristos 3144*75f6d617Schristos * io.c (read_files): Delete unused vars. 3145*75f6d617Schristos 3146*75f6d617Schristos * io.c (find_equiv_class): Don't index by N if too low. 3147*75f6d617Schristos 3148*75f6d617Schristos * dir.c (dir_sort): Delete the extra declaration of compare_names. 3149*75f6d617Schristos 3150*75f6d617Schristos * diff.h: Don't declare xcalloc. Declare some other functions. 3151*75f6d617Schristos 3152*75f6d617Schristos * analyze.c (shift_boundaries): 3153*75f6d617Schristos Test for END at end of range before indexing by it. 3154*75f6d617Schristos Fix misspelling of `preceding' in var names. 3155*75f6d617Schristos 3156*75f6d617SchristosSat Nov 11 14:04:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3157*75f6d617Schristos 3158*75f6d617Schristos * diff3.c (using_to_diff3_block): Delete unused vars. 3159*75f6d617Schristos (make_3way_diff, process_diff_control, read_diff, output_diff3): Likewise. 3160*75f6d617Schristos 3161*75f6d617SchristosMon Nov 6 18:15:50 EST 1989 Jay Fenlason (hack@ai.mit.edu) 3162*75f6d617Schristos 3163*75f6d617Schristos * README Fix typo. 3164*75f6d617Schristos 3165*75f6d617SchristosFri Nov 3 15:27:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3166*75f6d617Schristos 3167*75f6d617Schristos * diff.c (usage): Mention -D. 3168*75f6d617Schristos 3169*75f6d617Schristos * ifdef.c (print_ifdef_hunk): Write comments on #else and #endif. 3170*75f6d617Schristos 3171*75f6d617SchristosSun Oct 29 16:41:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3172*75f6d617Schristos 3173*75f6d617Schristos * diff.c (compare_files): Don't fflush for identical files. 3174*75f6d617Schristos 3175*75f6d617SchristosWed Oct 25 17:57:12 1989 Randy Smith (randy at apple-gunkies.ai.mit.edu) 3176*75f6d617Schristos 3177*75f6d617Schristos * diff3.c (using_to_diff3_block): When defaulting lines from 3178*75f6d617Schristos FILE0, only copy up to just under the *lowest* line mentioned 3179*75f6d617Schristos in the next diff. 3180*75f6d617Schristos 3181*75f6d617Schristos * diff3.c (fatal): Add \n to error messages. 3182*75f6d617Schristos 3183*75f6d617SchristosWed Oct 25 15:05:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3184*75f6d617Schristos 3185*75f6d617Schristos * Makefile (tapefiles): Add ChangeLog. 3186*75f6d617Schristos 3187*75f6d617SchristosTue Oct 3 00:51:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3188*75f6d617Schristos 3189*75f6d617Schristos * diff3.c (process_diff, create_diff3_block): Init ->next field. 3190*75f6d617Schristos 3191*75f6d617SchristosFri Sep 29 08:16:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3192*75f6d617Schristos 3193*75f6d617Schristos * util.c (line_cmp): Alter end char of line 2, not line 1. 3194*75f6d617Schristos 3195*75f6d617SchristosWed Sep 20 00:12:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3196*75f6d617Schristos 3197*75f6d617Schristos * Makefile (diff.tar): Expect ln to fail on some files; 3198*75f6d617Schristos copy them with cp. 3199*75f6d617Schristos 3200*75f6d617SchristosMon Sep 18 02:54:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3201*75f6d617Schristos 3202*75f6d617Schristos * Handle -D option: 3203*75f6d617Schristos * io.c (find_and_hash_each_line): Keep all lines of 1st file. 3204*75f6d617Schristos * diff.c (main): Handle -D option. 3205*75f6d617Schristos (compare_files): Reject -D if files spec'd are directories. 3206*75f6d617Schristos * analyze.c (diff_2_files): Handle OUTPUT_IFDEF case. 3207*75f6d617Schristos 3208*75f6d617SchristosFri Sep 1 20:15:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3209*75f6d617Schristos 3210*75f6d617Schristos * diff.c (option_list): Rename arg VECTOR as OPTIONVEC. 3211*75f6d617Schristos 3212*75f6d617SchristosMon Aug 28 17:58:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3213*75f6d617Schristos 3214*75f6d617Schristos * diff.c (compare_files): Clear entire inf[i].stat. 3215*75f6d617Schristos 3216*75f6d617SchristosWed Aug 23 17:48:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3217*75f6d617Schristos 3218*75f6d617Schristos * io.c (find_identical_ends): Sign was backward 3219*75f6d617Schristos determining where to bound the scan for the suffix. 3220*75f6d617Schristos 3221*75f6d617SchristosWed Aug 16 12:49:16 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3222*75f6d617Schristos 3223*75f6d617Schristos * analyze.c (diff_2_files): If -q, treat all files as binary. 3224*75f6d617Schristos * diff.c (main): Detect -q, record in no_details_flag. 3225*75f6d617Schristos 3226*75f6d617SchristosSun Jul 30 23:12:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3227*75f6d617Schristos 3228*75f6d617Schristos * diff.c (usage): New function. 3229*75f6d617Schristos (main): Call it. 3230*75f6d617Schristos 3231*75f6d617SchristosWed Jul 26 02:02:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3232*75f6d617Schristos 3233*75f6d617Schristos * diff.c (main): Make -C imply -c. 3234*75f6d617Schristos 3235*75f6d617SchristosThu Jul 20 17:57:51 1989 Chris Hanson (cph at kleph) 3236*75f6d617Schristos 3237*75f6d617Schristos * io.c (find_and_hash_each_line): Bug fix in context handling, 3238*75f6d617Schristos introduced by last change. 3239*75f6d617Schristos 3240*75f6d617SchristosFri Jul 14 17:39:20 1989 Chris Hanson (cph at kleph) 3241*75f6d617Schristos 3242*75f6d617Schristos * analyze.c: To make RCS work correctly on files that don't 3243*75f6d617Schristos necessarily end in newline, introduce some changes that cause 3244*75f6d617Schristos diffs to be sensitive to missing final newline. Because 3245*75f6d617Schristos non-RCS modes don't want to be affected by these changes, they 3246*75f6d617Schristos are conditional on `output_style == OUTPUT_RCS'. 3247*75f6d617Schristos (diff_2_files) [OUTPUT_RCS]: Suppress the "File X missing 3248*75f6d617Schristos newline" message. 3249*75f6d617Schristos (build_script) [OUTPUT_RCS]: Cause the last line to compare as 3250*75f6d617Schristos different if exactly one of the files is missing its final 3251*75f6d617Schristos newline. 3252*75f6d617Schristos 3253*75f6d617Schristos * io.c (find_and_hash_each_line): Bug fix in 3254*75f6d617Schristos ignore_space_change mode. Change line's length to include the 3255*75f6d617Schristos newline. For OUTPUT_RCS, decrement last line's length if 3256*75f6d617Schristos there is no final newline. 3257*75f6d617Schristos (find_identical_ends) [OUTPUT_RCS]: If one of the files is 3258*75f6d617Schristos missing a final newline, make sure it's not included in either 3259*75f6d617Schristos the prefix or suffix. 3260*75f6d617Schristos 3261*75f6d617Schristos * util.c (print_1_line): Change line output routine to account 3262*75f6d617Schristos for line length including the newline. 3263*75f6d617Schristos 3264*75f6d617SchristosTue Jun 27 02:35:28 1989 Roland McGrath (roland at hobbes.ai.mit.edu) 3265*75f6d617Schristos 3266*75f6d617Schristos * Makefile: Inserted $(archpfx) where appropriate. 3267*75f6d617Schristos 3268*75f6d617SchristosWed May 17 20:18:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3269*75f6d617Schristos 3270*75f6d617Schristos * diff3.c [USG]: Include fcntl.h. 3271*75f6d617Schristos 3272*75f6d617Schristos * diff.h [USG]: New compilation flags HAVE_NDIR, HAVE_DIRECT. 3273*75f6d617Schristos 3274*75f6d617SchristosWed Apr 26 15:35:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3275*75f6d617Schristos 3276*75f6d617Schristos * dir.c (diff_dirs): Two new args, NONEX1 and NONEX2, say to pretend 3277*75f6d617Schristos nonex dirs are empty. 3278*75f6d617Schristos (dir_sort): New arg NONEX, likewise. 3279*75f6d617Schristos * diff.c (compare_files): Pass those args. 3280*75f6d617Schristos Sometimes call diff_dirs if subdir exists in just one place. 3281*75f6d617Schristos 3282*75f6d617SchristosWed Apr 12 01:10:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3283*75f6d617Schristos 3284*75f6d617Schristos * io.c (find_identical_ends): Set END0 *after* last char 3285*75f6d617Schristos during backward scan for suffix. 3286*75f6d617Schristos 3287*75f6d617SchristosSat Apr 8 15:49:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 3288*75f6d617Schristos 3289*75f6d617Schristos * diff3.c (using_to_diff3_block): Now find high marks in files 1 3290*75f6d617Schristos and 2 through mapping off of the last difference instead of the 3291*75f6d617Schristos first. 3292*75f6d617Schristos 3293*75f6d617Schristos * diff3.c: Many trivial changes to spelling inside comments. 3294*75f6d617Schristos 3295*75f6d617SchristosFri Feb 24 12:38:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) 3296*75f6d617Schristos 3297*75f6d617Schristos * util.c, normal.c, io.c, ed.c, dir.c, diff.h, diff.c, context.c, 3298*75f6d617Schristos analyze.c, Makefile: Changed copyright header to conform with new 3299*75f6d617Schristos GNU General Public license. 3300*75f6d617Schristos * diff3.c: Changed copyright header to conform with new GNU 3301*75f6d617Schristos General Public license. 3302*75f6d617Schristos * COPYING: Made a hard link to /gp/rms/COPYING. 3303*75f6d617Schristos 3304*75f6d617SchristosFri Feb 24 10:01:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3305*75f6d617Schristos 3306*75f6d617Schristos * io.c (slurp): Leave 2 chars space at end of buffer, not one. 3307*75f6d617Schristos (find_identical_ends): Special case if either file is empty; 3308*75f6d617Schristos don't try to make a sentinel since could crash. 3309*75f6d617Schristos 3310*75f6d617SchristosWed Feb 15 14:24:48 1989 Jay Fenlason (hack at apple-gunkies.ai.mit.edu) 3311*75f6d617Schristos 3312*75f6d617Schristos * diff3.c (message) Re-wrote routine to avoid using alloca() 3313*75f6d617Schristos 3314*75f6d617SchristosWed Feb 15 06:19:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3315*75f6d617Schristos 3316*75f6d617Schristos * io.c (find_identical_ends): Delete the variable `bytes'. 3317*75f6d617Schristos 3318*75f6d617SchristosSun Feb 12 11:50:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3319*75f6d617Schristos 3320*75f6d617Schristos * io.c (slurp): ->bufsize is nominal amount we have room for; 3321*75f6d617Schristos add room for sentinel when calling xmalloc or xrealloc. 3322*75f6d617Schristos 3323*75f6d617Schristos * io.c (find_identical_ends): Do need overrun check in finding suffix. 3324*75f6d617Schristos 3325*75f6d617SchristosFri Feb 10 01:28:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3326*75f6d617Schristos 3327*75f6d617Schristos * diff.c (main): -C now takes arg to specify context length. 3328*75f6d617Schristos Now -p to show C function name--Damned IEEE! 3329*75f6d617Schristos Fatal error if context length spec'd twice. 3330*75f6d617Schristos 3331*75f6d617Schristos * ed.c (print_ed_hunk): Now special treatment only for lines containing 3332*75f6d617Schristos precisely a dot and nothing else. Output `..', end the insert, 3333*75f6d617Schristos substitute that one line, then resume the insert if nec. 3334*75f6d617Schristos 3335*75f6d617Schristos * io.c (find_and_hash_lines): When backing up over starting context, 3336*75f6d617Schristos don't move past buffer-beg. 3337*75f6d617Schristos 3338*75f6d617Schristos * io.c (find_identical_ends): Use sentinels to make the loops faster. 3339*75f6d617Schristos If files are identical, skip the 2nd loop and return quickly. 3340*75f6d617Schristos (slurp): Leave 1 char extra space after each buffer. 3341*75f6d617Schristos 3342*75f6d617Schristos * analyze.c (diff_2_files): Mention difference in final newlines. 3343*75f6d617Schristos 3344*75f6d617SchristosWed Jan 25 22:44:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3345*75f6d617Schristos 3346*75f6d617Schristos * dir.c (diff_dirs): Use * when calling fcn ptr variable. 3347*75f6d617Schristos 3348*75f6d617SchristosSat Dec 17 14:12:06 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3349*75f6d617Schristos 3350*75f6d617Schristos * Makefile: New vars INSTALL and LIBS used in some rules; 3351*75f6d617Schristos provide default defns plus commented-put defns for sysV. 3352*75f6d617Schristos 3353*75f6d617SchristosThu Nov 17 16:42:53 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3354*75f6d617Schristos 3355*75f6d617Schristos * dir.c (dir_sort): Open-trouble not fatal; just say # files is -1. 3356*75f6d617Schristos (diff_dirs): If dir_sort does that, give up and return 2. 3357*75f6d617Schristos 3358*75f6d617Schristos * diff.c (compare_files): Don't open directories. 3359*75f6d617Schristos Don't close them specially either. 3360*75f6d617Schristos Cross-propagate inf[i].dir_p sooner. 3361*75f6d617Schristos 3362*75f6d617SchristosSun Nov 13 11:19:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3363*75f6d617Schristos 3364*75f6d617Schristos * diff.h: Declare index, rindex. 3365*75f6d617Schristos 3366*75f6d617Schristos * diff.c (compare_files): If comparing foodir with b/f, 3367*75f6d617Schristos use foodir/f, not foodir/b/f. 3368*75f6d617Schristos 3369*75f6d617Schristos * diff.c (compare_files): Don't print "are identical" msg for 2 dirs. 3370*75f6d617Schristos Status now 1 if one file is a dir and the other isn't, etc. 3371*75f6d617Schristos 3372*75f6d617SchristosThu Nov 3 16:30:24 1988 Randall Smith (randy at gluteus.ai.mit.edu) 3373*75f6d617Schristos 3374*75f6d617Schristos * Makefile: Added a define for diff3 to define DIFF_PROGRAM. 3375*75f6d617Schristos 3376*75f6d617Schristos * util.c: Added hack to make sure that perror was not called with 3377*75f6d617Schristos a null pointer. 3378*75f6d617Schristos 3379*75f6d617Schristos * diff.c: Changed S_IFDIR to S_IFMT in masking type of file bits 3380*75f6d617Schristos out. 3381*75f6d617Schristos 3382*75f6d617Schristos * diff3.c: Included USG compatibility defines. 3383*75f6d617Schristos 3384*75f6d617Schristos * diff.h: Moved sys/file.h into #else USG section (not needed or 3385*75f6d617Schristos wanted on System V). 3386*75f6d617Schristos 3387*75f6d617Schristos * ed.c, analyze.c, context.c: Shortened names to 12 characters for 3388*75f6d617Schristos the sake of System V (too simple not to do). 3389*75f6d617Schristos 3390*75f6d617Schristos 3391*75f6d617SchristosCopyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 1998, 1999, 3392*75f6d617Schristos2000, 2001, 2002 Free Software Foundation, Inc. 3393*75f6d617Schristos 3394*75f6d617SchristosThis file is part of GNU Diffutils. 3395*75f6d617Schristos 3396*75f6d617SchristosThis program is free software; you can redistribute it and/or modify 3397*75f6d617Schristosit under the terms of the GNU General Public License as published by 3398*75f6d617Schristosthe Free Software Foundation; either version 2, or (at your option) 3399*75f6d617Schristosany later version. 3400*75f6d617Schristos 3401*75f6d617SchristosThis program is distributed in the hope that they will be useful, 3402*75f6d617Schristosbut WITHOUT ANY WARRANTY; without even the implied warranty of 3403*75f6d617SchristosMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 3404*75f6d617SchristosGNU General Public License for more details. 3405*75f6d617Schristos 3406*75f6d617SchristosYou should have received a copy of the GNU General Public License 3407*75f6d617Schristosalong with this program; see the file COPYING. If not, write to 3408*75f6d617Schristosthe Free Software Foundation, Inc., 59 Temple Place - Suite 330, 3409*75f6d617SchristosBoston, MA 02111-1307, USA. 3410