xref: /plan9/sys/src/ape/cmd/diff/ChangeLog (revision 0b459c2cb92b7c9d88818e9a2f72e678e5bc4553)
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