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