source: trunk/essentials/sys-apps/diffutils/ChangeLog@ 3078

Last change on this file since 3078 was 3043, checked in by bird, 19 years ago

-> essentials

File size: 125.1 KB
Line 
12002-04-05 Paul Eggert <[email protected]>
2
3 * NEWS, configure.ac (AC_INIT): Version 2.8.1.
4
5 * configure.ac (AC_HEADER_STDBOOL): Add.
6 (AC_CHECK_HEADERS): Remove stdbool.h.
7 * m4/stdbool.m4: New file.
8 * m4/prereq.m4 (jm_PREREQ_EXCLUDE):
9 Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h).
10 (jm_PREREQ_HASH): Likewise.
11
12 * src/system.h (SSIZE_MAX): Define if limits.h doesn't.
13
14 * src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a
15 size_t variable, just in case there's a problem with ptrdiff_t
16 versus size_t.
17
18 * lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported.
19 Include limits.h.
20 (SIZE_MAX, SSIZE_MAX): Define if standard headers don't.
21 (MIN): New macro.
22 (block_read): Do not attempt to read more than SSIZE_MAX bytes, as the
23 resulting behavior is implementation-defined. Work around bug in
24 Tru64 5.1, which can't read more than INT_MAX bytes at a time.
25 * src/cmp.c (cmp): Use block_read instead of read, to work
26 around Tru64 5.1 bug.
27 * src/diff3.c (read_diff): Likewise.
28 * src/diff3.c: Include cmpbuf.h.
29
30 * THANKS: Add Ulrich Drepper.
31
32 * INSTALLME: Mention GNU texinfo.
33
34 * doc/diff.texi:
35 Use new @copying directive.
36 Put @contents first, not last, since Texinfo now suggests this.
37 Fix bug in -w documentation noted by Karl Berry.
38 Mention links for speedup.
39 New node "Speedups" for future speedups.
40 Just say "Index", not "Concept Index".
41
422002-03-26 Paul Eggert <[email protected]>
43
44 * src/Makefile.am:
45 (INCLUDES): Remove this obsolete macro, replacing it with:
46 (AM_CPPFLAGS): New macro.
47
482002-03-26 Albert Chin-A-Young <[email protected]>
49
50 * src/Makefile.am (datadir): Remove, as it conflicts with --datadir.
51
522002-03-26 Paul Eggert <[email protected]>
53
54 * doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was
55 missing before the menu entry. Bug diagnosed by Adam Heath.
56 Also, put this dircategory after the Individual utilities dircategory,
57 to work around a compatibility problem with Debian install-info.
58
592002-03-24 Eli Zaretskii <[email protected]>
60
61 * src/io.c (sip): Do not mishandle buffered count when reverting
62 to text mode.
63
642002-03-23 Paul Eggert <[email protected]>
65
66 * NEWS, configure.ac (AC_INIT): Version 2.8.
67 * configure.ac (AC_PREREQ): 2.53.
68 * INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27.
69
70 * doc/diff.texi: Upgrade the description of `patch' to GNU patch
71 2.5.4, and revamp the documentation accordingly.
72
73 * src/diff.c (main): Fix typo that prevented diff -y from working.
74 Bug reported by Mitsuru Chinen.
75
762002-03-15 Paul Eggert <[email protected]>
77
78 * lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info.
79 Bug reported by Eli Zaretskii.
80
812002-03-15 Eli Zaretskii <[email protected]>
82
83 * ms/config.sed: Tweak editing of install-info-am target.
84
852002-03-12 Paul Eggert <[email protected]>
86
87 * NEWS, configure.ac (AC_INIT): Version 2.7.10.
88
89 * NEWS: cmp -l -s and cmp -s -l are not allowed.
90 Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge.
91
92 * configure.ac (jm_PREREQ_HARD_LOCALE): Add.
93 (AM_INIT_AUTOMAKE): Do not distribute shar file.
94
95 * doc/diff.texi (Overview): byte != character.
96 (Detailed Context, Detailed Unified, Alternate Names, diff Options):
97 Do not document diff -L.
98 (Comparing Directories, Making Patches, diff Options):
99 Do not document diff -P.
100 (diff Performance, sdiff Option Summary, diff Options, sdiff Options):
101 Do not document diff -H.
102 (diff Performance, diff Options): Do not document --horizon-lines.
103 (cmp Options): Prefer -b to -c.
104 (cmp Options, diff Options, diff3 Options, patch Options,
105 sdiff Options): Put short options next to the similar long options.
106 Document --help, and use the same wording for --verbose.
107 (diff3 Options): Fix typo in description of -E, which used wrongly used
108 "-e" instead of "-E".
109
110 * lib/hard-locale.c (alloca): Remove.
111 Include stdlib.h if available, for malloc.
112 (hard_locale): Use malloc, not alloca, so that we need not worry about
113 alloca issues. Test for storage allocation failure.
114
115 * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE.
116 (jm_PREREQ_HARD_LOCALE): New macro.
117
118 * src/cmp.c (specify_comparison_type): New function.
119 (check_stdout): "indices and codes" -> "byte numbers and values"
120 (main): Detect clashing options.
121 (cmp): Use "byte" rather than "char" if a translation for "byte"
122 is available, even when in the POSIX locale.
123
124 * src/diff.c (option_help_msgid): Do not document -L, -P,
125 --horizon-lines, --inhibit-hunk-merge, -H.
126 * src/diff.h: -L -> --label
127
1282002-03-11 Paul Eggert <[email protected]>
129
130 * NEWS, configure.ac (AC_INIT): Version 2.7.9.
131
132 * INSTALLME: Update to autoconf 2.53, automake 1.6, help2man
133 1.25 with patch.
134
135 * configure.ac (AC_INIT):
136 Change package name from diff to diffutils.
137 (AM_INIT_AUTOMAKE): Use new form, with option gnits,
138 rather than old from that duplicated AC_INIT.
139 (AM_MISSING_PROG): Add help2man.
140 (REGEX_MALLOC): Define.
141 (AC_CONFIG_FILES): Add man/Makefile.
142
143 * Makefile.am (AUTOMAKE_OPTIONS): Remove.
144 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
145 * lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
146 * ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
147 * src/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
148
149 * lib/c-stack.c: Include <errno.h>
150 (ENOTSUP): Define if errno.h doesn't.
151 (SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ,
152 _SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack):
153 Remove; we now assume them all when
154 HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need
155 substitutes.
156 (<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
157 (alternate_signal_stack): Now of size SIGSTKSZ.
158 (segv_handler): Simplify, under the assumption that
159 HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero.
160 (c_stack_action): Likewise.
161 (exit_failure) [DEBUG]: Initialize to 0, not 1.
162 (recurse, main) [DEBUG]: Remove main args.
163
164 * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change
165 wording of message. Do not check for stdbool.h or ucontext.h,
166 or for ucontext_t or sigaction or sigaltstack.
167
168 * po/LINGUAS: Add zh_TW.
169
170 * Makefile.am (SUBDIRS): Add man.
171 * man/Makefile.am: New file.
172 * src/cmp.c (usage): Reword for help2man.
173 * src/diff.c (option_help_msgid): Likewise.
174 * src/diff3.c (option_help_msgid, usage): Likewise.
175 * src/sdiff3.c (option_help_msgid, usage): Likewise.
176 Reword for help2man.
177
178 * THANKS: Add email address for Tower.
179
180 * config/config.guess, config/config.sub, config/depcomp,
181 config/install-sh, config/mdate-sh, config/missing,
182 config/mkinstalldirs, config/texinfo.texi: Update
183 to recent version (maintained in other packages).
184
1852002-03-04 Bruno Haible <[email protected]>
186
187 * m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if
188 no preinstalled GNU gettext was found.
189
1902002-03-02 Eli Zaretskii <[email protected]>
191
192 * ms/config.sed: Tweak editing of install-info-am and
193 uninstall-info-am targets, to include 8+3-butchered names of Info
194 files.
195
1962002-02-28 Paul Eggert <[email protected]>
197
198 * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8.
199
200 * doc/diff.texi: Add vr index.
201 Update copyright to 2002.
202 (Standards conformance): New chapter.
203 (Binary): Differing binary files are trouble unless the user asked for
204 brief output.
205 (Detailed Context): Prefer ISO time stamp format in discussion.
206 (Detailed Unified, Pagination): Likewise.
207 (Less Context): Likewise. Also use short option.
208 (Alternate Names): Separate option from arg.
209 (Making Patches): Mention -U 2.
210 (diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not
211 allow it.
212
213 * INSTALLME: Update advice for Solaris installation problems.
214 We no longer use a test version of gettext.
215 Autoconf test version updated from 2.52f to 2.52h.
216 POSIX 1003.1-2001 patch for Automake.
217
218 * configure.ac (AC__GNU_SOURCE): Add this,
219 replacing AH_VERBATIM of _GNU_SOURCE.
220 (tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf.
221 (jm_PREREQ_C_STACK): Add.
222 (AC_CONFIG_FILES): Remove intl/Makefile.
223 (AM_GNU_GETTEXT): Add external arg, from gettext 0.11.
224
225 * lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h,
226 lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4,
227 po/cs.po, po/ja.po: New files.
228
229 * intl/ChangeLog, intl/Makefile.in, intl/VERSION,
230 intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c,
231 intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c,
232 intl/dngettext.c, intl/explodename.c, intl/finddomain.c,
233 intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h,
234 intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h,
235 intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c,
236 intl/locale.alias, intl/localealias.c, intl/localename.c,
237 intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c,
238 intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h,
239 intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin,
240 intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove.
241
242 * ABOUT-NLS: Update to Gettext 0.11.
243
244 * Makefile.am (SUBDIRS): Remove intl.
245
246 * config/config.guess, config/config.rpath, config/config.sub,
247 config/texinfo.tex, config/depcomp, config/texinfo.tex,
248 lib/tempname.c: Update to latest version from other packages.
249
250 * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure.
251 * lib/xmalloc.c: Include exitfail.h.
252 (xalloc_exit_failure): Remove; subsumed by exit_failure.
253 All uses changed.
254
255 * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h.
256 (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c.
257 (INCLUDES): Remove.
258
259 * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX.
260 * lib/cmpbuf.c: Include errno.h.
261 (errno): Declare if !STDC_HEADERS.
262 Include signal.h.
263 (SA_RESTART): Define if not already defined.
264 Include <inttypes.h>.
265 (PTRDIFF_MAX): Define if not already defined.
266 (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
267 (block_read): Accommodate ancient AIX hosts that set errno to EINTR
268 after uncaught SIGCONT.
269 (buffer_lcm): Return a reasonable size if the multiple is too large.
270 New arg LCM_MAX. All callers changed.
271
272 * lib/hard-locale.c: Include "hard-locale.h".
273 (hard_locale): Ignore ENABLE_NLS, since we want to operate on
274 locales other than LC_MESSAGES.
275
276 * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER.
277 (jm_PREREQ_POSIXVER): New macro.
278
279 * m4/setmode.m4 (AC_FUNC_SETMODE_DOS):
280 Check for fcntl.h and unistd.h unconditionally.
281 Suggested by Bruno Haible.
282
283 * po/LINGUAS: Add cs, ja.
284 * po/POTFILES.in: Add lib/c-stack.c, src/dir.c.
285
286 * src/Makefile.am (datadir): @DATADIRNAME@ -> share.
287 (INCLUDES): Remove intl.
288 (LDADD): Change INTLLIBS to LIBINTL.
289 No longer need to link libdiffutils.a twice.
290
291 * src/analyze.c (diff_2_files):
292 Avoid arithmetic overflow in buffer size calculation.
293
294 * src/cmp.c: Include c-stack.h, exitfail.h.
295 (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS.
296 (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE.
297 (main): Check for stack overflow.
298 0 -> EXIT_SUCCESS.
299 1 -> EXIT_FAILURE.
300 (cmp): Likewise.
301 Accommodate ancient AIX hosts that set errno to
302 EINTR after uncaught SIGCONT.
303
304 * src/context.c (pr_context_hunk):
305 Do not dump core if an enormous context causes an
306 arithmetic overflow.
307 (pr_unidiff_hunk): Likewise.
308 (find_hunk): Likewise.
309
310 * src/diff.h: unsigned -> unsigned int.
311 * src/diff.c: Include c-stack.h, exitfail.h.
312 Do not include signal.h.
313 (specify_style, specify_value): Bring these routines back, as POSIX
314 requires that the order of options not matter.
315 (shortopts): New constant.
316 (group_format_option, line_format_option): New constants.
317 (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
318 Ensure that order of options does not matter.
319 Check for stack overflow.
320 If contexts overflow, substitute LIN_MAX, as that's good enough.
321 If multiple contexts are specified, use their maximum.
322 -c is equivalent to -C 3 now, instead of having an implicit context;
323 likewise for -u and -U 3.
324 Use specify_style and specify_value.
325 (SIGCHLD): Do not define; now done in a header.
326 Use new style time stamp format for -u / -U.
327 Reject numeric-string options if operating in POSIX 1003.1-2001 mode.
328 Avoid overflow problems with tab width.
329 Simplify from-file and to-file code.
330 (usage): Do not mention obsolete options.
331 (filetype): Do not mention whether a file is executable.
332 Add typed memory objects.
333 (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 ->
334 EXIT_TROUBLE.
335
336 * src/diff3.c: Include c-stack.h, exitfail.h.
337 (ALLOCATE): Remove. All uses changed to xmalloc, or to xmalloc plus
338 an overflow check.
339 (myread): Remove.
340 (main): Check for stack overflow.
341 0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE.
342 (try_help): Likewise.
343 (process_diff): Check for integer overflow, to avoid core dumps.
344 2 -> EXIT_TROUBLE.
345 (read_diff): Exit with status 126 if the file is not executable,
346 for compatibility with POSIX 1003.1-2001.
347 Accommodate ancient AIX hosts that set errno to EINTR after uncaught
348 SIGCONT.
349 Check for integer overflow to avoid core dumps.
350 (fatal, perror_with_exit): 2 -> EXIT_TROUBLE.
351
352 * src/dir.c (dir_read):
353 Ignore st_size of directories: POSIX says it's garbage.
354 Check for integer overflow to avoid core dumps.
355 (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE.
356
357 * src/ifdef.c: Include <xalloc.h>.
358 (format_group, print_ifdef_lines): Avoid core dumps with bad formats.
359 (do_printf_spec): Avoid alloca.
360
361 * src/io.c (sip):
362 Avoid integer overflow and core dumps if buffer alignments are
363 preposterously incompatible.
364 (slurp): Do not dump core if the file is growing as we read it.
365 If a regular file grows, keep reading until we catch up with its EOF.
366 (find_and_hash_each_line): Check for integer overflow to avoid cores.
367 (GUESS_LINES): Remove.
368 (guess_lines): New function. Avoid integer overflow.
369 (find_identical_ends): Use it.
370 Avoid integer overflow and possible core dumps.
371
372 * src/sdiff.c: Include c-stack.h, exitfail.h. Do not include signal.h.
373 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
374 (ck_editor_status): New function.
375 (main): Check for stack overflow.
376 Adopt POSIX convention for subsidiary programs not found.
377 (diffarg): Check for integer overflow to avoid core dumps.
378 (trapsigs): Remove SA_INTERRUPT special case; now done by header.
379 (SIGCHLD): Likewise.
380 (edit): Adopt POSIX convention for subsidiary programs not found.
381
382 * src/side.c: unsigned -> unsigned int.
383
384 * src/system.h: Don't use alloca or include <alloca.h>.
385 unsigned -> unsigned int
386 (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined.
387 Include signal.h.
388 (SA_RESTART): Define if not defined.
389 (SIGCHLD): Likewise.
390
391 * src/util.c: 2 -> EXIT_TROUBLE.
392 Adopt POSIX convention for ENOEXEC and exit status 126.
393 unsigned -> unsigned int
394
3952002-01-24 Paul Eggert <[email protected]>
396
397 * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7.
398
399 * intl/plural.c: Regenerate with Bison 1.31.
400
401 * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++.
402 * INSTALL: Update to Autoconf 2.52f.
403
404 * INSTALLME: New file.
405 * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME.
406 (DISTCLEANFILES): Remove.
407 * NEWS: Reformat for imminent 2.8 release.
408 * README: Mention INSTALLME.
409 * README-alpha: Move most of contents to INSTALLME.
410 * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii.
411
412 * config: New subdirectory, containing the following files from .:
413 config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
414 Move the following files here from doc: texinfo.tex, mdate-sh.
415 * config/config.guess, config/config.sub, config/texinfo.tex:
416 Update to latest version from FSF.
417 * config/config.rpath: New file, from Gettext 0.11-pre5++.
418
419 * configure.ac (AC_INIT): Use new 3-arg form.
420 (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT.
421 (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
422 (AC_CONFIG_AUX_DIR): New macro invocation.
423
424 * lib/Makefile.am (noinst_HEADERS): Add gettext.h.
425 * lib/gettext.h: New file, from Gettext 0.11-pre5++.
426 * lib/prepargs.c: Include <string.h>. Reported by Bruno Haible.
427
428 * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4,
429 lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++.
430 * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
431 Gettext 0.11-pre5++.
432
433 * po/LINGUAS: New file.
434 * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++.
435 * po/Makevars, po/Rules-quot, po/boldquot.sed: New files,
436 from Gettext 0.11-pre5++.
437
438 * src/cmp.c (copyright_string): Update to 2002.
439 * src/diff.c (copyright_string): Likewise.
440 * src/diff3.c (copyright_string): Likewise.
441 * src/sdiff.c (copyright_string): Likewise.
442
443 * src/cmp.c (bytes, parse_ignore_initial, cmp): Use UINTMAX_MAX
444 instead of (uintmax_t) -1, to avoid warnings on some compilers.
445 * src/io.c (file_block_read): Likewise, for SIZE_MAX.
446
447 * src/cmp.c (usage): Reformat messages to ease translation.
448 * src/diff3.c (usage): Likewise.
449 * src/sdiff.c (usage): Likewise.
450
451 * src/diff3.c (main): Remove unused variable.
452
453 * src/dir.c: Include <setjmp.h>
454 (struct dirdata): New member nnames.
455 (locale_specific_sorting, failed_strcoll): New vars.
456 (dir_read): Renamed from dir_sort. Don't sort the dir.
457 Set new nnames member of struct dirdata. All callers changed.
458 (compare_names): Don't check for errno after strcasecmp.
459 Use strcoll only if locale_specific_sorting is nonzero.
460 If strcoll fails, longjmp out rather than returning a value
461 that might result in an invalid comparison function that might
462 make qsort dump core.
463 (diff_dirs): Sort the directory ourselves. Use setjmp to recover
464 from strcoll failure, falling back on native byte comparison.
465 Make local variables volatile if they need to preserve their value
466 after setjmp/longjmp.
467
468 * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE):
469 New macros.
470 (main): Do not confuse signal numbers with their indices.
471 Bug reported by Bruno Haible.
472 (edit): Cat lin to long before printing with %ld, since lin might
473 be narrow than long.
474
475 * src/system.h (UINTMAX_MAX): New macro.
476 Include gettext.h, not libgettext.h.
477 (N_): Do not wrap arg in parentheses. Fix from Bruno Haible.
478
479 * src/util.c (finish_output): Ensure that werrno is initialized.
480 (lines_differ): Have an explicit do-nothing case for
481 IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall.
482
4832001-12-29 Eli Zaretskii <[email protected]>
484
485 * src/sdiff.c (interact): After extracting rlen from the editor
486 command, test for a terminating null character, not for a newline.
487
488 * ms/config.bat: Allow longer source directory names without
489 overflowing the line length limits. Create the cache in the
490 build directory, not in the source directory
491 * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are
492 unavailable.
493
4942001-12-23 Paul Eggert <[email protected]>
495
496 * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6.
497
498 * configure.ac (ALL_LINGUAS): Add tr.
499
500 * src/util.c (begin_output):
501 Have child exit with status 127 rather than reporting
502 failure on its own. Set errno to 0 before invoking popen.
503 (finish_output): Report errno on pclose failure.
504 Distinguish between subsidiary program not found, and failure.
505
506 * src/sdiff.c (not_found, execdiff): Remove.
507 (DIFF_PROGRAM_OPTION): New constant.
508 (longopts, option_help_msgid, main): Add --diff-program=PROGRAM.
509 (check_stdout): New function.
510 (main): Remove DIFF_PROGRAM. Check stdout after printing version.
511 Use check_stdout after printing help. Use execvp/perror_fatail rather
512 than execdiff. Set errno to 0 before invoking popen.
513 Check for pclose failure properly.
514 (main, edit): If child exec fails, exit with 127 rather than trying to
515 print diagnostic.
516 Distinguish between subsidiary program failing and not being found.
517 (edit): Handle signals the same way, regardless of whether we're using
518 system or fork+exec. Check for system returning -1.
519
520 * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants.
521 (longopts, main): Use them.
522 (longopts, main, option_help_msgid): New option --diff-option=PROGRAM.
523 (main): Remove DIFF_PROGRAM support.
524 Check stdout after printing version.
525 (check_stdout): Report errno info if fclose fails.
526 (read_diff): Have child exit with status 127 when program is not found,
527 rather than trying to have the child report failure. Check for
528 pclose returning -1.
529
530 * src/diff.c (DEFAULT_WIDTH): Remove.
531 (main): Use 130 instead of DEFAULT_WIDTH, since it's not really
532 builder-settable. Do not prepend DIFF_OPTIONS.
533 (check-stdout): If fclose (stdout) fails, print errno info.
534 (option_help_msgid): Default context is 3, not 2.
535 (usage): Work even if ptrdiff_t is wider than int.
536
537 * doc/diff.texi (diff Options): Remove DIFF_OPTIONS.
538 (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM.
539 (diff3 Options, sdiff Options): Add --diff-program.
540
541 * src/cmp.c (valid_suffixes):
542 Add '0', to support suffixes like "MB" and "MiB".
543 (check_stdout): Don't assume that the translations of "write failed"
544 and of "standard output" lack '%'.
545 (main): Check stdout after printing version.
546
547 * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>.
548 [!HAVE_SETMODE_DOS]: Do not include <unistd.h>.
549 (set_binary_mode): Return mode (not 1) if fd is a tty.
550 Do not assume that O_TEXT is zero.
551
552 * doc/diff.texi (cmp Options):
553 In byte counts, a plain suffix (without any integer)
554 is assumed to modify the integer 1. Index terms like "kibibyte".
555 Document plain "k".
556
557 (Reporting Bugs): Mention bug-report archive and test version
558 location. Ask for "diff --version" in bug reports.
559
5602001-12-13 Paul Eggert <[email protected]>
561
562 * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without
563 also changing option_help_msgid. All uses replaced with 130.
564
565 * lib/setmode.c: Include fcntl.h and unistd.h only if
566 HAVE_SETMODE_DOS.
567 (setmode): Assume a file is binary unless the mode is O_TEXT.
568 * ms/README: Fix minor typos.
569
5702001-12-13 Eli Zaretskii <[email protected]>
571
572 * ms/README: New file.
573
574 * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume
575 O_TEXT has a zero value. If FD is a terminal device, do nothing
576 and return MODE, thus pretending that it was already in the
577 requested MODE.
578 [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY).
579
580 * ms/config.sed: Remove the split prevention of config.status.
581 Fix Sed commands for converting absolute file names into
582 top_srcdir-relative ones.
583
584 * ms/config.bat: Fix typos.
585
5862001-12-12 Neal H Walfield <[email protected]>
587
588 * diff.c (option_help_msgid): Correct the default context width
589 from 2 to 3.
590
5912001-12-11 Paul Eggert <[email protected]>
592
593 * m4/Makefile.am.in: Remove jm-glibc-io.m4
594
595 * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5.
596
597 * configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that
598 $PR_PROGRAM is expanded by sh.
599 (ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int,
600 not AC_CHECK_TYPES.
601 (jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros.
602 (AC_CONFIG_FILES): Add ms/Makefile.
603
604 * doc/diff.texi: Add --no-ignore-file-name-case.
605 File name case sensitivity now affects file name exclusion.
606 Fix typos.
607
608 * src/util.c: Include dirname.h.
609 (dir_file_pathname): Use base_name rather than file_name_lastdirchar.
610
611 * src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros.
612 Include <libgettext.h> rather than rolling it ourselves.
613 (file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove.
614
615 * src/sdiff.c: Include <dirname.h>.
616 (expand_name): Use base_name rather than file_name_lastdirchar, for
617 portability to DOS.
618 (main): Initialize xalloc_exit_failure before possibly invoking
619 any memory allocator.
620
621 * src/io.c: Include setmode.h.
622
623 * src/diff3.c (main):
624 Initialize xalloc_exit_failure before possibly invoking any memory
625 allocator.
626
627 * src/diff.c: Include dirname.h, setmode.h.
628
629 (main): Later values and/or styles now silently override earlier.
630 (specify_value, specify_style): Likewise. All callers changed.
631 Remove.
632 (binary, main, option_help_msgid, compare_files):
633 HAVE_SETMODE -> HAVE_SETMODE_DOS.
634 (NO_IGNORE_FILE_NAME_CASE_OPTION): New constant.
635 (longopts, main, option_help_msgid): Support it.
636 (exclude_options): New function.
637 (main): Use it. Initialize xalloc_exit_failure before potentially
638 allocating memory.
639
640 (filetype): Distinguish executable files from others, as POSIX
641 suggests.
642
643 (compare_files): Use base_name instead of file_name_lastdirchar.
644
645 * src/cmp.c: Include <hard-locale.h>, <setmode.h>.
646 (hard_locale_LC_MESSAGES): New macro.
647 (sprintc): Remove int width arg; it's now the caller's responsibility
648 to pad. All callers changed.
649 (stat_buf): New static var; was formerly a local var in 'main'.
650 (valid_suffixes): Add 'K', for 'KiB'.
651 (option_help_msgid): Don't confuse bytes with characters.
652 (main): Set xalloc_exit_failure before invoking anything that might
653 allocate memory. Fix bug: -n was incorrectly ignored when optimizing
654 the case of regular files with different lengths.
655 (cmp): Use an index column wide enough to store this comparison's
656 indexes. In locales other than the POSIX locale, say "byte"
657 rather than "char".
658
659 * ms/config.bat: pc -> ms
660
661 * ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h:
662 New file.
663
664 * lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h.
665 (libdiffutils_a_SOURCES): Add basename.c, setmode.c.
666
667 * Makefile.am (SUBDIRS): Add ms.
668
6692001-12-10 Paul Eggert <[email protected]>
670
671 * m4/fnmatch.m4: Test for FNM_CASEFOLD.
672
6732001-12-03 Paul Eggert <[email protected]>
674
675 * lib/posix/regex.h: Fix copyright notice.
676
6772001-12-03 Paul Eggert <[email protected]>
678
679 * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4.
680
681 * diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp):
682 Use "byte" rather than "character" when talking about cmp, since
683 it compares bytes, not character.
684 (Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP.
685 -i or --ignore-initial now accepts FROM-SKIP:TO-SKIP.
686 New option -n or --bytes.
687 Count operands now may be in octal or hex, and may be followed by a
688 size multiplier.
689
690 * configure.ac (DEFAULT_DIFF_PROGRAM):
691 Define to "diff", not "$bindir/diff" (which didn't work anyway).
692 (AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev.
693 (AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent.
694 (AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK.
695 (AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add.
696 (AC_OUTPUT): Remove args; they were obsolescent.
697
698 * util.c (setup_output, begin_output, finish_output):
699 HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK.
700 * sdiff.c (diffpid, cleanup, main, edit): Likewise.
701 * diff3.c (read_diff): Likewise.
702
703 * system.h (STAT_BLOCKSIZE):
704 Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE.
705 (vfork): New macro.
706 (HAVE_FORK): Remove.
707 (set_binary_mode): New macro.
708
709 * sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK.
710 (edit): Reopen the temporary file after the editor has run, in case
711 the editor operates by unlinking the old file and linking a new one.
712 (P_tmpdir): Rename from PVT_tmpdir; this fixes a typo.
713 All uses changed.
714
715 * io.c (sip, read_files):
716 Remove tests for HAVE_SETMODE; use set_binary_mode
717 instead of setmode.
718 (sip): Fix typo in backward lseek when reverting to text mode.
719
720 * config.site, config.sed, config.bat: New file.
721
722 * Makefile.am (EXTRA_DIST): Add xstrtol.c.
723 (noinst_HEADERS): Add xstrtol.h.
724 (libdiffutils_a_SOURCES): Add xstrtoumax.c.
725
726 * cmp.c: <xstrtol.h>: Include.
727 (ignore_initial): Now an array with 2 elements. All uses changed.
728 (bytes): New var.
729 (HELP_OPTION): New constant.
730 (long_options, main): Use it.
731 (long_options, option_help_msgid, main, cmp):
732 Add support for -n or --bytes.
733 (parse_ignore_initial): New function.
734 (option_help_msgid, main): Add -i M:N.
735 (usage, main): Add two optional trailing operands, a la BSD.
736 (main): setmode -> set_binary_mode.
737 (cmp): Report byte number of what we've seen, not of the entire file.
738 This is to be consistent with the line number, which is always relative
739 with what we've seen.
740
7412001-12-02 Paul Eggert <[email protected]>
742
743 * diff.c (main, compare_files): setmode -> set_binary_mode.
744
745 * xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'.
746
747 * xstrtol.c (__xstrtol): Add support for IEC 60027-2.
748
7492001-11-25 Paul Eggert <[email protected]>
750
751 * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3.
752
753 * README-alpha: New file.
754
755 * src/Makefile.am (INCLUDES): Add -I../lib, for regex.h.
756
757 * configure.ac:
758 Don't set LIB_CLOCK_GETTIME to 'none required'; set it to
759 the empty string instead.
760
761 * lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c.
762
763 * Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists.
764
765 * lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h.
766
767 * configure.ac (__EXTENSIONS__): New define, for the unlocked macros.
768
769 * README: Add copyright notice.
770 Remove stuff that doesn't apply any more.
771
772 * doc/diff.texi: offsets -> indices for cmp
773
774 * src/cmp.c (option_help_msgid): offsets -> indices
775
776 * src/diff.c (option_help_msgid):
777 Don't mention --binary on POSIX hosts.
778
779 * src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant.
780 (longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion,
781 --strip-trailing-cr.
782
783 * doc/diff.texi: Change direcategory from Utilities to GNU Packages.
784 Add individual utilities.
785 Switch to Free Documentation License.
786 @code -> @command
787 @samp -> @option
788 GNU -> @sc{gnu}
789 Expand tabs to spaces, except when in an example that actually
790 uses tabs.
791 Prefer @node with just one arg.
792 Document -E or --ignore-tab-expansion, --strip-trailing-cr,
793 --ignore-file-name-case.
794 Regular expressions are now grep style, not Emacs style.
795 cmp's -c or --print-chars option is now -b or --print-bytes.
796 Time stamps now depend on LC_TIME.
797 -p now implies ^[[:alpha:]$_].
798 Flags now include ' and 0.
799 cmp -i is an alias for --ignore-initial
800 Document --from-file, --to-file.
801 Document DIFF_OPTIONS.
802
803 * configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime.
804 (LIB_CLOCK_GETTIME): New subst.
805
806 * src/system.h: Assume C89 or better.
807 (_GNU_SOURCE): Remove; config.h now defines it.
808 (alloca): Declare like coreutils does it.
809 (verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR,
810 S_IRUSR, S_IWUSR): New macros.
811 (STAT_BLOCKSIZE): Parenthesize definiens.
812 <inttypes.h>: Include if HAVE_INTTYPES_H.
813 (CHAR_MAX, INT_MAX): Remove.
814 (PTRDIFF_MAX, SIZE_MAX): New macros.
815 (strtoumax): New decl.
816 Include stddef.h.
817 (bzero): Remove.
818 (bindtextdomain, textdomain, N_): New macros.
819 (ISPRINT, ISSPACE): Remove ifndef wrappers.
820 (ISUPPER, ISDIGIT): Remove.
821 (TOLOWER): New macro.
822 (MIN): Renamed from min; all callers changed.
823 (MAX): Likewise, from max.
824 (lin): New type.
825 (LIN_MAX): New macro.
826 (file_name_cmp): Renamed from filename_cmp. All callers changed.
827 (file_name_lastdirchar): Renamed from file_name_lastdirchar.
828 All callers changed.
829 (could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
830 dev_may_have_duplicate_ino): Remove.
831 (HAVE_SETMODE, NULL_DEVICE): New macros.
832 (same_file): Do not check attributes.
833 (same_file_attributes): New macro.
834
835 * src/util.c: Assume C89 or better.
836 int -> bool for booleans.
837 int -> lin for line numbers.
838 int -> size_t for sizes.
839 Use angle-brackets when including quotesys.h.
840 Include error.h, regex.h, xalloc.h.
841 (message5): sizeof -> offsetof
842 (begin_output): Invoke pr without -f.
843 (lines_differ): Renamed from line_cmp, and return bool not 3-way int.
844 All callers changed.
845 Add support for IGNORE_TAB_EXPANSION.
846 (change_letter): Now an array rather than a function. All
847 callers changed.
848 (translate_range): Translate line numbers to long, not lin,
849 for convenience with printf.
850 (analyze_hunk): Return enum changes instead of a count of
851 inserts and deletes. All callers changed.
852 (zalloc): New function.
853
854 * src/side.c: Assume C89 or better.
855 int -> bool for booleans.
856 int -> lin for line numbers.
857
858 * src/sdiff.c: Assume C89 or better.
859 int -> bool for booleans.
860 int -> lin for line numbers.
861 Use angle-brackets when including getopt.h, quotesys.h.
862 Include error.h, freesoft.h, stdio.h, xalloc.h.
863 (copyright_string): Use only most recent year.
864 (authorship_msgid, option_help_msgid): Wrap in N_().
865
866 (tmpname): Now volatile.
867 (tmpmade): Remove.
868 (tmp): New var.
869 (private_tempnam, exists, letters): Remove.
870 (temporary_file): New function.
871 (edit): Use it.
872 (interact): Use strtoumax, not atoi.
873
874 * src/normal.c: Assume C89 or better.
875 int -> lin for line numbers.
876
877 * src/io.c: Assume C89 or better.
878 int -> bool for booleans.
879 int -> lin for line numbers.
880 int -> size_t for sizes.
881 Use angle-brackets when including cmpbuf.h.
882 Include regex.h, xalloc.h.
883 (word): Remove; now done in system.h.
884 (hash_value): New type; use it instead of 'unsigned' for hash values.
885 (file_block_read): New function.
886 (sip, slurp): Use it. Now static.
887 (sip): Ensure block size is a multiple of word size. Clear eof flag.
888 (slurp): Use xalloc_die to report memory exhaustion.
889 (find_and_hash_each_line): Use TOLOWER instead of _tolower.
890 Add support for IGNORE_TAB_EXPANSION.
891 (prepare_text_end): Strip trailing CR if requested.
892 (find_identical_ends): Prepare the text only once,
893 if they're duplicates.
894 Let the compiler take advantage more of the fact that the buffers are
895 word-aligned.
896 (primes): Remove.
897 (prime_offset): New var.
898 (read_var): Use prime_offset instead of primes.
899 Use zalloc instead of xmalloc + bzero.
900
901 * src/ifdef.c: Assume C89 or better.
902 int -> lin for line numbers.
903 (format_group): Use strtoumax to parse line numbers.
904 (format_group, print_ifdef_lines): Use do_printf_spec to
905 handle printf specs.
906 (groups_letter_value): Don't use _tolower; it's locale-dependent.
907 (do_printf_spec): Renamed from scan_printf_spec; now does the printing.
908
909 * src/ed.c: Assume C89 or better.
910 int -> lin for line numbers (or 'long' when that's more convenient).
911 (print_ed_hunk): Fix bug when handling double-dot inserts.
912
913 * src/dir.c: Assume C89 or better.
914 int -> bool for booleans.
915 Include error.h, exclude.h, xalloc.h.
916
917 (dir_sort): Return 0 on error, 1 on success. All callers changed.
918 compare_names -> compare_names_for_qsort.
919
920 (compare_names): Try strcasecmp if ignore_file_name_case. Then try
921 strcoll. Use file_name_cmp only as a last resort. Warn about
922 strcasecmp or strcoll failure.
923 (compare_names_for_qsort): New function.
924
925 (diff_dirs): Use compare_names rather than filename_cmp.
926
927 * src/diff3.c: Assume C89 or better.
928 int -> bool for booleans.
929 int -> lin for line numbers.
930 Use angle-brackets when including getopt.h, quotesys.h.
931 Include error.h, freesoft.h, inttostr.h, xalloc.h.
932 (copyright_string): Use only most recent year.
933 (authorship_msgid, option_help_msgid): Wrap in N_().
934
935 Rename the following variables for consistency with user-visible
936 option spellings. All uses changed.
937 (text): Renamed from always_text.
938 (initial_tab): Renamed from tab_align_flag.
939
940 (horizon_lines): Remove. Remove all uses.
941
942 (main): Invoke bindtextdomain and textdomain after setlocale.
943 Rename "DIFF" to "DIFF_PROGRAM".
944
945 Try to compare file0 to file1, because this is where changes are
946 expected to come from. Diffing between these pairs of files is more
947 likely to avoid phantom changes from file0 to file1.
948 However, use file2 as the common file if this is a 3-way diff,
949 for backward compatibility. Suggested by Karl Tomlinson.
950
951 (create_diff3_block): Use xcalloc instead of malloc + bzero.
952
953 (INT_STRLEN_BOUND): Remove; now in system.h.
954
955 (read_diff): Always use --horizon-lines=100 rather than trying
956 to guess it.
957 Do not pass --inhibit-hunk-merge.
958 Minimum chunk size is 1, not 8KiB.
959 Use xalloc_die to report memory exhaustion.
960 (undotlines): Use long for start, not int.
961
962 * src/diff.h: Assume C89 or better.
963 int -> bool for booleans.
964 int -> lin for line numbers.
965 Don't include regex.h.
966 (enum changes): New enum.
967 (enum line_class): Remove; subsumed by enum changes.
968 (enum output_style): New constant OUTPUT_UNSPECIFIED.
969
970 (ignore_space_change_flag, ignore_all_space_flag): Remove.
971 (ignore_white_space): New decl, subsuming the above two. All
972 uses changed.
973
974 Rename the following decls for consistency with user-visible
975 option spellings. All uses changed.
976 (text): Renamed from always_text_flag.
977 (ignore_blank_lines): Renamed from ignore_blank_lines_flag.
978 (ignore_case): Renamed from ignore_case_flag.
979 (brief): Renamed from no_details_flag.
980 (initial_tab): Renamed from tab_align_flag.
981 (expand_tabs): Renamed from tab_expand_flag.
982 (starting_file): Renamed from dir_start_file.
983 (paginate): Renamed from paginate_flag.
984 (sdiff_merge_assist): Renamed from sdiff_help_sdiff.
985 (left_column): Renamed from sdiff_left_only.
986 (suppress_common_lines): Renamed from sdiff_skip_common_lines.
987 (speed_large_files): Renamed from heuristic.
988 (minimal): Renamed from no_discards.
989
990 (inhibit_hunk_merge): Remove.
991
992 (strip_trailing_cr, excluded, time_format): New decls.
993
994 (files_can_be_treated_as_binary): Renamed from ignore_some_changes.
995
996 (group_format, line_format): Now char const *[], not char *[].
997
998 (struct file_data): Buffer is now word*, not char*, as it's always
999 aligned and this can help the compiler. buffered_chars -> buffered
1000 (since it's a byte count, not a char count). All uses changed.
1001 New member `eof'.
1002
1003 (FILE_BUFFER): New macro.
1004
1005 (excluded_filename, error, free_software_msgid): Remove decls; now in
1006 other .h files.
1007
1008 (sip, slurp): Remove decls.
1009 (file_block_read): New decl.
1010 (change_letter): Now an array, not a function.
1011 (lines_differ): Renamed from line_cmp.
1012 (analyze_hunk): Now returns enum changes rather than two change counts.
1013
1014 * src/Makefile.am (diff_LDADD): New symbol.
1015
1016 * src/diff.c: Assume C89 or better.
1017 int -> bool for booleans.
1018 long -> off_t for line numbers.
1019 Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h.
1020 Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h,
1021 regex.h, signal.h, xalloc.h.
1022 (copyright_string): Use only most recent year.
1023 (authorship_msgid, option_help_msgid): Wrap in N_().
1024
1025 Rename the following variables for consistency with user-visible
1026 option spellings. All uses changed.
1027 (binary): Renamed from binary_flag.
1028 (new_file): Renamed from entire_new_file_flag.
1029 (unidirectional_new_file): Renamed from unidirectional_new_file_flag.
1030 (report_identical_files): Renamed from print_file_same_flag.
1031
1032 (numeric_arg): Remove.
1033
1034 (exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude,
1035 add_exclude_file):
1036 Remove; now done by exclude.h.
1037
1038 (BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION,
1039 IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION,
1040 LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION,
1041 SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION,
1042 SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION,
1043 UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION,
1044 NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION,
1045 OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION,
1046 CHANGED_GROUP_FORMAT_OPTION): New constants.
1047 (longopts, main): Use them.
1048
1049 (longopts, main, option_help_msgid): Add -E, --from-file, --to-file.
1050
1051 (main): Invoke bindtextdomain and textdomain after setlocale.
1052 Use grep syntax, not Emacs, for regular expressions.
1053 Use exclude.h, not our own functions.
1054 Use ISO 8601 time format in hard locales.
1055 Prepend DIFF_OPTIONS.
1056 Don't update ignore_some_changes.
1057 Use strtoumax instead of numeric_arg.
1058 Use specify_value when appropriate.
1059 error -> try_help when appropriate.
1060 -p now means ^[[:alpha:]$_], not ^[_a-zA-Z$].
1061 Ignore --inhibit-hunk-merge.
1062 Prefer changed group formats to unchanged ones.
1063 Remove now-unnecessary casts.
1064 Set files_can_be_treated_as_binary.
1065
1066 (specify_value): Renamed from specify_format. All uses changed.
1067
1068 (specify_style): Default is now unspecified, not normal. All
1069 uses changed.
1070
1071 (set_mtime_to_now): New function.
1072 (compare_files): Use it. Use memset, not bzero.
1073 Set stdin mtime to current time even when stdin is not a regular file.
1074 Check for same file attributes, as well as for same file.
1075 Use files_can_be_treated_as_binary.
1076 "write failed" -> "standard output on output failure.
1077
1078 * src/context.c: Assume C89 or better.
1079 int -> lin for line numbers.
1080 Include inttostr.h, regex.h.
1081 (TIMESPEC_NS): New macro.
1082 (nstrftime): New decl.
1083 (print_context_label): Use nstrftime and time_format to format times.
1084 Print numeric time stamp value if localtime fails.
1085 (print_context_function): New function.
1086 (pr_context_hunk, pr_unidiff_hunk): Use it.
1087 (find_function): Use size_t for sizes, not int.
1088
1089 * src/cmp.c: Assume C89 or better.
1090 int -> bool for booleans.
1091 long -> off_t for line numbers.
1092 Use angle-brackets when including cmpbuf.h, getopt.h.
1093 Include error.h, freesoft.h, inttostr.h, xalloc.h.
1094 (copyright_string): Use only most recent year.
1095 (authorship_msgid): Wrap in N_().
1096 (buffer): Now word*, not char*. All uses changed.
1097 (word): Remove macro; now in system.h.
1098 (long_options, option_help_msgid, main): -c --print-chars ->
1099 -b --print-bytes
1100 (check_stdout): "write failed" -> "standard output"
1101 (option_help_msgid): Wrap in N_().
1102 (main): Invoke bindtextdomain and textdomain after setlocale.
1103 Use strtoumax instead of doing the work ourselves.
1104 Check for same_file_attributes as well as same_file.
1105 (cmp): Use ssize_t for read returns, not size_t.
1106 Do not assume that size_t is not narrower than int.
1107 Do not assume that line numbers fit in 'long'.
1108 (block_compare_and_count, block_compare):
1109 Compiler now checks that buffers are word-aligned.
1110 (block_compare_and_count): Count sizes with size_t, not long.
1111 (sprintc): byte arg is unsigned char, not unsigned.
1112
1113 * src/analyze.c: Assume C89 or better.
1114 int -> lin for line numbers.
1115 int -> bool for booleans.
1116 unsigned int -> size_t for sizes.
1117 Use angle-brackets when including cmpbuf.h.
1118 Include error.h, regex.h, xalloc.h.
1119 (discard_confusing_lines, diff_2_files): Use zalloc rather
1120 than xalloc+bzero.
1121 (discard_confusing_lines): unsigned int -> lin for values that
1122 are really line numbers.
1123 (shift_boundaries): Do not inhibit hunk merges.
1124 (build_reverse_script, build_script, diff_2_files): Use |, not ||.
1125 (diff_2_files): no_details_flag & ~ignore_some_changes ->
1126 files_can_be_treated_as_binary. Esure that buffer size is a multiple
1127 of sizeof (word). Use file_block_read to read buffers.
1128 (diff_2_files): Abort if output style is not one of the
1129 expected styles.
1130
11312001-11-23 Paul Eggert <[email protected]>
1132
1133 * src/Makefile.am, m4/vararrays.m4: New file.
1134
1135 * m4/prereq.m4 (jm_PREREQ_READUTMP):
1136 Remove, as it gives autoheader the willies.
1137
1138 * m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c,
1139 lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h,
1140 lib/imaxtostr.c, lib/freesoft.h: New files.
1141
1142 * lib/freesoft.c: Include config.h, freesoft.h rather than diff.h.
1143 (free_software_msgid): Wrap contents in N_.
1144
1145 * lib/cmpbuf.h: Use prototypes instead of old-style functions.
1146
1147 * lib/cmpbuf.c:
1148 Don't include system.h; instead, include config.h, unistd.h.
1149 Use prototypes instead of old-style functions.
1150 (block_read): Don't assume that int is no wider than size_t.
1151
1152 * lib/Makefile.am, po/POTFILES.in: New file.
1153
11542001-11-22 Paul Eggert <[email protected]>
1155
1156 * pc/config.h:
1157 Define filename_cmp as an object-like macro, not as a function-like
1158 macro.
1159
1160 * exgettext: Always operate in the C locale.
1161 Set AWK using a method that works even with broken shells.
1162
1163 * doc/Makefile.am: New file.
1164
1165 * configure.ac (AC_INIT):
1166 Use src/diff.c, not diff.h, as the source files got removed.
1167 (AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER.
1168 (AC_ARG_PROGRAM, AC_MINIX): Remove.
1169
1170 (AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK,
1171 AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS,
1172 DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM,
1173 AC_STRUCT_ST_MTIM_NSEC): Add.
1174
1175 (PR_PROGRAM): AC_DEFINE.
1176
1177 (AC_SYS_LARGEFILE): Use instead of our homebrew version.
1178
1179 (_GNU_SOURCE): Define if not defined.
1180
1181 (AC_CHECK_HEADERS): Add stdbool.h, unistd.h.
1182 (AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t.
1183 (AM_GNU_GETTEXT, XGETTEXT): Add.
1184
1185 (WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove.
1186 (HAVE_MEMCHR): Remove.
1187 (AC_CHECK_FUNCS): Add diraccess.
1188 (AC_REPLACE_FUNCS): Add memchr, waitpid.
1189 (jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC,
1190 jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX,
1191 jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add.
1192 (fnmatch.h, regex.h): Do not create these files unless we're using
1193 our own fnmatch and regex.
1194
1195 (AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile,
1196 lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile.
1197
1198 * Makefile.am: New file.
1199
1200 * po/en_GB.po: Don't translate "program" to "programme".
1201
12022001-11-20 Paul Eggert <[email protected]>
1203
1204 * m4/prereq.m4: New file.
1205
12062001-03-16 Paul Eggert <[email protected]>
1207
1208 * lib/tempname.c (uint64_t):
1209 Define if not defined, and if UINT64_MAX is not defined.
1210
12112001-02-26 Paul Eggert <[email protected]>
1212
1213 * lib/tempname.c: glibc 1.32
1214
12152001-02-17 Paul Eggert <[email protected]>
1216
1217 * m4/Makefile.am.in: GNU fileutils 4.1
1218
12192001-01-09 Paul Eggert <[email protected]>
1220
1221 * lib/tempname.c (struct_stat64): New macro.
1222 (direxists, __gen_tempname): Use it. This avoids a portability problem
1223 with Solaris 8.
1224
1225 * lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H.
1226 (<stddef.h>, <stdint.h>, <string.h>):
1227 Include only if STDC_HEADERS || _LIBC.
1228 (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
1229 (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
1230 (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
1231 (__set_errno): Define this macro if <errno.h> doesn't.
1232 (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
1233 Define these macros if <stdio.h> doesn't.
1234 (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
1235 Define these macros if <sys/stat.h>
1236 doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
1237 (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
1238 __xstat64): Define if not _LIBC.
1239 (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
1240 (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY
1241 || _LIBC; otherwise, fall back on plain "time".
1242 Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
1243
1244 * lib/mkstemp.c (__GT_FILE): Define to zero if not defined.
1245
12462000-10-25 Paul Eggert <[email protected]>
1247
1248 * lib/hard-locale.c: New file.
1249
12502000-02-05 Paul Eggert <[email protected]>
1251
1252 * exgettext: From GCC repository
1253
12541999-07-06 Paul Eggert <[email protected]>
1255
1256 * lib/mkstemp.c: glibc 2.2
1257
12581998-12-11 Paul Eggert <[email protected]>
1259
1260 * src/sdiff.c (lf_snarf):
1261 Fix bug when help line wrapped around the input buffer.
1262
12631998-09-15 Paul Eggert <[email protected]>
1264
1265 * diff.texi: Add @dircategory and @direntry.
1266
12671998-09-14 Paul Eggert <[email protected]>
1268
1269 * Makefile.in (VERSION): Version 2.7.2.
1270 (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
1271 (PR_PROGRAM): All `configure' to define it.
1272 (srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of
1273 quote.c, quotearg.h.
1274 (distfiles): Add acconfig.h, message/*.
1275 (all): Depend on $(destfiles), not info.
1276 (version.c): Parenthesize `GNU diffutils'.
1277 (common_o): Add freesoft.o
1278 (diff_o): quote.o -> quotearg.o
1279 (diff3_o, sdiff_o): Likewise.
1280 (diff.dvi): Depend on version.texi.
1281 (diff.o diff3.o quotearg.o sdiff.o util.o):
1282 New dependency on quotearg.h
1283 (diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM.
1284 (sdiff.o): Likewise.
1285 (messages.po): Remove.
1286 (message/msgid.po, message/template.po): New rules.
1287 (maintainer-clean): Renamed from realclean.
1288 (install): Install from source directory, if applicable.
1289 Invoke install-info if needed.
1290 (install-strip): New rule.
1291 (check): Set DIFF.
1292 (stamp-h.in): Don't put the date into the timestamp.
1293 (D_dirs): Add $D/message.
1294 ($D.tar.gz): Compress with gzip -9.
1295 Don't use ln to create distribution; it doesn't work with symlinks.
1296 (srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to
1297 quotesys.c and quotearg.h to quotesys.h.
1298
1299 * configure.in (AC_PATH_PROG): Add PR_PROGRAM.
1300 If available, prefer support for large files unless the user specified
1301 one of the CPPFLAGS, LDFLAGS, or LIBS variables.
1302 (AC_STRUCT_ST_RDEV): Add.
1303 (HAVE_ST_FSTYPE_STRING): Add.
1304 (--with-mvfs-stat-bug, --with-nfs-stat-bug): New options.
1305 (HAVE_MEMCHR): New macro.
1306 (AC_CHECK_FUNCS): Add sicprocmask.
1307
1308 * diff.h (XTERN): Renamed from EXTERN.
1309 (struct filedata): Remove dir_p arg.
1310 (struct comparison): New type.
1311 (diff_2_files, diff_dirs)" Ise ot/
1312 (error): Add printf attribute if applicable.
1313 (free_software_msgid): New decl.
1314 (pr_program): New decl.
1315 (fatal): Add noreturn attribute.
1316 (pfatal_with_name): Likewise.
1317
1318 * system.h (__attribute__): New macro.
1319 (getenv): Don't declare if HAVE_STDLIB_H.
1320 (CHAR_MAX): New macro.
1321 (<locale.h>): New include.
1322 (<locale.h>): Include before <libintl.h>.
1323 (could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
1324 dev_may_have_duplicate_ino, same_special_file): New macros.
1325 (same_file): Use them.
1326
1327 * cmp.c (authorship_msgid): New var.
1328 (free_software_msgid): New decl.
1329 (error): Now has printf attribute.
1330 (try_help): Likewise.
1331 (long_options): Don't assume ASCII.
1332 (try_help): Now accepts operand arg.
1333 (main): Check for -1, not EOF, when calling getopt_long.
1334 Report --ignore-initial value when complaining about it.
1335 Output copyright and free software info with -v.
1336 Don't assume ASCII.
1337 Report last operand when one is missing.
1338 Report text of extra operand.
1339 Move block_read into cmpbuf.c.
1340
1341 * diff.c (authorship_msgid): New var.
1342 (quotesys.h): Include.
1343 (ck_atoi): Remove.
1344 (function_regexp_list, ignore_regexp_list): Now static.
1345 (binary_flag): Renamed from binary_I_O.
1346 (entire_new_file_flag, unidirectional_new_file_flag,
1347 print_file_same_flag): Now static.
1348 (numeric_arg): Renamed from ck_atoi.
1349 New argument specifying the argument type.
1350 (longopts, main): Don't assume ASCII.
1351 (longopts): Remove old aliases --file-label, --entire-new-file,
1352 --ascii, --print.
1353 (main): Check for -1, not EOF, when calling getopt_long.
1354 Use numeric_arg to report errors.
1355 Report error if -l specified but pagination is not supported.
1356 Report error if -S is specified twice with conflicting values.
1357 Have --version conform to the new GNU standards.
1358 Add new --from-file, --to-file, --inhibit-hun,-merge options.
1359 Make the horizon at least as large as the context.
1360 Add casts to pacify gcc -Wall.
1361 (try_help): Add operand arg.
1362 (option_help_msgid): Doc fix to match above.
1363 (usage): Indent option_help_msgid.
1364 (compare_files): Now takes struct comparison
1365 instead of two directory names and a depth.
1366 (NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE):
1367 New macros.
1368 (DIR_P): New macro.
1369 Report error if fflush does.
1370
1371 * cmpbuf.c (block_read): Moved here from cmp.c.
1372
1373 * cmpbuf.h (block_read): New decl.
1374
1375 * io.c (cmpbuf.h): Include.
1376 (slurp): Check for arithmetic overflow when computing buffer size.
1377
1378 * dir.c (diff_dirs): Check for recursive directory loop.
1379 Arg is now struct comparison const *.
1380 (dir_loop): New function
1381
1382 * analyze.c (no_discards): Remove.
1383 (inhibit): Remove.
1384 (shift_boundaries): Don't inhibit. If inhibit_hunk_merge is nonzero,
1385 don't merge hunks.
1386 (briefly_report): Now returns 2 if trouble, CHANGES otherwise.
1387 (diff_2_files): Now takes struct comparison. If briefly_report reports
1388 trouble, pass it on to caller.
1389
1390 * side.c (print_half_line): Add brackets to pacify GCC -Wall.
1391
1392 * sdiff.c (quotesys.h): Include.
1393 (DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove.
1394 (free_software_msgid, editor_program, not_found): New vars.
1395 (diffbin, edbin): Remove.
1396 (editor_program): Renamed from edbin.
1397 (edit, interact): Now take extra string arg.
1398 (exiterr, fatal, perror_fatal, try_help): Add noreturn attribute.
1399 (sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK):
1400 (sigprocmask): New macros, if !HAVE_SIGPROCMASK.
1401 (error): Now has printf attribute.
1402 (longopts, main): Don't assume ASCII.
1403 (try_help): New operand arg.
1404 (usage): Conform to new GNU standards.
1405 (main): Set static vars for editor and diff program.
1406 Compare getopt_long result to -1, not EOF.
1407 -v conforms to new GNU standard.
1408 Complain better about extra and missing operands.
1409 If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when
1410 the child munges its handlers it may somp on the parent.
1411 Pass rname to intract.
1412 Translate not-found message before forking.
1413 (give_help): Just output it all at once.
1414 (edit): New args lname, lline, rname, rline.
1415 (edit): New command 'd'.
1416 (interact): New args lname, rname.
1417
1418 * util.c (quotesys.h): Include.
1419 (PR_PROGRAM): New macro.
1420 (pfatal_with_name): Abort if error returns.
1421 (fatal): Likewise.
1422 (print_message_queue): Free message chain after printing.
1423 (currently_recursive): Renamed from current_depth, and now a boolean.
1424 (begin_output): Report error if fflush does.
1425 Avoid stdio and gettext in child.
1426
1427 * diff3.c (quotesys.h): Include.
1428 (free_software_msgid): New decl.
1429 (RANGE_START, RANGE_END): Renamed from START and END.
1430 (fatal, perror_with_exit, try_help): Add noreturn attribute.
1431 (error): Add printf attribute.
1432 (diff_program): Now a ptr, not an array.
1433 Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM.
1434 (longopts, main): Don't assume ASCII.
1435 (main): Use DIFF environment var to specify name of diff program.
1436 Compare getopt_long result to -1, not EOF.
1437 -v now reports version according to new GNU standard.
1438 Report spelling of extra operand, or last operand before missing one.
1439 (try_help): Now takes operand arg.
1440 (option_help_ms): Fix typo: missing comma.
1441 (usage): Update as per current GNU standards.
1442 (environ): Remove decl.
1443 (read_diff): Invoke diff with --inhibit-hunk-merge.
1444 Translate `not found' message before forking.
1445 Quote name of diff program.
1446 Pass horizon lines.
1447 `memory exhausted' -> `Memory exhausted'
1448
1449 * pc/makefile (%.exe): Remove.
1450 (pc-clean): Remove *.exe
1451 * pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
1452 When editing mkinstalldirs rule, look for exec_prefix and prefix.
1453 Add .exe when installing files.
1454 * pc/emx/config.h (same_file): Add.
1455 * pc/config.h (same_file): Remove.
1456 * pc/djgpp/config.h: Adjust to latest patch from eliz.
1457 * pc/djgpp/makefile.sed: Don't alter PROGRAMS.
1458 * pc/pc.c: Update FSF address.
1459 (quote_system_arg): Renamed from system_quote_arg.
1460
1461 * README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug.
1462
1463 * getmsgids: Add copyright date and update FSF address.
1464
1465 * diff.texi: Document recent changes.
1466 The patch doc still corresponds to patch 2.2, unfortunately.
1467 Update GNU bug reporting address. Omit Larry Wall's address;
1468 it's obsolete and he's busy with perl.
1469
1470 * context.c: Fix spacing.
1471
1472 * NEWS: Mention --from-file=FILE, --to-file=FILE, ed.
1473
1474 * acconfig.h, freesoft.c, message/de.po, message/en_UK.po,
1475 message/es.po, message/fr.po, message/pl.po, message/sv.po:
1476 New files.
1477
1478 * ed.c: Remove `#if 0'ed code.
1479
1480 * normal.c, waitpid.c: Update FSF address.
1481
14821998-03-15 Paul Eggert <[email protected]>
1483
1484 * quotesys.c: Renamed from quotearg.c.
1485
1486 * quotesys.h: Renamed from quotearg.h
1487 (__QUOTESYS_P): Renamed from __QUOTEARG_P.
1488
14891997-05-05 Paul Eggert <[email protected]>
1490
1491 * quotesys.c, quotesys.h: New file.
1492
1493Mon Nov 14 05:10:56 1994 Paul Eggert <[email protected]>
1494
1495 Add internationalization support.
1496 Several messages have been changed slightly,
1497 to make them more consistent and easier to translate.
1498 All strings that are messages are passed through gettext once before
1499 being used, so that they can be localized.
1500 Each function and macro whose first parameter is a gettext msgid
1501 has had its first parameter's name changed so it ends in `msgid'.
1502 All arrays of msgids have had their names changed to end in `msgid'.
1503 `getmsgids' uses this to determine which strings are msgids.
1504
1505 * pc/COPYING, pc/INSTALL, pc/config.h,
1506 pc/djgpp/config.h, pc/djgpp/makefile.sed,
1507 pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def,
1508 pc/emx/makefile.sed,
1509 pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support.
1510
1511 * getmsgids: New file.
1512
1513 * Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars.
1514 (version.c, version.texi, messages.po): New files.
1515 messages.po is built automatically from source files and `getmsgids'.
1516 (distfiles): Add them, pc/*, and getmsgids.
1517 (diff.info): Now depends on version.texi.
1518 (realclean): Clean messages.po, version.*.
1519 (dist): Just build $D.tar.gz.
1520 ($D.tar.gz): New file, takes over old `dist' function.
1521 Don't assume $(distfiles) are all in same directory.
1522
1523 * configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h.
1524 (AC_CHECK_LIB): Check for -lintl.
1525
1526 * analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as
1527 `if (A) message ("B") : message ("C")'; this is for getmsgids.
1528 (briefly_report, diff_2_files): For label, use file_label if set.
1529 * diff.c (compare_files): Likewise.
1530
1531 * system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H.
1532 (setlocale): Declare; use a stub if ! HAVE_LOCALE_H.
1533
1534 * cmp.c, diff.c, diff3.c, sdiff.c (main):
1535 Invoke setlocale first thing, to tell library we're internationalized.
1536 (option_help_msgid): New constant.
1537 (usage): Use it, so message is translated one option at a time.
1538 * sdiff (help_msgid, give_help): Likewise.
1539
1540 * cmp.c (sprintc): Renamed from `printc'.
1541 Now outputs to a buffer instead of stdout.
1542 (cmp): Use new sprintc; it's easier to internationalize.
1543
1544 * diff.c (main): -D FOO now outputs `/* ! FOO */ instead of
1545 `/* not FOO */'.
1546
1547 * sdiff.c (version_string): Fix decl typo: `const' was missing.
1548 (trapsigs): Ignore sigaction failure, to be compatible with `signal'.
1549
1550 * util.c (struct msg, message5, print_message_queue):
1551 Allocate just one block of memory to save a message.
1552
1553Wed Nov 9 17:42:44 1994 Paul Eggert <[email protected]>
1554
1555 * sdiff.c (trapsigs): Don't check signal return value, since it's
1556 bogus under djgpp.
1557
1558Mon Oct 31 07:27:27 1994 Paul Eggert <[email protected]>
1559
1560 * Makefile.in (srcs, diff_o, diff3_o, sdiff_o):
1561 New files quote.c, quote.o.
1562
1563 * diff.h (function_regexp, ignore_regexp): Replace lists of compiled
1564 regexps with these single compiled regexps. All users changed.
1565 (regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c.
1566 * diff.c (add_regexp): Build one big regexp instead of a regexp list.
1567 (summarize_regexp_list): New function.
1568 (regexp_list): Redesigned struct; moved here from diff.h.
1569 (function_regexp_list, ignore_regexp_list): Likewise, for vars.
1570
1571 * context.c (find_function): Simplify interface:
1572 don't return size of function line. All callers changed.
1573 (print_context_script, find_function): INT_MAX now denotes no
1574 previous match; this is simpler than `- file->prefix_lines - 1'.
1575
1576 * diff3.c (read_diff): Quote arguments with system_quote_arg.
1577 * sdiff.c (main): Use system_quote_arg to compute command.
1578 * diff.c (option_list): Quote options with system_quote_arg.
1579 * util.c (begin_output): Use system_quote_arg to compute command.
1580
1581 * util.c (pr_program): New var.
1582 (analyze_hunk): Fix off-by-1 line length bug.
1583 Match with one big regexp instead of a list of regexps.
1584 Use new `trivial_length' local instead of comparing first byte to `\n'.
1585 Help the compiler with linbuf local vars.
1586
1587 * system.h (system_quote_arg):
1588 New function; replaces SYSTEM_QUOTE_ARG macro.
1589
1590Sat Oct 15 20:09:12 1994 Paul Eggert <[email protected]>
1591
1592 * system.h (_tolower): Define if not already defined.
1593 * io.c (find_and_hash_each_line): Change tolower to _tolower; this
1594 speeds up diff -i considerably on some hosts (e.g. Solaris 2.3).
1595 * util.c (line_cmp): Likewise.
1596 * ifdef.c (groups_letter_value): Likewise.
1597
1598 * diff.h (ignore_some_line_changes): Remove. All users changed.
1599 * io.c (find_and_hash_each_line): Don't invoke line_cmp if the length
1600 differs and -i is in force. Don't assume ISSPACE ('\n') is nonzero.
1601
1602 * diff.h (xmalloc_exit_failure): New variable.
1603 All `main' programs set this variable at the start.
1604 xmalloc and xrealloc are now taken from GNU library.
1605 * cmp.c (main): Align buffer size to word size; some mallocs care.
1606 * io.c (slurp): Likewise.
1607 * diff.c (add_exclude): Can now assume xrealloc (0, ...) works.
1608 (add_regexp): Free storage on failure. Allocate storage all at one go.
1609 * system.h (malloc, realloc): Remove unused declarations.
1610 * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove.
1611 * sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics.
1612
1613 * io.c (ROL): Use sizeof to make it more generic.
1614
1615 * Makefile.in (common_o): New variable.
1616 Link error.o and xmalloc.o into all programs.
1617 (check): Depend on $(PROGRAMS).
1618
1619 * diff.h (error): Change to GNU library standard. All callers changed.
1620 * diff3.c (main): Use strerror (EISDIR) instead of "Is a directory".
1621 (fatal, perror_with_exit): Use `error'.
1622 * util.c (perror_with_name, fatal): Use GNU `error'.
1623 (error): Remove.
1624
1625Wed Oct 12 17:04:40 1994 David J. MacKenzie ([email protected])
1626
1627 * cmp.c (main): Set xmalloc_exit_failure.
1628
1629Sat Oct 1 05:24:19 1994 Paul Eggert <[email protected]>
1630
1631 * Version 2.7 released.
1632
1633 * configure.in (AC_HEADER_SYS_WAIT): Add.
1634 (AC_CHECK_HEADERS): Remove sys/wait.h.
1635 (AC_CHECK_FUNCS): Add tmpnam.
1636 * system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme
1637 now that HAVE_SYS_WAIT_H is not set on hosts
1638 that are incompatible with Posix applications.
1639
1640 * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr.
1641 * sdiff.c (expand_name): Likewise.
1642 (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting.
1643 (exists, letters): Omit if HAVE_TMPNAM.
1644
1645 * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero,
1646 adjust it to a more reasonable value.
1647
1648Sat Sep 24 20:36:40 1994 Paul Eggert <[email protected]>
1649
1650 * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm.
1651 (private_tempnam): Specialize for sdiff to avoid portability problems.
1652
1653Thu Sep 22 16:47:00 1994 Paul Eggert <[email protected]>
1654
1655 * configure.in (AC_ARG_PROGRAM): Added.
1656 (AC_OUTPUT): Add [date > stamp-h].
1657
1658 * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS,
1659 NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables.
1660 (check, stamp-h.in, cmp.o, util.o): New targets.
1661 (edit_program_name): New variable; replaces old binprefix method.
1662 (install, uninstall): Use it.
1663 (binprefix): Removed.
1664 (distfiles): Add stamp-h.in.
1665 (clean): Clean stamp-h.
1666 (config.hin, config.h): Use time stamp files.
1667 (cmp_o): Add $(LIBOBJS).
1668 (install): Install info files from srcdir if they're not in `.'.
1669
1670 * cmp.c, io.c (word): Don't define if already defined.
1671
1672 * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin.
1673 Use NULL_DEVICE instead of "/dev/null".
1674 (cmp): Use %lu instead of %ld when it is more likely to be right.
1675
1676 * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in,
1677 util.c.
1678
1679 * diff3.c (main): Give proper diagnostic if too many labels were given.
1680 (read_diff): Use SYSTEM_QUOTE_ARG.
1681
1682 * system.h: <string.h>: Include if HAVE_STRING_H, too.
1683 <ctype.h>: Include here. All includers changed.
1684 (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that
1685 work around common <ctype.h> problems.
1686 (O_BINARY): Remove.
1687 (SYSTEM_QUOTE_ARG): New macros.
1688
1689 * diff.c: Add comment.
1690
1691 * util.c (PR_PROGRAM): Moved here from diff.h.
1692 (begin_output): Use SYSTEM_QUOTE_ARG.
1693
1694 * io.c (read_files): Set mode to binary before returning 1.
1695
1696 * sdiff.c (TMPDIR_ENV): New macro.
1697 (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency.
1698 (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype
1699 namespace contamination.
1700 (main): Use SYSTEM_QUOTE_ARG.
1701 (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir.
1702
1703Tue Sep 13 18:46:43 1994 Paul Eggert <[email protected]>
1704
1705 * configure.in (AC_FUNC_MEMCHR): Remove. Autoconf didn't adopt this,
1706 since we need not worry about an old experimental library
1707 where memchr didn't work.
1708 (AC_FUNC_MEMCMP): Not needed, since we only test for equality.
1709 (AC_REPLACE_FUNCS): Add test for memchr.
1710 (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached.
1711 (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts.
1712
1713 * system.h (memcmp): Define in terms of bcmp.
1714 Use HAVE_MEMCHR to test for all mem* routines.
1715
1716 * Makefile.in (srcs): Remove memcmp.c.
1717 We use bcmp if memcmp doesn't work, since we only test for equality.
1718
1719Mon Sep 12 15:52:22 1994 Paul Eggert <[email protected]>
1720
1721 * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin.
1722 (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2.
1723 (AC_CHECK_HEADERS): Remove now-redundant check for <string.h>.
1724 (AC_CHECK_FUNCS): Check for strchr.
1725 (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose
1726 macros when suitable.
1727 * memcmp.c: New file.
1728 * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix):
1729 Default to autoconf-specified strings.
1730 (COMPILE): Use the defaults.
1731 (srcs): Add memcmp.c.
1732 (distfiles): Rename config.h.in->config.hin, install.sh->install-sh.
1733 (Makefile, config.h, config.hin, config.status): Rework for
1734 compatibility with Autoconf 2.
1735 * io.c (binary_file_p): Assume non-broken memchr.
1736 * memchr.c: Assume compiler understands void *; otherwise
1737 we don't match GCC's internal declaration of memchr.
1738 * system.h: Use more modern autoconf approach to standard C headers.