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