e64960e300b1c47d560418f21ada16b14be59a26
[gnulib.git] / lib / ChangeLog
1 2002-12-03  Jim Meyering  <jim@meyering.net>
2
3         * safe-read.c (IS_EINTR): Define.
4         (safe_read): Use IS_EINTR in place of in-function cpp directives.
5
6 2002-12-02  Bruno Haible  <bruno@clisp.org>
7
8         * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
9         Define, taken from safe-read.c.
10         (INT_MAX): Provide fallback.
11         (safe_write): Rewrite to iterate IFF the write fails with EINTR.
12         * safe-write.h (SAFE_WRITE_ERROR): Define.
13
14         * safe-read.c (EINTR): Remove definition.
15         (safe_read): Don't use EINTR if it is absent.
16
17 2002-12-02  Jim Meyering  <jim@meyering.net>
18
19         * safe-read.c (EINTR): Define.
20         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
21         (INT_MAX): Provide fallback.
22         (safe_read): Rewrite to iterate IFF the read fails with EINTR.
23
24         * safe-read.h (SAFE_READ_ERROR): Define.
25
26 2002-12-01  Jim Meyering  <jim@meyering.net>
27
28         * safe-read.c: (safe_read): Also exit the loop when read returns zero.
29         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
30
31 2002-11-27  Paul Eggert  <eggert@twinsun.com>
32
33         * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
34         hash_rehash): Replace `if (limit <= value) abort ();' with
35         `if (! (value < limit)) abort ();', for readability.
36
37 2002-11-26    <karl@gnu.org>
38
39         * strdup.c: copy from libc again, with jim's ok.
40         * .cppi-disable: re-add strdup.c
41
42 2002-11-25    <karl@gnu.org>
43
44         * strtoll.c: copy from libc, meaning we now #include <strtol.c>
45         instead of "strtol.c".
46
47 2002-11-25  Jim Meyering  <jim@meyering.net>
48
49         * mktime.c: Sync from libc, now that it has the latest fix.
50
51 2002-11-24    <karl@gnu.org>
52
53         * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
54         regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
55
56 2002-11-24  Jim Meyering  <jim@meyering.net>
57
58         Update from coreutils:
59
60         * mktime.c: Merge in changes from libc.
61
62         Avoid a link-time failure on some Linux systems.
63         * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
64         (__mon_yday): Declare with the STATIC attribute.
65         (__mktime_internal): Likewise.
66         Based on a report from Greg Schafer.
67
68 2002-11-23  Jim Meyering  <jim@meyering.net>
69
70         * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
71         Use `unsigned', not `int', as type of index.
72
73         * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
74
75         * fsusage.c: Remove unneeded parentheses around operands of `defined'.
76
77 2002-11-22  Paul Eggert  <eggert@twinsun.com>
78
79         * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
80         hint that one should use `if (! x) abort ();' rather than `assert
81         (x);', and anyway it's one less thing to worry about configuring.
82         (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
83         hash_rehash, hash_insert): Use abort rather than assert.
84
85 2002-11-22  Paul Eggert  <eggert@twinsun.com>
86
87         * quotearg.h: Allow multiple inclusion by surrounding with
88         "#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
89         so that we can be included first.
90         (PARAMS): Remove; we now assume C89 or later.  All uses removed.
91         * quotearg.c: Include quotearg.h immediately after config.h.
92         No need to include stddef.h or sys/types.h any more.
93         Surround local include files with "", not "<>".
94         Assume HAVE_LIMITS_H unconditionally, as we assume C89.
95         Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
96         HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
97         (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
98         (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
99         (ISPRINT): Remove; no longer needed now that we assume C89.
100
101         (clone_quoting_options, quotearg_buffer, quotearg_n_options):
102         Preserve errno.
103
104         (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
105         quotearg_char): Use SIZE_MAX rather than
106         (size_t) -1 when we are talking about "infinity".
107
108         (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
109
110 2002-11-22  Bruno Haible  <bruno@clisp.org>
111
112         * safe-read.h: Assume C89. Add comments.
113         (safe_read): Change return type to size_t.
114         * safe-read.c (safe_read): Change return type to size_t. Handle byte
115         counts > SSIZE_MAX correctly.
116         * safe-write.h: New file.
117         * safe-write.c: New file.
118         * full-read.h: New file.
119         * full-read.c: New file.
120         * full-write.h: Assume C89. Add comments.
121         * full-write.c: Include safe-write.h.
122         (full_write): Rewritten to use safe_write.
123         Suggested by Jim Meyering and Paul Eggert.
124
125 2002-11-21  Bruno Haible  <bruno@clisp.org>
126
127         Remove case insensitive option matching.
128         * argmatch.h (argcasematch): Remove declaration.
129         (ARGCASEMATCH): Remove macro.
130         (__xargmatch_internal): Remove case_sensitive argument.
131         (XARGMATCH): Update.
132         (XARGCASEMATCH): Remove macro.
133         * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
134         case_sensitive argument.
135         (argcasematch): Remove function.
136         (__xargmatch_internal): Remove case_sensitive argument.
137         (main): Use XARGMATCH instead of XARGCASEMATCH.
138
139         * xmalloc.c: Change compile-time error message. Add comment about
140         required autoconf version.
141
142 2002-11-21  Jim Meyering  <jim@meyering.net>
143
144         * strdup.c (strdup): Tweak comment and initial #if/#include.
145
146         Merge in changes from the coreutils.
147
148         2002-09-25  Paul Eggert  <eggert@twinsun.com>
149         * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
150         (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
151         (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
152         int.  Work more efficiently if X is the same width as uintmax_t.
153         Do not compare X to -1, to avoid bogus compiler warning.
154         (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
155         Don't assume that f_frsize and f_bsize are the same type.
156
157         * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
158         on FreeBSD.
159
160         * makepath.c (make_path): Restore umask *before* creating the final
161         component.
162         (make_path): Minor reformatting.
163
164         * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
165         and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
166
167         * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
168         ones.  At least on GNU/Linux systems, `auto' means something else.
169         From Michael Stone.
170
171 2002-11-20  Paul Eggert  <eggert@twinsun.com>
172
173         Merge argmatch cleanups from Bison.  Assume C89.
174
175         * argmatch.c: Include config.h here, not in argmatch.h.
176         Include stdlib.h, for EXIT_FAILURE.
177         Always include <string.h>, since we assume C89.
178         (EXIT_FAILURE): Remove pre-C89 bug workaround.
179         * argmatch.h: Do not include <config.h> or <sys/types.h>.
180         Include <stddef.h> instead, since it's all we need for size_t.
181         (PARAMS): Remove.  All uses removed.
182         (ARRAY_CARDINALITY): Do not bother to #undef.
183         (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
184         ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
185         Remove unnecessary parentheses.
186         (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
187         Insert necessary parentheses.
188         (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
189         (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
190
191 2002-11-19  Bruno Haible  <bruno@clisp.org>
192
193         * mbswidth.c: Include mbswidth.h right at the beginning.
194         * mbswidth.h: Include <stddef.h>, for size_t.
195
196         * mbswidth.h (PARAMS): Remove macro.
197         (mbswidth, mbsnwidth): Use ANSI C function declarations.
198         * mbswidth.c (mbswidth, mbsnwidth): Likewise.
199
200         * gcd.h (PARAMS): Remove macro.
201         (gcd): Use ANSI C function declarations.
202         * gcd.c (gcd): Likewise.
203
204 2002-11-15  Bruno Haible  <bruno@clisp.org>
205
206         * strcspn.c: Include <stddef.h>.
207         (strcspn): Use ANSI C function declaration. Change return type to
208         size_t. Use NULL.
209         * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
210         (strpbrk): Use NULL.
211         * strpbrk.h (PARAMS): Remove macro.
212         (strpbrk): Use ANSI C function declaration.
213         * strstr.c: Don't include <sys/types.h>.
214         * strstr.h (PARAMS): Remove macro.
215         (strstr): Use ANSI C function declarations.
216
217 2002-11-06  Bruno Haible  <bruno@clisp.org>
218
219         * gcd.h (gcd): Change argument type to 'unsigned long'.
220         * gcd.c (gcd): Likewise.
221
222 2002-11-05  Bruno Haible  <bruno@clisp.org>
223
224         * gcd.h: New file, from gettext-0.11.5.
225         * gcd.c: New file, from gettext-0.11.5.
226
227 2002-11-05  Bruno Haible  <bruno@clisp.org>
228
229         * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
230         * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
231         * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
232         * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
233
234         * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
235         * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
236
237         * closeout.c: Include gettext.h instead of <libintl.h>.
238         * human.c: Include gettext.h instead of <libintl.h>.
239         * quotearg.c: Include gettext.h instead of <libintl.h>.
240         * rpmatch.c: Include gettext.h instead of <libintl.h>.
241         * unicodeio.c: Include gettext.h instead of <libintl.h>.
242         * userspec.c: Include gettext.h instead of <libintl.h>.
243         * version-etc.c: Include gettext.h instead of <libintl.h>.
244         * xmalloc.c: Include gettext.h instead of <libintl.h>.
245         (textdomain): Remove definition.
246         * xmemcoll.c: Include gettext.h instead of <libintl.h>.
247
248         * long-options.c: Remove include of <libintl.h> and definition of _.
249         * same.c: Remove include of <libintl.h> and definition of _.
250
251 2002-11-04  Bruno Haible  <bruno@clisp.org>
252
253         * stpcpy.h: New file, from GNU gettext-0.11.5.
254         * strcase.h: New file, from GNU gettext-0.11.5.
255         * strpbrk.h: New file, from GNU gettext-0.11.5.
256         * strstr.h: New file, from GNU gettext-0.11.5.
257         * xgetcwd.h: New file, from GNU gettext-0.11.5.
258
259 2002-05-09  Bruno Haible  <bruno@clisp.org>
260
261         * config.charset: Update for newest glibc. Add canonical names
262         ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
263
264 2002-05-09  Bruno Haible  <bruno@clisp.org>
265
266         * localcharset.c (get_charset_aliases): Add more Windows specific
267         aliases.
268
269 2002-05-08  Owen Taylor  <otaylor@redhat.com>
270
271         * config.charset: A few additions for Solaris.
272
273 2001-12-05  Bruno Haible  <bruno@clisp.org>
274
275         * localcharset.c (locale_charset): Don't return an empty string.
276
277 2001-10-23  Bruno Haible  <haible@clisp.cons.org>
278
279         * config.charset: msdos in uk_UA uses CP1125.
280
281 2001-08-05  Bruno Haible  <haible@clisp.cons.org>
282
283         Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
284         * localcharset.c (locale_charset): Declare as extern "C".
285
286 2002-02-15  Bruno Haible  <bruno@clisp.org>
287
288         * config.charset [msdosdjgpp]: For Russian, use CP866.
289
290 2002-02-11  Bruno Haible  <bruno@clisp.org>
291
292         * config.charset: Add support for NetBSD.
293
294 2002-09-25    <karl@gnu.org>
295
296         * strdup.c: copy from libc/string (via ../config/srclist*).
297         * getopt*: copy from libc/posix.
298         * gettext.h: copy from gettext.
299         * .cppi-disable: add strdup.c, gettext.h.
300
301 2002-07-01  Jim Meyering  <meyering@lucent.com>
302
303         * c-stack.c: Include sys/time.h.
304         From Volker Borchert.
305
306 2002-06-11  Paul Eggert  <eggert@twinsun.com>
307
308         * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
309         New macro.  Use it uniformly instead of
310         (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
311         It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
312         reported by Vin Shelton.
313
314 2002-06-22  Jim Meyering  <meyering@lucent.com>
315
316         * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
317         redefinition due to Solaris5.6's definition in /usr/include/sys/euc.h.
318
319 2002-06-22  Paul Eggert  <eggert@twinsun.com>
320
321         * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
322         Do not assume SA_SIGINFO behavior.
323         Bug reported by Jim Meyering on NetBSD 1.5.2.
324
325 2002-06-22  Jim Meyering  <meyering@lucent.com>
326
327         * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
328
329         * exitfail.c, exitfail.h: Likewise.
330         * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
331
332         * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
333         of fnmatch.h.
334         (EXTRA_DIST): Add fnmatch_loop.c.
335         (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
336
337         * fnmatch_loop.c: New file, from diffutils-2.8.2.
338         * fnmatch.c: Update from diffutils-2.8.2.
339         * fnmatch_.h: New file.  From diffutils-2.8.2.
340         * fnmatch.h: Remove file.
341
342 2002-06-18  Paul Eggert  <eggert@twinsun.com>
343
344         * file-type.h: Report an error if neither S_ISREG nor
345         S_IFREG is defined, instead of using a test specific to glibc
346         2.2.  This should be safe, since POSIX requires S_ISREG and
347         Unix Version 7 had S_IFREG.  We don't need to check for
348         <sys/types.h> since we don't use any symbols that it defines.
349
350 2002-06-15  Jim Meyering  <meyering@lucent.com>
351
352         * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
353         For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
354         have been included before this file.
355
356 2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
357
358         * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
359         so that each temporary file name is unique and valid in the first
360         8 characters, for operation under DOS.
361
362 2002-06-15  Jim Meyering  <meyering@lucent.com>
363
364         Work even with DJGPP 2.03, which lacks support for symlinks.
365         From Richard Dawe.
366         * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
367         is defined.
368         * lchown.c (S_ISLNK): Likewise.
369
370 2002-06-14  Jim Meyering  <meyering@lucent.com>
371
372         * file-type.h: Use the version from diffutils-2.8.2.
373         * file-type.c: Likewise.
374
375 2002-05-27  Jim Meyering  <meyering@lucent.com>
376
377         Fix a problem seen only on nonconforming systems whereby ls.c's
378         use of localtime, and then of gettimeofday would cause trouble:
379         the localtime call used to initialize rpl_gettimeofday's save
380         mechanism would clobber ls's current local time information so
381         that in any long listing the first file would always be listed
382         with date 1970-01-01.  Analysis by Volker Borchert.
383
384         * gettimeofday.c (localtime): Undefine.
385         (rpl_localtime): New function.
386
387 2002-05-22  Jim Meyering  <meyering@lucent.com>
388
389         * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
390         * file-type.h: New file.
391         * file-type.c (file_type): New file/function.  Extracted from diffutils.
392
393 2002-04-29  Paul Eggert  <eggert@twinsun.com>
394
395         * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
396
397 2002-04-28  Paul Eggert  <eggert@twinsun.com>
398
399         * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
400         depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
401         of 127, since 64 is the largest conceivable number for ancient
402         nonstandard hosts.
403         * sig2str.c: Do not include <sys/wait.h>; no longer needed.
404
405 2002-04-28  Jim Meyering  <meyering@lucent.com>
406
407         * sig2str.c (WTERMSIG): Remove definition (unused).
408
409 2002-04-28  Paul Eggert  <eggert@twinsun.com>
410
411         * sig2str.h, sig2str.c: New files.
412         * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
413
414 2002-04-24  Jim Meyering  <meyering@lucent.com>
415
416         * gettext.h: New file, from Gettext.
417         * Makefile.am (INCLUDES): Remove -I../intl.
418         (libfetish_a_SOURCES): Add gettext.h.
419
420 2002-04-16  Jim Meyering  <meyering@lucent.com>
421
422         * readutmp.h (UT_TYPE): Remove definition (now in who.c).
423         (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
424         (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
425
426 2002-04-12  Jim Meyering  <meyering@lucent.com>
427
428         * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
429
430 2002-03-10  Jim Meyering  <meyering@lucent.com>
431
432         * makepath.c (make_path): Remove a comma from a diagnostic.
433         Suggestion from Santiago Vila.
434
435 2002-03-08  Jim Meyering  <meyering@lucent.com>
436
437         * rename.c: Mention that this wrapper is needed also on
438         mips-dec-ultrix4.4 systems.
439
440 2002-03-02  Jim Meyering  <meyering@lucent.com>
441
442         * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
443         not HAVE_CLOCK_SETTIME.
444
445 2002-02-27  Paul Eggert  <eggert@twinsun.com>
446
447         * nanosleep.h: Rename to....
448         * timespec.h: New name for nanosleep.h.  All uses changed.
449
450         * gettime.c: New file.
451         * settime.c: New file.
452         * stime.c: Remove.
453
454         * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
455         timespec.h.  Remove nanosleep.h.
456
457 2002-02-25  Paul Eggert  <eggert@twinsun.com>
458
459         * acl.c, acl.h: New files.
460         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
461
462 2002-02-24  Jim Meyering  <meyering@lucent.com>
463
464         * strnlen.c (strnlen): Define-away/undef so that an inconsistent
465         prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
466         cause trouble.  Reported by Nelson Beebe.
467
468 2002-02-23  Paul Eggert  <eggert@twinsun.com>
469
470         * path-concat.c (xpath_concat): Reorder code to pacify
471         compilers that don't know that xalloc_die never returns.
472
473 2002-02-20  Jim Meyering  <meyering@lucent.com>
474
475         * getdate.c: Regenerate using bison-1.33.
476
477 2002-02-15  Paul Eggert  <eggert@twinsun.com>
478
479         * posixver.c, posixver.h: New files.
480         * Makefile.am (libfetish_a_SOURCES): Add them.
481
482 2002-02-02  Paul Eggert  <eggert@twinsun.com>
483             Bruno Haible  <bruno@clisp.org>
484
485         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
486         (fwrite_success_callback): New declaration.
487         * unicodeio.c (unicode_to_mb): New function, extracted from
488         print_unicode_char. Call failure callback instead of error.
489         (fwrite_success_callback): New function.
490         (exit_failure_callback): New function.
491         (fallback_failure_callback): New function.
492         (print_unicode_char): Call unicode_to_mb.
493
494 2002-01-26  Jim Meyering  <meyering@lucent.com>
495
496         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
497
498 2002-01-22  Jim Meyering  <meyering@lucent.com>
499
500         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
501         Otherwise, some versions of automake would omit the rule that makes
502         Makefile from Makefile.in.
503
504 2001-01-21  Paul Eggert  <eggert@twinsun.com>
505
506         * xmemcoll.h, xmemcoll.c: New files.
507         * Makefile.am (libfetish_a_SOURCES): Add them.
508         * memcoll.c: Include errno.h, and declare errno if not defined.
509         (memcoll): Set errno to zero if there is no error.
510
511         * quotearg.c (quotearg_buffer_restyled):
512         Fix bug with quoting buffers containing NUL when backslashing escapes.
513         This bug was exposed by the other changes in this patch.
514         (quotearg_n_options): New arg ARGSIZE.
515         All callers changed.
516         (quoting_options_from_style): New function.
517         (quotearg_n_style): Use it.
518         (quotearg_n_style_mem): New function.
519
520         * quotearg.h (quotearg_n_style_mem): New function.
521
522 2002-01-16  Jim Meyering  <meyering@lucent.com>
523
524         * getdate.y: Add three semicolons, each just before a closing brace.
525         Bison (as of version 1.31) no longer papers over that mistake.
526
527 2002-02-14  Paul Eggert  <eggert@twinsun.com>
528
529         * backupfile.c (ISDIGIT): Comment fix.
530         * getdate.y (ISDIGIT): Likewise.
531         * posixtm.c (ISDIGIT, year): Likewise.
532         * strverscmp.c (ISDIGIT): Likewise.
533         * userspec.c (ISDIGIT): Likewise.
534
535 2002-01-05  Jim Meyering  <meyering@lucent.com>
536
537         * version-etc.c (version_etc_copyright): Update copyright year.
538
539 2001-01-19  Paul Eggert  <eggert@twinsun.com>
540
541         * closeout.c (close_stdout_status): If ferror (stdout), do
542         not silently exit merely because the output buffer happens to
543         have nothing pending.
544
545 2001-12-18  Paul Eggert  <eggert@twinsun.com>
546
547         See the big note in ../ChangeLog.
548         * human.c (suffixes): Prefer K to k for 1024.
549         (generate_suffix_backwards): New function.
550         (human_readable_inexact): Use it.
551         * xstrtol.c (__xstrtol): If there is no number but there
552         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
553         Accept 'K' as well as 'k'.
554
555 2001-12-15  Jim Meyering  <meyering@lucent.com>
556
557         * regex.h (__restrict_arr): Update from libc.
558
559         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
560         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
561         (STREQ): Define.
562
563 2001-12-10  Jim Meyering  <meyering@lucent.com>
564
565         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
566         Instead, include "xalloc.h".
567         (initbuffer): Don't cast xmalloc return value to char*.
568         (readline): Reword comment.
569         Don't cast xrealloc return value to char*
570         Return NULL, not 0.
571
572 2001-12-09  Jim Meyering  <meyering@lucent.com>
573
574         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
575         `signed and unsigned type in conditional expression'.
576         * posixtm.c (posix_time_parse): Likewise.
577
578         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
579
580         * readtokens.c (readtoken): Declare an index to be of type unsigned
581         to avoid a pedantic warning.
582
583         * getstr.c: Don't include assert.h.
584         (getstr): Remove warning-evoking assertions.
585         Return -1 if offset parameter is out of bounds.
586         Change the type of a local from int to size_t.
587
588         * strftime.c (my_strftime_localtime_r): Include this function
589         definition in the `#if ! HAVE_TM_GMTOFF' block.
590
591         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
592         Include xalloc.h instead.
593
594 2001-12-02  Jim Meyering  <meyering@lucent.com>
595
596         * tempname.c: Don't declare getenv, thus reverting the change of
597         2001-11-18.  It's no longer necessary, now that stdlib.h is always
598         included.
599
600         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
601         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
602
603 2001-11-30  Akim Demaille  <akim@epita.fr>
604
605         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
606         before being defined.
607
608 2001-11-27  Paul Eggert  <eggert@twinsun.com>
609
610         * quotearg.h (quotearg_n, quotearg_n_style):
611         First arg is int, not unsigned.
612         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
613         (SIZE_MAX, UINT_MAX): New macros.
614         (quotearg_n_options): Abort if N is negative.
615         Avoid overflow check on hosts where size_t is 64 bits and int
616         is 32 bits, as overflow is impossible there.
617         Fix off-by-one typo that caused unnecessary reallocation.
618
619 2001-11-27  Jim Meyering  <meyering@lucent.com>
620
621         * tempname.c: Merge with version from libc.
622         * regex.c: Likewise.
623
624         * tempname.c: Include stdlib.h unconditionally.  On some old systems
625         for which STDC_HEADERS is 0, it was not included, resulting in a
626         warning about an integer-to-pointer conversion problem with getenv.
627         Reported by Volker Borchert.
628
629 2001-11-26  Jim Meyering  <meyering@lucent.com>
630
631         * gtod.h: Remove file.
632         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
633         * gettimeofday.c: Don't include gtod.h.
634         (GTOD_init): Remove function.
635         (rpl_gettimeofday): Do its job here instead, rather than aborting.
636         Suggestion from Volker Borchert.
637
638 2001-11-23  Jim Meyering  <meyering@lucent.com>
639
640         * hash.h (struct hash_table): Don't define here.  Merely declare it.
641         * hash.c (struct hash_table): Define it here instead.
642
643 2001-11-22  Jim Meyering  <meyering@lucent.com>
644
645         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
646
647 2001-11-18  Paul Eggert  <eggert@twinsun.com>
648
649         * tempname.c (TMP_MAX): Remove; no longer needed.
650         (TEMPORARIES): New macro.
651         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
652         removes an artificial limitation (e.g. HP-UX 10.20, where
653         TMP_MAX is 17576).
654
655 2001-11-18  Jim Meyering  <meyering@lucent.com>
656
657         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
658         on SunOS4.
659
660         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
661         files will be created before anything else.
662
663 2001-11-17  Jim Meyering  <meyering@lucent.com>
664
665         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
666         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
667         rather than group writable.  Patch by Juan F. Codagnone.
668
669         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
670         Instead, include "xalloc.h".
671
672         * mountlist.c: Include unlocked-io.h after all system headers.
673         Remove explicit declarations of xmalloc, xrealloc,
674         and xstrdup.  Instead, include "xalloc.h".
675
676         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
677         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
678         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
679
680         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
681         Reported by Padraig Brady.
682
683         * mkstemp.c: #undef mkstemp.
684         Include config.h.
685         (rpl_mkstemp): Rename from mkstemp.
686         Protoize.
687
688 2001-11-16  Jim Meyering  <meyering@lucent.com>
689
690         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
691         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
692         determine the amount of total physical memory, use pstat_getstatic.
693         HPUX-11 doesn't define _SC_PHYS_PAGES.
694         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
695         If sysconf couldn't be used to determine the amount of available
696         physical memory, use both pstat_getstatic and pstat_getdynamic.
697         Based on a patch from Bob Proulx.
698
699 2001-11-05  Jim Meyering  <meyering@lucent.com>
700
701         * xstat.in (slash_aware_lstat): Correct a misleading comment.
702
703 2001-11-03  Jim Meyering  <meyering@lucent.com>
704
705         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
706         in argmatch_to_argument call.
707
708         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
709         argument.
710
711         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
712         e.g., a fault due to an attempt to free a NULL pointer.
713
714 2001-11-01  Jim Meyering  <meyering@lucent.com>
715
716         * dirfd.c, dirfd.h: New files.
717         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
718
719         * hash.c (hash_print) [TESTING]: Clean up.
720
721 2001-10-22  Paul Eggert  <eggert@twinsun.com>
722
723         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
724         to avoid a warning if -Wall.
725
726 2001-10-21  Paul Eggert  <eggert@twinsun.com>
727
728         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
729
730 2001-10-21  Jim Meyering  <meyering@lucent.com>
731
732         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
733         this code would end up calling gettext even in packages built
734         with --disable-nls.
735         * getopt.c (_): Likewise.
736         * regex.c (_): Likewise.
737
738 2001-10-20  Paul Eggert  <eggert@twinsun.com>
739
740         * error.c (strerror_r): Do not declare unless !_LIBC.
741         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
742         Use strerror_r that is only a macro, even if it is not a function.
743         (strerror): Check for HAVE_DECL_STRERROR before declaring.
744         (private_strerror): Use prototypes, not old-style function definition.
745         (print_errno_message): New function.
746         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
747         char*-flavored one.
748         (error_tail, error, error_at_line): Use it.
749
750 2001-10-11  Jim Meyering  <meyering@lucent.com>
751
752         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
753         and quote_n (1, ... to avoid clobbering a buffer.
754
755 2001-10-05  Jim Meyering  <meyering@lucent.com>
756
757         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
758         * hash-pjw.c: New file (factored out of fileutils' remove.c).
759         * hash-pjw.h: New file.
760
761 2001-09-30  Jim Meyering  <meyering@lucent.com>
762
763         * mountlist.c [MOUNTED_GETFSSTAT]:
764         Include <sys/ucred.h>, for Apple Darwin.
765         Include sys/mount.h and sys/fs_types.h only if available.
766         (FS_TYPE): Define.
767         (read_filesystem_list): Use FS_TYPE.
768
769 2001-09-29  Paul Eggert  <eggert@twinsun.com>
770
771         * exclude.c (excluded_filename): 0 -> false, since it's
772         a boolean context.
773
774 2001-09-28  Paul Eggert  <eggert@twinsun.com>
775
776         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
777         #defines strtoimax.  Also treat the other strto* functions
778         like strtoimax.
779
780         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
781         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
782         (strtoimax, strtoumax): Do not declare if already defined as a macro.
783
784 2001-09-26  Jim Meyering  <meyering@lucent.com>
785
786         Most macros in unlocked-io.h had the wrong number of arguments.
787         * gen-uio: New script.
788         (USE_UNLOCKED_IO): Define to 1 if not already defined.
789         * unlocked-io.hin: Remove file.
790         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
791         rather than trying to embed it here.
792         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
793         Reported by Padraig Brady.
794
795 2001-09-25  Volker Borchert  <bt@teknon.de>
796
797         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
798
799 2001-09-23  Jim Meyering  <meyering@lucent.com>
800
801         * mountlist.c: Remove useless parentheses in #if directives.
802         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
803         the deprecated MOUNTED symbol is no longer defined in mntent.h.
804
805 2001-09-22  Jim Meyering  <meyering@lucent.com>
806
807         * localcharset.c: Update from latest gettext.
808         * config.charset: Likewise.
809
810 2001-09-20  Jim Meyering  <meyering@lucent.com>
811
812         * xstrtol.c (strtoimax): Guard declaration with
813         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
814         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
815         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
816         (strtoumax): Likewise, for completeness (it wasn't necessary).
817
818 2001-09-06  Paul Eggert  <eggert@twinsun.com>
819
820         * strtoimax.c (HAVE_LONG_LONG):
821         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
822         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
823         to work around bug in IBM C compiler.
824
825 2001-09-16  Jim Meyering  <meyering@lucent.com>
826
827         * mkdir.c: New file.
828
829 2001-09-04  Paul Eggert  <eggert@twinsun.com>
830
831         * xgetcwd.c: Revert some of the previous change; intead,
832         fix the HAVE_GETCWD_NULL code to behave more like the
833         !HAVE_GETCWD_NULL code used to.
834
835         Include "xalloc.h".
836         (xgetcwd): Do not return NULL when memory is exhausted; instead,
837         invoke xalloc_die.
838
839 2001-09-04  Paul Eggert  <eggert@twinsun.com>
840
841         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
842         Use ssize_t, not int, to store result of readlink.
843         Check for ssize_t overflow as well as size_t overflow,
844         as POSIX says the result of readlink is implementation-defined
845         when ssize_t overflows.
846         Remove unnecessary cast to char*.
847         Use free+malloc instead of realloc, as the storage doesn't need
848         to be preserved and it's clearer and can be more efficient that way.
849         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
850         * xreadlink.h (xreadlink): Update prototype.
851
852 2001-09-03  Paul Eggert  <eggert@twinsun.com>
853
854         * exclude.c (fnmatch_no_wildcards): Fix confusion between
855         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
856         spotted by Jim Meyering.
857
858 2001-09-03  Jim Meyering  <meyering@lucent.com>
859
860         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
861
862 2001-09-03  Paul Eggert  <eggert@twinsun.com>
863
864         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
865         like the HAVE_GETCWD_NULL code.
866         Include pathmax.h if not HAVE_GETCWD.
867         Do not include xalloc.h.
868         (INITIAL_BUFFER_SIZE): New symbol.
869         Do not use xmalloc / xrealloc, since the caller is responsible for
870         handling errors.  Preserve errno around `free' during failure.
871         Do not overrun buffer when using getwd.
872
873 2001-09-03  Paul Eggert  <eggert@twinsun.com>
874
875         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
876         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
877
878 2001-09-02  Jim Meyering  <meyering@lucent.com>
879
880         * error.c: Update from GNU libc.
881
882 2001-09-01  Jim Meyering  <meyering@lucent.com>
883
884         * xreadlink.c: New file.
885         * xreadlink.h: New file.
886         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
887
888         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
889         doesn't conflict with sparc-sun-solaris2.7's definition in
890         /usr/include/sys/int_types.h.
891
892         * exclude.c: Use `""', not `<>' to #include non-system header files.
893         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
894         and strncasecmp as r-values.  Unixware didn't have declarations.
895
896 2001-08-31  Jim Meyering  <meyering@lucent.com>
897
898         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
899         Use an initial, malloc'd, buffer of length 128 rather than
900         a statically allocated one of length 1024.
901
902 2001-08-30  Paul Eggert  <eggert@twinsun.com>
903
904         * xgetcwd.c: Don't include pathmax.h.
905         Include stdlib.h and unistd.h if available.
906         Include xalloc.h.
907         (xmalloc, xstrdup, free): Remove decls.
908         (xgetcwd): Don't assume sizes fit in unsigned.
909         Check for overflow when computing sizes.
910         Simplify reallocation code.
911
912 2001-08-28  Paul Eggert  <eggert@twinsun.com>
913
914         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
915
916         * strtoimax.c: Renamed from strtoxmax.c, removing the
917         old strtoimax.c.
918
919         Also, make the following further changes to make this file's
920         configuration more similar to that of strtol.c:
921         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
922         (strtoumax, uintmax_t, strtoull, strtol): Remove.
923         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
924         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
925         changed to signed values.
926
927         And make the following changes as well:
928         Fix copyright notice, as 1999 was missing.
929         (verify): New macro.
930         (strtoimax): Check sizes at compile-time, not run-time.
931         Prefer strtol to strtoll if both work.
932         (main): Remove; it was not that useful and was a pain to maintain.
933
934         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
935
936 2001-08-30  Paul Eggert  <eggert@twinsun.com>
937
938         * savedir.c (savedir): Remove size parameter, as POSIX says that
939         a directory's st_size can have an arbitrary value, so the old
940         usage could waste an arbitrary amount of memory.  All uses
941         changed.
942         * savedir.h: Update prototype.
943
944 2001-08-30  Paul Eggert  <eggert@twinsun.com>
945
946         * xstrtol.c (strtoimax): New decl.
947
948 2001-08-28  Paul Eggert  <eggert@twinsun.com>
949
950         * xstrtol.h: Add copyright notice.
951         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
952         LONGINT_INVALID_SUFFIX_CHAR.
953
954 2001-08-30  Paul Eggert  <eggert@twinsun.com>
955
956         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
957         tm to be declared.
958
959 2001-08-30  Paul Eggert  <eggert@twinsun.com>
960
961         * hash.c: Remove '2001' from copyright notice.
962
963 2001-08-30  Paul Eggert  <eggert@twinsun.com>
964
965         * full-write.h: New file.
966         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
967         * full-write.c: Correct credits, as cccp.c no longer
968         exists and anyway it was so heavily changed from the old cccp
969         code as to be unrecognizable.  Include full-write.h.
970         (full_write) Return size_t, with short writes meaning failure.
971         All callers changed.  This fixes a bug with large buffers
972         on 64-bit hosts.
973         * utime.c: Include full-write.h.
974
975 2001-08-30  Paul Eggert  <eggert@twinsun.com>
976
977         Merge 'exclude' changes from tar 1.13.22.
978         This fixes one or two unlikely storage allocation overflow bugs,
979         but doesn't change user-visible behavior otherwise.
980
981 2001-08-30  Paul Eggert  <eggert@twinsun.com>
982
983         * exclude.c (bool): Declare, perhaps by including stdbool.h.
984         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
985         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
986         Include if available.
987         (<xalloc.h>): Include
988         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
989         (verify): New macro.  Use it to verify that EXCLUDE macros do not
990         collide with FNM macros.
991         (struct patopts): New struct.
992         (struct exclude): Use it, as exclude patterns now come with options.
993         (new_exclude): Support above changes.
994         (new_exclude, add_exclude_file):
995         Initial size must now be a power of two to simplify overflow checking.
996         (free_exclude, fnmatch_no_wildcards): New function.
997         (excluded_filename): No longer requires options arg, as the options
998         are determined by add_exclude.  Now returns bool, not int.
999         (excluded_filename, add_exclude):
1000         Add support for the fancy new exclusion options.
1001         (add_exclude, add_exclude_file): Now takes int options arg.
1002         Check for arithmetic overflow when computing sizes.
1003         (add_exclude_file): xrealloc might modify errno, so don't
1004         realloc until after errno might be used.
1005
1006         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
1007         New macros.
1008         (free_exclude): New decl.
1009         (add_exclude, add_exclude_file): Now takes int options arg.
1010         (excluded_filename): No longer requires options arg, as the options
1011         are determined by add_exclude.  Now returns bool, not int.
1012
1013 2001-08-30  Paul Eggert  <eggert@twinsun.com>
1014
1015         * alloca.c (alloca): Arg is of type size_t, not unsigned.
1016
1017 2001-08-27  Jim Meyering  <meyering@lucent.com>
1018
1019         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
1020
1021         * version-etc.c (N_): Remove definition.
1022         Revert most of last change.
1023         Instead, simply don't mark the `Copyright...' string for translation.
1024         Based on advice from Paul Eggert.
1025
1026         * strtoxmax.c: Tweak comment.
1027
1028 2001-08-26  Jim Meyering  <meyering@lucent.com>
1029
1030         * version-etc.c (version_etc_copyright_fmt): Replace literal year
1031         of copyright with `%s' so translators don't get an untranslated
1032         message in 2002.
1033         (COPYRIGHT_YEAR): Define.
1034         (version_etc): Use fprintf rather than fputs.
1035         Suggestion from Ulrich Drepper.
1036
1037         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
1038
1039         * strtoll.c: New file, from GNU libc.
1040         * xstrtoimax.c: New file.
1041
1042         * xstrtol.h: Add xstrtoimax.
1043         * strtoumax.c: New file.  Simply include "strtoumax.c".
1044         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
1045
1046         * strtoumax.c: Factor to work both for unsigned and signed types, ...
1047         * strtoxmax.c: ... then renamed to this.
1048
1049 2001-08-13  Paul Eggert  <eggert@twinsun.com>
1050
1051         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
1052         Port to Solaris 8, where 'sed' requires a space after the 'r'
1053         command, and where sh dislikes "$/".  Clean up the spacing a bit.
1054         Redirect output to $tmp just once.
1055
1056 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
1057
1058         * addext.c (<errno.h>): Include.
1059         (errno): Declare if not defined.
1060         (addext): Work correctly when pathconf returns -1 and leaves
1061         errno alone because there is no limit.  Also, work even if
1062         pathconf returns a value greater than SIZE_MAX.
1063
1064 2001-08-12  Jim Meyering  <meyering@lucent.com>
1065
1066         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
1067         Simply `return getcwd (NULL, 0);'.
1068         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
1069         Use 1300 as initial value for length, not PATH_MAX.
1070
1071         * pathmax.h: Clean up cpp syntax.
1072
1073 2001-08-12  Jim Meyering  <meyering@lucent.com>
1074
1075         * gettimeofday.c: New file.
1076         * gtod.h: New file.
1077         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
1078
1079 2001-08-04  Jim Meyering  <meyering@lucent.com>
1080
1081         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
1082         to get in sync with glibc.
1083
1084 2001-08-03  Paul Eggert  <eggert@twinsun.com>
1085
1086         The following changes are from gettext 0.10.39 as maintained by
1087         Bruno Haible.
1088
1089         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
1090         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
1091         with inverted sense.  All uses changed.
1092
1093         * mbswidth.c: Don't include <limits.h>.
1094         Include <stdlib.h> and <string.h> unconditionally.
1095         (iswcntrl, mbsinit, ISCNTRL): New macros.
1096         (mbsnwidth): Use K&R style function declarations.
1097         Don't bother checking for MB_LEN_MAX == 1, since the compiler
1098         can optimize it when MB_CUR_MAX == 1.
1099         The width of control characters is zero, not 1.
1100
1101 2001-07-15  Jim Meyering  <meyering@lucent.com>
1102
1103         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
1104         (BUILT_SOURCES): Add unlocked-io.h.
1105         (io_functions): Define.
1106         (unlocked-io.h): New rule.
1107         (DISTCLEANFILES): Add unlocked-io.h.
1108         (all-local): Depend on unlocked-io.h, to ensure it is created.
1109
1110         * unlocked-io.hin: New file
1111
1112         * regex.c: Update from glibc.
1113
1114 2001-07-05  Jim Meyering  <meyering@lucent.com>
1115
1116         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
1117         recommendation.
1118         (libfetish_a_SOURCES): Put all .h files here instead.
1119         Remove a thus-exposed (better checks in automake) duplicate and
1120         two unnecessary .h files.
1121
1122 2001-06-11  Jim Meyering  <meyering@lucent.com>
1123
1124         * regex.c: Update from GNU libc.
1125
1126 2001-05-27  Jim Meyering  <meyering@lucent.com>
1127
1128         * readutmp.h (UT_TYPE): Define.
1129
1130 2001-05-24  Jim Meyering  <meyering@lucent.com>
1131
1132         * argmatch.c: Include "quote.h".
1133         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
1134         quote function.  Reported by Göran Uddeborg.
1135
1136 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
1137
1138         * dirname.c (dir_name): Compute append_dot using path, not newpath
1139         which is not yet declared.
1140
1141 2001-05-11  Paul Eggert  <eggert@twinsun.com>
1142
1143         * Makefile.am (libfetish_a_SOURCES):
1144         Add strftime.c, since we now compile it on all hosts.
1145
1146         * strftime.c (my_strftime):
1147         Define to nstrftime if emacs, but only if my_strftime is not defined.
1148         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
1149         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
1150         Add one more extra argument: a nanoseconds value.
1151         All uses changed.
1152         (ns): New macro.
1153         (my_strftime function): Add %N format.
1154         (emacs_strftimeu): Renamed from emacs_strftime,
1155         with extra ut argument.
1156
1157 2001-05-11  Paul Eggert  <eggert@twinsun.com>
1158
1159         dirname code cleanup.  base_name now behaves more compatibly
1160         with POSIX basename when given file names that have trailing
1161         slashes, and similarly for dir_name.  Add new primitives
1162         base_len and dir_len.  Put the directory-name-related decls
1163         into dirname.h.
1164
1165         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
1166         * backupfile.c (base_name): Likewise.
1167         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
1168         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
1169         * makepath.c (strip_trailing_slashes): Likewise.
1170         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
1171         Likewise.
1172         * rename.c (strip_trailing_slashes): Likewise.
1173         * same.c (base_name): Likewise.
1174         * stripslash.c (ISSLASH): Likewise.
1175
1176         * addext.c: Include <dirname.h> after size_t is defined.
1177         * backupfile.c: Likewise.
1178
1179         * addext.c (addext): Use base_len to trim redundant
1180         trailing slashes instead of doing it ourselves.
1181         But do not trim the last slash if it is not redundant.
1182
1183         * backupfile.c (find_backup_file_name,
1184         max_backup_version): Use base_len instead of rolling it ourselves.
1185         Handle the case of "" and (on DOS) "C:" correctly.
1186
1187         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
1188         Include <string.h>, <dirname.h>.
1189         (base_name): Allow file names ending in slashes, other than names
1190         that are all slashes.  In this case, return the basename followed
1191         by the slashes.  This is more general, and can be used in places
1192         where the original base_name purposely had an assertion failure.
1193         (base_len): New function.
1194
1195         * dirname.c: Include <string.h> instead of <stdlib.h>.
1196         Do not include <assert.h>; no longer needed.
1197         Include xalloc.h.
1198         (memrchr): Remove decl.
1199         (dir_name_r): Remove.
1200         (dir_len): Renamed from dirlen.  All callers changed.
1201         Rewrite in terms of base_name, for simplicity and consistency.
1202         (dir_name): Never return NULL.  All callers changed.
1203         Do not include <stdlib.h> in test program; no longer needed.
1204         return 0; is fine for test program.
1205
1206         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
1207         New macros.
1208         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
1209
1210         * path-concat.c (path_concat): Use base_len to compute
1211         base length, not strlen; this means we cannot rely on memcpy
1212         to null-terminate.
1213
1214         * same.c (STREQ): Remove.
1215         (same_name): Handle the case where the basename ends in trailing '/'.
1216
1217         * stripslash.c (strip_trailing_slashes): Return nonzero if
1218         a slash was stripped.  Do not strip the last slash after a
1219         file system prefix.
1220
1221 2001-04-08  Jim Meyering  <meyering@lucent.com>
1222
1223         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
1224         recomputed; that's necessary when the offset spans a DST transition.
1225         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
1226
1227 2001-04-02  Jim Meyering  <meyering@lucent.com>
1228
1229         * regex.h, regex.c: Update from GNU libc.
1230
1231 2001-03-19  Paul Eggert  <eggert@twinsun.com>
1232
1233         * version-etc.c (version_etc_copyright): Update to 2001.
1234
1235 2001-03-16  Paul Eggert  <eggert@twinsun.com>
1236
1237         * tempname.c (uint64_t): Define to uintmax_t if
1238         not defined, and if UINT64_MAX is not defined.
1239         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
1240         Reported by John David Anglin.
1241
1242 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
1243
1244         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
1245         alias if codeset is empty.
1246         * config.charset (BeOS): Use wildcard syntax.
1247
1248 2001-03-13  Jim Meyering  <meyering@lucent.com>
1249
1250         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
1251         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
1252         From Bruno Haible.
1253
1254 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
1255
1256         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
1257         Don't return NULL.
1258         * unicodeio.c (print_unicode_char): Simplify accordingly.
1259
1260 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
1261
1262         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
1263         support for DOS/DJGPP.
1264
1265 2001-02-28  Paul Eggert  <eggert@twinsun.com>
1266
1267         * Makefile.am (libfetish_a_SOURCES):
1268         Add dup-safer.c, fopen-safer.c.
1269         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
1270
1271         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
1272
1273 2001-02-25  Paul Eggert  <eggert@twinsun.com>
1274
1275         The mkstemp replacement is taken from glibc 2.2.2, with some
1276         portability fixes for use outside glibc, as follows:
1277
1278         * tempname.c (struct_stat64): New macro.
1279         (direxists, __gen_tempname): Use it.
1280         This avoids a portability problem with Solaris 8.
1281
1282         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
1283         (<stddef.h>, <stdint.h>, <string.h>):
1284         Include only if STDC_HEADERS || _LIBC.
1285         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
1286         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
1287         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
1288         (__set_errno): Define this macro if <errno.h> doesn't.
1289         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
1290         Define these macros if <stdio.h> doesn't.
1291         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
1292         Define these macros if <sys/stat.h>
1293         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
1294         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
1295         __xstat64): Define if not _LIBC.
1296         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
1297         (__gen_tempname): Invoke gettimeofday only if
1298         HAVE_GETTIMEOFDAY || _LIBC;
1299         otherwise, fall back on plain "time".
1300         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
1301
1302         * mkstemp.c (__GT_FILE): Define to zero if not defined.
1303
1304         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
1305
1306 2001-02-17  Jim Meyering  <meyering@lucent.com>
1307
1308         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
1309         around included file name.
1310
1311         * strnlen.c (__strnlen): Merge in a change from GNU libc.
1312
1313         * strftime.c: Update from GNU libc (the only changes were to comments).
1314
1315 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
1316
1317         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
1318
1319 2001-02-17  Paul Eggert  <eggert@twinsun.com>
1320
1321         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
1322         Remove workaround macros for hosts that have mbrtowc but not
1323         mbstate_t, as we now insist on proper declarations for both
1324         before using mbrtowc.
1325
1326 2001-02-17  Jim Meyering  <meyering@lucent.com>
1327
1328         * regex.c: Update from libc.
1329
1330 2001-02-16  Paul Eggert  <eggert@twinsun.com>
1331
1332         * alloca.c (malloc): Undef before defining, since stdlib.h
1333         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
1334         Reported by Mark Hounschell via Paul Eggert.
1335
1336 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
1337
1338         * config.charset: Update for FreeBSD 4.2.
1339
1340 2001-01-26  Jim Meyering  <meyering@lucent.com>
1341
1342         * quotearg.c: Include stddef.h.
1343         * quote.c: Include stddef.h.
1344         Reported by Axel Kittenberger.
1345
1346         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
1347         line in double quotes so that it evokes a better diagnostic.
1348         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
1349         Reported by Axel Kittenberger.
1350
1351 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
1352
1353         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
1354         to avoid a warning.  Add back 'const' to inptr.
1355
1356 2001-01-16  Jim Meyering  <meyering@lucent.com>
1357
1358         * basename.c: Include <stdio.h>, needed by assert on SunOS4.
1359         From Bruno Haible.
1360
1361 2001-01-14  Jim Meyering  <meyering@lucent.com>
1362
1363         * rename.c: New file.  From Volker Borchert.
1364         Include stdlib.h, string.h or strings.h, and xalloc.h.
1365         Use strip_trailing_slashes rather than open-coding it.
1366
1367 2001-01-03  Paul Eggert  <eggert@twinsun.com>
1368
1369         * strftime.c: Sync with glibc time/strftime.c 1.81.
1370
1371 2001-01-03  Jim Meyering  <meyering@lucent.com>
1372
1373         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
1374         local `inptr' to avoid warning with some system declarations of iconv.
1375
1376 2000-12-29  Paul Eggert  <eggert@twinsun.com>
1377
1378         * modechange.c: Do not assume that mode_t uses the
1379         traditional octal encoding.  E.g. "chmod 1 FOO" should set
1380         the other-execute bit of FOO even if S_IXOTH != 1.
1381
1382         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
1383         WOTH, XOTH, ALLM): New macros.
1384         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
1385          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
1386         Use them.
1387         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
1388         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
1389         (mode_compile):
1390         No need to use uintmax_t; unsigned long is long enough.
1391         Don't bother to get suffix since we don't use it.
1392
1393 2000-12-24  Jim Meyering  <meyering@lucent.com>
1394
1395         * hash.c (is_prime): Return explicit boolean values.
1396         (hash_get_first): Return NULL to appease Irix5.6's 89.
1397         Reported by Nelson Beebe.
1398
1399 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
1400
1401         * localcharset.c (locale_charset): Add support for Win32.
1402
1403 2000-12-18  Paul Eggert  <eggert@twinsun.com>
1404
1405         * physmem.h, physmem.c: New files.
1406
1407         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
1408         (noinst_HEADERS): Add physmem.h.
1409
1410         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
1411         't' for compatibility with Solaris 8 sort.
1412
1413 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
1414
1415         * config.charset: Add support for BeOS.
1416
1417 2000-12-16  Jim Meyering  <meyering@lucent.com>
1418
1419         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
1420         SHELLS_FILE to a file name that's useful on djgpp systems.
1421         Include stdlib.h.
1422         (ADDITIONAL_DEFAULT_SHELLS): Define.
1423         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
1424         Based mostly on a patch from Prashant TR.
1425
1426 2000-12-16  Jim Meyering  <meyering@lucent.com>
1427
1428         This bug had a serious impact on chown: `chown N:M FILE' (for integer
1429         N and M) would have treated it like `chown N:N FILE'.
1430
1431         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
1432
1433 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
1434
1435         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
1436         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
1437         to the list of canonical encodings. Rename EUC-CN to GB2312.
1438
1439 2000-12-08  Andreas Schwab  <schwab@suse.de>
1440
1441         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
1442         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
1443
1444 2000-12-07  Jim Meyering  <meyering@lucent.com>
1445
1446         * stripslash.c (ISSLASH): Define.
1447         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
1448         From Prashant TR.
1449
1450         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
1451         (dir_name_r): Declare this function as static.
1452         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
1453         manifest itself on a name containing a mix of slashes and
1454         backslashes.
1455         Make this function work with names starting with a DOS-style
1456         drive letter and colon prefix.
1457         (dir_name): Append `.' if necessary.
1458         Based mostly on patches from Prashant TR and Eli Zaretskii.
1459
1460         * dirname.h (dir_name_r): Remove prototype.
1461
1462 2000-12-05  Jim Meyering  <meyering@lucent.com>
1463
1464         * dirname.c (dir_name_r): Add `const' in a few local declarations.
1465
1466 2000-12-04  Jim Meyering  <meyering@lucent.com>
1467
1468         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
1469         Also include memory.h, stdlib.h, unistd.h if appropriate.
1470         Reported by Andreas Jaeger (conflicting declaration of malloc).
1471
1472 2000-12-02  Jim Meyering  <meyering@lucent.com>
1473
1474         * closeout.h: Make idempotent, to avoid some obscure warnings.
1475
1476 2000-12-01  Paul Eggert  <eggert@twinsun.com>
1477
1478         * memrchr.c: Include <config.h> before any system include file.
1479
1480 2000-11-29  Paul Eggert  <eggert@twinsun.com>
1481
1482         * dirname.c (dir_name_r): Fix typo: int -> size_t.
1483
1484 2000-11-26  Jim Meyering  <meyering@lucent.com>
1485
1486         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
1487
1488 2000-11-22  Paul Eggert  <eggert@twinsun.com>
1489
1490         * strftime.c (my_strftime): Do not invoke mbrlen with a
1491         size of (size_t) -1; it's not portable.
1492
1493 2000-11-17  Akim Demaille  <akim@epita.fr>
1494
1495         * obstack.h: Formatting changes.
1496         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
1497         prevent type checking.
1498         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
1499         cast the value to (void *): assigning a `foo *' to a `void *'
1500         variable is valid.
1501         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
1502
1503 2000-11-17  Jim Meyering  <meyering@lucent.com>
1504
1505         * strstr.c: Update from GNU libc.
1506
1507 2000-11-16  Jim Meyering  <meyering@lucent.com>
1508
1509         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
1510
1511 2000-11-11  Jim Meyering  <meyering@lucent.com>
1512
1513         * error.c: Add a couple #includes, merging from GNU libc version.
1514
1515 2000-11-10  Jim Meyering  <meyering@lucent.com>
1516
1517         * obstack.h: Update from GNU libc.
1518         * obstack.c: Likewise.
1519
1520 2000-11-06  Paul Eggert  <eggert@twinsun.com>
1521
1522         * getusershell.c (setusershell): Use rewind rather than
1523         fseek/fseeko, to avoid configuration hassles with fseeko.
1524         Don't bother opening SHELLS_FILE if shellstream is NULL;
1525         it's not necessary.
1526
1527 2000-11-05  Jim Meyering  <meyering@lucent.com>
1528
1529         * makepath.h (make_dir): Declare.
1530         * makepath.c (make_dir): Remove `static' attribute.
1531         Tweak a comment.
1532
1533 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
1534
1535         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
1536         last one in a bucket, advance to the next bucket.
1537
1538 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
1539
1540         * fnmatch.c: Do not comment out all the code if we are using
1541         the GNU C library, because in some cases we are replacing buggy
1542         code in the GNU C library itself.
1543
1544 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1545
1546         * error.h, getline.h, modechange.h:
1547         Remove "2000" from Copyright line, as the file hasn't been
1548         changed this year other than in the copyright notice.
1549
1550         * xalloc.h: Add "2000" to Copyright line, as this file
1551         was changed this year.
1552
1553 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1554
1555         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
1556         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
1557         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
1558
1559 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
1560
1561         * regex.h (__restrict_arr): Move definition out of #ifndef block.
1562         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
1563         doesn't define __restrict_arr.
1564
1565 2000-10-29  Jim Meyering  <meyering@lucent.com>
1566
1567         * xstat.in: Fix grammar in comment.
1568
1569 2000-10-28  Jim Meyering  <meyering@lucent.com>
1570
1571         * memchr.c: Update from libc.
1572         Adjust for portability:
1573         [HAVE_STDLIB_H]: Include stdlib.h.
1574         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
1575         Undef __memchr, too.
1576         [!weak_alias]: Define __memchr to memchr.
1577
1578         * regex.c: Update from libc.
1579         * regex.h: Likewise.
1580         * getopt1.c: Likewise.
1581         * memcmp.c: Likewise.
1582
1583         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
1584         Avoid using fseek, when possible -- it's broken by design.
1585         Patch by Ulrich Drepper.
1586
1587 2000-10-26  Jim Meyering  <meyering@lucent.com>
1588
1589         * strftime.c: Update from libc.
1590
1591 2000-10-25  Jim Meyering  <meyering@lucent.com>
1592
1593         * obstack.c: Update from libc.
1594
1595 2000-10-23  Jim Meyering  <meyering@lucent.com>
1596
1597         * hard-locale.c (hard_locale): Revert last change -- it was simply
1598         wrong.  That set_locale call must not have any side effects.
1599         From Paul Eggert.
1600
1601 2000-10-22  Jim Meyering  <meyering@lucent.com>
1602
1603         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
1604         [CYCLIC]: Remove now-unused definition.
1605
1606         * save-cwd.c (O_DIRECTORY): Define, if needed.
1607         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
1608         Suggestion from Ulrich Drepper.
1609
1610 2000-10-21  Jim Meyering  <meyering@lucent.com>
1611
1612         * dirname.c (dir_name_r): New function, factored out of dir_name.
1613         (dir_name): Use dir_name_r.
1614         * dirname.h (dir_name_r): Declare it.
1615
1616 2000-10-21  Jim Meyering  <meyering@lucent.com>
1617
1618         * dirname.c (memrchr): Declare if necessary.
1619         (dir_name): Remove the restriction that there be no
1620         trailing slashes.  Now, this code skips past them, effectively
1621         ignoring them.
1622         [TEST_DIRNAME] (main): New unit tests.
1623
1624         * memrchr.c: New file from GNU libc.
1625         Undef __memrchr, too.
1626         [!weak_alias]: Define __memrchr to memrchr.
1627         Guard weak_alias use with `#ifdef weak_alias'.
1628
1629 2000-10-17  Jim Meyering  <meyering@lucent.com>
1630
1631         * quote.h (PARAMS): Define and use.
1632         Reported by Akim Demaille.
1633
1634         * getopt.c: Update from libc.
1635
1636 2000-10-16  Jim Meyering  <meyering@lucent.com>
1637
1638         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
1639         From Jan Fedak.
1640
1641 2000-09-25  Jim Meyering  <meyering@lucent.com>
1642
1643         * md5.h (rol): Define (from GnuPG).
1644
1645         * sha.c: Give credit (GnuPG) where due.
1646         (M): Use rol rather than open-coding it.
1647         Add a FIXME comment.
1648
1649 2000-09-21  Jim Meyering  <meyering@lucent.com>
1650
1651         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
1652         Reported by Michael Stone.
1653
1654 2000-09-20  Jim Meyering  <meyering@lucent.com>
1655
1656         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
1657         (noinst_HEADERS): Add sha.h.
1658         Based on code from Scott G. Miller and from GnuPG.
1659
1660 2000-09-15  Jim Meyering  <meyering@lucent.com>
1661
1662         * regex.c: Update from libc.
1663
1664 2000-09-10  Jim Meyering  <meyering@lucent.com>
1665
1666         * getopt.c (_getopt_internal): Update from glibc.
1667
1668 2000-09-09  Jim Meyering  <meyering@lucent.com>
1669
1670         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
1671         think it should be used as a general replacement for isascii.
1672         * fnmatch.c: Likewise.
1673         * mbswidth.c: Likewise
1674         * regex.c: Likewise.
1675
1676         Don't use atoi.
1677         * userspec.c: Include sys/param.h and limits.h.
1678         Include xstrtol.h.
1679         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
1680         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
1681         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
1682         UID, GID.  Check range.
1683
1684 2000-09-06  Jim Meyering  <meyering@lucent.com>
1685
1686         * getopt.c (_getopt_internal): Update from glibc.
1687
1688 2000-08-30  Jim Meyering  <meyering@lucent.com>
1689
1690         * strftime.c: Merge in changes from GNU libc.
1691
1692 2000-08-26  Jim Meyering  <meyering@lucent.com>
1693
1694         * closeout.c: Include "__fpending.h".
1695         (close_stdout_status): Return right away if there's nothing to flush.
1696
1697         * Makefile.am (noinst_HEADERS): Add __fpending.h.
1698         * __fpending.c: New file.
1699         * __fpending.h: New file.
1700
1701 2000-08-07  Paul Eggert  <eggert@twinsun.com>
1702
1703         Standardize on "memory exhausted" instead of "Memory exhausted"
1704         or "virtual memory exhausted".
1705         * obstack.c (print_and_abort): Use "memory exhausted", not
1706         "virtual memory exhausted".
1707         * same.c (same_name): Invoke xalloc_die instead of printing
1708         our own message.
1709         * userspec.c (parse_user_spec): Likewise.
1710         * bumpalloc.h: comment fix
1711         * same.c, userspec.c: Include xalloc.h.
1712
1713         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
1714         not char *const and pointing to a constant array.
1715         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
1716         (xrealloc): Comment fix.
1717
1718         * userspec.c (parse_user_spec):
1719         Don't translate a message until just before returning,
1720         to avoid unnecessary translation.
1721
1722 2000-08-07  Jim Meyering  <meyering@lucent.com>
1723
1724         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
1725         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
1726         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
1727         getgroups.c, gethostname.c, getopt.h, group-member.c,
1728         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
1729         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
1730         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
1731         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
1732         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
1733         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
1734         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
1735         yesno.c: Back out Copyright date changes for each file with no change
1736         this year.  This eases coordination with other programs using the same
1737         source code modules.  From Paul Eggert.
1738
1739 2000-08-03  Greg McGary  <greg@mcgary.org>
1740
1741         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
1742         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
1743         (EXTEND_BUFFER): Use them.
1744
1745 2000-08-01  Jim Meyering  <meyering@lucent.com>
1746
1747         * dirname.c (ISSLASH): Define.
1748         (BACKSLASH_IS_PATH_SEPARATOR): Define.
1749         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
1750         both `\' and `/' may be use as path separators.
1751         Based on a patch from Prashant TR.
1752
1753 2000-07-31  Paul Eggert  <eggert@twinsun.com>
1754
1755         * quotearg.c (quotearg_n_options): Don't make the initial
1756         slot vector a constant, since it might get modified.
1757
1758 2000-07-31  Jim Meyering  <meyering@lucent.com>
1759
1760         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
1761         * obstack.c (print_and_abort): Likewise.
1762
1763 2000-07-30  Paul Eggert  <eggert@twinsun.com>
1764
1765         * quotearg.c (quotearg_n_options): Preallocate a slot 0
1766         buffer, so that the caller can always quote one small
1767         component of a "memory exhausted" message in slot 0.
1768         From a suggestion by Jim Meyering.
1769
1770 2000-07-30  Jim Meyering  <meyering@lucent.com>
1771
1772         * makepath.c (make_path): Quote the other instance, too.
1773
1774         * quotearg.c (N_STATIC_SLOTVECS): Define.
1775         (STATIC_BUF_SIZE): Define.
1776         (quotearg_n_options): Use only statically allocated storage when
1777         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
1778         than STATIC_BUF_SIZE.
1779
1780 2000-07-29  Jim Meyering  <meyering@lucent.com>
1781
1782         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
1783         * dirname.c (dir_name): Likewise.
1784
1785         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
1786
1787         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
1788         (dir_name): Assert that there are no trailing slashes.
1789
1790 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
1791
1792         * mbswidth.h (mbswidth): Add a flags argument.
1793         (mbswidth): New declaration.
1794         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
1795         * mbswidth.c (mbswidth): Add a flags argument.
1796         (mbsnwidth): New function.
1797
1798 2000-07-24  Jim Meyering  <meyering@lucent.com>
1799
1800         * mbswidth.c: Remove useless #else.  From Bruno Haible.
1801
1802 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1803
1804         * mbswidth.c (_XOPEN_SOURCE):
1805         Don't define; this causes problems on Solaris 7.
1806         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
1807
1808 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1809
1810         * quotearg.c:
1811         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
1812         so that mbstate_t is always defined.
1813
1814         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
1815         be 1 in at least one GCC installation, and this configuration
1816         error is likely to be common.  Ignoring MB_LEN_MAX hurts
1817         performance on hosts that have mbrtowc but have only unibyte
1818         locales, but I assume these hosts are rare.
1819
1820 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1821
1822         * quotearg.c: Streamline by invoking multibyte code only if needed.
1823         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
1824         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
1825         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
1826         invoke multibyte primitives.
1827
1828 2000-07-23  Jim Meyering  <meyering@lucent.com>
1829
1830         * basename.c (base_name): Add an assertion.
1831
1832 2000-07-15  Bruno Haible  <clisp.cons.org>
1833
1834         * quotearg.c: When the system forces us to redefine mbstate_t,
1835         shadow its mbsinit function.
1836
1837 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
1838
1839         * mbswidth.h: New file.
1840         * mbswidth.c: New file.
1841         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
1842         (noinst_HEADERS): Add mbswidth.h.
1843
1844 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
1845
1846         * config.charset: Add support for FreeBSD. Improve support for HP-UX
1847         and IRIX 6.
1848
1849 2000-07-15  Jim Meyering  <meyering@lucent.com>
1850
1851         * makepath.c: Include quote.h.
1852         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
1853         corresponding argument in a `quote (...)' call.
1854         Give better diagnostics.
1855
1856         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
1857         (noinst_HEADERS): Add quote.h.
1858
1859         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
1860         from tar's src/misc.c.
1861         * quote.h: New file.  Prototypes for same.
1862
1863 2000-07-10  Paul Eggert  <eggert@twinsun.com>
1864
1865         From a suggestion by Bruno Haible.
1866         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
1867         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
1868         to decide whether to define the BeOS workaround macro;
1869         this adjusts to the change to AC_MBSTATE_T.
1870
1871 2000-07-13  Paul Eggert  <eggert@twinsun.com>
1872
1873         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
1874
1875         * quotearg.c (quoting_style_args, quoting_style_vals,
1876         quotearg_buffer_restyled): Add support for
1877         clocale_quoting_style.  Undo previous change to
1878         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
1879         and "{RIGHT QUOTATION MARK}" msgids.
1880
1881 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1882
1883         The old behavior of quoting `like this' doesn't look good with
1884         newer, ISO-style fonts.  See:
1885         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
1886
1887         Instead, quote "like this" by default.  Let the translator
1888         tailor the locale-specific quoting behavior by providing
1889         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
1890
1891         * quotearg.c (N_): New macro.
1892         (gettext_default): New function.
1893         (quotearg_buffer_restyled): Use
1894         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
1895         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
1896
1897 2000-07-09  Jim Meyering  <meyering@lucent.com>
1898
1899         * Most files: Update copyright dates to include 2000.
1900
1901 2000-07-08  Jim Meyering  <meyering@lucent.com>
1902
1903         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
1904         if not defined.
1905         (xgethostname): Remove now-unnecessary #ifdef.
1906         Move declaration of `err' into loop where it's used.
1907
1908 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1909
1910         * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
1911         by allocating a larger buffer. Test the gethostname return value for
1912         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
1913         returns an error and ENAMETOOLONG isn't defined.
1914
1915 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1916         and Bruno Haible  <haible@clisp.cons.org>
1917
1918         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
1919
1920 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1921
1922         * quotearg.c (struct quoting_options): Simplify quote_these_too
1923         dimension.
1924
1925 2000-07-03  Jim Meyering  <meyering@lucent.com>
1926
1927         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
1928         Reported by Bruno Haible.
1929
1930 2000-07-04  Jim Meyering  <meyering@lucent.com>
1931
1932         * quotearg.c: Make inclusion of <wchar.h> independent of whether
1933         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
1934         lacks mbrtowc.
1935
1936 2000-07-03  Paul Eggert  <eggert@twinsun.com>
1937         and Bruno Haible  <haible@clisp.cons.org>
1938
1939         * quotearg.c (mbrtowc):
1940         Assign to *pwc, and return 1 only if result is nonzero.
1941         (iswprint): Use ISPRINT when substituting our own mbrtowc.
1942
1943 2000-07-03  Jim Meyering  <meyering@lucent.com>
1944
1945         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
1946         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
1947         From Bob Proulx.
1948
1949 2000-07-02  Jim Meyering  <meyering@lucent.com>
1950
1951         * quotearg.c (mbstate_t): Don't define here.
1952
1953 2000-07-02  Jim Meyering  <meyering@lucent.com>
1954
1955         * nanosleep.c (SIGCONT): Define if not already defined.
1956
1957 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1958
1959         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
1960         per change in ../m4/ls-mntd-fs.m4.
1961         (read_filesystem_list): Ignore symbolic links.
1962
1963 2000-06-29  Jim Meyering  <meyering@lucent.com>
1964
1965         * same.c: Include <string.h> or <strings.h>, as appropriate,
1966         for declaration of strcmp.
1967
1968         * long-options.c: Include <stdlib.h>, for declaration of exit.
1969
1970         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
1971         Avoid warning by casting result to `char *' to remove `const'.
1972
1973 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1974
1975         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
1976
1977 2000-06-26  Paul Eggert  <eggert@twinsun.com>
1978
1979         savedir now sets errno on failure and invokes xmalloc to get memory.
1980         Fix a couple of other minor bugs while we're at it.
1981
1982         * savedir.c (<unistd.h>): Do not include; there's no need.
1983         (NAMLEN): Remove macro.
1984         (malloc, realloc): Remove decls.
1985         (stpcpy): Likewise.
1986         ("xalloc.h"): Include.
1987         (NAME_SIZE_DEFAULT): New macro.
1988         (savedir): Use xmalloc / xrealloc to allocate memory.
1989         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
1990         Skip "" directory entries.
1991         Use strlen to calculate directory entry length, since the old method
1992         is rarely used these days and isn't worth supporting.
1993         Don't use a pointer after freeing it.
1994         Check for integer overflow when calculating allocation size.
1995         Use memcpy to copy entries, instead of stpcpy.
1996         Set errno properly when returning NULL.
1997         Check for readdir error.
1998
1999 2000-06-26  Jim Meyering  <meyering@lucent.com>
2000
2001         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
2002
2003 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
2004
2005         * getusershell.c (xmalloc, xrealloc): Remove functions.
2006         Include xalloc.h.
2007         Don't include <stdlib.h>.  Don't declare malloc, realloc.
2008
2009 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
2010
2011         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
2012
2013 2000-06-24  Jim Meyering  <meyering@lucent.com>
2014
2015         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
2016
2017 2000-06-21  Jim Meyering  <meyering@lucent.com>
2018
2019         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
2020
2021 2000-06-19  Paul Eggert  <eggert@twinsun.com>
2022
2023         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
2024         (mbrtowc, mbstate_t): Define substitutes if
2025         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
2026         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
2027         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
2028
2029 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
2030
2031         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
2032         than 1024, return a memory chunk of least possible size, instead
2033         of size PATH_MAX + 2. In the loop, increment the size proportionally.
2034         Use free/xmalloc instead of xrealloc to avoid copying for very long
2035         paths.
2036
2037 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
2038
2039         * canon-host.c (canon_host): Use malloc and memcpy to copy an
2040         address, not strdup.  Include <stdlib.h> and don't declare free().
2041
2042 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
2043
2044         * path-concat.c (path_concat): Don't access dir[-1] if dir is
2045         the empty string.
2046
2047 2000-06-21  Jim Meyering  <meyering@lucent.com>
2048
2049         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
2050         (noinst_HEADERS): Add getstr.h.
2051
2052         * getline.c (getstr): Move into a separate file.
2053         * getstr.c (getstr): New file, extracted from getline.c, with
2054         the following changes: new parameter, delim2; both delim[12]
2055         parameters have type `int', not `char'.  The latter would lose
2056         with 8-bit delimiters.
2057         * getstr.h: New file.
2058
2059 2000-06-19  Jim Meyering  <meyering@lucent.com>
2060
2061         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
2062
2063 2000-06-18  Jim Meyering  <meyering@lucent.com>
2064
2065         * mkdir.c: Remove file, due mainly to copyright incompatibility.
2066         Besides, these days every porting target provides a mkdir function.
2067
2068         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
2069         (this snippet comes from src/system.h).
2070
2071 2000-06-15  Paul Eggert  <eggert@twinsun.com>
2072
2073         * human.c (adjust_value): New function.
2074         (human_readable_inexact): Apply rounding style even when
2075         printing approximate values.
2076
2077 2000-06-14  Paul Eggert  <eggert@twinsun.com>
2078
2079         * human.c (human_readable_inexact): Allow an input block
2080         size that is not a multiple of the output block size, and vice versa.
2081         Reported by Piergiorgio Sartor.
2082
2083 2000-06-14  Paul Eggert  <eggert@twinsun.com>
2084
2085         * getdate.y (get_date): Apply relative times after time
2086         zone indicator, not before.  Reported by Todd A. Jacobs.
2087
2088 2000-06-13  Jim Meyering  <meyering@lucent.com>
2089
2090         * Makefile.am (all-local): Depend on lstat.c and stat.c.
2091
2092         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
2093
2094 2000-06-12  Paul Eggert  <eggert@twinsun.com>
2095
2096         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
2097
2098 2000-06-04  Paul Eggert  <eggert@twinsun.com>
2099
2100         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
2101
2102 2000-06-04  Jim Meyering  <meyering@lucent.com>
2103
2104         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
2105         SunOS4.1.4 for which gid_t is an unsigned type.
2106
2107 2000-06-03  Jim Meyering  <meyering@lucent.com>
2108
2109         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
2110
2111 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
2112
2113         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
2114         newer, don't install charset.alias.
2115         * config.charset: Change the Linux/glibc rules so they become empty
2116         on glibc-2.1 or newer.
2117
2118 2000-06-02  Jim Meyering  <meyering@lucent.com>
2119
2120         * mountlist.c: Back out last change.  Instead, do this...
2121         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
2122         member using the same `ignore'-testing code.
2123         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
2124         fs_type strings.
2125         From Mark D. Roth.
2126
2127 2000-05-29  Jim Meyering  <meyering@lucent.com>
2128
2129         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
2130         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
2131
2132 2000-05-22  Jim Meyering  <meyering@lucent.com>
2133
2134         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
2135
2136 2000-05-18  Jim Meyering  <meyering@lucent.com>
2137
2138         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
2139         back, too, since it may have been modified by allocate_entry.
2140         (hash_delete): Rewrite to use neither the assignment operator
2141         nor the comma operator in an if-expression.
2142
2143 2000-05-15  Paul Eggert  <eggert@twinsun.com>
2144
2145         * closeout.c:
2146         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
2147         Remove; no longer needed.
2148         "quotearg.h": Add include.
2149         (file_name): Do not bother to explicitly initialize to NULL; it's less
2150         efficient on some hosts.
2151         (close_stdout_status): Remove test as to whether stdout was already
2152         closed; it breaks for the case "echo x | sort >&-".
2153         Quote file name colons.
2154         Do not assume that _("write error") lacks format strings.
2155
2156 2000-05-15  Jim Meyering  <meyering@lucent.com>
2157
2158         * version-etc.c (version_etc_copyright): Update the copyright string
2159         used in all --version output.
2160
2161 2000-05-14  Jim Meyering  <meyering@lucent.com>
2162
2163         * closeout.c (close_stdout_set_file_name): New function.
2164         (close_stdout_status): Use new file-scoped global.
2165         Return right away if fstat says the stdout file descriptor is invalid.
2166         * closeout.h (close_stdout_set_file_name): Declare.
2167
2168 2000-05-10  Jim Meyering  <meyering@lucent.com>
2169
2170         * closeout.c [default_exit_status]: New file-scoped variable.
2171         (close_stdout_set_status): New function.
2172         * closeout.h (close_stdout_set_status): Declare.
2173
2174 2000-05-08  Jim Meyering  <meyering@lucent.com>
2175
2176         * long-options.c: Don't include closeout.h.
2177         (parse_long_options): Don't call close_stdout for --version.
2178
2179 2000-05-06  Jim Meyering  <meyering@lucent.com>
2180
2181         * strnlen.c: Undefine __strnlen and strnlen.
2182         [!weak_alias]: Define __strnlen to strnlen.
2183
2184         * atexit.c: New file, from libiberty.
2185
2186 2000-05-06  Jim Meyering  <meyering@lucent.com>
2187
2188         * closeout.c (close_stdout_status): Also check for errors on the
2189         stderr stream.
2190
2191 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
2192
2193         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
2194         instead of xmalloc, xrealloc, path_concat.
2195         (locale_charset): Treat empty environment variables as absent.
2196         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
2197
2198 2000-05-04  Jim Meyering  <meyering@lucent.com>
2199
2200         * getopt.c: Update from glibc.
2201         * obstack.c: Likewise.
2202         * obstack.h: Likewise.
2203         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
2204
2205         * regex.h: Likewise.
2206         * strndup.c: Likewise.
2207         * strnlen.c: New file, from glibc.
2208
2209 2000-05-01  Jim Meyering  <meyering@lucent.com>
2210
2211         * full-write.c (full_write): Remove `FIXME' part of comment.
2212
2213 2000-04-29  Jim Meyering  <meyering@lucent.com>
2214
2215         * path-concat.c: Declare strdup only if it's not defined.
2216         * canon-host.c: Likewise.
2217
2218 2000-04-28  Jim Meyering  <meyering@lucent.com>
2219
2220         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
2221         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
2222         included first, then limits.h is included by locale.h by libintl.h.
2223         From John David Anglin.
2224
2225 2000-04-25  Jim Meyering  <meyering@lucent.com>
2226
2227         * makepath.c (S_IRWXUGO): Define.
2228         (make_path): Always perform explicit chmod if MODE specifies any
2229         of the `special' permission bits.  Prompted by a bug report against
2230         install from Mate Wierdl and Joost van Baal.
2231
2232 2000-04-18  Jim Meyering  <meyering@lucent.com>
2233
2234         * README: New file.
2235
2236         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
2237         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
2238
2239 2000-04-17  Jim Meyering  <meyering@lucent.com>
2240
2241         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
2242         the definition of it to rpl_strftime also defined-away the system's
2243         declaration.
2244
2245 2000-04-15  Jim Meyering  <meyering@lucent.com>
2246
2247         Use `C' to denote so-called `contiguous' files, the same way
2248         that tar does.
2249         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
2250         (ftypelet): Use S_ISCTG.
2251         From Michael Deutschmann.
2252
2253 2000-04-14  Jim Meyering  <meyering@lucent.com>
2254
2255         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
2256
2257 2000-04-08  Jim Meyering  <meyering@lucent.com>
2258
2259         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
2260         names don't conflict.  Reported by Eli Zaretskii.
2261
2262 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
2263
2264         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
2265         bug.  Deal with the different error behavior of Irix iconv.
2266
2267 2000-04-07  Jim Meyering  <meyering@lucent.com>
2268
2269         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
2270         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
2271
2272 2000-04-05  Jim Meyering  <meyering@lucent.com>
2273
2274         Portability tweaks required for ultrix4.3.
2275         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
2276         * readutmp.c: Include sys/types.h before sys/stat.h.
2277         * canon-host.c: Declare strdup.
2278         * path-concat.c: Likewise.
2279         From John David Anglin.
2280
2281 2000-04-04  Jim Meyering  <meyering@lucent.com>
2282
2283         Be more DOS 8.3-friendly.
2284         * ref-add.sin: Renamed from ref-add.sed.in.
2285         * ref-del.sin: Renamed from ref-del.sed.in.
2286         * Makefile.am: Reflect renaming.
2287         Reported by Eli Zaretskii.
2288
2289         Use a temporary file name that won't clash with `charset.alias'
2290         in the DOS 8.3 name space.
2291         * Makefile.am (charset_tmp): Define.
2292         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
2293         (uninstall-local): Likewise.
2294         Reported by Eli Zaretskii.
2295
2296 2000-03-29  Paul Eggert  <eggert@twinsun.com>
2297
2298         * time/strftime.c (my_strftime): Make sure we call the system
2299         strftime, not ourselves, when invoking the underlying strftime.
2300
2301 2000-03-24  Jim Meyering  <meyering@lucent.com>
2302
2303         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
2304         (charset_alias): Define.
2305         (install-exec-local): Factor out common code.
2306         (uninstall-local): Split lines longer than 80.
2307         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
2308         (SUFFIXES): Define.
2309         (.sed.in.sed): New rule.  Don't redirect directly to $@.
2310         (CLEANFILES): Add ref-add.sed and ref-del.sed.
2311
2312 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
2313
2314         * config.charset: Output a line containing "Packages using this file".
2315         * ref-add.sed.in, ref-del.sed.in: New files.
2316         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
2317         ref-del.sed): New rules.
2318
2319 2000-03-17  Jim Meyering  <meyering@lucent.com>
2320
2321         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
2322         Otherwise, include <strings.h>
2323
2324 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
2325
2326         * unicodeio.c (utf8_wctomb): New function.
2327         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
2328         format instead of in UCS-4 with platform dependent endianness.
2329
2330 2000-03-07  Paul Eggert  <eggert@twinsun.com>
2331
2332         * savedir.c (savedir): Work even if directory size is
2333         negative; this can happen with some screwy NFS configurations.
2334
2335 2000-03-06  Jim Meyering  <meyering@lucent.com>
2336
2337         * localcharset.c (get_charset_aliases): Don't try to free file_name
2338         if it's NULL (because we ran out of memory).  From Bruno Haible.
2339
2340 2000-03-05  Jim Meyering  <meyering@lucent.com>
2341
2342         * localcharset.c ("path-concat.h"): Include.
2343         (get_charset_aliases): Use path_concat instead of ANSI string
2344         concatenation.
2345
2346         * unicodeio.h (PARAMS): Define.
2347         Use it to guard prototype.
2348
2349 2000-03-04  Jim Meyering  <meyering@lucent.com>
2350
2351         * Makefile.am (install-exec-local): Create $(libdir) before installing
2352         into it.
2353         (uninstall-local): Uncomment this rule so `make distcheck' works
2354         once again.
2355
2356         * unicodeio.c (<errno.h>): Include it.
2357         (errno): Declare if not defined.
2358
2359         * localcharset.c: Add Bruno's comment justifying use of volatile.
2360
2361         * config.charset: New version, incorporating remarks from a linux
2362         i18n mailing list.  From Bruno Haible.
2363
2364 2000-03-02  Jim Meyering  <meyering@lucent.com>
2365
2366         * Makefile.am (EXTRA_DIST): Add config.charset.
2367
2368 2000-03-01  Jim Meyering  <meyering@lucent.com>
2369
2370         * localcharset.c: Guard some #includes with `#if HAVE_...'.
2371         * unicodeio.c: Likewise.
2372
2373 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
2374
2375         * config.charset: New file.
2376         * localcharset.c: New file.
2377         * unicodeio.h, unicodeio.c: New files.
2378         * Makefile.am (DEFS): Add -DLIBDIR=...
2379         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
2380         (noinst_HEADERS): Add unicodeio.h.
2381         (all-local, install-exec-local, charset.alias): New targets.
2382
2383 2000-02-28  Paul Eggert  <eggert@twinsun.com>
2384
2385         * quotearg.c (ALERT_CHAR): New macro.
2386         (quotearg_buffer_restyled): Use it.
2387
2388 2000-02-27  Jim Meyering  <meyering@lucent.com>
2389
2390         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
2391         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
2392
2393         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
2394         not `#if STDC_HEADERS'.
2395         Declare malloc if needed.
2396
2397         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
2398         now that autoconf always defines the HAVE_DECL_ symbols.
2399         * human.c: Likewise.
2400         * same.c: Likewise.
2401         * strtoumax.c: Likewise.
2402
2403         * backupfile.c: Arrange for cpp to fail if the configure-time
2404         declaration check was not run.
2405         * hash.c: Likewise.
2406         * human.c: Likewise.
2407         * same.c: Likewise.
2408         * strtoumax.c: Likewise.
2409
2410         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
2411         then first look up the entire `.'-containing string as a login name.
2412
2413 2000-02-18  Paul Eggert  <eggert@twinsun.com>
2414
2415         * getdate.y: Handle two-digit years with leading zeros correctly.
2416         (textint): New typedef.
2417         (parser_control): Member year changed from int to textint.
2418         All uses changed.
2419         (YYSTYPE): Removed; replaced by %union with int and textint members.
2420         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
2421         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
2422         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
2423         (tSNUMBER, tUNUMBER): Now of type <textintval>.
2424         (date, number, to_year): Use width of number in digits, not its value,
2425         to determine whether it's a 2-digit year, or a 2-digit time.
2426         (yylex): Store number of digits of numeric tokens.
2427         Reported by John Kendall.
2428
2429         (parser_control): Changed from struct parser_control to typedef (for
2430         consistency).  All uses changed.
2431
2432         (tID): Removed; not used.
2433         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
2434
2435 2000-02-14  Paul Eggert  <eggert@twinsun.com>
2436
2437         * getpagesize.h (getpagesize): Port to VMS for Alpha;
2438         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
2439
2440 2000-02-12  Jim Meyering  <meyering@lucent.com>
2441
2442         * userspec.c (ISDIGIT): Define it.
2443         (isdigit): Remove definition.
2444         (is_number): Use ISDIGIT, not isdigit.
2445         <libintl.h>: Include.
2446         (_ and N_): Define.
2447         (parse_user_spec): Mark translatable strings.
2448
2449 2000-02-10  Jim Meyering  <meyering@lucent.com>
2450
2451         With these changes, nanosleep.[ch] are finally enough like the other
2452         lib/* replacement files to compile on a few more losing systems.
2453
2454         * nanosleep.h: Don't include config.h.
2455         Remove prototype from declaration of nanosleep.
2456         (PARAMS): Remove now-unneeded definition.
2457         * nanosleep.c: #undef nanosleep.
2458         (rpl_nanosleep): Rename from nanosleep.
2459
2460 2000-02-03  Jim Meyering  <meyering@lucent.com>
2461
2462         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
2463         rather than with `#if HAVE_UTMPNAME'.
2464
2465 2000-02-01  Jim Meyering  <meyering@lucent.com>
2466
2467         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
2468
2469 2000-01-31  Jim Meyering  <meyering@lucent.com>
2470
2471         * nanosleep.h (nanosleep): Guard declaration with
2472         `#if ! HAVE_DECL_NANOSLEEP'.
2473         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
2474         the declaration in that vendor's sys/timers.h.
2475         Reported by Christian Krackowizer.
2476
2477         * quotearg.c (ISASCII): Add #undef and move definition to follow
2478         inclusion of wctype.h to work around solaris2.6 namespace pollution.
2479         (ISPRINT): Likewise.
2480         Reported by Tom Tromey.
2481
2482 2000-01-30  Jim Meyering  <meyering@lucent.com>
2483
2484         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
2485         uses of ->ut_name.  The latter doesn't work with new Linux header files
2486         where only utmpx.ut_user is declared.
2487
2488         * readutmp.h (UT_USER): Define.
2489
2490 2000-01-23  Jim Meyering  <meyering@lucent.com>
2491
2492         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
2493         obstack.c.
2494
2495 2000-01-22  Jim Meyering  <meyering@lucent.com>
2496
2497         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
2498         [! HAVE_DECL_STRTOULL]: Declare strtoull.
2499         Required for some AIX systems.  Reported by Christian Krackowizer.
2500         [TESTING] (main): New function.
2501
2502         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
2503         * dirname.c (dir_name): Support for DOS-style file names with drive
2504         letters.
2505
2506         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
2507
2508         * strverscmp.c (ISDIGIT): Define.
2509         (strverscmp): Use ISDIGIT, not isdigit.
2510
2511 2000-01-17  Paul Eggert  <eggert@twinsun.com>
2512
2513         * nanosleep.c (nanosleep):
2514         Don't use SA_INTERRUPT to decide whether to call sigaction, as
2515         POSIX.1 doesn't require SA_INTERRUPT and some systems
2516         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
2517         it's been part of POSIX.1 since day 1 (in 1988).
2518
2519 2000-01-17  Jim Meyering  <meyering@lucent.com>
2520
2521         * interlock: Remove unused file.  Reported by François Pinard.
2522
2523 2000-01-16  Paul Eggert  <eggert@twinsun.com>
2524
2525         * quotearg.c (quotearg_buffer_restyled): Do not quote
2526         alert, backslash, formfeed, and vertical tab unnecessarily in
2527         shell quoting style.
2528
2529 Local Variables:
2530 version-control: never
2531 End: