1*0b459c2cSDavid du ColombierSat Oct 1 05:24:19 1994 Paul Eggert <eggert@twinsun.com> 2*0b459c2cSDavid du Colombier 3*0b459c2cSDavid du Colombier * Version 2.7 released. 4*0b459c2cSDavid du Colombier 5*0b459c2cSDavid du Colombier * configure.in (AC_HEADER_SYS_WAIT): Add. 6*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Remove sys/wait.h. 7*0b459c2cSDavid du Colombier (AC_CHECK_FUNCS): Add tmpnam. 8*0b459c2cSDavid du Colombier * system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme 9*0b459c2cSDavid du Colombier now that HAVE_SYS_WAIT_H is not set on hosts 10*0b459c2cSDavid du Colombier that are incompatible with Posix applications. 11*0b459c2cSDavid du Colombier 12*0b459c2cSDavid du Colombier * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr. 13*0b459c2cSDavid du Colombier * sdiff.c (expand_name): Likewise. 14*0b459c2cSDavid du Colombier (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting. 15*0b459c2cSDavid du Colombier (exists, letters): Omit if HAVE_TMPNAM. 16*0b459c2cSDavid du Colombier 17*0b459c2cSDavid du Colombier * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero, 18*0b459c2cSDavid du Colombier adjust it to a more reasonable value. 19*0b459c2cSDavid du Colombier 20*0b459c2cSDavid du ColombierSat Sep 24 20:36:40 1994 Paul Eggert <eggert@twinsun.com> 21*0b459c2cSDavid du Colombier 22*0b459c2cSDavid du Colombier * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm. 23*0b459c2cSDavid du Colombier (private_tempnam): Specialize for sdiff to avoid portability problems. 24*0b459c2cSDavid du Colombier 25*0b459c2cSDavid du ColombierThu Sep 22 16:47:00 1994 Paul Eggert <eggert@twinsun.com> 26*0b459c2cSDavid du Colombier 27*0b459c2cSDavid du Colombier * configure.in (AC_ARG_PROGRAM): Added. 28*0b459c2cSDavid du Colombier (AC_OUTPUT): Add [date > stamp-h]. 29*0b459c2cSDavid du Colombier 30*0b459c2cSDavid du Colombier * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS, 31*0b459c2cSDavid du Colombier NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables. 32*0b459c2cSDavid du Colombier (check, stamp-h.in, cmp.o, util.o): New targets. 33*0b459c2cSDavid du Colombier (edit_program_name): New variable; replaces old binprefix method. 34*0b459c2cSDavid du Colombier (install, uninstall): Use it. 35*0b459c2cSDavid du Colombier (binprefix): Removed. 36*0b459c2cSDavid du Colombier (distfiles): Add stamp-h.in. 37*0b459c2cSDavid du Colombier (clean): Clean stamp-h. 38*0b459c2cSDavid du Colombier (config.hin, config.h): Use time stamp files. 39*0b459c2cSDavid du Colombier (cmp_o): Add $(LIBOBJS). 40*0b459c2cSDavid du Colombier (install): Install info files from srcdir if they're not in `.'. 41*0b459c2cSDavid du Colombier 42*0b459c2cSDavid du Colombier * cmp.c, io.c (word): Don't define if already defined. 43*0b459c2cSDavid du Colombier 44*0b459c2cSDavid du Colombier * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin. 45*0b459c2cSDavid du Colombier Use NULL_DEVICE instead of "/dev/null". 46*0b459c2cSDavid du Colombier (cmp): Use %lu instead of %ld when it is more likely to be right. 47*0b459c2cSDavid du Colombier 48*0b459c2cSDavid du Colombier * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in, 49*0b459c2cSDavid du Colombier util.c. 50*0b459c2cSDavid du Colombier 51*0b459c2cSDavid du Colombier * diff3.c (main): Give proper diagnostic if too many labels were given. 52*0b459c2cSDavid du Colombier (read_diff): Use SYSTEM_QUOTE_ARG. 53*0b459c2cSDavid du Colombier 54*0b459c2cSDavid du Colombier * system.h: <string.h>: Include if HAVE_STRING_H, too. 55*0b459c2cSDavid du Colombier <ctype.h>: Include here. All includers changed. 56*0b459c2cSDavid du Colombier (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that 57*0b459c2cSDavid du Colombier work around common <ctype.h> problems. 58*0b459c2cSDavid du Colombier (O_BINARY): Remove. 59*0b459c2cSDavid du Colombier (SYSTEM_QUOTE_ARG): New macros. 60*0b459c2cSDavid du Colombier 61*0b459c2cSDavid du Colombier * diff.c: Add comment. 62*0b459c2cSDavid du Colombier 63*0b459c2cSDavid du Colombier * util.c (PR_PROGRAM): Moved here from diff.h. 64*0b459c2cSDavid du Colombier (begin_output): Use SYSTEM_QUOTE_ARG. 65*0b459c2cSDavid du Colombier 66*0b459c2cSDavid du Colombier * io.c (read_files): Set mode to binary before returning 1. 67*0b459c2cSDavid du Colombier 68*0b459c2cSDavid du Colombier * sdiff.c (TMPDIR_ENV): New macro. 69*0b459c2cSDavid du Colombier (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency. 70*0b459c2cSDavid du Colombier (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype 71*0b459c2cSDavid du Colombier namespace contamination. 72*0b459c2cSDavid du Colombier (main): Use SYSTEM_QUOTE_ARG. 73*0b459c2cSDavid du Colombier (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir. 74*0b459c2cSDavid du Colombier 75*0b459c2cSDavid du ColombierTue Sep 13 18:46:43 1994 Paul Eggert <eggert@twinsun.com> 76*0b459c2cSDavid du Colombier 77*0b459c2cSDavid du Colombier * configure.in (AC_FUNC_MEMCHR): Remove. Autoconf didn't adopt this, 78*0b459c2cSDavid du Colombier since we need not worry about an old experimental library 79*0b459c2cSDavid du Colombier where memchr didn't work. 80*0b459c2cSDavid du Colombier (AC_FUNC_MEMCMP): Not needed, since we only test for equality. 81*0b459c2cSDavid du Colombier (AC_REPLACE_FUNCS): Add test for memchr. 82*0b459c2cSDavid du Colombier (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached. 83*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts. 84*0b459c2cSDavid du Colombier 85*0b459c2cSDavid du Colombier * system.h (memcmp): Define in terms of bcmp. 86*0b459c2cSDavid du Colombier Use HAVE_MEMCHR to test for all mem* routines. 87*0b459c2cSDavid du Colombier 88*0b459c2cSDavid du Colombier * Makefile.in (srcs): Remove memcmp.c. 89*0b459c2cSDavid du Colombier We use bcmp if memcmp doesn't work, since we only test for equality. 90*0b459c2cSDavid du Colombier 91*0b459c2cSDavid du ColombierMon Sep 12 15:52:22 1994 Paul Eggert <eggert@twinsun.com> 92*0b459c2cSDavid du Colombier 93*0b459c2cSDavid du Colombier * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin. 94*0b459c2cSDavid du Colombier (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2. 95*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Remove now-redundant check for <string.h>. 96*0b459c2cSDavid du Colombier (AC_CHECK_FUNCS): Check for strchr. 97*0b459c2cSDavid du Colombier (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose 98*0b459c2cSDavid du Colombier macros when suitable. 99*0b459c2cSDavid du Colombier * memcmp.c: New file. 100*0b459c2cSDavid du Colombier * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix): 101*0b459c2cSDavid du Colombier Default to autoconf-specified strings. 102*0b459c2cSDavid du Colombier (COMPILE): Use the defaults. 103*0b459c2cSDavid du Colombier (srcs): Add memcmp.c. 104*0b459c2cSDavid du Colombier (distfiles): Rename config.h.in->config.hin, install.sh->install-sh. 105*0b459c2cSDavid du Colombier (Makefile, config.h, config.hin, config.status): Rework for 106*0b459c2cSDavid du Colombier compatibility with Autoconf 2. 107*0b459c2cSDavid du Colombier * io.c (binary_file_p): Assume non-broken memchr. 108*0b459c2cSDavid du Colombier * memchr.c: Assume compiler understands void *; otherwise 109*0b459c2cSDavid du Colombier we don't match GCC's internal declaration of memchr. 110*0b459c2cSDavid du Colombier * system.h: Use more modern autoconf approach to standard C headers. 111*0b459c2cSDavid du Colombier * version.c: Include <config.h>, not "config.h". 112*0b459c2cSDavid du Colombier 113*0b459c2cSDavid du Colombier * diff.c, diff.h (ignore_some_line_changes): 114*0b459c2cSDavid du Colombier New variable; replaces `length_varies'. 115*0b459c2cSDavid du Colombier (line_end_char): Replace with '\n'; it wasn't being used consistently. 116*0b459c2cSDavid du Colombier 117*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and 118*0b459c2cSDavid du Colombier incomplete lines. Put incomplete lines into their own bucket. 119*0b459c2cSDavid du Colombier This means line_cmp no longer needs line length arguments, 120*0b459c2cSDavid du Colombier and equivalence classes' line lengths no longer need to include \n. 121*0b459c2cSDavid du Colombier Invoke line_cmp only if ignore_some_line_changes. 122*0b459c2cSDavid du Colombier (prepare_text_end): -B no longer ignores missing newlines. 123*0b459c2cSDavid du Colombier (read_files): Allocate another bucket for incomplete lines. 124*0b459c2cSDavid du Colombier 125*0b459c2cSDavid du Colombier * util.c (line_cmp): Now takes just two arguments. No longer 126*0b459c2cSDavid du Colombier optimizes for common case of exact equality; the caller does that 127*0b459c2cSDavid du Colombier optimization now. The caller is changed accordingly. 128*0b459c2cSDavid du Colombier Optimize for the common case of mostly equality. 129*0b459c2cSDavid du Colombier Use isupper+tolower instead of islower+toupper, for consistency. 130*0b459c2cSDavid du Colombier 131*0b459c2cSDavid du Colombier * waitpid.c (waitpid): Fix typo with internal scoping. 132*0b459c2cSDavid du Colombier 133*0b459c2cSDavid du ColombierThu Sep 8 08:23:15 1994 Paul Eggert <eggert@twinsun.com> 134*0b459c2cSDavid du Colombier 135*0b459c2cSDavid du Colombier * configure.in: Revamp for Autoconf 2. 136*0b459c2cSDavid du Colombier * memchr.c, waitpid.c: New source files for substitute functions. 137*0b459c2cSDavid du Colombier * Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS). 138*0b459c2cSDavid du Colombier (srcs): Add memchr.c, waitpid.c. 139*0b459c2cSDavid du Colombier (distfiles): Add install.sh, memchr.c, waitpid.c, install.sh. 140*0b459c2cSDavid du Colombier * system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs. 141*0b459c2cSDavid du Colombier * dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name). 142*0b459c2cSDavid du Colombier Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2. 143*0b459c2cSDavid du Colombier * sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes. 144*0b459c2cSDavid du Colombier * diff3.c (read_diff): Use new waitpid substitute. 145*0b459c2cSDavid du Colombier 146*0b459c2cSDavid du Colombier * cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns. 147*0b459c2cSDavid du Colombier (usage): Just print more detailed usage message; let caller exit. 148*0b459c2cSDavid du Colombier * diff.c (option_help): New variable. 149*0b459c2cSDavid du Colombier (filetype): Add Posix.1b file types. 150*0b459c2cSDavid du Colombier 151*0b459c2cSDavid du ColombierFri Sep 2 16:01:49 1994 Paul Eggert <eggert@twinsun.com> 152*0b459c2cSDavid du Colombier 153*0b459c2cSDavid du Colombier * configure.in: Switch to new autoconf names. Add sys/file.h test. 154*0b459c2cSDavid du Colombier * Makefile.in (distclean): Clean config.cache, config.log 155*0b459c2cSDavid du Colombier (used by new autoconf). 156*0b459c2cSDavid du Colombier 157*0b459c2cSDavid du Colombier * diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children, 158*0b459c2cSDavid du Colombier make sure SIGCHLD isn't ignored. 159*0b459c2cSDavid du Colombier 160*0b459c2cSDavid du Colombier * diff3.c (DIFF_CHUNK_SIZE): Removed. Get size from STAT_BLOCKSIZE. 161*0b459c2cSDavid du Colombier (INT_STRLEN_BOUND): New macro. 162*0b459c2cSDavid du Colombier 163*0b459c2cSDavid du Colombier * ifdef.c (format_group, groups_letter_value): 164*0b459c2cSDavid du Colombier Use * instead of [] in prototypes. 165*0b459c2cSDavid du Colombier 166*0b459c2cSDavid du Colombier * system.h: Include <sys/file.h> only if HAVE_SYS_FILE_H. 167*0b459c2cSDavid du Colombier (S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros. 168*0b459c2cSDavid du Colombier 169*0b459c2cSDavid du Colombier * util.c (begin_output): Check fdopen result. 170*0b459c2cSDavid du Colombier 171*0b459c2cSDavid du Colombier The following changes simplify porting to non-Posix environments. 172*0b459c2cSDavid du Colombier * cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first. 173*0b459c2cSDavid du Colombier * diff.c (binary_I_O): New variable for --binary option. 174*0b459c2cSDavid du Colombier (main, usage, compare_files): Support --binary option. 175*0b459c2cSDavid du Colombier (compare_files): Use filename_lastdirchar to find last 176*0b459c2cSDavid du Colombier directory char in a file name. 177*0b459c2cSDavid du Colombier * cmp.c (main), diff.c (compare_files), dir.c (compare_names, 178*0b459c2cSDavid du Colombier diff_dirs): Use filename_cmp to compare file names. 179*0b459c2cSDavid du Colombier Use same_file to determine whether two files are the same. 180*0b459c2cSDavid du Colombier * context.c (print_context_label): Check whether ctime yields 0. 181*0b459c2cSDavid du Colombier * diff3.c (read_diff), sdiff.c (cleanup, main, waitpid), 182*0b459c2cSDavid du Colombier util.c (begin_output): Use popen+pclose if !HAVE_FORK. 183*0b459c2cSDavid du Colombier * io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode. 184*0b459c2cSDavid du Colombier * sdiff.c (ck_fdopen): Function removed. 185*0b459c2cSDavid du Colombier (edit): Use system if !HAVE_FORK. 186*0b459c2cSDavid du Colombier (execdiff): Now assumes caller has pushed all args, plus trailing 0. 187*0b459c2cSDavid du Colombier All callers changed. 188*0b459c2cSDavid du Colombier (private_tempnam): Try TMP if TMPDIR isn't defined. 189*0b459c2cSDavid du Colombier Fit temporary filenames into 8.3 limit. 190*0b459c2cSDavid du Colombier * system.h (STAT_BLOCKSIZE): Don't define if already defined. 191*0b459c2cSDavid du Colombier (min, max): Undef if already defined. 192*0b459c2cSDavid du Colombier (filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE, 193*0b459c2cSDavid du Colombier initialize_main O_BINARY, same_file): New macros. 194*0b459c2cSDavid du Colombier 195*0b459c2cSDavid du ColombierFri Jun 17 11:23:53 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) 196*0b459c2cSDavid du Colombier 197*0b459c2cSDavid du Colombier * Makefile.in (info, dvi, diff.dvi): New targets. 198*0b459c2cSDavid du Colombier (clean): Remove TeX output files. 199*0b459c2cSDavid du Colombier 200*0b459c2cSDavid du ColombierFri Jun 17 05:37:52 1994 Paul Eggert (eggert@twinsun.com) 201*0b459c2cSDavid du Colombier 202*0b459c2cSDavid du Colombier * cmp.c, io.c (word): Change from typedef to #define, to avoid 203*0b459c2cSDavid du Colombier collision with Unicos 8.0 <sys/types.h>, which also typedefs `word'. 204*0b459c2cSDavid du Colombier 205*0b459c2cSDavid du ColombierThu Apr 15 00:53:01 1994 Paul Eggert (eggert@twinsun.com) 206*0b459c2cSDavid du Colombier 207*0b459c2cSDavid du Colombier * diff3.c (scan_diff_line), util.c (print_number_range): Don't 208*0b459c2cSDavid du Colombier rely on promotion to make the old-style parameter type agree 209*0b459c2cSDavid du Colombier with the prototype parameter type; this doesn't work on 210*0b459c2cSDavid du Colombier Apollos running bsd4.3. 211*0b459c2cSDavid du Colombier 212*0b459c2cSDavid du ColombierMon Jan 3 02:05:51 1994 Paul Eggert (eggert@twinsun.com) 213*0b459c2cSDavid du Colombier 214*0b459c2cSDavid du Colombier * Makefile.in (LDFLAGS): Remove -g. Change all link commands 215*0b459c2cSDavid du Colombier to use both $(CFLAGS) and $(LDFLAGS). 216*0b459c2cSDavid du Colombier 217*0b459c2cSDavid du ColombierMon Dec 13 12:23:27 1993 Paul Eggert (eggert@twinsun.com) 218*0b459c2cSDavid du Colombier 219*0b459c2cSDavid du Colombier * system.h: Don't assume dirent.h exists just because 220*0b459c2cSDavid du Colombier _POSIX_VERSION is defined. 221*0b459c2cSDavid du Colombier 222*0b459c2cSDavid du ColombierFri Dec 3 18:39:39 1993 Paul Eggert (eggert@twinsun.com) 223*0b459c2cSDavid du Colombier 224*0b459c2cSDavid du Colombier * diff.c (main): allow -pu. 225*0b459c2cSDavid du Colombier 226*0b459c2cSDavid du ColombierTue Nov 23 03:51:08 1993 Paul Eggert (eggert@twinsun.com) 227*0b459c2cSDavid du Colombier 228*0b459c2cSDavid du Colombier * Makefile.in (distclean): Remove config.h. 229*0b459c2cSDavid du Colombier 230*0b459c2cSDavid du ColombierWed Nov 10 00:28:27 1993 Paul Eggert (eggert@twinsun.com) 231*0b459c2cSDavid du Colombier 232*0b459c2cSDavid du Colombier * Version 2.6 released. 233*0b459c2cSDavid du Colombier 234*0b459c2cSDavid du Colombier * analyze.c (too_expensive): New variable, for heuristic to 235*0b459c2cSDavid du Colombier limit the worst-case cost to O(N**1.5 log N) at the price of 236*0b459c2cSDavid du Colombier producing suboptimal output for large inputs with many differences. 237*0b459c2cSDavid du Colombier (diff_2_files): Initialize it. 238*0b459c2cSDavid du Colombier (struct partition): New type. 239*0b459c2cSDavid du Colombier (SNAKE_LIMIT): New macro; merely documents already-used number 20. 240*0b459c2cSDavid du Colombier (diag): New `minimal' arg; all callers changed. Put results into 241*0b459c2cSDavid du Colombier struct partition. Apply `too_expensive' heuristic. Tune. 242*0b459c2cSDavid du Colombier (compareseq): New `minimal' arg; all callers changed. Tune. 243*0b459c2cSDavid du Colombier (shift_boundaries): Improve heuristic to also coalesce adjacent runs 244*0b459c2cSDavid du Colombier of changes more often. 245*0b459c2cSDavid du Colombier 246*0b459c2cSDavid du Colombier * diff.c (long_options, main, usage): Add `--help'. 247*0b459c2cSDavid du Colombier (main): Send version number to stdout, not stderr. 248*0b459c2cSDavid du Colombier (usage): Send usage to stdout, not stderr. 249*0b459c2cSDavid du Colombier (compare_files): Initialize `inf' properly. 250*0b459c2cSDavid du Colombier 251*0b459c2cSDavid du Colombier * io.c (word): Change to `int'; it makes a big difference on x86. 252*0b459c2cSDavid du Colombier (sip, slurp): Put off allocating room to hold the whole file until we 253*0b459c2cSDavid du Colombier have to read the whole file. This wins if the file turns out 254*0b459c2cSDavid du Colombier to be binary. 255*0b459c2cSDavid du Colombier 256*0b459c2cSDavid du Colombier * util.c (xmalloc, xrealloc): "virtual memory" -> "memory" 257*0b459c2cSDavid du Colombier (primes): Omit large primes if INT_MAX is small. 258*0b459c2cSDavid du Colombier 259*0b459c2cSDavid du Colombier * sdiff.c (usage): Send usage to stdout, not stderr. 260*0b459c2cSDavid du Colombier (long_options, main, usage): Add `--help'. 261*0b459c2cSDavid du Colombier (main): Send version number to stdout, not stderr. Exit afterwards. 262*0b459c2cSDavid du Colombier 263*0b459c2cSDavid du Colombier * diff3.c (usage): Send usage to stdout, not stderr. 264*0b459c2cSDavid du Colombier (long_options, main, usage): Add `--help'. 265*0b459c2cSDavid du Colombier (read_diff): Detect integer overflow in buffer size calculations. 266*0b459c2cSDavid du Colombier 267*0b459c2cSDavid du Colombier * cmp.c (word): New type. All uses of `long' for 268*0b459c2cSDavid du Colombier word-at-a-time comparisons changed to `word'. 269*0b459c2cSDavid du Colombier (long_options, main, usage): Add `--help'. 270*0b459c2cSDavid du Colombier (usage): Send usage to stdout, not stderr. 271*0b459c2cSDavid du Colombier (main): Add `-v'. Send version number to stdout, not stderr. 272*0b459c2cSDavid du Colombier 273*0b459c2cSDavid du Colombier * configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H. 274*0b459c2cSDavid du Colombier 275*0b459c2cSDavid du ColombierMon Sep 27 07:20:24 1993 Paul Eggert (eggert@twinsun.com) 276*0b459c2cSDavid du Colombier 277*0b459c2cSDavid du Colombier * diff.c (add_exclude_file): Cast memchr to (char *) 278*0b459c2cSDavid du Colombier to suppress bogus warnings on some nonstandard hosts. 279*0b459c2cSDavid du Colombier 280*0b459c2cSDavid du Colombier * Makefile.in (cmp): Add version.o. 281*0b459c2cSDavid du Colombier 282*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Work around memcmp bug with size=0. 283*0b459c2cSDavid du Colombier 284*0b459c2cSDavid du Colombier * cmp.c (main, usage, version_string): Add --version option. 285*0b459c2cSDavid du Colombier 286*0b459c2cSDavid du Colombier * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 287*0b459c2cSDavid du Colombier (memchr): Declare only if !HAVE_MEMCHR. These changes are 288*0b459c2cSDavid du Colombier needed to keep some nonstandard hosts happy. 289*0b459c2cSDavid du Colombier 290*0b459c2cSDavid du Colombier * util.c (memchr): Make first arg char const * 291*0b459c2cSDavid du Colombier to match standard. 292*0b459c2cSDavid du Colombier (xmalloc, xrealloc): Cast malloc, realloc 293*0b459c2cSDavid du Colombier to (VOID *) to suppress bogus warnings on some nonstandard hosts. 294*0b459c2cSDavid du Colombier 295*0b459c2cSDavid du Colombier * diff3.c (xmalloc, xrealloc): Cast malloc, realloc 296*0b459c2cSDavid du Colombier to (VOID *) to suppress bogus warnings on some nonstandard hosts. 297*0b459c2cSDavid du Colombier 298*0b459c2cSDavid du Colombier * sdiff.c (xmalloc, xrealloc): Cast malloc, realloc 299*0b459c2cSDavid du Colombier to (VOID *) to suppress bogus warnings on some nonstandard hosts. 300*0b459c2cSDavid du Colombier (lf_copy, lf_skip, lf_snarf): Cast memchr to (char *) 301*0b459c2cSDavid du Colombier to suppress bogus warnings on some nonstandard hosts. 302*0b459c2cSDavid du Colombier (memchr): Make first arg char const * 303*0b459c2cSDavid du Colombier to match standard. 304*0b459c2cSDavid du Colombier 305*0b459c2cSDavid du ColombierMon Sep 27 00:23:37 1993 Paul Eggert (eggert@twinsun.com) 306*0b459c2cSDavid du Colombier 307*0b459c2cSDavid du Colombier * Version 2.5 released. 308*0b459c2cSDavid du Colombier 309*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Work around memcmp bug with size=0. 310*0b459c2cSDavid du Colombier 311*0b459c2cSDavid du Colombier * cmp.c (main, usage, version_string): Add --version option. 312*0b459c2cSDavid du Colombier * Makefile.in (cmp): Add version.o. 313*0b459c2cSDavid du Colombier 314*0b459c2cSDavid du Colombier * diff.c (add_exclude_file): Cast memchr to (char *) 315*0b459c2cSDavid du Colombier to suppress bogus warnings on some nonstandard hosts. 316*0b459c2cSDavid du Colombier * sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise. 317*0b459c2cSDavid du Colombier 318*0b459c2cSDavid du Colombier * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc 319*0b459c2cSDavid du Colombier to (VOID *) to suppress bogus warnings on some nonstandard hosts. 320*0b459c2cSDavid du Colombier 321*0b459c2cSDavid du Colombier * sdiff.c, util.c (memchr): Make first arg char const * 322*0b459c2cSDavid du Colombier to match standard. 323*0b459c2cSDavid du Colombier 324*0b459c2cSDavid du Colombier * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. 325*0b459c2cSDavid du Colombier (memchr): Declare only if !HAVE_MEMCHR. These changes are 326*0b459c2cSDavid du Colombier needed to keep some nonstandard hosts happy. 327*0b459c2cSDavid du Colombier 328*0b459c2cSDavid du Colombier * xmalloc.c: Include <sys/types.h> always; some nonstandard hosts 329*0b459c2cSDavid du Colombier need it for size_t even if STDC_HEADERS. 330*0b459c2cSDavid du Colombier 331*0b459c2cSDavid du ColombierSat Sep 18 01:33:07 1993 Paul Eggert (eggert@twinsun.com) 332*0b459c2cSDavid du Colombier 333*0b459c2cSDavid du Colombier * configure.in (AC_STAT_MACROS_BROKEN): Add. 334*0b459c2cSDavid du Colombier * system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if 335*0b459c2cSDavid du Colombier STAT_MACROS_BROKEN. 336*0b459c2cSDavid du Colombier 337*0b459c2cSDavid du Colombier * Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA). 338*0b459c2cSDavid du Colombier 339*0b459c2cSDavid du Colombier * analyze.c (discard_confusing_lines): Make defn static, like decl. 340*0b459c2cSDavid du Colombier * sdiff.c (xmalloc): Likewise. 341*0b459c2cSDavid du Colombier 342*0b459c2cSDavid du Colombier * ifdef.c (format_group): Ensure isdigit argument isn't < 0. 343*0b459c2cSDavid du Colombier 344*0b459c2cSDavid du Colombier * side.c (print_half_line): Use isprint, since some hosts lack isgraph. 345*0b459c2cSDavid du Colombier * util.c (output_1_line): Likewise. Ensure its argument isn't < 0. 346*0b459c2cSDavid du Colombier (xmalloc, xrealloc): Remove needless casts. 347*0b459c2cSDavid du Colombier 348*0b459c2cSDavid du Colombier * system.h (volatile, const): 349*0b459c2cSDavid du Colombier Define these before including any system headers, 350*0b459c2cSDavid du Colombier so that they're used consistently in all system includes. 351*0b459c2cSDavid du Colombier (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some 352*0b459c2cSDavid du Colombier <stdlib.h>s don't declare them. 353*0b459c2cSDavid du Colombier (memchr): Likewise for <string.h>. 354*0b459c2cSDavid du Colombier 355*0b459c2cSDavid du Colombier * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first. 356*0b459c2cSDavid du Colombier * diff.c: Remove redundant "system.h" inclusion. 357*0b459c2cSDavid du Colombier 358*0b459c2cSDavid du Colombier * diff3.c (xmalloc): Now static. 359*0b459c2cSDavid du Colombier (xmalloc, realloc): Remove needless casts. 360*0b459c2cSDavid du Colombier (READNUM): Ensure isdigit argument isn't negative. 361*0b459c2cSDavid du Colombier 362*0b459c2cSDavid du ColombierWed Sep 14 07:14:15 1993 Paul Eggert (eggert@twinsun.com) 363*0b459c2cSDavid du Colombier 364*0b459c2cSDavid du Colombier * Version 2.4 released. 365*0b459c2cSDavid du Colombier 366*0b459c2cSDavid du Colombier * ifdef.c (scan_char_literal): New function, for new %c'x' and 367*0b459c2cSDavid du Colombier %c'\ooo' format specs. 368*0b459c2cSDavid du Colombier (format_group, print_ifdef_lines): Use it. Remove %0 format spec. 369*0b459c2cSDavid du Colombier 370*0b459c2cSDavid du Colombier * cmp.c (cmp): Don't try to read past end of file; this doesn't 371*0b459c2cSDavid du Colombier work on ttys. 372*0b459c2cSDavid du Colombier 373*0b459c2cSDavid du Colombier * system.h, version.c: #include <config.h>, not "config.h", to allow 374*0b459c2cSDavid du Colombier configuring in a separate directory when the source directory has 375*0b459c2cSDavid du Colombier already been configured. 376*0b459c2cSDavid du Colombier * Makefile.in (COMPILE): New defn, with proper -I options so that 377*0b459c2cSDavid du Colombier `#include <config.h>' works. 378*0b459c2cSDavid du Colombier (.c.o, diff3.o, sdiff.o): Use it. 379*0b459c2cSDavid du Colombier 380*0b459c2cSDavid du ColombierMon Sep 13 06:45:43 1993 Paul Eggert (eggert@twinsun.com) 381*0b459c2cSDavid du Colombier 382*0b459c2cSDavid du Colombier * diff.c (main, longopts): Add --line-format=FORMAT option. 383*0b459c2cSDavid du Colombier (specify_format): Args no longer const pointers. All callers changed. 384*0b459c2cSDavid du Colombier 385*0b459c2cSDavid du Colombier * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats. 386*0b459c2cSDavid du Colombier (struct group): New struct. 387*0b459c2cSDavid du Colombier (print_ifdef_lines): Use it to simplify argument passing. 388*0b459c2cSDavid du Colombier Remove the convention that last arg -1 signifies that the lines 389*0b459c2cSDavid du Colombier from file 2 are the same as the lines from file 1; this 390*0b459c2cSDavid du Colombier convention no longer works, now that line numbers might be 391*0b459c2cSDavid du Colombier printed out, since the line numbers may differ. 392*0b459c2cSDavid du Colombier Add first FILE * argument to output to. All callers changed. 393*0b459c2cSDavid du Colombier Use a faster test for the single-fwrite optimization. 394*0b459c2cSDavid du Colombier (format_group, scan_printf_spec, groups_letter_value): New functions. 395*0b459c2cSDavid du Colombier 396*0b459c2cSDavid du Colombier * diff.h (group_format, line_format): No longer const pointers. 397*0b459c2cSDavid du Colombier (format_ifdef): 1st arg is no longer const pointer. 398*0b459c2cSDavid du Colombier 399*0b459c2cSDavid du Colombier * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H. 400*0b459c2cSDavid du Colombier * system.h <limits.h>, <stdlib.h>, <string.h>: 401*0b459c2cSDavid du Colombier Include only if HAVE_LIMITS_H etc. 402*0b459c2cSDavid du Colombier 403*0b459c2cSDavid du Colombier * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer 404*0b459c2cSDavid du Colombier these standard names to the traditional names (bcmp, bcpy, index, 405*0b459c2cSDavid du Colombier rindex, struct direct). All callers changed. 406*0b459c2cSDavid du Colombier 407*0b459c2cSDavid du Colombier * system.h (PARAMS, VOID): 408*0b459c2cSDavid du Colombier Define earlier so that malloc decl can use VOID. 409*0b459c2cSDavid du Colombier (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K. 410*0b459c2cSDavid du Colombier 411*0b459c2cSDavid du ColombierFri Sep 3 00:21:02 1993 Paul Eggert (eggert@twinsun.com) 412*0b459c2cSDavid du Colombier 413*0b459c2cSDavid du Colombier * diff.c (compare_files): Two files with the same name must be 414*0b459c2cSDavid du Colombier the same file; avoid a needless `stat' in that case. 415*0b459c2cSDavid du Colombier 416*0b459c2cSDavid du ColombierFri Aug 27 06:59:03 1993 Paul Eggert (eggert@twinsun.com) 417*0b459c2cSDavid du Colombier 418*0b459c2cSDavid du Colombier * Pervasive changes for portability to 64-bit hosts: 419*0b459c2cSDavid du Colombier Add prototypes to function declarations. 420*0b459c2cSDavid du Colombier Use size_t, not int, when needed. 421*0b459c2cSDavid du Colombier 422*0b459c2cSDavid du Colombier * Other pervasive changes: 423*0b459c2cSDavid du Colombier Use `const' more often. 424*0b459c2cSDavid du Colombier Use STD{IN,OUT,ERR}_FILENO instead of [012]. 425*0b459c2cSDavid du Colombier Use 0, not NULL, for portability to broken hosts. 426*0b459c2cSDavid du Colombier 427*0b459c2cSDavid du Colombier * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch]. 428*0b459c2cSDavid du Colombier (distfiles): New files config.h.in, mkinstalldirs. 429*0b459c2cSDavid du Colombier (.c.o): Add -DHAVE_CONFIG_H. 430*0b459c2cSDavid du Colombier 431*0b459c2cSDavid du Colombier * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment. 432*0b459c2cSDavid du Colombier (diff_2_files): Use l.c.m., not max, of files' buffer sizes. 433*0b459c2cSDavid du Colombier 434*0b459c2cSDavid du Colombier * cmp.c: Make globals static when possible. 435*0b459c2cSDavid du Colombier 436*0b459c2cSDavid du Colombier (file): Now a 2-element array; replaces `file1' and `file2'. 437*0b459c2cSDavid du Colombier (file_desc, buffer): Likewise, for file[12]_desc and buf[12]. 438*0b459c2cSDavid du Colombier (main): Likewise, for stat_buf[12]. Index these variables with `i'. 439*0b459c2cSDavid du Colombier 440*0b459c2cSDavid du Colombier (ignore_initial): New var. 441*0b459c2cSDavid du Colombier (long_options): Now const. Add `--ignore-initial'. 442*0b459c2cSDavid du Colombier (usage): Sort options and add `--ignore-initial'. 443*0b459c2cSDavid du Colombier (main, cmp): Add `--ignore-initial' support. 444*0b459c2cSDavid du Colombier 445*0b459c2cSDavid du Colombier (main): `cmp - -' now succeeds. 446*0b459c2cSDavid du Colombier When comparing standard input to a file, and using a shortcut (e.g. 447*0b459c2cSDavid du Colombier looking at file sizes or inode numbers), take the lseek offset into 448*0b459c2cSDavid du Colombier account before deciding whether the files are identical. 449*0b459c2cSDavid du Colombier Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts. 450*0b459c2cSDavid du Colombier Use l.c.m. of files' buffer sizes, not 8 * 1024. 451*0b459c2cSDavid du Colombier ferror (stdout) does not imply errno has a useful value. 452*0b459c2cSDavid du Colombier If 2nd file is "-", treat it first, in case stdin is closed. 453*0b459c2cSDavid du Colombier 454*0b459c2cSDavid du Colombier (cmp): Always compute `char_number', `smaller' for speed and simplicity. 455*0b459c2cSDavid du Colombier Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input', 456*0b459c2cSDavid du Colombier as per Posix.2. 457*0b459c2cSDavid du Colombier 458*0b459c2cSDavid du Colombier (block_compare_and_count): Increment line_number argument. 459*0b459c2cSDavid du Colombier Remove end_char argument; it's always '\n'. All callers changed. 460*0b459c2cSDavid du Colombier Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts. 461*0b459c2cSDavid du Colombier (block_compare): Minimize differences with block_compare_and_count. 462*0b459c2cSDavid du Colombier 463*0b459c2cSDavid du Colombier (block_read): Coalesce `bp += nread's. 464*0b459c2cSDavid du Colombier 465*0b459c2cSDavid du Colombier (printc): Remove `FILE *' arg; output to stdout. All callers changed. 466*0b459c2cSDavid du Colombier 467*0b459c2cSDavid du Colombier * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF. 468*0b459c2cSDavid du Colombier Configure into config.h. 469*0b459c2cSDavid du Colombier 470*0b459c2cSDavid du Colombier * context.c (print_context_label): 471*0b459c2cSDavid du Colombier Standard input's st_mtime is no longer a special case 472*0b459c2cSDavid du Colombier here, since `compare_files' now sets it to the current time. 473*0b459c2cSDavid du Colombier 474*0b459c2cSDavid du Colombier * diff.c (usage): Sort options. 475*0b459c2cSDavid du Colombier (filetype): New function. 476*0b459c2cSDavid du Colombier (compare_files): Set stdin's st_mtime to be the current time. 477*0b459c2cSDavid du Colombier Leave its name "-" instead of changing it to "Standard Input"; 478*0b459c2cSDavid du Colombier to test whether a file is stdin, we must compare its name to "-" instead 479*0b459c2cSDavid du Colombier of its desc to 0, since if it's closed other file descs may be 0. 480*0b459c2cSDavid du Colombier When comparing standard input to a file, and using a shortcut (e.g. 481*0b459c2cSDavid du Colombier looking at file sizes or inode numbers), take the lseek offset into 482*0b459c2cSDavid du Colombier account before deciding whether the files are identical. 483*0b459c2cSDavid du Colombier Pretend that nonexistent files have the same filetype as existing files. 484*0b459c2cSDavid du Colombier Rename `errorcount' to `failed', since it's boolean. 485*0b459c2cSDavid du Colombier In directory comparisons, if a file is neither a regular file nor a 486*0b459c2cSDavid du Colombier directory, just print its type and the other file's type. 487*0b459c2cSDavid du Colombier 488*0b459c2cSDavid du Colombier * diff.h (Is_space, textchar): Remove. 489*0b459c2cSDavid du Colombier (struct msg, msg_chain, msg_chain_end): Move to util.c. 490*0b459c2cSDavid du Colombier (VOID): Move to system.h. 491*0b459c2cSDavid du Colombier (line_cmp, version_string, change_letter, print_number_range, 492*0b459c2cSDavid du Colombier find_change): New decls. 493*0b459c2cSDavid du Colombier 494*0b459c2cSDavid du Colombier * diff.texi: 495*0b459c2cSDavid du Colombier whitespace -> white space. It now stands for whatever isspace yields. 496*0b459c2cSDavid du Colombier Add --ignore-initial. 497*0b459c2cSDavid du Colombier 498*0b459c2cSDavid du Colombier * diff3.c (VOID): Move to system.h. 499*0b459c2cSDavid du Colombier (version_string): Now char[]. 500*0b459c2cSDavid du Colombier (usage): Sort options. 501*0b459c2cSDavid du Colombier (process_diff): Pacify `gcc -Wall' with a useless assignment. 502*0b459c2cSDavid du Colombier (read_diff): pid is of type pid_t, not int. Use waitpid if available. 503*0b459c2cSDavid du Colombier (output_diff3): Simplify test for `\ No newline at end of file' message. 504*0b459c2cSDavid du Colombier 505*0b459c2cSDavid du Colombier * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion 506*0b459c2cSDavid du Colombier with external struct file_data `files'. 507*0b459c2cSDavid du Colombier 508*0b459c2cSDavid du Colombier * io.c (line_cmp): Move declaration to diff.h. 509*0b459c2cSDavid du Colombier (textchar): Remove. 510*0b459c2cSDavid du Colombier (find_and_hash_each_line): Use locale's definition of white space 511*0b459c2cSDavid du Colombier instead of using one hardwired defn for -b and another for -w. 512*0b459c2cSDavid du Colombier 513*0b459c2cSDavid du Colombier * normal.c (change_letter, print_number_range, find_change): 514*0b459c2cSDavid du Colombier Move decls to diff.h. 515*0b459c2cSDavid du Colombier (print_normal_hunk): Now static. 516*0b459c2cSDavid du Colombier 517*0b459c2cSDavid du Colombier * sdiff.c (SEEK_SET): Move to system.h. 518*0b459c2cSDavid du Colombier (version_string): Now char[], not char*. 519*0b459c2cSDavid du Colombier (private_tempnam): Remove hardcoded limit on temporary file names. 520*0b459c2cSDavid du Colombier (exiterr, perror_fatal, main): When exiting because of a signal, 521*0b459c2cSDavid du Colombier exit with that signal's status. 522*0b459c2cSDavid du Colombier (lf_refill, main, skip_white, edit, interact): Check for signal. 523*0b459c2cSDavid du Colombier (ignore_SIGINT): Renamed from `ignore_signals'. 524*0b459c2cSDavid du Colombier (NUM_SIGS, initial_handler): New macros. 525*0b459c2cSDavid du Colombier (initial_action, signal_received, sigs_trapped): New vars. 526*0b459c2cSDavid du Colombier (catchsig, trapsigs): Use sigaction if possible, since this closes the 527*0b459c2cSDavid du Colombier windows of vulnerability that `signal' has. Use RETSIGTYPE not void. 528*0b459c2cSDavid du Colombier When a signal comes in, just set a global variable; this is safer. 529*0b459c2cSDavid du Colombier (checksigs, untrapsig): New functions. 530*0b459c2cSDavid du Colombier (edit): Pacify `gcc -Wall' with a useless assignment. 531*0b459c2cSDavid du Colombier Respond to each empty line with help, not to every other empty line. 532*0b459c2cSDavid du Colombier (private_tempnam): Remove hardcoded limit on temporary file name length. 533*0b459c2cSDavid du Colombier Don't assume sizeof (pid_t) <= sizeof (int). 534*0b459c2cSDavid du Colombier 535*0b459c2cSDavid du Colombier * system.h: (S_IXOTH, S_IXGRP, S_IXUSR, 536*0b459c2cSDavid du Colombier SEEK_SET, SEEK_CUR, 537*0b459c2cSDavid du Colombier STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): 538*0b459c2cSDavid du Colombier New macros, if system doesn't define them. 539*0b459c2cSDavid du Colombier (volatile): Don't define if already defined. 540*0b459c2cSDavid du Colombier (PARAMS): New macro. 541*0b459c2cSDavid du Colombier (VOID): Move here from diff.h. 542*0b459c2cSDavid du Colombier 543*0b459c2cSDavid du Colombier * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h. 544*0b459c2cSDavid du Colombier (message5): New function. 545*0b459c2cSDavid du Colombier (pr_pid): New var. 546*0b459c2cSDavid du Colombier (begin_output): Allocate `name' more precisely. 547*0b459c2cSDavid du Colombier Put child pid into pr_pid, so that we can wait for it later. 548*0b459c2cSDavid du Colombier Don't check execl's return value, since any return must be an error. 549*0b459c2cSDavid du Colombier (finish_output): Detect and report output errors. 550*0b459c2cSDavid du Colombier Use waitpid if available. Check pr exit status. 551*0b459c2cSDavid du Colombier (line_cmp): Use locale's definition of white space 552*0b459c2cSDavid du Colombier instead of using one hardwired defn for -b and another for -w. 553*0b459c2cSDavid du Colombier (analyze_cmp): Avoid double negation with `! nontrivial'. 554*0b459c2cSDavid du Colombier Pacify `gcc -Wall' be rewriting for-loop into do-while-loop. 555*0b459c2cSDavid du Colombier (dir_file_pathname): New function. 556*0b459c2cSDavid du Colombier 557*0b459c2cSDavid du Colombier * version.c (version_string): Now char[], not char*. 558*0b459c2cSDavid du Colombier 559*0b459c2cSDavid du ColombierThu Jul 29 20:44:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) 560*0b459c2cSDavid du Colombier 561*0b459c2cSDavid du Colombier * Makefile.in (config.status): Run config.status --recheck, not 562*0b459c2cSDavid du Colombier configure, to get the right args passed. 563*0b459c2cSDavid du Colombier 564*0b459c2cSDavid du ColombierThu Jul 22 10:46:30 1993 Paul Eggert (eggert@twinsun.com) 565*0b459c2cSDavid du Colombier 566*0b459c2cSDavid du Colombier * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi' 567*0b459c2cSDavid du Colombier with `[ TEST ] || ACTION || exit' so that the containing for-loop exits 568*0b459c2cSDavid du Colombier with proper status for `make'. 569*0b459c2cSDavid du Colombier 570*0b459c2cSDavid du ColombierThu Jul 8 19:47:22 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 571*0b459c2cSDavid du Colombier 572*0b459c2cSDavid du Colombier * Makefile.in (installdirs): New target. 573*0b459c2cSDavid du Colombier (install): Use it. 574*0b459c2cSDavid du Colombier (Makefile, config.status, configure): New targets. 575*0b459c2cSDavid du Colombier 576*0b459c2cSDavid du ColombierSat Jun 5 23:10:40 1993 Paul Eggert (eggert@twinsun.com) 577*0b459c2cSDavid du Colombier 578*0b459c2cSDavid du Colombier * Makefile.in (dist): Switch from .z to .gz. 579*0b459c2cSDavid du Colombier 580*0b459c2cSDavid du ColombierWed May 26 17:16:02 1993 Paul Eggert (eggert@twinsun.com) 581*0b459c2cSDavid du Colombier 582*0b459c2cSDavid du Colombier * diff.c (main): Cast args to compare_files, for traditional C. 583*0b459c2cSDavid du Colombier * side.c (print_sdiff_common_lines_print_sdiff_hunk): Likewise. 584*0b459c2cSDavid du Colombier * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined 585*0b459c2cSDavid du Colombier properly. 586*0b459c2cSDavid du Colombier 587*0b459c2cSDavid du ColombierTue May 25 14:54:05 1993 Paul Eggert (eggert@twinsun.com) 588*0b459c2cSDavid du Colombier 589*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): With -q, do not report that files differ 590*0b459c2cSDavid du Colombier if all their differences are ignored. 591*0b459c2cSDavid du Colombier (briefly_report): New function. 592*0b459c2cSDavid du Colombier * diff.h (ignore_some_changes): New variable. 593*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't use the file size shortcut if 594*0b459c2cSDavid du Colombier ignore_some_changes is nonzero, since the file size may differ 595*0b459c2cSDavid du Colombier merely due to ignored changes. 596*0b459c2cSDavid du Colombier (main): Set ignore_some_changes if we might ignore some changes. 597*0b459c2cSDavid du Colombier Remove unsystematic assignment of 0 to static vars. 598*0b459c2cSDavid du Colombier * io.c (read_files): New argument PRETEND_BINARY says whether to 599*0b459c2cSDavid du Colombier pretend the files are binary. 600*0b459c2cSDavid du Colombier 601*0b459c2cSDavid du Colombier * diff3.c (tab_align_flag): New variable, for new -T option. 602*0b459c2cSDavid du Colombier (main, usage, output_diff3): Add support for -T. 603*0b459c2cSDavid du Colombier 604*0b459c2cSDavid du ColombierSun May 23 15:25:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 605*0b459c2cSDavid du Colombier 606*0b459c2cSDavid du Colombier * dir.c (dir_sort): Always init `data' to avoid GCC warning. 607*0b459c2cSDavid du Colombier 608*0b459c2cSDavid du ColombierSat May 22 15:35:02 1993 Paul Eggert (eggert@twinsun.com) 609*0b459c2cSDavid du Colombier 610*0b459c2cSDavid du Colombier * Makefile.in (dist): Change name of package from diff to diffutils. 611*0b459c2cSDavid du Colombier Don't bother to build .Z dist; .z suffices. 612*0b459c2cSDavid du Colombier 613*0b459c2cSDavid du ColombierFri May 21 16:35:22 1993 Paul Eggert (eggert@twinsun.com) 614*0b459c2cSDavid du Colombier 615*0b459c2cSDavid du Colombier * diff.c: Include "system.h" to get memchr declaration. 616*0b459c2cSDavid du Colombier * system.h (memchr): Declare if !HAVE_MEMCHR, not if 617*0b459c2cSDavid du Colombier !HAVE_MEMCHR && !STDC_HEADERS. 618*0b459c2cSDavid du Colombier 619*0b459c2cSDavid du ColombierWed May 19 17:43:55 1993 Paul Eggert (eggert@twinsun.com) 620*0b459c2cSDavid du Colombier 621*0b459c2cSDavid du Colombier * Version 2.3 released. 622*0b459c2cSDavid du Colombier 623*0b459c2cSDavid du ColombierFri Apr 23 17:18:44 1993 Paul Eggert (eggert@twinsun.com) 624*0b459c2cSDavid du Colombier 625*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Do not discard the last HORIZON_LINES 626*0b459c2cSDavid du Colombier lines of the prefix, or the first HORIZON_LINES lines of the suffix. 627*0b459c2cSDavid du Colombier * diff.c (main, longopts, usage): Add --horizon-lines option. 628*0b459c2cSDavid du Colombier * diff3.c (main, process_diff, read_diff): Invoke second diff 629*0b459c2cSDavid du Colombier with --horizon-lines determined by the first diff. 630*0b459c2cSDavid du Colombier * diff.h, diff3.c (horizon_lines): New variable. 631*0b459c2cSDavid du Colombier 632*0b459c2cSDavid du ColombierMon Mar 22 16:16:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 633*0b459c2cSDavid du Colombier 634*0b459c2cSDavid du Colombier * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero): 635*0b459c2cSDavid du Colombier Don't define if already defined. 636*0b459c2cSDavid du Colombier 637*0b459c2cSDavid du ColombierFri Mar 5 00:20:16 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 638*0b459c2cSDavid du Colombier 639*0b459c2cSDavid du Colombier * diff.c (main): Use NULL in arg to compare_files. 640*0b459c2cSDavid du Colombier 641*0b459c2cSDavid du ColombierThu Feb 25 15:26:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 642*0b459c2cSDavid du Colombier 643*0b459c2cSDavid du Colombier * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS, 644*0b459c2cSDavid du Colombier not #if !HAVE_MEMCHR || !STDC_HEADERS. 645*0b459c2cSDavid du Colombier 646*0b459c2cSDavid du ColombierMon Feb 22 15:04:46 1993 Richard Stallman (rms@geech.gnu.ai.mit.edu) 647*0b459c2cSDavid du Colombier 648*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES. 649*0b459c2cSDavid du Colombier 650*0b459c2cSDavid du ColombierMon Feb 22 12:56:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 651*0b459c2cSDavid du Colombier 652*0b459c2cSDavid du Colombier * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<. 653*0b459c2cSDavid du Colombier 654*0b459c2cSDavid du ColombierSat Feb 20 19:18:56 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 655*0b459c2cSDavid du Colombier 656*0b459c2cSDavid du Colombier * io.c (binary_file_p): Return zero if file size is zero. 657*0b459c2cSDavid du Colombier 658*0b459c2cSDavid du ColombierFri Feb 19 17:31:32 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 659*0b459c2cSDavid du Colombier 660*0b459c2cSDavid du Colombier * Version 2.2 released. 661*0b459c2cSDavid du Colombier 662*0b459c2cSDavid du Colombier * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't 663*0b459c2cSDavid du Colombier define if already defined. 664*0b459c2cSDavid du Colombier 665*0b459c2cSDavid du ColombierWed Feb 17 17:08:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 666*0b459c2cSDavid du Colombier 667*0b459c2cSDavid du Colombier * Makefile.in (srcs): Remove limits.h. 668*0b459c2cSDavid du Colombier 669*0b459c2cSDavid du ColombierThu Feb 11 03:36:00 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 670*0b459c2cSDavid du Colombier 671*0b459c2cSDavid du Colombier * diff3.c (xmalloc): No longer static. 672*0b459c2cSDavid du Colombier 673*0b459c2cSDavid du Colombier * sdiff.c (edit): Allocate buf dynamically. 674*0b459c2cSDavid du Colombier 675*0b459c2cSDavid du Colombier * dir.c (dir_sort): Handle VOID_CLOSEDIR. 676*0b459c2cSDavid du Colombier 677*0b459c2cSDavid du ColombierWed Feb 10 00:15:54 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 678*0b459c2cSDavid du Colombier 679*0b459c2cSDavid du Colombier * limits.h: File deleted (should never have been there). 680*0b459c2cSDavid du Colombier 681*0b459c2cSDavid du ColombierTue Feb 9 03:53:22 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) 682*0b459c2cSDavid du Colombier 683*0b459c2cSDavid du Colombier * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last. 684*0b459c2cSDavid du Colombier 685*0b459c2cSDavid du ColombierWed Feb 3 15:42:10 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 686*0b459c2cSDavid du Colombier 687*0b459c2cSDavid du Colombier * system.h: Don't #define const; let configure do it. 688*0b459c2cSDavid du Colombier 689*0b459c2cSDavid du ColombierMon Feb 1 02:13:23 1993 Paul Eggert (eggert@hal.gnu.ai.mit.edu) 690*0b459c2cSDavid du Colombier 691*0b459c2cSDavid du Colombier * Version 2.1 released. 692*0b459c2cSDavid du Colombier 693*0b459c2cSDavid du Colombier * Makefile.in (dist): Survive ln failures. Create .tar.z 694*0b459c2cSDavid du Colombier (gzipped tar) file as well as .tar.Z (compressed tar) file. 695*0b459c2cSDavid du Colombier 696*0b459c2cSDavid du ColombierFri Jan 8 22:31:41 1993 Paul Eggert (eggert@twinsun.com) 697*0b459c2cSDavid du Colombier 698*0b459c2cSDavid du Colombier * side.c (print_half_line): When the input position falls 699*0b459c2cSDavid du Colombier outside the column, do not output a tab even if the output 700*0b459c2cSDavid du Colombier position still falls within the column. 701*0b459c2cSDavid du Colombier 702*0b459c2cSDavid du ColombierMon Dec 21 13:54:36 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) 703*0b459c2cSDavid du Colombier 704*0b459c2cSDavid du Colombier * Makefile.in (.c.o): Add -I. 705*0b459c2cSDavid du Colombier 706*0b459c2cSDavid du ColombierFri Dec 18 14:08:20 1992 Paul Eggert (eggert@twinsun.com) 707*0b459c2cSDavid du Colombier 708*0b459c2cSDavid du Colombier * configure.in: Add HAVE_FCNTL_H, since system.h uses it. 709*0b459c2cSDavid du Colombier 710*0b459c2cSDavid du ColombierTue Nov 24 10:06:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 711*0b459c2cSDavid du Colombier 712*0b459c2cSDavid du Colombier * Makefile.in: Note change from USG to HAVE_STRING_H. 713*0b459c2cSDavid du Colombier 714*0b459c2cSDavid du ColombierMon Nov 23 18:44:00 1992 Paul Eggert (eggert@twinsun.com) 715*0b459c2cSDavid du Colombier 716*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): When running out of lines, 717*0b459c2cSDavid du Colombier double the number of allocated lines, instead of just doubling 718*0b459c2cSDavid du Colombier that number minus the prefix lines. This is more likely to 719*0b459c2cSDavid du Colombier avoid the need for further memory allocation. 720*0b459c2cSDavid du Colombier 721*0b459c2cSDavid du ColombierWed Nov 18 20:40:28 1992 Paul Eggert (eggert@twinsun.com) 722*0b459c2cSDavid du Colombier 723*0b459c2cSDavid du Colombier * dir.c (dir_sort): Plug memory leak: space holding directory 724*0b459c2cSDavid du Colombier contents was not being reclaimed. Get directory size from 725*0b459c2cSDavid du Colombier struct file_data for initial guess at memory needed. 726*0b459c2cSDavid du Colombier Detect errors when reading and closing directory. 727*0b459c2cSDavid du Colombier (diff_dirs): Pass struct file_data to dir_sort. Finish plugging leak. 728*0b459c2cSDavid du Colombier * diff.c (compare_files): Pass struct file_data to diff_dirs. 729*0b459c2cSDavid du Colombier 730*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Don't assume alloc_lines is 731*0b459c2cSDavid du Colombier nonzero when allocating more lines. 732*0b459c2cSDavid du Colombier 733*0b459c2cSDavid du ColombierThu Nov 12 16:02:18 1992 Paul Eggert (eggert@twinsun.com) 734*0b459c2cSDavid du Colombier 735*0b459c2cSDavid du Colombier * diff.c (main): Add `-U lines' as an alias for `--unified=lines'. 736*0b459c2cSDavid du Colombier 737*0b459c2cSDavid du Colombier * diff3.c (usage): Add third --label option in example. 738*0b459c2cSDavid du Colombier 739*0b459c2cSDavid du Colombier * util.c (analyze_hunk): Fix test for ignoring blank lines. 740*0b459c2cSDavid du Colombier 741*0b459c2cSDavid du Colombier * configure.in, system.h: Avoid USG; use HAVE_TIME_H etc. instead. 742*0b459c2cSDavid du Colombier 743*0b459c2cSDavid du ColombierMon Nov 9 05:13:25 1992 Paul Eggert (eggert@twinsun.com) 744*0b459c2cSDavid du Colombier 745*0b459c2cSDavid du Colombier * diff3.c (main, usage): Add -A or --show-all. 746*0b459c2cSDavid du Colombier -m now defaults to -A, not -E. Allow up to three -L options. 747*0b459c2cSDavid du Colombier (output_diff3_edscript, output_diff3_merge): 748*0b459c2cSDavid du Colombier Remove spurious differences between these two functions. 749*0b459c2cSDavid du Colombier Output ||||||| for -A. Distinguish between conflicts and overlaps. 750*0b459c2cSDavid du Colombier (dotlines, undotlines): New functions that output `Ns', not `N,Ns'. 751*0b459c2cSDavid du Colombier (output_diff3_edscript, output_diff3_merge): Use them. 752*0b459c2cSDavid du Colombier 753*0b459c2cSDavid du Colombier * io.c (find_identical_ends): shift_boundaries needs an extra 754*0b459c2cSDavid du Colombier identical line at the end, not at the beginning. 755*0b459c2cSDavid du Colombier 756*0b459c2cSDavid du Colombier * sdiff.c (edit): execvp wants char **, not const char **. 757*0b459c2cSDavid du Colombier 758*0b459c2cSDavid du ColombierMon Oct 19 04:39:32 1992 Paul Eggert (eggert@twinsun.com) 759*0b459c2cSDavid du Colombier 760*0b459c2cSDavid du Colombier * context.c (print_context_script, find_function): Context 761*0b459c2cSDavid du Colombier line numbers start with - file->prefix_lines, not 0. 762*0b459c2cSDavid du Colombier 763*0b459c2cSDavid du Colombier * io.c (binary_file_p): Undo last change; it was a library bug. 764*0b459c2cSDavid du Colombier 765*0b459c2cSDavid du ColombierSun Oct 18 00:17:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 766*0b459c2cSDavid du Colombier 767*0b459c2cSDavid du Colombier * io.c (binary_file_p): Consider empty file as non-binary. 768*0b459c2cSDavid du Colombier 769*0b459c2cSDavid du ColombierMon Oct 5 05:18:46 1992 Paul Eggert (eggert@twinsun.com) 770*0b459c2cSDavid du Colombier 771*0b459c2cSDavid du Colombier * diff3.c (main, make_3way_diff, using_to_diff3_block): Don't 772*0b459c2cSDavid du Colombier report bogus differences (for one of -mexEX3) just because the 773*0b459c2cSDavid du Colombier file0-file1 diffs don't line up with the file0-file2 diffs. 774*0b459c2cSDavid du Colombier (This is entirely possible since we don't use diff's -n 775*0b459c2cSDavid du Colombier option.) Always compare file1 to file2, so that diff3 sees 776*0b459c2cSDavid du Colombier those changes directly. Typically, file2 is now the common 777*0b459c2cSDavid du Colombier file, not file0. 778*0b459c2cSDavid du Colombier (output_diff3_merge): The input file is file 0, not the common file. 779*0b459c2cSDavid du Colombier 780*0b459c2cSDavid du Colombier (FC, FO): New macros; they replace FILE1, FILE0 for two-way diffs, 781*0b459c2cSDavid du Colombier to distinguish them from three-way diffs. 782*0b459c2cSDavid du Colombier 783*0b459c2cSDavid du Colombier * diff3.c (using_to_diff3_block): Fold repeated code into loops. 784*0b459c2cSDavid du Colombier 785*0b459c2cSDavid du Colombier * diff3.c (make_3way_diff, process_diff): Have the *_end 786*0b459c2cSDavid du Colombier variable point to the next field to be changed, not to the last 787*0b459c2cSDavid du Colombier object allocated; this saves an if-then-else. 788*0b459c2cSDavid du Colombier 789*0b459c2cSDavid du Colombier * diff3.c (process_diff): Use D_NUMLINES instead of its definiens. 790*0b459c2cSDavid du Colombier 791*0b459c2cSDavid du Colombier * diff3.c: Make fns and vars static unless they must be external. 792*0b459c2cSDavid du Colombier 793*0b459c2cSDavid du ColombierWed Sep 30 09:21:59 1992 Paul Eggert (eggert@twinsun.com) 794*0b459c2cSDavid du Colombier 795*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): OUTPUT_IFDEF is now robust. 796*0b459c2cSDavid du Colombier * diff.h (ROBUST_OUTPUT_STYLE): Likewise. 797*0b459c2cSDavid du Colombier (default_line_format): Remove. All refs removed. 798*0b459c2cSDavid du Colombier 799*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_lines): Add %L. Optimize %l\n even if user 800*0b459c2cSDavid du Colombier specified it, as opposed to its being the default. 801*0b459c2cSDavid du Colombier 802*0b459c2cSDavid du ColombierTue Sep 29 19:01:28 1992 Paul Eggert (eggert@twinsun.com) 803*0b459c2cSDavid du Colombier 804*0b459c2cSDavid du Colombier * diff.c (longopts, main): --{old,new,unchanged,changed}--group-format 805*0b459c2cSDavid du Colombier are new options, so that -D is no longer overloaded. Set 806*0b459c2cSDavid du Colombier no_diff_means_no_output if --unchanged-{line,group}-format allows it. 807*0b459c2cSDavid du Colombier * diff.h (enum line_class): New type. 808*0b459c2cSDavid du Colombier (group_format, line_format): Use it to regularize option flags. 809*0b459c2cSDavid du Colombier All refs changed. 810*0b459c2cSDavid du Colombier 811*0b459c2cSDavid du Colombier * ifdef.c (format_ifdef, print_ifdef_lines): %n is no longer a format. 812*0b459c2cSDavid du Colombier 813*0b459c2cSDavid du ColombierMon Sep 28 04:51:42 1992 Paul Eggert (eggert@twinsun.com) 814*0b459c2cSDavid du Colombier 815*0b459c2cSDavid du Colombier * diff.c (main, usage): Replace --line-prefix with the more general 816*0b459c2cSDavid du Colombier --{old,new,unchanged}-line-format options. 817*0b459c2cSDavid du Colombier * ifdef.c (format_ifdef, print_ifdef_lines): Likewise. 818*0b459c2cSDavid du Colombier * diff.h (line_format): Renamed from line_prefix. All refs changed. 819*0b459c2cSDavid du Colombier * diff.h, ifdef.c (default_line_format): New variable. 820*0b459c2cSDavid du Colombier * util.c (output_1_line): New function. 821*0b459c2cSDavid du Colombier (print_1_line): Use it. 822*0b459c2cSDavid du Colombier 823*0b459c2cSDavid du Colombier * ifdef.c: (format_ifdef, print_ifdef_lines): Add %0 format. 824*0b459c2cSDavid du Colombier 825*0b459c2cSDavid du ColombierSun Sep 27 05:38:13 1992 Paul Eggert (eggert@twinsun.com) 826*0b459c2cSDavid du Colombier 827*0b459c2cSDavid du Colombier * diff.c (main): Add -E or --line-prefix option. Add -D'=xxx' 828*0b459c2cSDavid du Colombier for common lines. Change default -D< format from copy of -D> 829*0b459c2cSDavid du Colombier format to to -D<%<; similarly for default -D> format. 830*0b459c2cSDavid du Colombier * diff.h (common_format, line_prefix): New variables. 831*0b459c2cSDavid du Colombier * ifdef.c (format_ifdef): New function. 832*0b459c2cSDavid du Colombier (print_ifdef_script, print_ifdef_hunk, print_ifdef_lines): 833*0b459c2cSDavid du Colombier Use it for -D'=xxx', -E. 834*0b459c2cSDavid du Colombier 835*0b459c2cSDavid du Colombier * context.c (find_hunk): Glue together two non-ignorable changes that 836*0b459c2cSDavid du Colombier are exactly CONTEXT * 2 lines apart. This shortens output, removes 837*0b459c2cSDavid du Colombier a behavioral discontinuity at CONTEXT = 0, and is more compatible 838*0b459c2cSDavid du Colombier with traditional diff. 839*0b459c2cSDavid du Colombier 840*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Slurp stdin at most once. 841*0b459c2cSDavid du Colombier 842*0b459c2cSDavid du Colombier * util.c (print_line_line): line_flag is const char *. 843*0b459c2cSDavid du Colombier 844*0b459c2cSDavid du ColombierThu Sep 24 15:18:07 1992 Paul Eggert (eggert@twinsun.com) 845*0b459c2cSDavid du Colombier 846*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_lines): New function, which fwrites a sequence 847*0b459c2cSDavid du Colombier of lines all at once for speed. 848*0b459c2cSDavid du Colombier (print_ifdef_script, print_ifdef_hunk): Use it. 849*0b459c2cSDavid du Colombier 850*0b459c2cSDavid du ColombierThu Sep 24 05:54:14 1992 Paul Eggert (eggert@twinsun.com) 851*0b459c2cSDavid du Colombier 852*0b459c2cSDavid du Colombier * diff.c (main): Support new -D options for if-then-else formats. 853*0b459c2cSDavid du Colombier (specify_format): New function. 854*0b459c2cSDavid du Colombier * diff.h (ifndef_format, ifdef_format, ifnelse_format): New variables. 855*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_hunk): Use the new variables instead of 856*0b459c2cSDavid du Colombier a hardwired format. 857*0b459c2cSDavid du Colombier 858*0b459c2cSDavid du Colombier * side.c (print_1sdiff_line): Represent incomplete lines on output. 859*0b459c2cSDavid du Colombier (print_sdiff_script): Likewise. Don't print 'q' at end, 860*0b459c2cSDavid du Colombier since that doesn't work with incomplete lines. 861*0b459c2cSDavid du Colombier * sdiff.c (interact): Don't assume diff output ends with 'q' line. 862*0b459c2cSDavid du Colombier * diff.h (ROBUST_OUTPUT_STYLE): OUTPUT_SDIFF is now robust. 863*0b459c2cSDavid du Colombier 864*0b459c2cSDavid du Colombier * sdiff.c (lf_copy, lf_snarf): Use memchr instead of index, 865*0b459c2cSDavid du Colombier to avoid dumping core when files contain null characters. 866*0b459c2cSDavid du Colombier (memchr): New function (if memchr is missing). 867*0b459c2cSDavid du Colombier 868*0b459c2cSDavid du Colombier * io.c (sip): New arg SKIP_TEST to skip test for binary file. 869*0b459c2cSDavid du Colombier (read_files): Don't bother testing second file if first is binary. 870*0b459c2cSDavid du Colombier 871*0b459c2cSDavid du ColombierThu Sep 17 21:17:49 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 872*0b459c2cSDavid du Colombier 873*0b459c2cSDavid du Colombier * system.h [!USG && !_POSIX_VERSION]: Protect from conflicting 874*0b459c2cSDavid du Colombier prototype for wait in sys/wait.h. 875*0b459c2cSDavid du Colombier 876*0b459c2cSDavid du ColombierWed Sep 16 12:32:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 877*0b459c2cSDavid du Colombier 878*0b459c2cSDavid du Colombier * Makefile.in: Include binprefix in -DDIFF_PROGRAM. 879*0b459c2cSDavid du Colombier 880*0b459c2cSDavid du ColombierTue Sep 15 14:27:25 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 881*0b459c2cSDavid du Colombier 882*0b459c2cSDavid du Colombier * Version 2.0. 883*0b459c2cSDavid du Colombier 884*0b459c2cSDavid du ColombierSat Sep 12 01:31:19 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 885*0b459c2cSDavid du Colombier 886*0b459c2cSDavid du Colombier * util.c, diff.h, system.h [!HAVE_MEMCHR]: Don't use void * 887*0b459c2cSDavid du Colombier and const when declaring memchr replacement. Declare memchr 888*0b459c2cSDavid du Colombier if !STDC_HEADERS && !USG. 889*0b459c2cSDavid du Colombier 890*0b459c2cSDavid du ColombierThu Sep 10 15:17:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 891*0b459c2cSDavid du Colombier 892*0b459c2cSDavid du Colombier * Makefile.in (uninstall): New target. 893*0b459c2cSDavid du Colombier 894*0b459c2cSDavid du Colombier * diff.c (excluded_filename): Use fnmatch, not wildmat. 895*0b459c2cSDavid du Colombier (usage): Document -x, -X, --exclude, --exclude-from. 896*0b459c2cSDavid du Colombier Makefile.in: Use fnmatch.c, not wildmat.c. 897*0b459c2cSDavid du Colombier 898*0b459c2cSDavid du ColombierSun Sep 6 23:46:25 1992 Paul Eggert (eggert@twinsun.com) 899*0b459c2cSDavid du Colombier 900*0b459c2cSDavid du Colombier * configure.in: Add HAVE_MEMCHR. 901*0b459c2cSDavid du Colombier * diff.h, util.c: Use it instead of MEMCHR_MISSING. 902*0b459c2cSDavid du Colombier 903*0b459c2cSDavid du ColombierSun Sep 6 07:25:49 1992 Paul Eggert (eggert@twinsun.com) 904*0b459c2cSDavid du Colombier 905*0b459c2cSDavid du Colombier * diff.h: (struct line_def): Replace this 3-word struct with char *. 906*0b459c2cSDavid du Colombier This uses less memory, particularly for large files with short lines. 907*0b459c2cSDavid du Colombier (struct file_data): New member linbuf_base counts number of lines 908*0b459c2cSDavid du Colombier in common prefix that are not recorded in linbuf; 909*0b459c2cSDavid du Colombier this uses less memory if files are identical or differ only at end. 910*0b459c2cSDavid du Colombier New member buffered_lines counts possibly differing lines. 911*0b459c2cSDavid du Colombier New member valid_lines counts valid data. 912*0b459c2cSDavid du Colombier New member alloc_lines - linbuf_base replaces old linbufsize. 913*0b459c2cSDavid du Colombier linbuf[0] now always points at first differing line. 914*0b459c2cSDavid du Colombier Remove unused members ltran, suffix_lines. 915*0b459c2cSDavid du Colombier Add const where appropriate. 916*0b459c2cSDavid du Colombier (Is_space): New macro, for consistent definition of `white space'. 917*0b459c2cSDavid du Colombier (excluded_filename, memchr, sip, slurp): New declarations. 918*0b459c2cSDavid du Colombier * ed.c (print_ed_hunk): Adjust to diff.h's struct changes. 919*0b459c2cSDavid du Colombier * context.c (pr_context_hunk): Likewise. 920*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_script): Likewise. 921*0b459c2cSDavid du Colombier * side.c (print_sdiff_script, print_half_line): Likewise. 922*0b459c2cSDavid du Colombier * util.c (analyze_hunk, line_cmp, print_1_line): Likewise. 923*0b459c2cSDavid du Colombier 924*0b459c2cSDavid du Colombier * analyze.c (shift_boundaries): Remove unneeded variable `end' and 925*0b459c2cSDavid du Colombier unnecessary comparisons of `preceding' and `other_preceding' against 0. 926*0b459c2cSDavid du Colombier (diff_2_files): When comparing files byte-by-byte for equality, 927*0b459c2cSDavid du Colombier don't slurp them all in at once; just compare them a buffer at a time. 928*0b459c2cSDavid du Colombier This can win big if they differ early on. 929*0b459c2cSDavid du Colombier Move some code to compare_files to enable this change. 930*0b459c2cSDavid du Colombier Use only one buffer for stdin with `diff - -'. 931*0b459c2cSDavid du Colombier (discard_confusing_lines, diff_2_files): Coalesce malloc/free calls. 932*0b459c2cSDavid du Colombier (build_script): Remove obsolete OUTPUT_RCS code. 933*0b459c2cSDavid du Colombier 934*0b459c2cSDavid du Colombier * diff.c (add_exclude, add_exclude_file, excluded_filename): New fns. 935*0b459c2cSDavid du Colombier (main): Use them for the new --exclude and --exclude-from options. 936*0b459c2cSDavid du Colombier (compare_files): Don't open a file unless it must be read. 937*0b459c2cSDavid du Colombier Treat `diff file file' and `diff file dir' similarly. 938*0b459c2cSDavid du Colombier Move some code here from diff_2_files to enable this. 939*0b459c2cSDavid du Colombier Simplify file vs dir warning. 940*0b459c2cSDavid du Colombier 941*0b459c2cSDavid du Colombier * dir.c (dir_sort): Support new --exclude* options. 942*0b459c2cSDavid du Colombier 943*0b459c2cSDavid du Colombier * io.c (struct equivclass): Put hash code and line length here instead 944*0b459c2cSDavid du Colombier of struct line_def, so that they can be shared. 945*0b459c2cSDavid du Colombier (find_and_hash_each_line): Compute equivalence class as we go, 946*0b459c2cSDavid du Colombier instead of doing it in a separate pass; this thrashes memory less. 947*0b459c2cSDavid du Colombier Make buckets realloc-able, since we can't preallocate them. 948*0b459c2cSDavid du Colombier Record one more line start than there are lines, so that we can compute 949*0b459c2cSDavid du Colombier any line's length by subtracting its start from the next line's, 950*0b459c2cSDavid du Colombier instead of storing the length explicitly. This saves memory. 951*0b459c2cSDavid du Colombier Move prefix-handling code to find_identical_ends; 952*0b459c2cSDavid du Colombier this wins with large prefixes. 953*0b459c2cSDavid du Colombier Use Is_space, not is_space, for consistent treatment of white space. 954*0b459c2cSDavid du Colombier (prepare_text_end): New function. 955*0b459c2cSDavid du Colombier (find_identical_ends): Move slurping here, so it's only done when 956*0b459c2cSDavid du Colombier needed. Work even if the buffers are the same (because of `diff - -'). 957*0b459c2cSDavid du Colombier Compare prefixes a word at a time for speed. 958*0b459c2cSDavid du Colombier (find_equiv_class): Delete; now done by find_and_hash_each_line. 959*0b459c2cSDavid du Colombier (read_files): Don't slurp unless needed. 960*0b459c2cSDavid du Colombier find_equiv_class's work is now folded into find_and_hash_each_line. 961*0b459c2cSDavid du Colombier Don't copy stdin buffer if `diff - -'. 962*0b459c2cSDavid du Colombier Check for running out of primes. 963*0b459c2cSDavid du Colombier (sip, slurp): Split first part of `slurp' into another function `sip'. 964*0b459c2cSDavid du Colombier `sip' sets things up and perhaps reads the first ST_BLKSIZE buffer to 965*0b459c2cSDavid du Colombier see whether the file is binary; `slurp' now just finishes the job. 966*0b459c2cSDavid du Colombier This lets diff_2_files compare binary files lazily. 967*0b459c2cSDavid du Colombier Allocate a one-word sentinel to allow word-at-a-time prefix comparison. 968*0b459c2cSDavid du Colombier Count prefix lines only if needed, only count the first file's prefix. 969*0b459c2cSDavid du Colombier Don't bother to count suffix lines; it's never needed. 970*0b459c2cSDavid du Colombier Set up linbuf[0] to point at first differing line. 971*0b459c2cSDavid du Colombier (binary_file_p): Change test for binary files: 972*0b459c2cSDavid du Colombier if it has a null byte in its first buffer, it's binary. 973*0b459c2cSDavid du Colombier (primes): Add more primes. 974*0b459c2cSDavid du Colombier 975*0b459c2cSDavid du Colombier * util.c (line_cmp): Use bcmp for speed. 976*0b459c2cSDavid du Colombier Use Is_space, not is_space, for consistent treatment of white space. 977*0b459c2cSDavid du Colombier (translate_line_number): Internal line numbers now count from 0 978*0b459c2cSDavid du Colombier starting after the prefix. 979*0b459c2cSDavid du Colombier (memchr): New function (if memchr is missing). 980*0b459c2cSDavid du Colombier 981*0b459c2cSDavid du Colombier * Makefile.in: Document HAVE_ST_BLKSIZE. Link with wildmat.o. 982*0b459c2cSDavid du Colombier * system.h (STAT_BLOCKSIZE): New macro based on HAVE_ST_BLKSIZE. 983*0b459c2cSDavid du Colombier * configure.in: Add AC_ST_BLKSIZE. 984*0b459c2cSDavid du Colombier * wildmat.c: New file. 985*0b459c2cSDavid du Colombier 986*0b459c2cSDavid du ColombierFri Sep 4 01:28:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 987*0b459c2cSDavid du Colombier 988*0b459c2cSDavid du Colombier * sdiff.c (xmalloc): Renamed from ck_malloc. Callers changed. 989*0b459c2cSDavid du Colombier 990*0b459c2cSDavid du ColombierThu Sep 3 15:28:59 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 991*0b459c2cSDavid du Colombier 992*0b459c2cSDavid du Colombier * diff.h: Don't declare free, index, rindex. 993*0b459c2cSDavid du Colombier 994*0b459c2cSDavid du ColombierTue Aug 11 22:18:06 1992 John Gilmore (gnu at cygnus.com) 995*0b459c2cSDavid du Colombier 996*0b459c2cSDavid du Colombier * io.c (binary_file_p): Use heuristic to avoid declaring info 997*0b459c2cSDavid du Colombier files as binary files. Allow about 1.5% non-printing 998*0b459c2cSDavid du Colombier characters (in info's case, ^_). 999*0b459c2cSDavid du Colombier 1000*0b459c2cSDavid du ColombierTue Jul 7 01:09:26 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1001*0b459c2cSDavid du Colombier 1002*0b459c2cSDavid du Colombier * diff.h: Replace function_regexp and ignore_regexp with lists 1003*0b459c2cSDavid du Colombier of compiled regexps. 1004*0b459c2cSDavid du Colombier * analyze.c, context.c, util.c: Test whether the lists, not 1005*0b459c2cSDavid du Colombier the old variables, are empty. 1006*0b459c2cSDavid du Colombier * util.c (analyze_hunk), context.c (find_function): Compare 1007*0b459c2cSDavid du Colombier lines with the lists of regexps. 1008*0b459c2cSDavid du Colombier * diff.c (add_regexp): New function. 1009*0b459c2cSDavid du Colombier (main): Use it. 1010*0b459c2cSDavid du Colombier 1011*0b459c2cSDavid du Colombier * diff3: Add -v --version option. 1012*0b459c2cSDavid du Colombier * Makefile.in: Link with version.o. 1013*0b459c2cSDavid du Colombier 1014*0b459c2cSDavid du Colombier * system.h: New file. 1015*0b459c2cSDavid du Colombier * diff.h, cmp.c, diff3.c, sdiff.c: Use it. 1016*0b459c2cSDavid du Colombier 1017*0b459c2cSDavid du Colombier * diff.h, diff3.c: Include string.h or strings.h, as appropriate. 1018*0b459c2cSDavid du Colombier Declare malloc and realloc. 1019*0b459c2cSDavid du Colombier 1020*0b459c2cSDavid du Colombier * diff3.c (perror_with_exit): Include program name in message. 1021*0b459c2cSDavid du Colombier 1022*0b459c2cSDavid du Colombier * diff3.c: Lowercase error messages for GNU standards. 1023*0b459c2cSDavid du Colombier 1024*0b459c2cSDavid du Colombier * sdiff.c [USG || STDC_HEADERS]: Define bcopy in terms of memcpy. 1025*0b459c2cSDavid du Colombier 1026*0b459c2cSDavid du Colombier * sdiff.c: Use the version number from version.c. 1027*0b459c2cSDavid du Colombier * Makefile.in: Link with version.o. 1028*0b459c2cSDavid du Colombier 1029*0b459c2cSDavid du Colombier * cmp.c error.c xmalloc.c: New files from textutils. 1030*0b459c2cSDavid du Colombier * Makefile.in: Add rules for them. 1031*0b459c2cSDavid du Colombier 1032*0b459c2cSDavid du Colombier * diff.c (longopts): --unidirectional-new-file is like -P, not -N. 1033*0b459c2cSDavid du Colombier Rename --file-label to --label (leave old name, but undocumented). 1034*0b459c2cSDavid du Colombier 1035*0b459c2cSDavid du Colombier * sdiff.c, diff.c (usage): Condense messages and fix some errors. 1036*0b459c2cSDavid du Colombier 1037*0b459c2cSDavid du Colombier * diff3.c (main, usage): Add long-named options. 1038*0b459c2cSDavid du Colombier 1039*0b459c2cSDavid du ColombierFri Jul 3 14:31:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1040*0b459c2cSDavid du Colombier 1041*0b459c2cSDavid du Colombier * diff.h, diff3.c, sdiff.c: Change FOO_MISSING macros to HAVE_FOO. 1042*0b459c2cSDavid du Colombier 1043*0b459c2cSDavid du ColombierThu Jun 25 16:59:47 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) 1044*0b459c2cSDavid du Colombier 1045*0b459c2cSDavid du Colombier * diff.c: --reversed-ed -> --forward-ed. 1046*0b459c2cSDavid du Colombier 1047*0b459c2cSDavid du ColombierWed Feb 26 12:17:32 1992 Paul Eggert (eggert@yata.uucp) 1048*0b459c2cSDavid du Colombier 1049*0b459c2cSDavid du Colombier * analyze.c, diff.c, diff.h, io.c: For -y, compare even if same file. 1050*0b459c2cSDavid du Colombier 1051*0b459c2cSDavid du ColombierFri Feb 14 22:46:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 1052*0b459c2cSDavid du Colombier 1053*0b459c2cSDavid du Colombier * io.c, diff3.c, analyze.c: Add extra parentheses. 1054*0b459c2cSDavid du Colombier 1055*0b459c2cSDavid du ColombierSun Feb 9 00:22:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) 1056*0b459c2cSDavid du Colombier 1057*0b459c2cSDavid du Colombier * diff.h (unidirectional_new_file_flag): New variable. 1058*0b459c2cSDavid du Colombier * diff.c (main): Set that for -P. 1059*0b459c2cSDavid du Colombier (compare_files): Support -P, somewhat like -N. 1060*0b459c2cSDavid du Colombier (longopts): Support long name for -P. 1061*0b459c2cSDavid du Colombier 1062*0b459c2cSDavid du ColombierSat Jan 4 20:10:34 1992 Paul Eggert (eggert at yata.uucp) 1063*0b459c2cSDavid du Colombier 1064*0b459c2cSDavid du Colombier * Makefile.in: Distribute diff.info-* too. 1065*0b459c2cSDavid du Colombier 1066*0b459c2cSDavid du Colombier * README, sdiff.c: version number now matches version.c. 1067*0b459c2cSDavid du Colombier 1068*0b459c2cSDavid du Colombier * configure: Fix and document vfork test. 1069*0b459c2cSDavid du Colombier 1070*0b459c2cSDavid du Colombier * ifdef.c: Don't dump core if `diff -Dx f f'. 1071*0b459c2cSDavid du Colombier 1072*0b459c2cSDavid du ColombierMon Dec 23 23:36:08 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 1073*0b459c2cSDavid du Colombier 1074*0b459c2cSDavid du Colombier * diff.h, diff3.c, sdiff.c: Change POSIX ifdefs to 1075*0b459c2cSDavid du Colombier HAVE_UNISTD_H and _POSIX_VERSION. 1076*0b459c2cSDavid du Colombier 1077*0b459c2cSDavid du ColombierWed Dec 18 17:00:31 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 1078*0b459c2cSDavid du Colombier 1079*0b459c2cSDavid du Colombier * Makefile.in (srcs): Add sdiff.c. 1080*0b459c2cSDavid du Colombier (tapefiles): Add diff.texi and diff.info. 1081*0b459c2cSDavid du Colombier 1082*0b459c2cSDavid du Colombier * diff.h, diff3.c, sdiff.c: Use HAVE_VFORK_H instead of 1083*0b459c2cSDavid du Colombier VFORK_HEADER and VFORK_WORKS. 1084*0b459c2cSDavid du Colombier 1085*0b459c2cSDavid du ColombierTue Dec 17 00:02:59 1991 Paul Eggert (eggert at yata.uucp) 1086*0b459c2cSDavid du Colombier 1087*0b459c2cSDavid du Colombier * Makefile.in (all): Add diff.info, sdiff. 1088*0b459c2cSDavid du Colombier 1089*0b459c2cSDavid du Colombier * configure, diff.c, sdiff.c: 1090*0b459c2cSDavid du Colombier Prefix long options with `--', not `+'. 1091*0b459c2cSDavid du Colombier * diff.c: Regularize option names. 1092*0b459c2cSDavid du Colombier 1093*0b459c2cSDavid du Colombier * configure: Fix check for vfork. 1094*0b459c2cSDavid du Colombier * configure, diff.c, diff.h, diff3.c, sdiff.c: 1095*0b459c2cSDavid du Colombier Use Posix definitions when possible. 1096*0b459c2cSDavid du Colombier 1097*0b459c2cSDavid du Colombier * context.c: Align context with tab if -T is given. Tune. 1098*0b459c2cSDavid du Colombier * diff.c, diff.h, side.c: Calculate column widths so that tabs line up. 1099*0b459c2cSDavid du Colombier * io.c: Add distinction between white space and printing chars. 1100*0b459c2cSDavid du Colombier * side.c: Don't expand tabs unless -t is given. 1101*0b459c2cSDavid du Colombier * side.c, util.c: Tab expansion now knows about '\b', '\f', '\r', '\v'. 1102*0b459c2cSDavid du Colombier * util.c: -w skips all white space. Remove lint. Tune. 1103*0b459c2cSDavid du Colombier 1104*0b459c2cSDavid du Colombier * sdiff.c: Support many more diff options, e.g. `-', `sdiff file dir'. 1105*0b459c2cSDavid du Colombier Ignore interrupts while the subsidiary editor is in control. 1106*0b459c2cSDavid du Colombier Clean up temporary file and kill subsidiary diff if interrupted. 1107*0b459c2cSDavid du Colombier Ensure subsidiary diff doesn't ignore SIGPIPE. 1108*0b459c2cSDavid du Colombier Don't get confused while waiting for two subprocesses. 1109*0b459c2cSDavid du Colombier Don't let buffers overflow. Check for I/O errors. 1110*0b459c2cSDavid du Colombier Convert to GNU style. Tune. 1111*0b459c2cSDavid du Colombier 1112*0b459c2cSDavid du Colombier * sdiff.c, util.c: Don't lose errno. 1113*0b459c2cSDavid du Colombier Don't confuse sdiff with messages like `Binary files differ'. 1114*0b459c2cSDavid du Colombier * sdiff.c, side.c: Don't assume that common lines are identical. 1115*0b459c2cSDavid du Colombier Simplify --sdiff-merge-assist format. 1116*0b459c2cSDavid du Colombier 1117*0b459c2cSDavid du ColombierMon Sep 16 16:42:01 1991 Tom Lord (lord at churchy.gnu.ai.mit.edu) 1118*0b459c2cSDavid du Colombier 1119*0b459c2cSDavid du Colombier * Makefile.in, sdiff.c: introduced sdiff front end to diff. 1120*0b459c2cSDavid du Colombier 1121*0b459c2cSDavid du Colombier * Makefile.in, analyze.c, diff.c, diff.h, io.c, side.c: Added 1122*0b459c2cSDavid du Colombier sdiff-style output format to diff. 1123*0b459c2cSDavid du Colombier 1124*0b459c2cSDavid du ColombierMon Aug 26 16:44:55 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu) 1125*0b459c2cSDavid du Colombier 1126*0b459c2cSDavid du Colombier * Makefile.in, configure: Only put $< in Makefile if using VPATH, 1127*0b459c2cSDavid du Colombier because older makes don't understand it. 1128*0b459c2cSDavid du Colombier 1129*0b459c2cSDavid du ColombierFri Aug 2 12:22:30 1991 David J. MacKenzie (djm at apple-gunkies) 1130*0b459c2cSDavid du Colombier 1131*0b459c2cSDavid du Colombier * configure: Create config.status. Remove it and Makefile if 1132*0b459c2cSDavid du Colombier interrupted while creating them. 1133*0b459c2cSDavid du Colombier 1134*0b459c2cSDavid du ColombierThu Aug 1 22:24:31 1991 David J. MacKenzie (djm at apple-gunkies) 1135*0b459c2cSDavid du Colombier 1136*0b459c2cSDavid du Colombier * configure: Check for +srcdir etc. arg and look for 1137*0b459c2cSDavid du Colombier Makefile.in in that directory. Set VPATH if srcdir is not `.'. 1138*0b459c2cSDavid du Colombier * Makefile.in: Get rid of $(archpfx). 1139*0b459c2cSDavid du Colombier 1140*0b459c2cSDavid du ColombierTue Jul 30 21:28:44 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 1141*0b459c2cSDavid du Colombier 1142*0b459c2cSDavid du Colombier * Makefile.in (prefix): Renamed from DESTDIR. 1143*0b459c2cSDavid du Colombier 1144*0b459c2cSDavid du ColombierWed Jul 24 23:08:56 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 1145*0b459c2cSDavid du Colombier 1146*0b459c2cSDavid du Colombier * diff.h, diff3.c: Rearrange ifdefs to use POSIX, 1147*0b459c2cSDavid du Colombier STDC_HEADERS, VFORK_MISSING, DIRENT. This way it works on 1148*0b459c2cSDavid du Colombier more systems that aren't pure USG or BSD. 1149*0b459c2cSDavid du Colombier Don't not define const if __GNUC__ is defined -- that would 1150*0b459c2cSDavid du Colombier break with -traditional. 1151*0b459c2cSDavid du Colombier * configure: Check for those features. 1152*0b459c2cSDavid du Colombier 1153*0b459c2cSDavid du ColombierWed Jul 10 01:39:23 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 1154*0b459c2cSDavid du Colombier 1155*0b459c2cSDavid du Colombier * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL). 1156*0b459c2cSDavid du Colombier 1157*0b459c2cSDavid du ColombierSat Jul 6 16:39:04 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 1158*0b459c2cSDavid du Colombier 1159*0b459c2cSDavid du Colombier * Replace Makefile with configure and Makefile.in. 1160*0b459c2cSDavid du Colombier Update README with current compilation instructions. 1161*0b459c2cSDavid du Colombier 1162*0b459c2cSDavid du ColombierSat Jul 6 14:03:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 1163*0b459c2cSDavid du Colombier 1164*0b459c2cSDavid du Colombier * util.c (setup_output): Just save the args for later use. 1165*0b459c2cSDavid du Colombier (begin_output): Do the real work, with the values that were saved. 1166*0b459c2cSDavid du Colombier It's safe to call begin_output more than once. 1167*0b459c2cSDavid du Colombier Print the special headers for context format here. 1168*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Don't print special headers here. 1169*0b459c2cSDavid du Colombier * context.c (pr_context_hunk, pr_unidiff_hunk): Call begin_output. 1170*0b459c2cSDavid du Colombier * ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk): 1171*0b459c2cSDavid du Colombier * normal.c (print_normal_hunk): Likewise. 1172*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_hunk): Likewise. 1173*0b459c2cSDavid du Colombier * util.c (finish_output): Don't die if begin_output was not called. 1174*0b459c2cSDavid du Colombier 1175*0b459c2cSDavid du ColombierThu Jun 20 23:10:01 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 1176*0b459c2cSDavid du Colombier 1177*0b459c2cSDavid du Colombier * Makefile: Add TAGS, distclean, and realclean targets. 1178*0b459c2cSDavid du Colombier Set SHELL. 1179*0b459c2cSDavid du Colombier 1180*0b459c2cSDavid du ColombierTue Apr 30 13:54:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) 1181*0b459c2cSDavid du Colombier 1182*0b459c2cSDavid du Colombier * diff.h (TRUE, FALSE): Undefine these before defining. 1183*0b459c2cSDavid du Colombier 1184*0b459c2cSDavid du ColombierThu Mar 14 18:27:27 1991 Richard Stallman (rms@mole.ai.mit.edu) 1185*0b459c2cSDavid du Colombier 1186*0b459c2cSDavid du Colombier * Makefile (objs): Include $(ALLOCA). 1187*0b459c2cSDavid du Colombier 1188*0b459c2cSDavid du ColombierSat Mar 9 22:34:03 1991 Richard Stallman (rms at mole.ai.mit.edu) 1189*0b459c2cSDavid du Colombier 1190*0b459c2cSDavid du Colombier * diff.h: Include regex.h. 1191*0b459c2cSDavid du Colombier 1192*0b459c2cSDavid du ColombierThu Feb 28 18:59:53 1991 Richard Stallman (rms at mole.ai.mit.edu) 1193*0b459c2cSDavid du Colombier 1194*0b459c2cSDavid du Colombier * Makefile (diff3): Link with GNU getopt. 1195*0b459c2cSDavid du Colombier 1196*0b459c2cSDavid du ColombierSat Feb 23 12:49:43 1991 Richard Stallman (rms at mole.ai.mit.edu) 1197*0b459c2cSDavid du Colombier 1198*0b459c2cSDavid du Colombier * io.c (find_equiv_class): Make hash code unsigned before mod. 1199*0b459c2cSDavid du Colombier 1200*0b459c2cSDavid du Colombier * diff.h (files): Add EXTERN. 1201*0b459c2cSDavid du Colombier 1202*0b459c2cSDavid du ColombierSun Jan 13 21:33:01 1991 Richard Stallman (rms at mole.ai.mit.edu) 1203*0b459c2cSDavid du Colombier 1204*0b459c2cSDavid du Colombier * diff.c: +print option renamed +paginate. Remove +all-text. 1205*0b459c2cSDavid du Colombier 1206*0b459c2cSDavid du ColombierMon Jan 7 06:18:01 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 1207*0b459c2cSDavid du Colombier 1208*0b459c2cSDavid du Colombier * Makefile (dist): New target, replacing diff.tar and 1209*0b459c2cSDavid du Colombier diff.tar.Z, to encode version number in distribution directory 1210*0b459c2cSDavid du Colombier and tar file names. 1211*0b459c2cSDavid du Colombier 1212*0b459c2cSDavid du ColombierSun Jan 6 18:42:23 1991 Michael I Bushnell (mib at geech.ai.mit.edu) 1213*0b459c2cSDavid du Colombier 1214*0b459c2cSDavid du Colombier * Version 1.15 released. 1215*0b459c2cSDavid du Colombier 1216*0b459c2cSDavid du Colombier * version.c: Updated from 1.15 alpha to 1.15 1217*0b459c2cSDavid du Colombier 1218*0b459c2cSDavid du Colombier * context.c (print_context_number_range, 1219*0b459c2cSDavid du Colombier print_unidiff_number_range): Don't print N,M when N=M, print 1220*0b459c2cSDavid du Colombier just N instead. 1221*0b459c2cSDavid du Colombier 1222*0b459c2cSDavid du Colombier * README: Updated for version 1.15. 1223*0b459c2cSDavid du Colombier Makefile: Updated for version 1.15. 1224*0b459c2cSDavid du Colombier 1225*0b459c2cSDavid du Colombier * diff3.c (main): Don't get confused if one of the arguments 1226*0b459c2cSDavid du Colombier is a directory. 1227*0b459c2cSDavid du Colombier 1228*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't get confused if comparing 1229*0b459c2cSDavid du Colombier standard input to a directory; print error instead. 1230*0b459c2cSDavid du Colombier 1231*0b459c2cSDavid du Colombier * analyze.c (diff_2_files), context.c (print_context_header, 1232*0b459c2cSDavid du Colombier print_context_script), diff.c (main), diff.h (enum 1233*0b459c2cSDavid du Colombier output_style): Tread unidiff as an output style in its own 1234*0b459c2cSDavid du Colombier right. This also generates an error when both -u and -c are 1235*0b459c2cSDavid du Colombier given. 1236*0b459c2cSDavid du Colombier 1237*0b459c2cSDavid du Colombier * diff.c (main): Better error messages when regexps are bad. 1238*0b459c2cSDavid du Colombier 1239*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't assume stdin is opened. 1240*0b459c2cSDavid du Colombier 1241*0b459c2cSDavid du Colombier * diff3.c (read_diff): Don't assume things about the order of 1242*0b459c2cSDavid du Colombier descriptor assignment and closes. 1243*0b459c2cSDavid du Colombier 1244*0b459c2cSDavid du Colombier * util.c (setup_output): Don't assume things about the order 1245*0b459c2cSDavid du Colombier of descriptor assignment and closes. 1246*0b459c2cSDavid du Colombier 1247*0b459c2cSDavid du Colombier * diff.c (compare_files): Set a flag so that closes don't 1248*0b459c2cSDavid du Colombier happen more than once. 1249*0b459c2cSDavid du Colombier 1250*0b459c2cSDavid du Colombier * diff.c (main): Don't just flush stdout, do a close. That 1251*0b459c2cSDavid du Colombier way on broken systems we can still get errors. 1252*0b459c2cSDavid du Colombier 1253*0b459c2cSDavid du ColombierMon Dec 24 16:24:17 1990 Richard Stallman (rms at mole.ai.mit.edu) 1254*0b459c2cSDavid du Colombier 1255*0b459c2cSDavid du Colombier * diff.c (usage): Use = for args of long options. 1256*0b459c2cSDavid du Colombier 1257*0b459c2cSDavid du ColombierMon Dec 17 18:19:20 1990 Michael I Bushnell (mib at geech.ai.mit.edu) 1258*0b459c2cSDavid du Colombier 1259*0b459c2cSDavid du Colombier * context.c (print_context_label): Labels were interchanged badly. 1260*0b459c2cSDavid du Colombier 1261*0b459c2cSDavid du Colombier * context.c (pr_unidiff_hunk): Changes to deal with files 1262*0b459c2cSDavid du Colombier ending in incomplete lines. 1263*0b459c2cSDavid du Colombier * util.c (print_1_line): Other half of the changes. 1264*0b459c2cSDavid du Colombier 1265*0b459c2cSDavid du ColombierMon Dec 3 14:23:55 1990 Richard Stallman (rms at mole.ai.mit.edu) 1266*0b459c2cSDavid du Colombier 1267*0b459c2cSDavid du Colombier * diff.c (longopts, usage): unidiff => unified. 1268*0b459c2cSDavid du Colombier 1269*0b459c2cSDavid du ColombierWed Nov 7 17:13:08 1990 Richard Stallman (rms at mole.ai.mit.edu) 1270*0b459c2cSDavid du Colombier 1271*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): No warnings about newlines for -D. 1272*0b459c2cSDavid du Colombier 1273*0b459c2cSDavid du Colombier * diff.c (pr_unidiff_hunk): Remove ref to output_patch_flag. 1274*0b459c2cSDavid du Colombier 1275*0b459c2cSDavid du ColombierTue Oct 23 23:19:18 1990 Richard Stallman (rms at mole.ai.mit.edu) 1276*0b459c2cSDavid du Colombier 1277*0b459c2cSDavid du Colombier * diff.c (compare_files): For -D, compare even args are same file. 1278*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Likewise. 1279*0b459c2cSDavid du Colombier Also, output even if files have no differences. 1280*0b459c2cSDavid du Colombier 1281*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Print missing newline messages last. 1282*0b459c2cSDavid du Colombier Return 2 if a newline is missing. 1283*0b459c2cSDavid du Colombier Print them even if files end with identical text. 1284*0b459c2cSDavid du Colombier 1285*0b459c2cSDavid du ColombierMon Oct 22 19:40:09 1990 Richard Stallman (rms at mole.ai.mit.edu) 1286*0b459c2cSDavid du Colombier 1287*0b459c2cSDavid du Colombier * diff.c (usage): Return 2. 1288*0b459c2cSDavid du Colombier 1289*0b459c2cSDavid du ColombierWed Oct 10 20:54:04 1990 Richard Stallman (rms at mole.ai.mit.edu) 1290*0b459c2cSDavid du Colombier 1291*0b459c2cSDavid du Colombier * diff.c (longopts): Add +new-files. 1292*0b459c2cSDavid du Colombier 1293*0b459c2cSDavid du ColombierSun Sep 23 22:49:29 1990 Richard Stallman (rms at mole.ai.mit.edu) 1294*0b459c2cSDavid du Colombier 1295*0b459c2cSDavid du Colombier * context.c (print_context_script): Handle unidiff_flag. 1296*0b459c2cSDavid du Colombier (print_context_header): Likewise. 1297*0b459c2cSDavid du Colombier (print_unidiff_number_range, pr_unidiff_hunk): New functions. 1298*0b459c2cSDavid du Colombier * diff.c (longopts): Add element for +unidiff. 1299*0b459c2cSDavid du Colombier (main): Handle +unidiff and -u. 1300*0b459c2cSDavid du Colombier (usage): Mention them. 1301*0b459c2cSDavid du Colombier 1302*0b459c2cSDavid du ColombierWed Sep 5 16:33:22 1990 Richard Stallman (rms at mole.ai.mit.edu) 1303*0b459c2cSDavid du Colombier 1304*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Deal with missing final newline 1305*0b459c2cSDavid du Colombier after buffering necessary context lines. 1306*0b459c2cSDavid du Colombier 1307*0b459c2cSDavid du ColombierSat Sep 1 16:32:32 1990 Richard Stallman (rms at mole.ai.mit.edu) 1308*0b459c2cSDavid du Colombier 1309*0b459c2cSDavid du Colombier * io.c (find_identical_ends): ROBUST_OUTPUT_FORMAT test was backward. 1310*0b459c2cSDavid du Colombier 1311*0b459c2cSDavid du ColombierThu Aug 23 17:17:20 1990 Richard Stallman (rms at mole.ai.mit.edu) 1312*0b459c2cSDavid du Colombier 1313*0b459c2cSDavid du Colombier * diff3.c (WIFEXITED): Undef it if WEXITSTATUS is not defined. 1314*0b459c2cSDavid du Colombier * context.c (find_function): Don't try to return values. 1315*0b459c2cSDavid du Colombier 1316*0b459c2cSDavid du ColombierWed Aug 22 11:54:39 1990 Richard Stallman (rms at mole.ai.mit.edu) 1317*0b459c2cSDavid du Colombier 1318*0b459c2cSDavid du Colombier * diff.h (O_RDONLY): Define if not defined. 1319*0b459c2cSDavid du Colombier 1320*0b459c2cSDavid du ColombierTue Aug 21 13:49:26 1990 Richard Stallman (rms at mole.ai.mit.edu) 1321*0b459c2cSDavid du Colombier 1322*0b459c2cSDavid du Colombier * Handle -L option. 1323*0b459c2cSDavid du Colombier * context.c (print_context_label): New function. 1324*0b459c2cSDavid du Colombier (print_context_header): Use that. 1325*0b459c2cSDavid du Colombier * diff.c (main): Recognize the option. 1326*0b459c2cSDavid du Colombier (usage): Updated. 1327*0b459c2cSDavid du Colombier * diff.h (file_label): New variable. 1328*0b459c2cSDavid du Colombier * diff3.c (main): Recognize -L instead of -t. 1329*0b459c2cSDavid du Colombier 1330*0b459c2cSDavid du Colombier * diff3.c (main): Support -m without other option. 1331*0b459c2cSDavid du Colombier 1332*0b459c2cSDavid du Colombier * diff3.c (WEXITSTATUS, WIFEXITED): Define whenever not defined. 1333*0b459c2cSDavid du Colombier 1334*0b459c2cSDavid du Colombier * diff3.c (bcopy, index, rindex): Delete definitions; not used. 1335*0b459c2cSDavid du Colombier (D_LINENUM, D_LINELEN): Likewise. 1336*0b459c2cSDavid du Colombier (struct diff_block): lengths includes newlines. 1337*0b459c2cSDavid du Colombier (struct diff3_block): Likewise. 1338*0b459c2cSDavid du Colombier (always_text, merge): New variables. 1339*0b459c2cSDavid du Colombier (read_diff): Return address of end, not size read. Calls changed. 1340*0b459c2cSDavid du Colombier Pass -a to diff if given to diff3. 1341*0b459c2cSDavid du Colombier current_chunk_size now an int. Detect error in `pipe'. 1342*0b459c2cSDavid du Colombier Check for incomplete line of output here. 1343*0b459c2cSDavid du Colombier (scan_diff_line): Don't make scan_ptr + 2 before knowing it is valid. 1344*0b459c2cSDavid du Colombier No need to check validity of diff output here. 1345*0b459c2cSDavid du Colombier Include newline in length of line. 1346*0b459c2cSDavid du Colombier (main): Compute rev_mapping here. Handle -a and -m. 1347*0b459c2cSDavid du Colombier Error message if excess -t operands. Error for incompatible options. 1348*0b459c2cSDavid du Colombier Error if `-' given more than once. 1349*0b459c2cSDavid du Colombier Fix error storing in tag_strings. 1350*0b459c2cSDavid du Colombier (output_diff3): REV_MAPPING is now an arg. Call changed. 1351*0b459c2cSDavid du Colombier Change syntax of "missing newline" message. 1352*0b459c2cSDavid du Colombier Expect length of line to include newline. 1353*0b459c2cSDavid du Colombier (output_diff3_edscript): Return just 0 or 1. 1354*0b459c2cSDavid du Colombier REV_MAPPING is now an arg. Call changed. 1355*0b459c2cSDavid du Colombier (output_diff3_merge): New function. 1356*0b459c2cSDavid du Colombier (process_diff): Better error message for bad diff format. 1357*0b459c2cSDavid du Colombier (fatal, perror_with_exit): Return status 2. 1358*0b459c2cSDavid du Colombier 1359*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Report missing newline in either 1360*0b459c2cSDavid du Colombier or both files, if not robust output style. 1361*0b459c2cSDavid du Colombier 1362*0b459c2cSDavid du Colombier * util.c (setup_output): Detect error from pipe. 1363*0b459c2cSDavid du Colombier No need to close stdin. 1364*0b459c2cSDavid du Colombier 1365*0b459c2cSDavid du Colombier * util.c (print_1_line): Change format of missing-newline msg. 1366*0b459c2cSDavid du Colombier Change if statements to switch. 1367*0b459c2cSDavid du Colombier 1368*0b459c2cSDavid du Colombier * io.c (slurp): Don't mention differences in final newline if -B. 1369*0b459c2cSDavid du Colombier 1370*0b459c2cSDavid du Colombier * io.c (binary_file_p): Use ISO char set as criterion, not ASCII. 1371*0b459c2cSDavid du Colombier 1372*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Increase value of BEG0 by 1. 1373*0b459c2cSDavid du Colombier Other changes in backwards scan to avoid decrementing pointers 1374*0b459c2cSDavid du Colombier before start of array, and set LINES properly. 1375*0b459c2cSDavid du Colombier 1376*0b459c2cSDavid du Colombier * diff.h (ROBUST_OUTPUT_STYLE): New macro. 1377*0b459c2cSDavid du Colombier * io.c (find_identical_ends, find_and_hash_each_line): Use that macro. 1378*0b459c2cSDavid du Colombier 1379*0b459c2cSDavid du Colombier * diff.h (dup2): Don't define if XENIX. 1380*0b459c2cSDavid du Colombier 1381*0b459c2cSDavid du Colombier * diff.c (main): Check for write error at end. 1382*0b459c2cSDavid du Colombier 1383*0b459c2cSDavid du Colombier * context.c (find_function): Don't return a value. 1384*0b459c2cSDavid du Colombier Use argument FILE rather than global files. 1385*0b459c2cSDavid du Colombier 1386*0b459c2cSDavid du Colombier * analyze.c: Add external function declarations. 1387*0b459c2cSDavid du Colombier * analyze.c (build_script): Turn off explicit check for final newline. 1388*0b459c2cSDavid du Colombier 1389*0b459c2cSDavid du Colombier * analyze.c (discard_confusing_lines): Make integers unsigned. 1390*0b459c2cSDavid du Colombier 1391*0b459c2cSDavid du ColombierTue Jul 31 21:37:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1392*0b459c2cSDavid du Colombier 1393*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Correct the criterion 1394*0b459c2cSDavid du Colombier for leaving out the newline from the end of the line. 1395*0b459c2cSDavid du Colombier 1396*0b459c2cSDavid du ColombierTue May 29 21:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1397*0b459c2cSDavid du Colombier 1398*0b459c2cSDavid du Colombier * dir.c (diff_dirs): Free things only if nonzero. 1399*0b459c2cSDavid du Colombier 1400*0b459c2cSDavid du ColombierMon Apr 16 18:31:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1401*0b459c2cSDavid du Colombier 1402*0b459c2cSDavid du Colombier * diff.h (NDIR_IN_SYS): New macro controls location of ndir.h. 1403*0b459c2cSDavid du Colombier 1404*0b459c2cSDavid du Colombier * diff3.c (xmalloc, xrealloc): Don't die if size == 0 returns 0. 1405*0b459c2cSDavid du Colombier 1406*0b459c2cSDavid du ColombierSun Mar 25 15:58:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1407*0b459c2cSDavid du Colombier 1408*0b459c2cSDavid du Colombier * analyze.c (discard_confusing_lines): 1409*0b459c2cSDavid du Colombier `many' wasn't being used; use it. 1410*0b459c2cSDavid du Colombier Cancelling provisionals near start of run must handle already 1411*0b459c2cSDavid du Colombier cancelled provisionals. 1412*0b459c2cSDavid du Colombier Cancelling subruns of provisionals was cancelling last nonprovisional. 1413*0b459c2cSDavid du Colombier 1414*0b459c2cSDavid du ColombierSat Mar 24 14:02:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1415*0b459c2cSDavid du Colombier 1416*0b459c2cSDavid du Colombier * analyze.c (discard_confusing_lines): 1417*0b459c2cSDavid du Colombier Threshold for line occurring many times scales by square root 1418*0b459c2cSDavid du Colombier of total lines. 1419*0b459c2cSDavid du Colombier Within each run, cancel any long subrun of provisionals. 1420*0b459c2cSDavid du Colombier Don't update `provisional' while cancelling provisionals. 1421*0b459c2cSDavid du Colombier In big outer loop, handle provisional and nonprovisional separately. 1422*0b459c2cSDavid du Colombier 1423*0b459c2cSDavid du ColombierThu Mar 22 16:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1424*0b459c2cSDavid du Colombier 1425*0b459c2cSDavid du Colombier * analyze.c (discard_confusing_lines): 1426*0b459c2cSDavid du Colombier The first loops to discard provisionals from ends failed to step. 1427*0b459c2cSDavid du Colombier In second such loops, keep discarding all consecutive provisionals. 1428*0b459c2cSDavid du Colombier Increase threshold for stopping discarding, and also check for 1429*0b459c2cSDavid du Colombier consecutive nondiscardables as separate threshold. 1430*0b459c2cSDavid du Colombier 1431*0b459c2cSDavid du ColombierFri Mar 16 00:33:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1432*0b459c2cSDavid du Colombier 1433*0b459c2cSDavid du Colombier * diff3.c (read_diff): Pass -- as first arg to diff. 1434*0b459c2cSDavid du Colombier 1435*0b459c2cSDavid du Colombier * diff3.c: Include wait.h or define equivalent macros. 1436*0b459c2cSDavid du Colombier (read_diff): Don't use stdio printing error in the inferior. 1437*0b459c2cSDavid du Colombier Remember the pid and wait for it. Report failing status. 1438*0b459c2cSDavid du Colombier Report failure of vfork. 1439*0b459c2cSDavid du Colombier 1440*0b459c2cSDavid du ColombierSun Mar 11 17:10:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1441*0b459c2cSDavid du Colombier 1442*0b459c2cSDavid du Colombier * diff3.c (main): Accept -t options and pass to output_diff3_edscript. 1443*0b459c2cSDavid du Colombier (usage): Mention -t. 1444*0b459c2cSDavid du Colombier (read_diff): Use vfork. 1445*0b459c2cSDavid du Colombier (vfork): Don't use it on Sparc. 1446*0b459c2cSDavid du Colombier 1447*0b459c2cSDavid du Colombier * diff.h (vfork): Don't use it on Sparc. 1448*0b459c2cSDavid du Colombier 1449*0b459c2cSDavid du ColombierTue Mar 6 22:37:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1450*0b459c2cSDavid du Colombier 1451*0b459c2cSDavid du Colombier * diff3.c (dup2): Don't define on Xenix. 1452*0b459c2cSDavid du Colombier 1453*0b459c2cSDavid du Colombier * Makefile: Comments for Xenix. 1454*0b459c2cSDavid du Colombier 1455*0b459c2cSDavid du ColombierThu Mar 1 17:19:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1456*0b459c2cSDavid du Colombier 1457*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): `message' requires three args. 1458*0b459c2cSDavid du Colombier 1459*0b459c2cSDavid du ColombierFri Feb 23 10:56:50 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 1460*0b459c2cSDavid du Colombier 1461*0b459c2cSDavid du Colombier * diff.h, util.c, diff3.c: Change 'void *' to 'VOID *', with 1462*0b459c2cSDavid du Colombier VOID defined as void if __STDC__, char if not. 1463*0b459c2cSDavid du Colombier 1464*0b459c2cSDavid du ColombierSun Feb 18 20:31:58 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 1465*0b459c2cSDavid du Colombier 1466*0b459c2cSDavid du Colombier * Makefile: Add rules for getopt.c, getopt1.c, getopt.h. 1467*0b459c2cSDavid du Colombier 1468*0b459c2cSDavid du Colombier * getopt.c, getopt.h, getopt1.c: New files. 1469*0b459c2cSDavid du Colombier 1470*0b459c2cSDavid du Colombier * main.c (main, usage): Add long options. 1471*0b459c2cSDavid du Colombier 1472*0b459c2cSDavid du Colombier * analyze.c (shift_boundaries): Remove unused var 'j_end'. 1473*0b459c2cSDavid du Colombier 1474*0b459c2cSDavid du ColombierThu Feb 8 02:43:16 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) 1475*0b459c2cSDavid du Colombier 1476*0b459c2cSDavid du Colombier * GNUmakefile: include ../Makerules before Makefile. 1477*0b459c2cSDavid du Colombier 1478*0b459c2cSDavid du ColombierFri Feb 2 23:21:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1479*0b459c2cSDavid du Colombier 1480*0b459c2cSDavid du Colombier * analyze.c (diif_2_files): If -B or -I, don't return 1 1481*0b459c2cSDavid du Colombier if all changes were ignored. 1482*0b459c2cSDavid du Colombier 1483*0b459c2cSDavid du ColombierWed Jan 24 20:43:57 1990 Richard Stallman (rms at albert.ai.mit.edu) 1484*0b459c2cSDavid du Colombier 1485*0b459c2cSDavid du Colombier * diff3.c (fatal): Output to stderr. 1486*0b459c2cSDavid du Colombier 1487*0b459c2cSDavid du ColombierThu Jan 11 00:25:56 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) 1488*0b459c2cSDavid du Colombier 1489*0b459c2cSDavid du Colombier * diff.c (usage): Mention -v. 1490*0b459c2cSDavid du Colombier 1491*0b459c2cSDavid du ColombierWed Jan 10 16:06:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1492*0b459c2cSDavid du Colombier 1493*0b459c2cSDavid du Colombier * diff3.c (output_diff3_edscript): Return number of overlaps. 1494*0b459c2cSDavid du Colombier (main): If have overlaps, exit with status 1. 1495*0b459c2cSDavid du Colombier 1496*0b459c2cSDavid du ColombierSun Dec 24 10:29:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1497*0b459c2cSDavid du Colombier 1498*0b459c2cSDavid du Colombier * io.c (find_equiv_class): Fix typo that came from changing init of B 1499*0b459c2cSDavid du Colombier to an assigment. 1500*0b459c2cSDavid du Colombier 1501*0b459c2cSDavid du Colombier * version.c: New file. 1502*0b459c2cSDavid du Colombier * diff.c (main): -v prints version number. 1503*0b459c2cSDavid du Colombier 1504*0b459c2cSDavid du Colombier * io.c (binary_file_p): Null char implies binary file. 1505*0b459c2cSDavid du Colombier 1506*0b459c2cSDavid du ColombierFri Nov 17 23:44:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1507*0b459c2cSDavid du Colombier 1508*0b459c2cSDavid du Colombier * util.c (print_1_line): Fix off by 1 error. 1509*0b459c2cSDavid du Colombier 1510*0b459c2cSDavid du ColombierThu Nov 16 13:51:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1511*0b459c2cSDavid du Colombier 1512*0b459c2cSDavid du Colombier * util.c (xcalloc): Function deleted. 1513*0b459c2cSDavid du Colombier 1514*0b459c2cSDavid du Colombier * io.c (slurp): Null-terminate the buffer. 1515*0b459c2cSDavid du Colombier 1516*0b459c2cSDavid du Colombier * io.c (read_files): Delete unused vars. 1517*0b459c2cSDavid du Colombier 1518*0b459c2cSDavid du Colombier * io.c (find_equiv_class): Don't index by N if too low. 1519*0b459c2cSDavid du Colombier 1520*0b459c2cSDavid du Colombier * dir.c (dir_sort): Delete the extra declaration of compare_names. 1521*0b459c2cSDavid du Colombier 1522*0b459c2cSDavid du Colombier * diff.h: Don't declare xcalloc. Declare some other functions. 1523*0b459c2cSDavid du Colombier 1524*0b459c2cSDavid du Colombier * analyze.c (shift_boundaries): 1525*0b459c2cSDavid du Colombier Test for END at end of range before indexing by it. 1526*0b459c2cSDavid du Colombier Fix typo `preceeding' in var names. 1527*0b459c2cSDavid du Colombier 1528*0b459c2cSDavid du ColombierSat Nov 11 14:04:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1529*0b459c2cSDavid du Colombier 1530*0b459c2cSDavid du Colombier * diff3.c (using_to_diff3_block): Delete unused vars. 1531*0b459c2cSDavid du Colombier (make_3way_diff, process_diff_control, read_diff, output_diff3): Likewise. 1532*0b459c2cSDavid du Colombier 1533*0b459c2cSDavid du ColombierMon Nov 6 18:15:50 EST 1989 Jay Fenlason (hack@ai.mit.edu) 1534*0b459c2cSDavid du Colombier 1535*0b459c2cSDavid du Colombier * README Fix typo. 1536*0b459c2cSDavid du Colombier 1537*0b459c2cSDavid du ColombierFri Nov 3 15:27:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1538*0b459c2cSDavid du Colombier 1539*0b459c2cSDavid du Colombier * diff.c (usage): Mention -D. 1540*0b459c2cSDavid du Colombier 1541*0b459c2cSDavid du Colombier * ifdef.c (print_ifdef_hunk): Write comments on #else and #endif. 1542*0b459c2cSDavid du Colombier 1543*0b459c2cSDavid du ColombierSun Oct 29 16:41:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1544*0b459c2cSDavid du Colombier 1545*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't fflush for identical files. 1546*0b459c2cSDavid du Colombier 1547*0b459c2cSDavid du ColombierWed Oct 25 17:57:12 1989 Randy Smith (randy at apple-gunkies.ai.mit.edu) 1548*0b459c2cSDavid du Colombier 1549*0b459c2cSDavid du Colombier * diff3.c (using_to_diff3_block): When defaulting lines from 1550*0b459c2cSDavid du Colombier FILE0, only copy up to just under the *lowest* line mentioned 1551*0b459c2cSDavid du Colombier in the next diff. 1552*0b459c2cSDavid du Colombier 1553*0b459c2cSDavid du Colombier * diff3.c (fatal): Add \n to error messages. 1554*0b459c2cSDavid du Colombier 1555*0b459c2cSDavid du ColombierWed Oct 25 15:05:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1556*0b459c2cSDavid du Colombier 1557*0b459c2cSDavid du Colombier * Makefile (tapefiles): Add ChangeLog. 1558*0b459c2cSDavid du Colombier 1559*0b459c2cSDavid du ColombierTue Oct 3 00:51:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1560*0b459c2cSDavid du Colombier 1561*0b459c2cSDavid du Colombier * diff3.c (process_diff, create_diff3_block): Init ->next field. 1562*0b459c2cSDavid du Colombier 1563*0b459c2cSDavid du ColombierFri Sep 29 08:16:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1564*0b459c2cSDavid du Colombier 1565*0b459c2cSDavid du Colombier * util.c (line_cmp): Alter end char of line 2, not line 1. 1566*0b459c2cSDavid du Colombier 1567*0b459c2cSDavid du ColombierWed Sep 20 00:12:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1568*0b459c2cSDavid du Colombier 1569*0b459c2cSDavid du Colombier * Makefile (diff.tar): Expect ln to fail on some files; 1570*0b459c2cSDavid du Colombier copy them with cp. 1571*0b459c2cSDavid du Colombier 1572*0b459c2cSDavid du ColombierMon Sep 18 02:54:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1573*0b459c2cSDavid du Colombier 1574*0b459c2cSDavid du Colombier * Handle -D option: 1575*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Keep all lines of 1st file. 1576*0b459c2cSDavid du Colombier * diff.c (main): Handle -D option. 1577*0b459c2cSDavid du Colombier (compare_files): Reject -D if files spec'd are directories. 1578*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Handle OUTPUT_IFDEF case. 1579*0b459c2cSDavid du Colombier 1580*0b459c2cSDavid du ColombierFri Sep 1 20:15:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1581*0b459c2cSDavid du Colombier 1582*0b459c2cSDavid du Colombier * diff.c (option_list): Rename arg VECTOR as OPTIONVEC. 1583*0b459c2cSDavid du Colombier 1584*0b459c2cSDavid du ColombierMon Aug 28 17:58:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1585*0b459c2cSDavid du Colombier 1586*0b459c2cSDavid du Colombier * diff.c (compare_files): Clear entire inf[i].stat. 1587*0b459c2cSDavid du Colombier 1588*0b459c2cSDavid du ColombierWed Aug 23 17:48:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 1589*0b459c2cSDavid du Colombier 1590*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Sign was backward 1591*0b459c2cSDavid du Colombier determining where to bound the scan for the suffix. 1592*0b459c2cSDavid du Colombier 1593*0b459c2cSDavid du ColombierWed Aug 16 12:49:16 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 1594*0b459c2cSDavid du Colombier 1595*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): If -q, treat all files as binary. 1596*0b459c2cSDavid du Colombier * diff.c (main): Detect -q, record in no_details_flag. 1597*0b459c2cSDavid du Colombier 1598*0b459c2cSDavid du ColombierSun Jul 30 23:12:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1599*0b459c2cSDavid du Colombier 1600*0b459c2cSDavid du Colombier * diff.c (usage): New function. 1601*0b459c2cSDavid du Colombier (main): Call it. 1602*0b459c2cSDavid du Colombier 1603*0b459c2cSDavid du ColombierWed Jul 26 02:02:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1604*0b459c2cSDavid du Colombier 1605*0b459c2cSDavid du Colombier * diff.c (main): Make -C imply -c. 1606*0b459c2cSDavid du Colombier 1607*0b459c2cSDavid du ColombierThu Jul 20 17:57:51 1989 Chris Hanson (cph at kleph) 1608*0b459c2cSDavid du Colombier 1609*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Bug fix in context handling, 1610*0b459c2cSDavid du Colombier introduced by last change. 1611*0b459c2cSDavid du Colombier 1612*0b459c2cSDavid du ColombierFri Jul 14 17:39:20 1989 Chris Hanson (cph at kleph) 1613*0b459c2cSDavid du Colombier 1614*0b459c2cSDavid du Colombier * analyze.c: To make RCS work correctly on files that don't 1615*0b459c2cSDavid du Colombier necessarily end in newline, introduce some changes that cause 1616*0b459c2cSDavid du Colombier diffs to be sensitive to missing final newline. Because 1617*0b459c2cSDavid du Colombier non-RCS modes don't want to be affected by these changes, they 1618*0b459c2cSDavid du Colombier are conditional on `output_style == OUTPUT_RCS'. 1619*0b459c2cSDavid du Colombier (diff_2_files) [OUTPUT_RCS]: Suppress the "File X missing 1620*0b459c2cSDavid du Colombier newline" message. 1621*0b459c2cSDavid du Colombier (build_script) [OUTPUT_RCS]: Cause the last line to compare as 1622*0b459c2cSDavid du Colombier different if exactly one of the files is missing its final 1623*0b459c2cSDavid du Colombier newline. 1624*0b459c2cSDavid du Colombier 1625*0b459c2cSDavid du Colombier * io.c (find_and_hash_each_line): Bug fix in 1626*0b459c2cSDavid du Colombier ignore_space_change mode. Change line's length to include the 1627*0b459c2cSDavid du Colombier newline. For OUTPUT_RCS, decrement last line's length if 1628*0b459c2cSDavid du Colombier there is no final newline. 1629*0b459c2cSDavid du Colombier (find_identical_ends) [OUTPUT_RCS]: If one of the files is 1630*0b459c2cSDavid du Colombier missing a final newline, make sure it's not included in either 1631*0b459c2cSDavid du Colombier the prefix or suffix. 1632*0b459c2cSDavid du Colombier 1633*0b459c2cSDavid du Colombier * util.c (print_1_line): Change line output routine to account 1634*0b459c2cSDavid du Colombier for line length including the newline. 1635*0b459c2cSDavid du Colombier 1636*0b459c2cSDavid du ColombierTue Jun 27 02:35:28 1989 Roland McGrath (roland at hobbes.ai.mit.edu) 1637*0b459c2cSDavid du Colombier 1638*0b459c2cSDavid du Colombier * Makefile: Inserted $(archpfx) where appropriate. 1639*0b459c2cSDavid du Colombier 1640*0b459c2cSDavid du ColombierWed May 17 20:18:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1641*0b459c2cSDavid du Colombier 1642*0b459c2cSDavid du Colombier * diff3.c [USG]: Include fcntl.h. 1643*0b459c2cSDavid du Colombier 1644*0b459c2cSDavid du Colombier * diff.h [USG]: New compilation flags HAVE_NDIR, HAVE_DIRECT. 1645*0b459c2cSDavid du Colombier 1646*0b459c2cSDavid du ColombierWed Apr 26 15:35:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1647*0b459c2cSDavid du Colombier 1648*0b459c2cSDavid du Colombier * dir.c (diff_dirs): Two new args, NONEX1 and NONEX2, say to pretend 1649*0b459c2cSDavid du Colombier nonex dirs are empty. 1650*0b459c2cSDavid du Colombier (dir_sort): New arg NONEX, likewise. 1651*0b459c2cSDavid du Colombier * diff.c (compare_files): Pass those args. 1652*0b459c2cSDavid du Colombier Sometimes call diff_dirs if subdir exists in just one place. 1653*0b459c2cSDavid du Colombier 1654*0b459c2cSDavid du ColombierWed Apr 12 01:10:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1655*0b459c2cSDavid du Colombier 1656*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Set END0 *after* last char 1657*0b459c2cSDavid du Colombier during backward scan for suffix. 1658*0b459c2cSDavid du Colombier 1659*0b459c2cSDavid du ColombierSat Apr 8 15:49:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 1660*0b459c2cSDavid du Colombier 1661*0b459c2cSDavid du Colombier * diff3.c (using_to_diff3_block): Now find high marks in files 1 1662*0b459c2cSDavid du Colombier and 2 through mapping off of the last difference instead of the 1663*0b459c2cSDavid du Colombier first. 1664*0b459c2cSDavid du Colombier 1665*0b459c2cSDavid du Colombier * diff3.c: Many trivial changes to spelling inside comments. 1666*0b459c2cSDavid du Colombier 1667*0b459c2cSDavid du ColombierFri Feb 24 12:38:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) 1668*0b459c2cSDavid du Colombier 1669*0b459c2cSDavid du Colombier * util.c, normal.c, io.c, ed.c, dir.c, diff.h, diff.c, context.c, 1670*0b459c2cSDavid du Colombier analyze.c, Makefile: Changed copyright header to conform with new 1671*0b459c2cSDavid du Colombier GNU General Public license. 1672*0b459c2cSDavid du Colombier * diff3.c: Changed copyright header to conform with new GNU 1673*0b459c2cSDavid du Colombier General Public license. 1674*0b459c2cSDavid du Colombier * COPYING: Made a hard link to /gp/rms/COPYING. 1675*0b459c2cSDavid du Colombier 1676*0b459c2cSDavid du ColombierFri Feb 24 10:01:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1677*0b459c2cSDavid du Colombier 1678*0b459c2cSDavid du Colombier * io.c (slurp): Leave 2 chars space at end of buffer, not one. 1679*0b459c2cSDavid du Colombier (find_identical_ends): Special case if either file is empty; 1680*0b459c2cSDavid du Colombier don't try to make a sentinel since could crash. 1681*0b459c2cSDavid du Colombier 1682*0b459c2cSDavid du ColombierWed Feb 15 14:24:48 1989 Jay Fenlason (hack at apple-gunkies.ai.mit.edu) 1683*0b459c2cSDavid du Colombier 1684*0b459c2cSDavid du Colombier * diff3.c (message) Re-wrote routine to avoid using alloca() 1685*0b459c2cSDavid du Colombier 1686*0b459c2cSDavid du ColombierWed Feb 15 06:19:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1687*0b459c2cSDavid du Colombier 1688*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Delete the variable `bytes'. 1689*0b459c2cSDavid du Colombier 1690*0b459c2cSDavid du ColombierSun Feb 12 11:50:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1691*0b459c2cSDavid du Colombier 1692*0b459c2cSDavid du Colombier * io.c (slurp): ->bufsize is nominal amount we have room for; 1693*0b459c2cSDavid du Colombier add room for sentinel when calling xmalloc or xrealloc. 1694*0b459c2cSDavid du Colombier 1695*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Do need overrun check in finding suffix. 1696*0b459c2cSDavid du Colombier 1697*0b459c2cSDavid du ColombierFri Feb 10 01:28:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1698*0b459c2cSDavid du Colombier 1699*0b459c2cSDavid du Colombier * diff.c (main): -C now takes arg to specify context length. 1700*0b459c2cSDavid du Colombier Now -p to show C function name--Damned IEEE! 1701*0b459c2cSDavid du Colombier Fatal error if context length spec'd twice. 1702*0b459c2cSDavid du Colombier 1703*0b459c2cSDavid du Colombier * ed.c (print_ed_hunk): Now special treatment only for lines containing 1704*0b459c2cSDavid du Colombier precisely a dot and nothing else. Output `..', end the insert, 1705*0b459c2cSDavid du Colombier substitute that one line, then resume the insert if nec. 1706*0b459c2cSDavid du Colombier 1707*0b459c2cSDavid du Colombier * io.c (find_and_hash_lines): When backing up over starting context, 1708*0b459c2cSDavid du Colombier don't move past buffer-beg. 1709*0b459c2cSDavid du Colombier 1710*0b459c2cSDavid du Colombier * io.c (find_identical_ends): Use sentinels to make the loops faster. 1711*0b459c2cSDavid du Colombier If files are identical, skip the 2nd loop and return quickly. 1712*0b459c2cSDavid du Colombier (slurp): Leave 1 char extra space after each buffer. 1713*0b459c2cSDavid du Colombier 1714*0b459c2cSDavid du Colombier * analyze.c (diff_2_files): Mention difference in final newlines. 1715*0b459c2cSDavid du Colombier 1716*0b459c2cSDavid du ColombierWed Jan 25 22:44:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1717*0b459c2cSDavid du Colombier 1718*0b459c2cSDavid du Colombier * dir.c (diff_dirs): Use * when calling fcn ptr variable. 1719*0b459c2cSDavid du Colombier 1720*0b459c2cSDavid du ColombierSat Dec 17 14:12:06 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1721*0b459c2cSDavid du Colombier 1722*0b459c2cSDavid du Colombier * Makefile: New vars INSTALL and LIBS used in some rules; 1723*0b459c2cSDavid du Colombier provide default defns plus commented-put defns for sysV. 1724*0b459c2cSDavid du Colombier 1725*0b459c2cSDavid du ColombierThu Nov 17 16:42:53 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1726*0b459c2cSDavid du Colombier 1727*0b459c2cSDavid du Colombier * dir.c (dir_sort): Open-trouble not fatal; just say # files is -1. 1728*0b459c2cSDavid du Colombier (diff_dirs): If dir_sort does that, give up and return 2. 1729*0b459c2cSDavid du Colombier 1730*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't open directories. 1731*0b459c2cSDavid du Colombier Don't close them specially either. 1732*0b459c2cSDavid du Colombier Cross-propagate inf[i].dir_p sooner. 1733*0b459c2cSDavid du Colombier 1734*0b459c2cSDavid du ColombierSun Nov 13 11:19:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1735*0b459c2cSDavid du Colombier 1736*0b459c2cSDavid du Colombier * diff.h: Declare index, rindex. 1737*0b459c2cSDavid du Colombier 1738*0b459c2cSDavid du Colombier * diff.c (compare_files): If comparing foodir with b/f, 1739*0b459c2cSDavid du Colombier use foodir/f, not foodir/b/f. 1740*0b459c2cSDavid du Colombier 1741*0b459c2cSDavid du Colombier * diff.c (compare_files): Don't print "are identical" msg for 2 dirs. 1742*0b459c2cSDavid du Colombier Status now 1 if one file is a dir and the other isn't, etc. 1743*0b459c2cSDavid du Colombier 1744*0b459c2cSDavid du ColombierThu Nov 3 16:30:24 1988 Randall Smith (randy at gluteus.ai.mit.edu) 1745*0b459c2cSDavid du Colombier 1746*0b459c2cSDavid du Colombier * Makefile: Added a define for diff3 to define DIFF_PROGRAM. 1747*0b459c2cSDavid du Colombier 1748*0b459c2cSDavid du Colombier * util.c: Added hack to make sure that perror was not called with 1749*0b459c2cSDavid du Colombier a null pointer. 1750*0b459c2cSDavid du Colombier 1751*0b459c2cSDavid du Colombier * diff.c: Changed S_IFDIR to S_IFMT in masking type of file bits 1752*0b459c2cSDavid du Colombier out. 1753*0b459c2cSDavid du Colombier 1754*0b459c2cSDavid du Colombier * diff3.c: Included USG compatibility defines. 1755*0b459c2cSDavid du Colombier 1756*0b459c2cSDavid du Colombier * diff.h: Moved sys/file.h into #else USG section (not needed or 1757*0b459c2cSDavid du Colombier wanted on System V). 1758*0b459c2cSDavid du Colombier 1759*0b459c2cSDavid du Colombier * ed.c, analyze.c, context.c: Shortened names to 12 characters for 1760*0b459c2cSDavid du Colombier the sake of System V (too simple not to do). 1761*0b459c2cSDavid du Colombier 1762*0b459c2cSDavid du ColombierLocal Variables: 1763*0b459c2cSDavid du Colombiermode: indented-text 1764*0b459c2cSDavid du Colombierleft-margin: 8 1765*0b459c2cSDavid du Colombierversion-control: never 1766*0b459c2cSDavid du ColombierEnd: 1767