getopt.h: Sync with libc CVS.
[gnulib.git] / lib / ChangeLog
1 2004-03-18  Paul Eggert  <eggert@cs.ucla.edu>
2
3         * getopt.h: Sync with libc CVS.
4
5 2004-03-18  Paul Eggert  <eggert@twinsun.com>
6             Bruno Haible  <bruno@clisp.org>
7
8         * mbswidth.h: Include <wchar.h> only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H,
9         not on all platforms that have <wchar.h>.
10         * mbswidth.c: Include <stdio.h> and <time.h> before <wchar.h>.
11
12 2004-03-09  Paul Eggert  <eggert@cs.ucla.edu>
13
14         * argp-parse.c, getopt.c, getopt.h, getopt1.c:
15         Sync with libc CVS.
16         * lib/getopt_int.h: New file, also synced from libc.
17
18 2004-03-07  Paul Eggert  <eggert@twinsun.com>
19
20         * c-stack.c (SIGACTION_WORKS): New macro.  Use it instead of long
21         '#if' expressions.  Unlike the code it replaces, it does not
22         depend on (defined _SC_PAGESIZE).  However, it does depend on
23         HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug
24         first reported by Jason Andrade in
25         <http://mail.gnu.org/archive/html/bug-textutils/2003-03/msg00027.html>.
26
27 2004-01-18  Simon Josefsson  <jas@extundo.com>
28
29         * strdup.h: New file.
30         * strdup.c: Include it.
31         * path-concat.c: Include strdup.h. Drop strdup declaration.
32         * userspec.c: Include strdup.h. Drop strdup declaration.
33
34 2004-02-06  Karl Berry  <karl@gnu.org>
35
36         * config.charset: update from gettext 0.14.1.
37
38 2004-02-05  Paul Eggert  <eggert@twinsun.com>
39
40         Add comments and code, prompted by suggestions from Bruno Haible
41         for sh-quote.
42         * quotearg.h (quotearg_alloc): New decl.  Improve the comments
43         describing the enum quoting_style values.
44         * quotearg.c (quotearg_alloc): New function.
45         (quotearg_buffer_restyled): Treat lone { and } as special.
46         Treat = as special.  Work around bug with older shells
47         that "see" a '\' that is really the 2nd byte of a multibyte char.
48         Quote empty string with shell_quoting_style.
49
50 2004-02-03  Bruno Haible  <bruno@clisp.org>
51
52         * pipe.h: New file, from GNU gettext.
53         * pipe.c: New file, from GNU gettext.
54
55 2004-01-27  Bruno Haible  <bruno@clisp.org>
56
57         * execute.h: New file, from GNU gettext.
58         * execute.c: New file, from GNU gettext.
59         * w32spawn.h: New file, from GNU gettext.
60
61 2004-01-23  Paul Eggert  <eggert@twinsun.com>
62
63         Exit-status fix from coreutils.
64
65         Use exit_failure consistently in place of EXIT_FAILURE,
66         so that program exit statuses are consistent on failure.
67
68         * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
69         Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
70         * argmatch.h: Comment fix to match the above.
71         * obstack.c (obstack_exit_failure) [!defined _LIBC]:
72         Now a macro referring to exit_failure, instead of a separate
73         variable.  Include "exitfail.h" to get it.
74         * xstrtol.h: Include "exitfail.h".
75         (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
76
77         * long-options.c (parse_long_options): Use prototype
78         for usage function arg.  Pass it EXIT_SUCCESS rather than 0,
79         for clarity.
80
81 2004-01-21  Jim Meyering  <jim@meyering.net>
82
83         * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
84         so as not to conflict with a different-sized __mktime_internal
85         function in GNU libc.
86         * timegm.c (__mktime_internal) [!_LIBC]: Likewise.
87         Problem building statically-linked `ls' reported by Michael Brunnbauer.
88
89 2004-01-18  Paul Eggert  <eggert@twinsun.com>
90
91         Merge from diffutils.
92
93         * file-type.c (file_type): Add typed memory objects.
94         * file-type.h (S_TYPEISTMO): New macro.
95
96         * c-stack.h (c_stack_action): Remove argv argument.
97         * c-stack.c (c_stack_action): Likewise.  All uses changed.
98         (die): Don't calculate message unless segv_action returns.
99         (get_stack_location, min_address_from_argv, max_address_from_argv,
100         volatile stack_base, volatile_stack_size): Remove.
101         (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume
102         that every segmentation violation is a stack overflow.  (Ouch!)
103         See Debian bug 136249 (still outstanding) for more info about why
104         HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels.
105
106 2003-11-30  Bruno Haible  <bruno@clisp.org>
107
108         Safer stack allocation.
109         * setenv.c: Include allocsa.h.
110         (alloca): Remove fallback definition.
111         (freea): Remove macro.
112         (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
113         instead of freea.
114
115 2003-10-17  Bruno Haible  <bruno@clisp.org>
116
117         * binary-io.h: Avoid warnings on Cygwin.
118
119 2003-12-28  Bruno Haible  <bruno@clisp.org>
120
121         * wait-process.c (wait_subprocess): Add ignore_sigpipe argument.
122         * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially.
123
124 2003-11-28  Bruno Haible  <bruno@clisp.org>
125
126         * wait-process.c (cleanup_slaves): Use ANSI C declaration.
127
128 2003-11-27  Bruno Haible  <bruno@clisp.org>
129
130         * wait-process.c: On Windows, include windows.h. Needed on mingw.
131
132 2003-11-17  Bruno Haible  <bruno@clisp.org>
133
134         * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch.
135
136 2003-11-24  Bruno Haible  <bruno@clisp.org>
137
138         * xallocsa.h: New file, from GNU gettext.
139         * xallocsa.c: New file, from GNU gettext.
140
141 2003-11-24  Bruno Haible  <bruno@clisp.org>
142
143         * allocsa.h: New file, from GNU gettext.
144         * allocsa.c: New file, from GNU gettext.
145
146 2003-11-24  Bruno Haible  <bruno@clisp.org>
147
148         * eealloc.h: New file.
149
150 2004-01-15  Jim Meyering  <jim@meyering.net>
151
152         Merge from coreutils.
153
154         * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code.  These
155         days, gcc-3.x does better all by itself.  Patch from Dean Gaudet:
156         http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html
157
158         * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
159         optional configure-time default.
160
161         * version-etc.c (version_etc_copyright): Update copyright date.
162
163         * xreadlink.c (xreadlink): Correct outdated comment.
164
165 2004-01-15  Paul Eggert  <eggert@twinsun.com>
166
167         Merge from coreutils.
168
169         * posixver.c: Include posixver.h.
170
171         * same.c: Include <stdbool.h>, <limits.h>.
172         (_POSIX_NAME_MAX): Define if not defined.
173         (MIN): New macro.
174         (same_name): If file names are silently truncated, report
175         that the file names are the same if they are the same after
176         the silent truncation.
177
178         * xstrtod.h (xstrtod): Accept an extra arg, specifying the
179         conversion function.
180         * xstrtod.c (xstrtod): Likewise.  All callers changed to
181         include c-strtod.h and use c_strtod.  Don't include stdlib.h; no
182         longer needed.
183
184 2004-01-14  Paul Eggert  <eggert@twinsun.com>
185
186         * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
187         with like-named macro in fnmatch.c.
188         (EXT): Use an internal constant instead.
189
190         Merge fnmatch patches from glibc.
191         * fnmatch.c (mbsinit): Remove define.
192         Add libc_hidden_ver (__fnmatch, fnmatch).
193         * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
194         Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
195
196 2003-12-14  Karl Berry  <karl@gnu.org>
197
198         * config.charset: update from gettext-runtime.
199
200 2003-12-03  Paul Eggert  <eggert@twinsun.com>
201
202         * getgroups.c (getgroups): xmalloc takes one argument, not two.
203         Bug reported by Alfred M. Szmidt.
204
205 2003-11-29  Karl Berry  <karl@gnu.org>
206
207         * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
208
209 2003-11-23  Paul Eggert  <eggert@twinsun.com>
210             Bruno Haible  <bruno@clisp.org>
211
212         * printf-parse.h: Don't include sys/types.h.
213         (ARG_NONE): New macro.
214         (char_directive): Change type of *arg_index fields to size_t.
215         * printf-parse.c: Don't include sys/types.h.
216         (SSIZE_MAX): Remove macro.
217         (PRINTF_PARSE): Change the type of the arg_index variables to size_t.
218         Remove unnecessary overflow check.
219         * vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
220         fields.
221
222 2003-11-24  Paul Eggert  <eggert@twinsun.com>
223
224         * alloca.c: Remove dependency on xalloc module.
225         (xalloc_die): Remove.
226         (memory_full) [!defined emacs]: New macro.
227         [!defined emacs]: Don't include xalloc.h.
228         (alloca): Invoke memory_full, not xalloc_die, if malloc fails or
229         address arithmetic overflows.  Change datatypes a bit to avoid
230         unnecessary casts.
231
232 2003-11-22  Jim Meyering  <jim@meyering.net>
233
234         * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/.
235
236 2003-11-17  Bruno Haible  <bruno@clisp.org>
237
238         * vasnprintf.c (alloca): Remove fallback definition.
239         (freea): Remove definition.
240         (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
241         Reported by Paul Eggert.
242
243 2003-11-17  Jim Meyering  <jim@meyering.net>
244
245         On systems without utime and without a utimes function capable of
246         dealing with a NULL struct utimbuf* argument, this utime replacement
247         could -- in unusual circumstances -- leak a file descriptor.
248         * utime.c: Include <unistd.h> and <errno.h>.
249         (utime_null): Be sure to close `fd' and to preserve errno.
250         Reported by Geoff Collyer via Arnold Robbins.
251
252 2003-11-16  Paul Eggert  <eggert@twinsun.com>
253             Bruno Haible  <bruno@clisp.org>
254
255         Protect against address arithmetic overflow.
256         * printf-args.h: Include stddef.h.
257         (arguments): Change type of field 'count' to size_t.
258         * printf-args.c (printf_fetchargs): Use size_t instead of
259         'unsigned int' where appropriate.
260         * printf-parse.h: Include sys/types.h.
261         (char_directive): Change type of *arg_index fields to ssize_t.
262         (char_directives): Change type of fields 'count', max_*_length to
263         size_t.
264         * printf-parse.c: Include sys/types.h and xsize.h.
265         (SSIZE_MAX): Define fallback value.
266         (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
267         instead of 'int' where appropriate. Check a_allocated, d_allocated
268         against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
269         * vasnprintf.c: Include xsize.h.
270         (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
271         Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
272         overflow. Avoid wraparound when converting a width or precision from
273         decimal to binary.
274
275 2003-11-16  Bruno Haible  <bruno@clisp.org>
276
277         Update from GNU gettext.
278         * printf-parse.c: Generalize to it can be compiled for wide strings.
279         (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
280         * vasnprintf.c: Generalize to it can be compiled for wide strings.
281         (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
282         SNPRINTF): New macros.
283         Don't include <alloca.h> if the file is used inside libintl.
284         (local_wcslen): New function, for Solaris 2.5.1.
285         (VASNPRINTF): Use it instead of wcslen.
286
287 2003-11-16  Bruno Haible  <bruno@clisp.org>
288
289         * xsize.h (xmax): New function.
290         (xsum, xsum3, xsum4): Declare as "pure" functions.
291
292 2003-11-12  Paul Eggert  <eggert@twinsun.com>
293
294         * xalloc.h: Do not include <limits.h> or <stdint.h>.
295         (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for
296         the heuristic, rather than PTRDIFF_MAX and SIZE_MAX.  This
297         heuristic is just as accurate as far as we know, and it removes a
298         dependency on size_max.m4 and ptrdiff_max.m4.
299
300 2003-11-12  Paul Eggert  <eggert@twinsun.com>
301
302         * xstrtol.c (__xstrtol): Remove "break" immediately after
303         "return", to pacify some unknown compiler.  Problem reported
304         by Joerg Schilling.
305
306 2003-11-11  Bruno Haible  <bruno@clisp.org>
307
308         * xsize.h (SIZE_MAX): Remove fallback definition.
309         * xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are
310         defined.
311
312 2003-11-10  Paul Eggert  <eggert@twinsun.com>
313
314         * xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX &&
315         PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have
316         rejected some allocations of exactly SIZE_MAX - 2 bytes.
317         From Bruno Haible.
318         [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX,
319         not (size_t) -1, since it's defined here.
320
321 2003-11-06  Paul Eggert  <eggert@twinsun.com>
322
323         * xalloc.h [HAVE_STDINT_H]: Include <stdint.h>.
324         (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]:
325         Reject sizes of exactly SIZE_MAX bytes.
326         * xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX
327         is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts.
328
329 2003-11-05  Bruno Haible  <bruno@clisp.org>
330
331         * xsize.h: Include limits.h, to avoid a possible collision with
332         SIZE_MAX defined in <limits.h> on Solaris.
333
334 2003-11-04  Bruno Haible  <bruno@clisp.org>
335
336         * xsize.h: New file.
337         * linebreak.c: Include xsize.h.
338         (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc()
339         argument for overflow.
340         Suggested by Paul Eggert.
341
342 2003-10-31  Bruno Haible  <bruno@clisp.org>
343
344         * wait-process.c (wait_process): Use waitid with WNOWAIT if available,
345         to avoid (extremely rare) race condition.
346         Suggested by Paul Eggert.
347
348 2003-11-03  Jim Meyering  <jim@meyering.net>
349
350         * userspec.c: Include "userspec.h".
351         * userspec.h: New file.
352
353 2003-10-31  Paul Eggert  <eggert@twinsun.com>
354
355         * mountlist.h (struct mount_entry.me_type_malloced): New member.
356         * mountlist.c (SIZE_MAX): Define if not defined already.
357         (read_filesystem_list): Set and use me_type_malloced.
358         Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
359         whatever the type happens to be), for brevity and consistency.
360         Check for size calculation overflow on Alphas running OSF/1.
361
362 2003-10-31  Jim Meyering  <jim@meyering.net>
363
364         * hash.c: Include "xalloc.h" for use of xalloc_oversized.
365
366         * linebuffer.c: Include <string.h> for declaration of memset.
367
368 2003-10-30  Paul Eggert  <eggert@twinsun.com>
369             Bruno Haible  <bruno@clisp.org>
370
371         * vasprintf.c: Include <limits.h>, <stdlib.h>.
372         (vasprintf): Fail if the resulting length doesn't fit in an 'int'.
373
374 2003-10-29  Paul Eggert  <eggert@twinsun.com>
375
376         * xalloc.h (xalloc_oversized): Now a macro, not a function,
377         so that it works even if SIZE_MAX < N.  Do not include <stdbool.h>;
378         no longer needed.
379         * quotearg.c (quotearg_n_options): Use it.
380         * group-member.c: Include <stdbool.h>.
381         (free_group_info): Arg is now const *; don't free arg.
382         (get_group_info): Now returns bool and accepts struct group_info *,
383         rather than returning a malloc'ed struct group_info *.
384         All uses changed.  Check for overflow in internal size calculation.
385
386         * getusershell.c (readname): Simplify the code by using x2nrealloc
387         rather than xmalloc/xrealloc.
388         * linebuffer.c (initbuffer, readlinebuffer): Simplify the code by
389         using x2realloc rather than xmalloc/xrealloc.  Also, fix a C
390         conformance bug: the old code used a pointer after freeing the
391         storage that it addressed.
392         * hash.c (hash_initialize): Simplify the code by using xalloc_oversized
393         rather than doing it by hand.
394         * getgroups.c (getgroups): Don't use xrealloc, since we don't need
395         the buffer preserved.  Use free and xmalloc instead.
396         * quotearg.c (quotearg_n_options): Likewise.
397         Use a simpler test for size overflow.  Don't use xalloc_oversized
398         because unsigned int might be wider than size_t (!); this suggests
399         that we should switch from unsigned int to size_t for slot numbers.
400
401 2003-10-27  Bruno Haible  <bruno@clisp.org>
402
403         * stdbool_.h: Better support for BeOS.
404
405 2003-10-27  Paul Eggert  <eggert@twinsun.com>
406
407         * exclude.c (new_exclude): Use xzalloc rather than xmalloc
408         to allocate the returned structure.  Do not allocate a subarray,
409         as x2nrealloc will do that.
410         (add_exclude): Use x2nrealloc to reallocate ex->exclude,
411         instead of xnrealloc.
412         (add_exclude_file): Use x2realloc instead of malloc + xnrealloc.
413
414 2003-10-26  Paul Eggert  <eggert@twinsun.com>
415
416         * xalloc.h (xalloc_oversized): New static inline function, for
417         callers that want to do their own size-overflow checking.  Include
418         <stdbool.h>, since xalloc_oversized returns bool.
419         * xalloc.c (array_size_overflow): Remove.  All callers changed
420         to use xalloc_oversized.
421
422         Add two functions x2realloc, x2nrealloc, for programs that grow
423         arrays dynamically by doubling their sizes.
424         * xalloc.h (x2realloc, x2nrealloc): New decls.
425         * xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc):
426         New functions.
427
428         Port to C99 semantics for 'inline' of external functions.
429         Bug reported by Bruno Haible.
430         * xmalloc.c (xnmalloc_inline): New static inline function,
431         with the old contents of xnmalloc.
432         (xnmalloc, xmalloc): Use it.
433         (xnrealloc_inline): New static inline function,
434         with the old contents of xnrealloc.
435         (xnrealloc, xrealloc): Use it.
436
437         * alloc.c (alloca): xmalloc cannot return NULL, so don't test for that.
438
439 2003-10-25  Paul Eggert  <eggert@twinsun.com>
440
441         Fix several address-calculation bugs in the hash modules,
442         plus some minor code cleanup.
443
444         * hash.h: Include <stdbool.h>, for bool.
445         * hash.c: Don't include <stdbool.h>, since hash.h does it now.
446         * hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used,
447         hash_get_n_entries, hash_get_max_bucket_length,
448         hash_get_entries, hash_do_for_each, hash_string, hash_initialize,
449         hash_rehash): Use size_t rather than unsigned.
450         * hash.c (struct hash_table, hash_get_n_buckets,
451         hash_get_n_buckets_used, hash_get_n_entries,
452         hash_get_max_bucket_length, hash_table_ok, hash_print_statistics,
453         hash_get_entries, hash_do_for_each, hash_string, is_prime,
454         next_prime, hash_initialize, hash_rehash, hash_delete, hash_print):
455         Likewise.
456         (SIZE_MAX): Define if not defined.
457         (hash_get_max_bucket_length, hash_table_ok, hash_lookup,
458         hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each,
459         hash_print):
460         Use const * when possible.
461         (hash_string): Use (unsigned char) *P rather than *(unsigned char *) P.
462         (check_tuning): Fix bug: if tuning parameters were very close to
463         0 or 1, rounding errors could have caused subscript violations.
464         (hash_initialize, allocate_entry, hash_print): Remove unnecessary cast.
465         (hash_initialize): Add 'fail:' label
466         to free table and return NULL, and use it to simplify code.
467         Use calloc rather than clearing the storage ourself.
468         (hash_initialize, hash_rehash): Check for arithmetic overflow in
469         buffer size calculations.
470         * hash-pjw.h (hash_pjw): Use size_t, not unsigned.
471         Include <stddef.h>, for size_t.
472         * hash-pjw.c (hash_pjw): Likewise.
473         Switch to method described by Bruno Haible.
474         Include <limits.h>, for CHAR_BIT.
475         (SIZE_BITS): New macro.
476
477 2003-10-21  Paul Eggert  <eggert@twinsun.com>
478
479         * getndelim2.c (getndelim2): When size calculation overflows,
480         ceiling the allocation at NMAX bytes rather than silently
481         discarding input bytes before NMAX is reached.  This makes
482         a difference only if NMAX exceeds SIZE_MAX / 2.
483
484         * obstack.c: Merge from glibc.
485         [defined _LIBC]: Include <obstack.h>, not "obstack.h".
486         Add libc_hidden_def (_obstack_newchunk).
487         (_obstack_free) [! defined _LIBC]: Remove.
488         [defined _LIBC]: Make a strong alias from obstack_free, rather than
489         a clone of the function body.
490         (fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove.
491         [defined _LIBC && !defined USE_IN_LIBIO]: Include <libio/iolibio.h>.
492
493         * obstack.h: Indenting cleanup, to make it easier to merge with glibc.
494         (obstack_grow, obstack_grow0): Remove unnecessary parentheses around
495         arg to memcpy.
496
497         * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
498         (obstack_ptr_grow_fast, obstack_int_grow_fast):
499         Don't use lvalue casts, as GCC plans to remove support for them
500         in GCC 3.5.  Reported by Joseph S. Myers.  This bug
501         was also present in the non-GCC version, indicating that this
502         code had always been buggy and had never been widely used.
503         (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
504         Use the fast variant of each macro, rather than copying the
505         definiens of the fast variant; that way, we'll be more likely to
506         catch future bugs in the fast variants.
507
508 2003-10-20  Bruno Haible  <bruno@clisp.org>
509
510         * wait-process.h: New file, from GNU gettext.
511         * wait-process.c: New file, from GNU gettext.
512
513 2003-10-19  Jim Meyering  <jim@meyering.net>
514
515         * vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20.
516
517 2003-10-16  Paul Eggert  <eggert@twinsun.com>
518
519         * getgroups.c: Include <errno.h>, <stdlib.h>.
520         (getgroups): First arg is int, not size_t.
521         Don't let 'free' mangle errno.
522
523 2003-10-16  Jim Meyering  <jim@meyering.net>
524
525         * xmalloc.c: Include <string.h>, for declarations of memset and memcpy.
526
527 2003-10-15  Paul Eggert  <eggert@twinsun.com>
528
529         * exclude.c: Do not include <inttypes.h> or <stdint.h>.
530         (SIZE_MAX): Remove.
531         (new_exclude, add_exclude_file): Initial size no longer needs to
532         be a power of 2.
533         (add_exclude, add_exclude_file): Use xnrealloc instead of rolling
534         our own address arithmetic overflow checking.
535
536         * fnmatch.c (SIZE_MAX): Define if standard headers don't.
537         (fnmatch): Do not alloca more than 2000 wide characters;
538         instead, use malloc for large buffers.
539         Check for address arithmetic overflow, and return -1
540         with errno set to ENOMEM in that case.
541         * fnmatch_loop.c (ALLOCA_LIMIT): New macro.
542         (NEW_PATTERN): Do not alloca more than 8000 bytes;
543         instead, return -1.  Check for address arithmetic overflow.
544
545 2003-10-14  Paul Eggert  <eggert@twinsun.com>
546
547         Handle invalid suffixes and overflow independently, so that
548         callers can treat them independently as needed.  Fix some bugs in
549         suffix handling, e.g., "100k@" was not diagnosed as an invalid
550         suffix for a human-readable blocksize.  The major caller-visible
551         change is the addition of a new
552         LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating
553         that both overflow and suffix chars were found.
554
555         * human.c (humblock): Don't check separately for invalid suffix
556         char; that is xstrtoumax's job (now that its bug is fixed).
557         * xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined
558         INTMAX_MAX]: New macros.
559         * xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM,
560         TYPE_MAXIMUM): New macros.
561         (bkm_scale, bkm_scale_by_power): Return strtol_error, not int.
562         (bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values
563         if overflow occurs, as it's what __strtol does and it's more useful
564         in practice.
565         (__xstrtol): If __strtol reports some error other than ERANGE,
566         reflect it to the caller as LONGINT_INVALID.  If it reports
567         ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW
568         | LONGINT_INVALID_SUFFIX_CHAR if both errors occur.
569         * xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum
570         value.
571         (_STRTOL_ERROR): Handle it.  Abort when given unknown error codes.
572         * xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros.
573         * xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM)
574         [defined UINTMAX_MAX]: New macros.
575
576 2003-10-14  Bruno Haible  <bruno@clisp.org>
577
578         * fatal-signal.h: Improved comments. Suggested by Paul Eggert.
579         * fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert.
580         Also use volatile where needed.
581
582 2003-10-12  Paul Eggert  <eggert@twinsun.com>
583
584         * lib/xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
585         (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
586         and define in terms of the other primitives.
587         * lib/xmalloc.c: Include stdbool.h; do not include exit.h.
588         (SIZE_MAX): Define if not already defined.
589         (array_size_overflow): New function.
590         (xalloc_die): Abort instead of exiting if 'error' returns.
591         (xnmalloc, xnrealloc, xzalloc, xclone): New functions.
592         (xmalloc, xrealloc): Use them.
593         (xcalloc): Check for address arithmetic overflow.
594         * lib/xstrdup.c (xstrdup): Use xclone, since memcpy should be
595         a bit faster than strcpy.
596
597 2003-10-08  Paul Eggert  <eggert@twinsun.com>
598
599         Merge getpass from libc, plus a few fixes.
600
601         * getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1.
602         Include <stdbool.h>.
603         Include <stdio_ext.h> if HAVE_STDIO_H, otherwise define
604         __fsetlocking to empty.
605         [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but
606         do include <bits/libc-lock.h>.
607         Do not include <fcntl.h>; not needed.
608         [_LIBC]: Include <wchar.h>.
609         (NOTCANCEL_MODE): New macro.
610         (flockfile, funlockfile) [_LIBC]: New macros.
611         (__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr)
612         [!_LIBC]: New macros.
613         (call_fclose): New function.
614         (getpass): Use it.  Save tty stream separately; this simplifies the
615         code and makes it more reliable if stdin happens to equal stdout.
616         Invoke __fsetlocking on tty.
617         Handle thread cancellation if needed.
618         Namespace cleanup (use __tcgetattr, __getline).
619         Use bool for Booleans.
620         [USE_IN_LIBIO]: Handle wide streams.
621         [!_LIBC]: Unconditionally do the fseek, since we don't know what
622         stream might go where.
623
624         * unlocked-io.h: Include <stdio.h>, so that the caller
625         doesn't have to include <stdio.h> before us.
626         (clearerr_unlocked, feof_unlocked, ferror_unlocked,
627         fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
628         fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
629         putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
630         if not declared, so that we can use getpass.c code from libc without
631         rewriting it.
632         (flockfile, ftrylockfile, funlockfile): New macros.
633
634 2003-10-06  Bruno Haible  <bruno@clisp.org>
635
636         * version-etc-2.h: Remove file.
637         * version-etc-2.c: Remove file.
638
639 2003-09-25  Jim Meyering  <jim@meyering.net>
640             Bruno Haible  <bruno@clisp.org>
641
642         This lets translators provide better translations for the
643         "Written by ..." part of --version output.
644         * version-etc.h: Include stdarg.h.
645         (version_etc_copyright): Declare as readonly.
646         (version_etc): Make this function variadic with a NULL-terminated list
647         of author name strings.
648         (version_etc_va): New declaration.
649         * version-etc.c: Include stdarg.h, stdlib.h.
650         (version_etc_copyright): Declare as readonly.
651         (version_etc_va): New function. Provide a different translatable string
652         for each possible number of authors < 10. Abbreviate when there are 10
653         authors or more.
654         (version_etc): Make this function variadic. Call version_etc_va.
655         Suggestion from Gary V. Vaughan.
656
657         * long-options.h (parse_long_options): Change prototype: the authors
658         string is moved to the end and becomes variadic.
659         * long-options.c: Include stdarg.h.
660         (parse_long_options): Make this function variadic, too.
661         Call version_etc_va, not version_etc.
662
663 2003-10-06  Bruno Haible  <bruno@clisp.org>
664
665         * fatal-signal.h: New file, from GNU gettext.
666         * fatal-signal.c: New file, from GNU gettext.
667
668 2003-10-04  Karl Berry  <karl@gnu.org>
669
670         * argp*: update from libc.
671
672 2003-10-01  Larry Jones  <lawrence.jones@eds.com>
673
674         * getpass.c (getpass): Use a no-op fseek when switching from input to
675         output mode on the same stream.
676
677 2003-09-29  Paul Eggert  <eggert@twinsun.com>
678
679         * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
680         Fix arg typo in previous patch.
681
682 2003-09-28  Jim Meyering  <jim@meyering.net>
683
684         * error.c: Correct cpp indentation.
685
686 2003-09-27  Paul Eggert  <eggert@twinsun.com>
687
688         * minmax.h (MIN, MAX) [__STDC__ && defined __GNUC__ && __GNUC__ >= 2]:
689         Omit the special code that used __typeof__, since we worry that
690         it could be more trouble than it's worth.  See:
691         http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00090.html
692         http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00095.html
693
694         * free.c: New file.
695
696 2003-09-26  Jim Meyering  <jim@meyering.net>
697
698         * error.c (error_tail): Move some declarations
699         into inner scope where the local variables are used.
700
701 2003-09-26  Bruno Haible  <bruno@clisp.org>
702
703         * stpncpy.h (gnu_stpncpy): New declaration.
704         (stpncpy): Define as alias for gnu_stpncpy.
705         * stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy.
706
707 2003-09-26  Paul Eggert  <eggert@twinsun.com>
708
709         * error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
710         (error_tail): Do not loop, reallocating temporary buffer, since
711         the output cannot contain more wide characters than the input
712         contains bytes, the size must be big enough already.  This avoids
713         one potential size overflow calculation.  Check for size overflow
714         when calculating temporary buffer size.  Free temporary buffer
715         when done, if it was allocated with malloc; this plugs a memory
716         leak.  Remove casts from void * to pointers, that are no longer
717         needed now that we're assuming C89 or better.
718
719         Merge error changes from glibc.
720
721         * error.c, error.h: Update copyright notice header to match glibc.
722         * error.c [defined _LIBC]: Include <errno.h>, <bits/libc-lock.h>.
723         (error, error_at_line) [defined _LIBC && defined __libc_ptf_call]:
724         Disable cancellation while printing error.
725         * error.h: Prepend __ to parameter names.
726
727 2003-09-25  Karl Berry  <karl@gnu.org>
728
729         * argp-fmtstream.c, argp-help.c: update from libc.
730
731 2003-09-25  Bruno Haible  <bruno@clisp.org>
732
733         * version-etc-2.h: New file, from version-etc.h with modifications.
734         * version-etc-2.c: New file, from version-etc.c with modifications.
735
736 2003-09-25  Simon Josefsson  <jas@extundo.com>
737
738         * xgetdomainname.h: New file.
739         * xgetdomainname.c: New file.
740
741 2003-09-25  Simon Josefsson  <jas@extundo.com>
742             Bruno Haible  <bruno@clisp.org>
743
744         * getdomainname.h: New file.
745         * getdomainname.c: New file.
746
747 2003-09-24  Paul Eggert  <eggert@twinsun.com>
748
749         * linebuffer.c (freebuffer): Don't free the argument, just
750         the buffer associated with the argument.  Bug reported by
751         Simon Josefsson.
752
753 2003-09-19  Karl Berry  <karl@gnu.org>
754
755         * argp.h: update from libc.
756
757 2003-09-16  Paul Eggert  <eggert@twinsun.com>
758
759         * linebuffer.c (readlinebuffer): Return NULL immediately upon
760         input error, instead of returning NULL the next time we are called
761         (and therefore losing track of errno).
762
763 2003-09-15  Paul Eggert  <eggert@twinsun.com>
764
765         * getndelim2.c (getndelim2): Don't trash errno when a read
766         fails, so that the caller gets the proper errno.
767
768         * readutmp.c (read_utmp): Likewise.
769         Check for fstat error.  Close stream and free storage
770         when failing.
771
772 2003-09-14  Bruno Haible  <bruno@clisp.org>
773
774         * fwriteerror.h: New file.
775         * fwriteerror.c: New file.
776
777 2003-09-14  Jim Meyering  <jim@meyering.net>
778
779         * getloadavg.c: Correct cpp indentation.
780         * strdup.c: Likewise.
781         * vasnprintf.c: Likewise.
782
783 2003-09-12  Paul Eggert  <eggert@twinsun.com>
784
785         * argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h.
786         * obstack.c [!defined _LIBC]: Likewise.
787         * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
788         * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
789         * exitfail.c: Don't include stdlib.h; no longer needed.
790
791         More changes to assume C89 or better.
792
793         * error.c (error_tail): Assume vprintf.
794
795         * argmatch.c (getenv): Remove decl.
796         * progreloc.c (get_full_program_name): Define via prototype.
797         * setenv.c (clearenv): Likewise.
798         * stpncpy.c: Do not include <string.h> or <sys/types.h>; not
799         needed.
800         * strdup.c: Include <stdlib.h>, <string.h> unconditionally.
801         (malloc, memcpy): Remove decls.
802         * strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove.
803         (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove.
804         Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
805         (memcpy): Remove macro.
806         (MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally.
807         (__P): Remove.  All uses removed.
808         (PTR): Remove.  All uses changed to void *.
809         (CHAR_BIT, NULL): Remove.
810         (spaces, zeros, memset_space, memset_zero)
811         [!defined memset && !defined HAVE_MEMSET && !defined _LIBC]:
812         Remove.
813         (LOCALE_PARAM, LOCALE_PARAM_DECL): Remove.
814         (memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days):
815         Define with prototype.
816         Remove now-unnecessary prototype decl.
817         (extra_args_spec): Assume ANSI C.  All uses changed.
818         (extra_args_spec_iso): Remove.
819         (my_strftime, emacs_strftimeu): Define via prototype.
820         * strtod.c: Include <float.h>, <stdlib.h>, <string.h>
821         unconditionally.
822         (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls.
823         * strtoimax.c: Include <stdlib.h> unconditionally.
824         (strtoul, strtol): Remove decls.
825         * strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX,
826         LONG_MAX): Remove.
827         Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
828         (LOCALE_PARAM_DECL): Remove.  All uses changed to LOCALE_PARAM_PROTO.
829         (LOCALE_PARAM_PROTO): New macro.
830         (INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R.
831         (INTERNAL (strtol), strtol): Define with a prototype.
832         (PARAMS): Remove.  All uses removed.
833         * tempname.c: Include <string.h> unconditionally.
834         * userspec.c: Include <stdlib.h>, <string.h> unconditionally.
835         * xgethostname.c (main): Define with a prototype.
836         * xmalloc.c: Include "xalloc.h" first, to check interface.
837         Include <stdlib.h> unconditionally.
838         (calloc, malloc, realloc, free): Remove decls.
839         * xstrtod.c: Include "xstrtod.h" first, to check interface.
840         Include <stdlib.h> unconditionally.  Sort include file names.
841         (strtod): Remove.
842         (xstrtod): Define with a prototype.
843         * xstrtol.c: Include <stdlib.h>, <string.h> unconditionally.
844         (strtol, strtoul): Remove decls.
845
846 2003-09-11  Paul Eggert  <eggert@twinsun.com>
847
848         * strndup.c: Don't include <stdio.h>, <sys/types.h>.
849         Include <stdlib.h>, <string.h> unconditionally.
850         Remove now-unnecessary cast to char *.
851         * strnlen.c: Include <string.h> unconditionally.
852         * yesno.c (yesno): Define with a prototype.
853
854 2003-09-10  Bruno Haible  <bruno@clisp.org>
855
856         * strcspn.c: Include <string.h> unconditionally.
857         * strpbrk.c: Include <string.h> unconditionally.
858         * strstr.c: Include <string.h> unconditionally.
859         * unicodeio.c: Include <string.h> unconditionally.
860         * setenv.c: Include <stdlib.h> and <string.h> unconditionally.
861         * unsetenv.c: Likewise.
862         * xreadlink.c: Include <stdlib.h> unconditionally.
863         * yesno.c: Include <stdlib.h> unconditionally.
864         (rpmatch): Add prototype.
865
866 2003-09-10  Jim Meyering  <jim@meyering.net>
867
868         * error.c: Correct indentation of cpp directives.
869
870 2003-09-09  Paul Eggert  <eggert@twinsun.com>
871
872         More K&R removal.
873
874         * acosl.c (main): Use a prototype.
875         * asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c,
876         tanl.c: Likewise.
877
878         * getloadavg.c (getloadavg, main): Define via prototypes.
879
880         * getopt.h (struct option.name): Assume C89, and use 'const'.
881         (getopt, etopt_long, getopt_long_only, _getopt_internal)
882         [defined __GNU_LIBRARY__]: Assume C89, so we can always declare
883         with a prototype.
884         * getopt.c (const): Remove macro.
885         Include <string.h> unconditionally.
886         (my_index): Remove; all uses changed to strchr.
887         (strlen): Remove decl.
888         (exchange): Remove forward decl; no longer needed.
889         (exchange, _getopt_initialize, _getopt_internal, getopt, main):
890         Define with prototype.
891         * getopt1.c (const): Remove macro.
892         (getopt_long, getopt_long_only, main): Define with prototype.
893
894         * getugroups.c: Include <string.h> unconditionally.
895
896         * getusershell.c: Include <stdlib.h> unconditionally.
897         (getusershell, setusershell, endusershell, readname, main):
898         Define with prototypes.
899
900         * group-member.c: Include group-member.h first.
901         Include <stdlib.h> unconditionally.
902
903         * hard-locale.c: Include hard-locale.h first.
904         Include <stdlib.h>, <string.h> unconditionally.
905
906         * hash.c (free, malloc): Remove decls.
907         Include <stdlib.h> unconditionally.
908
909         * human.c: Include <stdlib.h>, <string.h> unconditionally.
910         (getenv): Do not declare.
911
912         * idcache.c: Include <string.h> unconditionally.
913
914         * long-options.c: Include long-options.h first, to test interface.
915         Include <stdlib.h> unconditionally.
916
917         * makepath.c: Include makepath.h first, to test interface.
918         Include <stdlib.h> and <string.h> unconditionally.
919
920         * linebuffer.c: Include <stdlib.h>.
921         (free): Remove decl.
922
923         * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h.
924         rpl_malloc returns void *, not char *.
925         * realloc.c (rpl_realloc): Likewise.  Also, define with a prototype.
926
927         * md5.h: Include <limits.h> unconditionally.
928         (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
929         (__P): Remove; all uses removed.
930         * md5.c: Include "md5.h" first.
931         (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
932         md5_buffer, md5_process_bytes, md5_process_block):
933         Define with prototypes.
934         * sha.h (__P): Remove all uses.  (It wasn't defined??)
935         * sha.c: Include "sha.h" first.
936         Include <stdlib.h>, <string.h> unconditionally.
937
938         * memchr.c (__ptr_t): Remove; all uses changed to void *.
939         * memcmp.c (__ptr_t): Likewise.
940         * memrchr.c (__ptr_t): Likewise.
941         * memchr.c, memcmp.c, memcoll.c, memrchr.c:
942         Include <string.h> unconditionally.
943         * memchr.c, memrchr.c: Include <limits.h> unconditionally.
944         * memchr.c: Include <stdlib.h> unconditionally.
945         * memchr.c (LONG_MAX): Remove.
946         * memrchr.c (LONG_MAX): Likewise.
947         * memchr.c (__memchr): Define via a prototype.
948         * memrchr.c (__memrchr): Likewise.
949         * memcmp.c (__P): Remove, and remove all uses.
950         (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
951         Remove forward decls; no longer needed.
952         * memcpy.c, memmove.c, memset.c: Include <stddef.h>.
953         Use types required by C89 in prototype.
954
955         * mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
956         * savedir.c: Likewise.
957         * mkdir.c (free): Remove decl.
958         * rmdir.c (rmdir): Define with a prototype.
959         * savedir.c: Include savedir.h first, to test interface.
960
961         * mktime.c (STDC_HEADERS): Remove.
962         Include <stdlib.h>, <string.h> unconditionally.
963
964         * modechange.c: Include <stdlib.h> unconditionally.
965         (malloc): Remove decl.
966
967         * mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
968         (free): Remove decl.
969
970         * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
971         Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
972         (This type really should be intptr_t, but that's a C99ism.)
973         (_obstack_memcpy): Remove: all uses changed to memcpy.
974         Include <string.h> unconditionally.
975         (struct obstack): Assume __STDC__ for types of members
976         chunkfun, freefun, extra_arg.
977         (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
978         _obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
979         obstack_begin, obstack_specify_allocation,
980         obstack_specify_allocation_with_arg, obstack_chunkfun,
981         obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
982         Remove unprototyped decls and the macros that use them.
983         * obstack.c (POINTER): Remove.  All uses changed to void *.
984         (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
985         _obstack_begin, _obstack_begin_1, _obstack_allocated_p)
986         (defined __STDC__ && __STDC__)]:
987         Remove nonprototyped code.
988         Include <stdlib.h> unconditionally.
989         (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
990         _obstack_allocated_p, _obstack_free, obstack_free,
991         _obstack_memory_used, print_and_abort):
992         Define using prototypes.
993         (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
994         obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
995         obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
996         obstack_next_free, obstack_object_size, obstack_room) [0]:
997         Remove unused, unprototyped code.
998
999         * path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
1000
1001         * physmem.c (physmem_total, physmem_available, main): Define
1002         with prototypes.
1003
1004         * posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
1005         (main): Define with a prototype.
1006
1007         * posixver.c (getenv): Remove decl.
1008
1009         * putenv.c (malloc): Returns void *, not char *.
1010         Include <string.h> unconditionally.
1011         (strchr, memcpy, NULL): Do not define.
1012
1013         * readtokens.c: Include readtokens.h first, to test interface.
1014         Include <stdlib.h>, <string.h> unconditionally.
1015         (init_tokenbuffer): Define with a prototype.
1016
1017         * regex.c (PARAMS): Remove.  All uses removed.
1018         All uses of _RE_ARGS removed, too.
1019         Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
1020         unconditionally.
1021         (bzero): Assume memset exists.
1022         (memcmp, memcpy, NULL): Remove.
1023         (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
1024         char, or assignments to local vars of type signed char.
1025         (init_syntax_once, PREFIX(extract_number_and_incr),
1026         PREFIX(print_partial_compiled_pattern),
1027         PREFIX(print_compiled_pattern), PREFIX(print_double_string),
1028         convert_mbs_to_wcs, print_fastmap, re_set_syntax,
1029         PREFIX(regex_grow_registers), PREFIX(regex_compile),
1030         PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
1031         PREFIX(insert_op2), PREFIX(at_begline_loc_p),
1032         PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
1033         wcs_compile_range, byte_compile_range, truncate_wchar,
1034         PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
1035         re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
1036         count_mbs_length, wcs_re_match_2_internal,
1037         byte_re_match_2_internal, PREFIX(group_match_null_string_p),
1038         PREFIX(alt_match_null_string_p),
1039         PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
1040         re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
1041         regfree, PREFIX(extract_number)): Define with prototype.  Remove
1042         now-unnecessary declaration, if any.
1043         (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
1044         regcomp, regexec):
1045         Remove now-unnecessary casts among pointer types.
1046         * regex.h (_RE_ARGS): Remove.  All uses removed.
1047
1048         * rename.c: Include <stdlib.h>, <string.h> unconditionally.
1049         (free): Remove decl.
1050
1051         * rpmatch.c: Include <stdlib.h> unconditionally.
1052
1053         * same.c: Include <stdlib.h>, <string.h> unconditionally.
1054         (free): Remove decl.
1055
1056         * save-cwd.c: Include <stdlib.h> unconditionally.
1057         * xgetcwd.c: Likewise.
1058
1059         * stat.c: Include <stdlib.h>, <string.h> unconditionally.
1060         (free): Remove decl.
1061
1062         * strchrnul.c (strchrnul): Define with a prototype.
1063         Fix bug: c_in was not converted to char before searching.
1064
1065         The following changes are not K&R related:
1066
1067         * group-member.h: Include <sys/types.h>, so that this file is
1068         self-contained.
1069         * makepath.h: Likewise.
1070
1071         * getusershell.c (readname, default_index, line_size, readname):
1072         Use size_t, not int, for sizes.
1073         (readname): If the size overflows, report an error instead of
1074         looping forever.
1075
1076 2003-09-09  Derek Robert Price  <derek@ximbiot.com>
1077
1078         * getndelim2.c: Assume stdlib.h per the C89 spec.
1079
1080 2003-09-08  Paul Eggert  <eggert@twinsun.com>
1081
1082         Assume C89 or better; remove K&R cruft.
1083         A few of these changes were first proposed by Derek Robert Price
1084         in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>.
1085
1086         * addext.c: Include <string.h> unconditionally.
1087         * backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
1088         Don't declare getenv or malloc.
1089
1090         * alloca.c: Include <string.h>, <stdlib.h> unconditionally.
1091         (POINTER_TYPE, pointer): Remove; all uses changed to void *.
1092         (NULL): Remove.
1093         (find_stack_direction, alloca): Use prototypes.
1094
1095         * atexit.c (atexit): Define using a prototype.
1096
1097         * basename.c, dirname.c, stripslash.c:
1098         Include <string.h> unconditionally.
1099
1100         * bcopy.c: Include <stddef.h>.
1101         (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
1102
1103         * canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
1104
1105         * error.h (error, error_at_line, error_print_progname)
1106         [! (defined (__STDC__) && __STDC__)]: Remove decls.
1107         * error.c: Include error.h first, to check interface.
1108         Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
1109         (VA_START): Remove; all uses changeed to va_start.
1110         (exit, strerror): Remove decls.
1111         (error_print_progname): Prototype uncondionally.
1112         Don't include <errno.h>; no longer needed.
1113         (private_strerror): Remove.
1114         (error_tail): Always define.
1115         (error, error_at_line): Assume C89 or better; always use prototypes.
1116         * fatal.c: Include "fatal.h" first, to test interface.
1117         Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
1118         (VA_START): Remove; all uses changed to va_start.
1119         [! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for
1120         this case.
1121         (exit): Remove decl.
1122         (fatal): Prototype unconditionally.  Assume va_start works.
1123         Abort at end, to pacify gcc.
1124
1125         * euidaccess.c (main): Define with a prototype.
1126
1127         * exclude.c: Include <stdlib.h>, <string.h> unconditionally.
1128
1129         * exitfail.c: Include <stdlib.h> unconditionally.
1130
1131         * fnmatch_.h (__P): Remove.  All uses changed to assume
1132         prototypes.
1133         * fnmatch.c: Include fnmatch.h first, to test interface.
1134         Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
1135         (getenv): Remove decl.
1136         (fnmatch): Define using a prototype.
1137         * fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
1138         (FCT): Define using a prototype.
1139
1140         * getdate.y: Include <stdlib.h>, <string.h> unconditionally.
1141
1142         * gethostname.c: Include <stddef.h>.
1143         (gethostname): Define with prototype.  Length is size_t, not int.
1144
1145 2003-09-08  Paul Eggert  <eggert@twinsun.com>
1146
1147         * getversion.c: Remove; was migrated to backupfile.c in 1997.
1148         getversion.c should have been removed then, but was accidentally
1149         preserved.
1150
1151         * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
1152         (utime_null): Fix typo: 'st' was sometimes called 'sb'.
1153
1154 2003-09-07  Paul Eggert  <eggert@twinsun.com>
1155
1156         * time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to
1157         copy_tm_result.  Bug reported by Simon Josefsson in
1158         <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00028.html>.
1159
1160 2003-09-06  Paul Eggert  <eggert@twinsun.com>
1161
1162         * time_r.c, time_r.h: New files.
1163
1164         * mktime.c (my_mktime_localtime_r): Remove; all uses changed to
1165         __localtime_r.
1166         (__localtime_r) [!defined _LIBC]: New macro.  Include <time_r.h>.
1167         (__mktime_internal) [!defined _LIBC]: Now extern, not static.
1168
1169         * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
1170         __gmtime_r.
1171         (my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
1172         (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
1173         Include <time_r.h>.
1174
1175         * timegm.c: Switch to glibc implementation, with the following changes:
1176         [defined HAVE_CONFIG_H]: Include <config.h>.
1177         [!defined _LIBC]: Include "timegm.h" rather than <time.h>.
1178         (__mktime_internal) [!defined _LIBC]: New decl.
1179         (__gmtime_r) [!defined _LIBC]: New macro and function.
1180         (timegm): Use a prototype, since gnulib assumes C89.
1181         Do not bother declaring tmp to be const, as it's not really usefu.
1182         * timegm.h: Hoist "#include <time.h>" out of #ifdef.
1183         (timegm): Declare only if HAVE_DECL_TIMEGM.
1184
1185 2003-09-03  Paul Eggert  <eggert@twinsun.com>
1186
1187         * human.c (human_readable): Fix bug that rounded 10501 to 10k.
1188         Bug reported by Lute Kamstra in
1189         <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00003.html>.
1190
1191         * getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
1192         "yesterday", "today", and "now" rather than tMINUTE_UNIT.  Of
1193         course with correspondingly smaller numbers for tomorrow and
1194         yesterday.  From Tadayoshi Funaba.  Originally installed into
1195         sh-utils on 1999-08-07, but the patch got lost (I guess during the
1196         coreutils merge?).
1197
1198 2003-08-31  Simon Josefsson  <jas@extundo.com>
1199
1200         * timegm.h: New file.
1201         * timegm.c: New file.  Based on wget-1.8.2/src/http.c:mktime_from_utc.
1202
1203 2003-08-31  Karl Berry  <karl@gnu.org>
1204
1205         * argp.h: update from libc.
1206
1207 2003-08-28  Bruno Haible  <bruno@clisp.org>
1208
1209         * binary-io.h: Undefine O_BINARY before defining it. This avoids a
1210         warning on QNX, which defines O_BINARY to 000000.
1211
1212 2003-08-24  Bruno Haible  <bruno@clisp.org>
1213
1214         * binary-io.h: Include <stdio.h>, to avoid a compilation error when
1215         MSVC7 <stdio.h> is included later.
1216
1217 2003-08-20  Bruno Haible  <bruno@clisp.org>
1218
1219         * progname.h: New file, from GNU gettext.
1220         * progname.c: New file, from GNU gettext.
1221         * progreloc.c: New file, from GNU gettext.
1222
1223 2003-08-19  Bruno Haible  <bruno@clisp.org>
1224
1225         * xstrdup.c: Assume <string.h> exists.
1226
1227 2003-08-18  Jim Meyering  <jim@meyering.net>
1228
1229         * setenv.h: Indent nested cpp directive.
1230         * vasnprintf.c: Remove trailing blanks.
1231
1232 2003-08-17  Simon Josefsson  <jas@extundo.com>
1233             Bruno Haible  <bruno@clisp.org>
1234
1235         * xstrndup.h: New file.
1236         * xstrndup.c: New file.
1237
1238 2003-08-17  Bruno Haible  <bruno@clisp.org>
1239
1240         * strndup.h: New file.
1241
1242 2003-08-16  Paul Eggert  <eggert@twinsun.com>
1243
1244         * regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
1245         space, undoing this 2003-08-12 change:
1246         <http://mail.gnu.org/archive/html/bug-gnulib/2003-08/msg00080.html>
1247
1248 2003-08-16  Jim Meyering  <jim@meyering.net>
1249
1250         Merge from coreutils.
1251         * xstrtoimax.c: #else #if -> #elif.
1252         * xstrtoumax.c: Likewise.
1253
1254 2003-08-15  Paul Eggert  <eggert@twinsun.com>
1255
1256         * config.charset, ref-add.sin, ref-del.sin: Use three spaces,
1257         rather than tab, after '#' in shell-script copyright notices.
1258         Suggested by Bruno Haible.
1259
1260 2003-08-15  Jim Meyering  <jim@meyering.net>
1261         and Paul Eggert  <eggert@twinsun.com>
1262
1263         Merge from coreutils.
1264         * readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
1265         member but strut utmpx does not.  Needed for AIX 4.3.3.
1266         (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
1267
1268 2003-08-15  Jim Meyering  <jim@meyering.net>
1269
1270         Merge from coreutils.
1271         * xgethostname.c: Include <stdlib.h>.
1272         (xghostname): Don't exit for anything other than memory-related
1273         failure; just return NULL.
1274         * userspec.c: Include "posixver.h".
1275         (parse_user_spec): Accept `.' as a separator only
1276         in pre-POSIX-200112 mode.
1277         * strtoimax.c: Use #elif rather than #else #if.
1278         * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
1279         Remove function, now that we can rely on a working tzset function.
1280         [!_LIBC]: Ensure that the required autoconf test has been run.
1281         [!defined _NL_CURRENT && HAVE_STRFTIME]:
1282         Use underlying_strftime for %r.
1283         * sha.c: Merge in some clean-up and optimization changes from glibc.
1284         * sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
1285         Ensure that it is a multiple of 64.
1286         Rearrange loop exit tests so as to avoid performing an
1287         additional fread after encountering an error or EOF.
1288         * realloc.c: Update copyright date.
1289
1290 2003-08-14  Jim Meyering  <jim@meyering.net>
1291
1292         Merge from coreutils.
1293         * obstack.h: Whitespace changes.
1294         * mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
1295         and xcalloc return values.
1296         (read_filesystem_list) [MOUNTED_GETFSSTAT]:
1297         Use MNT_NOWAIT, rather than MNT_WAIT.  Otherwise, `df DIR' could
1298         hang on OSF/1 5.1 for DIR on both local and remote file systems.
1299         Reported by (and fix confirmed by) Nelson H. F. Beebe.
1300         (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
1301         error from mntctl.
1302         Use mntctl's return value to drive the entry-processing loop, since
1303         we can't rely on the value of the vmt_length member in the last
1304         entry.  On some systems doing so could result in exhausting
1305         virtual memory.  Based in part on a patch from Mike Jetzer.
1306
1307 2003-08-14  Jim Meyering  <jim@meyering.net>
1308         and Paul Eggert  <eggert@twinsun.com>
1309
1310         Merges from coreutils, plus other fixes.
1311         * physmem.c: Merge in portability changes from gcc/libiberty
1312         to support AIX, IRIX, Tru64, and Windows.  See the ChangeLog there
1313         for credits and details.  Thanks to Kaveh Ghazi for helping
1314         to keep these files in sync.
1315         (ARRAY_SIZE): Define it.
1316         (physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
1317         * memcasecmp.c: Remove unnecessary parentheses after 'defined'.
1318         (memcasecmp): Don't assume size_t fits in unsigned int.
1319         Remove casts and duplicate code.
1320         * md5.c: Include <string.h> and <stdlib.h> unconditionally.
1321         (memcpy): Remove definition.
1322         Merge in some clean-up and optimization changes from glibc.
1323         [BLOCKSIZE]: Move definition to top of file.
1324         Ensure that it is a multiple of 64.
1325         Rearrange loop exit tests so as to avoid performing an
1326         additional fread after encountering an error or EOF.
1327         * md5.h (md5_uintptr): Define.
1328         * makepath.c (CLEANUP_CWD): Report an error if we failed to
1329         return to the initial working directory.  Preserve errno
1330         for caller.
1331         * idcache.c: Include "xalloc.h".
1332         (xmalloc, xrealloc): Remove decls.
1333         (getuser): Remove casts no longer required in C89.
1334         * human.c: Include stdio.h, for sprintf.
1335         * group-member.c: Include "xalloc.h".
1336         (xmalloc, xrealloc): Remove decls.
1337         (get_group_info): Remove casts no longer required in C89.
1338         * getusershell.c (readname): Remove casts no longer required in C89.
1339         * gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
1340         * getline.c: Whitespace fix, from coreutils.
1341
1342 2003-08-13  Paul Eggert  <eggert@twinsun.com>
1343
1344         * exclude.c: Include <ctype.h>
1345         (IN_CTYPE_DOMAIN): New macro.
1346         (is_space): New fn.
1347         (add_exclude_file): If LINE_END is a space, ignore trailing spaces
1348         and empty lines.
1349
1350         * argp-help.c, argp-parse.c, config.charset, getopt.h:
1351         Undo previous (whitespace-only) change.
1352
1353 2003-08-12  Paul Eggert  <eggert@twinsun.com>
1354
1355         * argp-help.c, argp-parse.c, config.charset, getopt.h:
1356         Normalize leading white space and remove trailing white space.
1357         * ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
1358         notice, as per ../config/srclist-update.
1359
1360         Merge from coreutils.
1361         * euidaccess.h: New file.
1362         * euidaccess.c: Include it.
1363         * .cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
1364         vasnprintf.h, vasprintf.h.  Remove strdup.c, gettext.h.
1365         * regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
1366
1367 2003-08-11  Bruno Haible  <bruno@clisp.org>
1368
1369         * vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
1370         (vasnprintf): Use it instead of wcslen.
1371
1372 2003-08-11  Bruno Haible  <bruno@clisp.org>
1373
1374         * stdbool_.h (_Bool): Undo last change; instead use a negative enum
1375         value to ensure that _Bool promotes to int. Use #define for _Bool when
1376         using the Solaris C compiler. Adds comments suggested by Paul Eggert.
1377
1378 2003-08-10  Karl Berry  <karl@gnu.org>
1379
1380         * regex.h: update from libc (whitespace fix).
1381
1382 2003-08-09  Paul Eggert  <eggert@twinsun.com>
1383
1384         Merge some files from coreutils.  These changes were
1385         originally made by Jim Meyering.
1386         * lib/acl.c: Include <sys/types.h> before <sys/stat.h>;
1387         many older Unixes require this.
1388         * lib/alloca.c (alloca): Remove cast to argument of free;
1389         no longer needed in C89.
1390         * lib/alloca_.h, lib/regex.h: Fix white space to match
1391         what GNU indent does.
1392
1393 2003-08-05  Paul Eggert  <eggert@twinsun.com>
1394
1395         * bumpalloc.h: Remove.
1396
1397 2003-08-04  Paul Eggert  <eggert@twinsun.com>
1398
1399         * getloadavg.c: Change copyright notice and spacing to conform to
1400         GNU coding style.
1401
1402         Merge from coreutils.
1403         * error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
1404         From glibc.
1405         * getdate.y (date): Also accept dates like May-23-2003; suggestion
1406         from Karl Berry, implemented by Jim Meyering.
1407         * getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
1408         from Dmitry V. Levin.
1409         Remove anachronistic cast of xrealloc.
1410         * fnmatch_.h (__const): Remove.  Use 'const'.
1411         * fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
1412         type. Otherwise, it wouldn't compile with at least /bin/cc on
1413         ymp-cray-unicos9.0.2.X.
1414         Combine two mostly-identical uses of alloca into one.
1415         Thanks to the Cray-Cyber project for access to a Cray Y-MP.
1416
1417 2003-08-04  Dave Love <d.love@dl.ac.uk>
1418
1419         [From Emacs.]
1420
1421         * getloadavg.c: Check `__unix' as well as `unix'.  Use #ifdef, not
1422         #if.  Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE.  Check
1423         F_SETFD, not FD_SETFD.  Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
1424         obsolete NLIST_NAME_UNION.
1425         [__GNU__]: Undef BSD and FSCALE.
1426         [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
1427
1428 2003-08-03  Paul Eggert  <eggert@twinsun.com>
1429
1430         * stdbool_.h (_Bool): Make it signed char, instead of
1431         an enum type, so that it's guaranteed to promote to int.  See:
1432         <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
1433
1434 2003-07-31  Paul Eggert  <eggert@twinsun.com>
1435
1436         * strerror.c: Include config.h, limits.h.  Declare sprintf.
1437         (strerror): Don't assume that a printable int fits in 14 bytes.
1438
1439 2003-07-24  Derek Robert Price  <derek@ximbiot.com>
1440             Bruno Haible  <bruno@clisp.org>
1441
1442         * getline.h (getline, getdelim): Change return type to ssize_t.
1443         * getline.c (getline, getdelim): Likewise.
1444         Remove _GNU_SOURCE define; now it's defined in config.h through
1445         m4/getline.m4.
1446
1447 2003-07-22  Paul Eggert  <eggert@twinsun.com>
1448
1449         * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
1450         over-parenthesization in macros.
1451
1452         Sync with coreutils.
1453
1454         * xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
1455         required by C99.
1456
1457         Use `exit_failure' for xalloc and xmemcoll instead of their own
1458         private exit-failure variables.
1459         * xalloc.h (xalloc_exit_failure): Remove.
1460         * xmalloc.c: Likewise.  Include exitfail.h.
1461         (xalloc_die): Use exit_failure instead of xalloc_exit_failure.
1462         * xmemcoll.h (xmemcoll_exit_failure): Remove.
1463         * xmemcoll.c: Likewise.  Include exitfail.h.
1464         (xmemcoll): Use exit_failure instead of xalloc_exit_failure.
1465
1466 2003-07-18  Paul Eggert  <eggert@twinsun.com>
1467
1468         * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
1469         * closeout.c: Likewise.  Include "closeout.h" right after config.h,
1470         to test that it can stand by itself.  Include "exitfail.h".
1471         Clients should set exit_failure instead.
1472         (EXIT_FAILURE): Remove; no longer needed.  Do not include <stdlib.h>.
1473
1474 2003-07-18  Andreas Schwab  <schwab@suse.de>
1475
1476         * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
1477
1478 2003-07-18  Bruno Haible  <bruno@clisp.org>
1479
1480         * getndelim2.h: New file.
1481         * getndelim2.c: Make into a module of its own. Include config.h,
1482         getndelim2.h.
1483         (getndelim2): Make non-static. Change return type to ssize_t.
1484         * getline.h: Change argument names.
1485         * getline.c: Include getndelim2.h instead of getndelim2.c.
1486         * getnline.c: Include getndelim2.h.
1487
1488 2003-07-17  Bruno Haible  <bruno@clisp.org>
1489
1490         * Makefile.am: Remove file.
1491         * Makefile.in: Remove file.
1492
1493 2003-07-17  Bruno Haible  <bruno@clisp.org>
1494
1495         * getnline.h: New file.
1496         * getnline.c: New file.
1497         * getndelim2.c: New file, extracted from getline.c.
1498         (getndelim2): Renamed from getdelim2, with added nmax argument.
1499         * getline.c: Include getndelim2.c.
1500         (getdelim2): Moved out to getndelim2.c.
1501         (getline, getdelim): Update.
1502
1503 2003-07-15    <karl@gnu.org>
1504
1505         * vasnprintf.c: update from gettext.
1506
1507 2003-07-15  Jim Meyering  <jim@meyering.net>
1508
1509         * makepath.c (make_path): Enclose diagnostic in _(...).
1510
1511 2003-07-14  Paul Eggert  <eggert@twinsun.com>
1512
1513         * asnprintf.c, asprintf.c, config.charset, gettext.h,
1514         localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
1515         printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
1516         ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
1517         vasprintf.c, vasprintf.h: Regenerate.  These files are now being
1518         updated automatically by ../config/srclist-update.  This changes
1519         their license from LPGL to GPL.
1520
1521 2003-07-14  Jim Meyering  <jim@meyering.net>
1522
1523         Don't emit diagnostics.  Let callers do that.
1524         * save-cwd.c: Don't include "error.h".
1525         (save_cwd): Don't call error.  Ensure that errno is valid
1526         when returning nonzero.
1527
1528         * save-cwd.h (restore_cwd): Update prototype.
1529         * save-cwd.c (restore_cwd): Remove two parameters.
1530         Simplify.  Don't call error upon failure.  Let callers do that.
1531         (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
1532         when auditing is enabled.  But don't bother updating the #if.
1533
1534 2003-07-14  Simon Josefsson  <jas@extundo.com>
1535
1536         * mempcpy.h: New file.
1537         * mempcpy.c: New file.
1538
1539 2003-07-14  Paul Eggert  <eggert@twinsun.com>
1540
1541         * ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
1542         sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
1543         unicodeio.c, unicodeio.h, unlocked-io.h:
1544         Switch from LGPL to GPL.
1545
1546 2003-07-11  Alexandre Duret-Lutz  <adl@gnu.org>
1547
1548         * obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
1549         it breaks C++ compilation.
1550         [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
1551
1552 2003-07-10  Jim Meyering  <jim@meyering.net>
1553
1554         * vasnprintf.c: Remove trailing blanks.
1555         Make cpp indentation consistent.
1556
1557 2003-07-09  Paul Eggert  <eggert@twinsun.com>
1558
1559         * alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
1560         posixver.c, strftime.c, strnlen.c, strverscmp.c:
1561         Switch from LGPL to GPL.
1562
1563 2003-07-07  Paul Eggert  <eggert@twinsun.com>
1564
1565         * mktime.c: Fix some boundary cases and remove need for floating point.
1566
1567         Issue a compile-time diagnostic if time_t is floating point, or if
1568         two's complement arithmetic is not in effect, or if arithmetic
1569         right shift does not propagate the sign.  These assumptions were
1570         all in the original code but they weren't checked.
1571
1572         (TIME_T_MIDPOINT, verify): New macros.
1573         (__isleap): Remove; it has integer overflow problems.
1574         (leapyear): New function, without those problems.
1575         (ydhms_tm_diff): Remove; splitting into two parts.
1576         (ydhms_diff): New function, containing the arithmetic part of
1577         the old ydhms_tm_diff function.  Issue a compile-time
1578         diagnostic if we are not using C99 integer division.
1579         Avoid casts when possible.
1580         (guess_time_tm): New function, containing the checking part of
1581         the old ydhms_tm_diff function.  Return the new value, rather than
1582         the difference between it and the old.  Accept a new argument T
1583         so that *T specifies the old value.  Check for overflow in the result.
1584
1585         (__mktime_internal): Use a time_t offset, not a long int offset.
1586         This undoes the 2003-06-04 change, which is no longer needed now
1587         that we have better overflow checking.
1588         (localtime_offset): Likewise.
1589
1590         (__mktime_internal): Avoid harmful overflow on hosts where time_t
1591         and long are 64-bit but int is only 32-bit.
1592         (ydhms_diff): Use long int to store year1 and yday1.
1593         Issue a compile-time diagnostic if long int is not wide enough.
1594
1595         (__mktime_internal): Use long int to store adjusted year and yday.
1596         Use plain C rather than preprocessor commands, if that doesn't
1597         affect efficiency.
1598         Check for overflow (and try to repair) after each probe
1599         rather than checking only at the very end.  This avoids some bugs
1600         (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
1601         does not equal GMT offset at maximum time).
1602         Use integer to check for overflow rather than floating point; this
1603         is more portable to non-IEEE hosts, and is a tad faster.
1604         When we detect that we are oscillating between two values,
1605         don't check whether tm_isdst has the requested value, since
1606         we already know the answer.  When tm_isdst has the wrong value,
1607         use a different heuristic to find the right one, based on the
1608         extreme values actually observed in practice in tz2003a,
1609         rather than the (overly optimistic) "previous 3 calendar quarters".
1610
1611         (not_equal_tm, print_tm, check_result): Use "const T" rather than
1612         "T const" to accommodate glibc style.
1613         (check_result): Use less-confusing report format.  "long" -> "long int.
1614         (main): Likewise.
1615         Don't loop if the iteration overflows time_t.
1616         Allow a negative step in the iteration.
1617
1618 2003-07-01  Paul Eggert  <eggert@twinsun.com>
1619
1620         * xreadlink.c: Include <sys/types.h> unconditionally, instead of
1621         having it depend on HAVE_SYS_TYPES_H.
1622
1623 2003-06-25  Bruno Haible  <bruno@clisp.org>
1624
1625         * readlink.c: New file.
1626
1627 2003-06-20  Bruno Haible  <bruno@clisp.org>
1628
1629         Assume C89, so PARAMS isn't needed.
1630         * unicodeio.h (PARAMS): Remove.
1631         * unicodeio.c: Don't use PARAMS.
1632
1633 2003-06-18  Jim Meyering  <jim@meyering.net>
1634
1635         Merge changes from coreutils.
1636         * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
1637         Remove explicit declarations of xmalloc and realloc.
1638         Include xalloc.h.
1639         (read_utmp): Remove anachronistic cast of xmalloc.
1640
1641 2003-06-17  Paul Eggert  <eggert@twinsun.com>
1642
1643         Assume C89, so PARAMS isn't needed.
1644         * backupfile.h (PARAMS): Remove.  All uses removed.
1645         * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
1646         group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
1647         makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
1648         path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
1649         save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
1650         unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
1651         xstrtol.h: Likewise.
1652         * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h,
1653         same.h, strverscmp.h: Do not include config.h; no longer needed.
1654         Anyway, config.h should always be included before any other file.
1655
1656 2003-06-11  Simon Josefsson  <jas@extundo.com>
1657
1658         * sysexit_.h: New file.
1659
1660 2003-05-20  Derek Price  <derek@ximbiot.com>
1661
1662         * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
1663
1664 2003-06-10  Simon Josefsson  <jas@extundo.com>
1665
1666         * strchrnul.h: New file.
1667         * strchrnul.c: New file.
1668
1669 2003-06-10  Simon Josefsson <jas@extundo.com>
1670
1671         * argp.h: New file, from glibc.
1672         * argp-ba.c: New file, from glibc.
1673         * argp-eexst.c: New file, from glibc.
1674         * argp-fmtstream.c: New file, from glibc.
1675         * argp-fmtstream.h: New file, from glibc.
1676         * argp-fs-xinl.c: New file, from glibc.
1677         * argp-help.c: New file, from glibc.
1678         * argp-namefrob.h: New file, from glibc.
1679         * argp-parse.c: New file, from glibc.
1680         * argp-pv.c: New file, from glibc.
1681         * argp-pvh.c: New file, from glibc.
1682         * argp-xinl.c: New file, from glibc.
1683
1684 2003-06-07  Jim Meyering  <jim@meyering.net>
1685
1686         * readtokens.h: Put `Free Software Foundation, Inc.'
1687         in place of my name in the copyright comment.
1688         Remove definition and uses of __P.
1689
1690         From coreutils.
1691         * stat.c: Don't declare xmalloc explicitly.
1692         Instead, include "xalloc.h".
1693         * readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
1694         xrealloc, and xcalloc return values.
1695         * xgetcwd.c (xgetcwd): Include "xgetcwd.h".
1696         Improve comment.
1697         * xgetcwd.h: Remove definition/uses of PARAMS.
1698
1699 2003-06-06  Jim Meyering  <jim@meyering.net>
1700
1701         * stdbool_.h: Renamed from stdbool.h.in.
1702
1703 2003-06-06  Jim Meyering  <jim@meyering.net>
1704
1705         Merge from coreutils.
1706         * same.c: (same_name): Declare *_basename locals to be `const'.
1707         Consolidate declarations and initializations of *_base* locals.
1708
1709         Merge from coreutils.
1710         This avoids a core dump on systems without GNU putenv,
1711         when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
1712         * putenv.c (__set_errno, LOCK, UNLOCK): Define.
1713         (unsetenv): New static function, from GNU libc.
1714         (rpl_putenv): Use it.
1715
1716         * modechange.c: Remove trailing blanks.
1717
1718         Merge from coreutils.
1719         * fsusage.c: Remove declaration of statfs.
1720         It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
1721
1722         * posixtm.c: Include <stdbool.h> unconditionally.
1723
1724 2003-06-05  Paul Eggert  <eggert@twinsun.com>
1725
1726         * mktime.c (__mktime_internal): When resolving a tm_isdst
1727         mismatch, look in future quarters as well as past.  This fixes a
1728         bug when processing fall-backwards gaps immediately after a long
1729         period of daylight-saving time.
1730
1731         * mktime.c: Assume freestanding C89 or better.
1732         (HAVE_LIMITS_H): Remove.  Assume it's 1.
1733         (__P): Remove; not used.
1734         (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
1735         (mktime, not_equal_tm, print_tm, check_result,
1736         main): Use prototypes.  Use const * where appropriate.
1737         (main): Fix typo in testing code that uncovered by above changes.
1738         (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
1739
1740 2003-06-04  Paul Eggert  <eggert@twinsun.com>
1741
1742         * mktime.c: Fix Debian bug 177940
1743         <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
1744         (localtime_offset): Now long int, not time_t, because we want it
1745         to be guaranteed to be signed.  All uses changed.
1746         (__mktime_internal): If overflow would occur when adding offset,
1747         don't add it.
1748
1749         Merge 'human' changes from coreutils.  Rewrite to support
1750         locale-specific notations like thousands separators.
1751         * human.c: Simplify authorship notice.
1752         Include human.h immediately after config.h.
1753         <sys/types.h>, <stdio.h>: Do not include; no longer needed.
1754         <limits.h>: Do not include, since human.h does.
1755         (SIZE_MAX, UINTMAX_MAX): New macros.
1756         <strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
1757         <locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
1758         (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
1759         (power_letter): Renamed from suffixes.
1760         (generate_suffix_backwards): Remove.
1761         (adjust_value): Now takes int style (because of human.h changes)
1762         and long double value (for greater precision on some platforms).
1763         (group_number): New function.
1764         (human_readable): Use it.  Use integer options, not enum.
1765         Put the options before the sizes in the arg list.
1766         Support all the new options.
1767         The old human_readable function has been removed;
1768         use inttostr.h instead.
1769         (human_readable, default_block_size, humblock):
1770         Use uintmax_t, not int, for block sizes.
1771         (human_readable_inexact, block_size_types): Remove.
1772         (block_size_opts): New constant.
1773         (human_options): Renamed from human_block_size, with new signature
1774         that allows block sizes up to UINTMAX_MAX.  All callers changed.
1775         * human.h: Add copyright and authorship notice.
1776         Include <limits.h> and <stdbool.h> unconditionally.
1777         (PARAMS): Remove.  All uses removed.
1778         (LONGEST_HUMAN_READABLE): Add support for thousands separator.
1779         (enum human_inexact_style): Remove tag; now a nameless enum.
1780         (human_floor, human_ceiling, human_round_to_even): Now have
1781         values 2, 0, 1 rather than -1, 1, 0.
1782         (human_group_digits, human_suppress_point_zero, human_autoscale,
1783         human_base_1024, human_SI, human_B): New constants.
1784         (human_readable_inexact, human_block_size): Remove.
1785         (human_readable): Size args are now uintmax_t, not int.
1786         (human_options): New decl.
1787
1788         * exclude.c: (new_exclude, add_exclude): Remove casts that are
1789         unnecessary now that we assume C89 or better.  This change
1790         imported from coreutils.
1791
1792         * mktime.c (__mktime_internal): Do not reject negative timestamps
1793         arbitrarily.  This is the same patch as 2003-05-28, but it got lost
1794         in the 2003-05-30 sync from glibc.
1795
1796         .h files should stand alone, but we shouldn't include <sys/types.h>
1797         if we can get away with just <stddef.h>.
1798
1799         * __fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
1800         malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
1801         rather than <sys/types.h>, as we merely need size_t.
1802         * dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
1803         to get size_t.
1804         * hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
1805         Include <stdio.h>, to get FILE.
1806         * memcasecmp.c: Don't include <sys/types.h>, as we can assume
1807         memcasecmp.h has included <stddef.h> and all we need is size_t.
1808         * memcoll.c: Include "memcoll.h", which gets us size_t and checks
1809         our interface, instead of including <sys/types.h>
1810
1811 2003-06-02  Paul Eggert  <eggert@twinsun.com>
1812
1813         [from coreutils]
1814         Fix some minor time-related bugs with POSIX time arguments.
1815         Some valid time stamps were being rejected (notably -1, and
1816         time stamps before 1900 on 64-bit hosts).  And some invalid
1817         time stamps were being accepted, e.g. September 31.
1818
1819         * posixtm.h (posixtime): Return bool instead of time_t, so
1820         that we can return (time_t) -1 successfully.
1821         * posixtm.c: Likewise.
1822         [HAVE_STDBOOL_H]: Include <stdbool.h>.
1823         (bool, false, true) [!HAVE_STDBOOL_H]: New type.
1824         (t): Remove static var.
1825         (year, posix_time_parse): Now takes struct tm * arg to modify, instead
1826         of static var.  All uses changed.
1827         (year): Do not reject years before 1900; they can occur with
1828         64-bit time_t.
1829         (posix_time_parse): Do not check for out-of-range components;
1830         that is now the caller's responsibility, since our checks were
1831         only approximations.
1832         (posixtime): Use mktime to check for out-of-range components,
1833         since it knows them exactly.
1834         If mktime returns (time_t) -1, check whether an error actually occurred
1835         by invoking localtime on -1.
1836         (main) [TEST_POSIXTIME]: Check for input data errors, and report
1837         posixtime failures better.
1838         Improve the test data (in comments only).
1839
1840 2003-05-30    <karl@gnu.org>
1841
1842         * mktime.c: update from libc.
1843
1844 2003-05-30  Bruno Haible  <bruno@clisp.org>
1845
1846         * config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
1847         * localcharset.h: Likewise.
1848         * localcharset.c: Likewise.
1849
1850 2003-05-28  Paul Eggert  <eggert@twinsun.com>
1851
1852         Assume the headers required for C89 freestanding compilers.
1853         * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h,
1854         rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h>
1855         without checking for HAVE_LIMITS_H.
1856         * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c,
1857         xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed
1858         to do that.
1859         * fatal.c: Include <stdarg.h> without checking for __STDC__.
1860         * exclude.c: Include <stdbool.h> unconditionally.
1861         * tempname.c: Include <stddef.h> unconditionally.
1862         * hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
1863         * modechange.c, rpmatch.c (NULL): Don't define, since
1864         <stddef.h> does that.
1865         * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
1866         * safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
1867         * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed.
1868         * xstrtol.c: Likewise.
1869         * safe-read.c: Remove TYPE_SIGNED; no longer needed.
1870         * savedir.c: Include <stddef.h> instead of defining NULL.
1871
1872         * addext.c (addext): Use assignment rather than cast, to avoid
1873         warnings on some platforms.
1874
1875         * mktime.c (__mktime_internal): Do not reject negative timestamps
1876         arbitrarily.
1877
1878 2003-05-10  Bruno Haible  <bruno@clisp.org>
1879
1880         * linebreak.c (iconv_string_length): Don't return -1 just because the
1881         string is longer than 4 KB.
1882
1883 2003-05-12  Jim Meyering  <jim@meyering.net>
1884
1885         * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
1886         the space-padded-by-default conversion specifiers, %e, %k, %l.
1887
1888 2003-05-03  Bruno Haible  <bruno@clisp.org>
1889
1890         Upgrade to Unicode-4.0.
1891         * linebreak.c (nonspacing_table_data): Change width of U+00AD,
1892         U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
1893         U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
1894         U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
1895         from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
1896         (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
1897         of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
1898         Change width of U+E0100..U+E01EF from 1 to 0.
1899
1900 2003-04-25  Bruno Haible  <bruno@clisp.org>
1901
1902         * copy-file.c: Include <stddef.h>, for size_t.
1903
1904 2003-04-25  Jim Meyering  <jim@meyering.net>
1905
1906         * copy-file.c (copy_file_preserving): Declare buf_size to be
1907         of type size_t, not int.
1908
1909 2003-04-11  Jim Meyering  <jim@meyering.net>
1910
1911         Merge changes from Coreutils.
1912
1913         2003-03-22  Jim Meyering  <jim@meyering.net>
1914
1915         * strftime.c (widen): Cast alloca return value to proper type.
1916
1917         2003-01-19  Ulrich Drepper  <drepper@redhat.com>
1918
1919         From GNU libc.
1920         * strftime.c (my_strftime): Handle very large width
1921         specifications for numeric values correctly.  Improve checks for
1922         overflow.
1923
1924         2003-01-19  Jim Meyering  <jim@meyering.net>
1925
1926         * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
1927         (nl_get_alt_digit) [! defined my_strftime]: Define.
1928         (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
1929         _nl_get_alt_digit and _nl_get_walt_digit.
1930
1931         * strftime.c (my_strftime): Merge in locale-related changes from libc.
1932         These changes have no effect outside of _LIBC.
1933
1934 2003-04-10  Bruno Haible  <bruno@clisp.org>
1935
1936         * findprog.h: New file, from GNU gettext.
1937         * findprog.c: New file, from GNU gettext.
1938
1939 2003-04-05  Jim Meyering  <jim@meyering.net>
1940
1941         Merge changes from Coreutils.
1942
1943         * exclude.h (PARAMS): Remove definition and uses.
1944         * exclude.c: Remove uses of `PARAMS'.
1945
1946         * dirname.c [TEST_DIRNAME]: Update build instructions for test.
1947         Add test-cases for DOS filenames. Declare program_name.
1948         (main): Set up program_name.  Patch by Rich Dawe.
1949
1950         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
1951         error from mntctl.
1952         Use mntctl's return value to drive the entry-processing loop, since
1953         we can't rely on the value of the vmt_length member in the last
1954         entry.  On some systems doing so could result in exhausting
1955         virtual memory.  Based in part on a patch from Mike Jetzer.
1956
1957 2003-04-04  Bruno Haible  <bruno@clisp.org>
1958
1959         * linebreak.h: New file, from GNU gettext.
1960         * linebreak.c: New file, from GNU gettext with slight modifications.
1961         * lbrkprop.h: New file, from GNU gettext.
1962
1963 2003-04-03  Bruno Haible  <bruno@clisp.org>
1964
1965         * utf8-ucs4.h: New file, from GNU gettext.
1966         * utf16-ucs4.h: New file, from GNU gettext.
1967         * ucs4-utf8.h: New file, from GNU gettext.
1968         * ucs4-utf16.h: New file, from GNU gettext.
1969
1970 2003-04-02  Bruno Haible  <bruno@clisp.org>
1971
1972         * binary-io.h: New file, from GNU gettext.
1973
1974 2003-04-01  Bruno Haible  <bruno@clisp.org>
1975
1976         * pathname.h: New file, from GNU gettext.
1977         * concatpath.c: New file, from GNU gettext.
1978
1979 2003-03-30  Bruno Haible  <bruno@clisp.org>
1980
1981         * copy-file.c (copy_file_preserving): Don't set owner if the function
1982         chown() doesn't exist.
1983
1984 2003-03-28  Bruno Haible  <bruno@clisp.org>
1985
1986         * copy-file.h: New file, from GNU gettext.
1987         * copy-file.c: New file, from GNU gettext.
1988
1989 2003-03-18  Jim Meyering  <jim@meyering.net>
1990
1991         * quote.c (quote_n): Fix typo in comment.
1992
1993 2003-03-14  Jim Meyering  <jim@meyering.net>
1994
1995         Merge changes from Coreutils.
1996         * obstack.h (obstack_object_size): Declare temporary, __o,
1997         to be const, in order to avoid warnings.
1998         (obstack_room): Likewise.
1999         (obstack_empty_p): Likewise.
2000
2001 2003-03-13  Paul Eggert  <eggert@twinsun.com>
2002
2003         Merge changes from Bison.
2004         * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
2005         (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2006         when compiling Bison 1.875's `bitset bset = obstack_alloc
2007         (bobstack, bytes);'.  Problem reported by Nelson H. F. Beebe.
2008         * hash.c: Include <stdbool.h> unconditionally.
2009
2010 2003-03-09  Paul Eggert  <eggert@twinsun.com>
2011
2012         * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
2013         Reported by Bruce Becker; see:
2014         http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
2015
2016 2003-03-03  Paul Eggert  <eggert@twinsun.com>
2017             Bruno Haible  <bruno@clisp.org>
2018
2019         * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
2020         Reported by John Hughes, see
2021         http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
2022
2023 2003-02-19  Paolo Bonzino  <bonzini@gnu.org>
2024
2025         * poll_.h: New file.
2026         * poll.c: New file.
2027
2028 2003-02-18  Paolo Bonzino  <bonzini@gnu.org>
2029
2030         * mathl.h: New file.
2031         * acosl.c: New file.
2032         * asinl.c: New file.
2033         * atanl.c: New file.
2034         * ceill.c: New file.
2035         * cosl.c: New file.
2036         * expl.c: New file.
2037         * floorl.c: New file.
2038         * frexpl.c: New file.
2039         * ldexpl.c: New file.
2040         * logl.c: New file.
2041         * sincosl.c: New file.
2042         * sinl.c: New file.
2043         * sqrtl.c: New file.
2044         * tanl.c: New file.
2045         * trigl.c: New file.
2046         * trigl.h: New file.
2047
2048 2003-02-17  Bruno Haible  <bruno@clisp.org>
2049
2050         * mkdtemp.h: New file, from GNU gettext.
2051         * mkdtemp.c: New file, from GNU gettext.
2052
2053 2003-01-31  Bruno Haible  <bruno@clisp.org>
2054
2055         * rename.c: #undef rename before defining rpl_rename.
2056         * strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
2057
2058 2003-01-30  Bruno Haible  <bruno@clisp.org>
2059
2060         * printf-args.h: New file, from GNU gettext.
2061         * printf-args.c: New file, from GNU gettext.
2062         * printf-parse.h: New file, from GNU gettext.
2063         * printf-parse.c: New file, from GNU gettext.
2064         * vasnprintf.h: New file, from GNU gettext.
2065         * vasnprintf.c: New file, from GNU gettext.
2066         * asnprintf.c: New file, from GNU gettext.
2067         * vasprintf.h: New file, from GNU gettext with modifications.
2068         * vasprintf.c: New file, from GNU gettext.
2069         * asprintf.c: New file, from GNU gettext.
2070
2071 2003-01-29  Bruno Haible  <bruno@clisp.org>
2072
2073         * stpncpy.h: New file, from GNU gettext with modifications.
2074         * stpncpy.c: New file, from GNU gettext with modifications.
2075
2076 2003-01-28  Bruno Haible  <bruno@clisp.org>
2077
2078         * c-ctype.h: New file, from GNU gettext, with changes suggested by
2079         Paul Eggert.
2080         * c-ctype.c: New file, from GNU gettext, with changes suggested by
2081         Paul Eggert.
2082
2083 2003-01-27  Bruno Haible  <bruno@clisp.org>
2084
2085         * xsetenv.h: New file, from GNU gettext.
2086         * xsetenv.c: New file, from GNU gettext.
2087
2088 2003-01-23  Bruno Haible  <bruno@clisp.org>
2089
2090         * minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
2091
2092 2003-01-22  Bruno Haible  <bruno@clisp.org>
2093
2094         * exit.h: New file, from GNU gettext.
2095
2096 2003-01-11  Bruno Haible  <bruno@clisp.org>
2097
2098         * stpcpy.h (stpcpy): Use ANSI C function declarations.
2099         * strcase.h (strcasecmp, strncasecmp): Likewise.
2100
2101 2003-01-14  Jim Meyering  <jim@meyering.net>
2102
2103         * same.c (same_name): Tweak a comment.
2104
2105 2003-01-11  Bruno Haible  <bruno@clisp.org>
2106
2107         * same.c (same_name): Reorder tests so as to avoid calling stat()
2108         when a string comparison is sufficient.
2109
2110 2003-01-11  Bruno Haible  <bruno@clisp.org>
2111
2112         * readtokens.c (readtoken): Cast character to 'unsigned char', not
2113         'unsigned int'.
2114
2115 2003-01-11  Bruno Haible  <bruno@clisp.org>
2116
2117         * hash-pjw.c: Add comment about low quality of this function.
2118
2119 2003-01-12  Paul Eggert  <eggert@twinsun.com>
2120
2121         Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
2122         to avoid collisions with libcurses and libreadline.
2123
2124         * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
2125         * getstr.h, getstr.c: Remove.
2126         * getline.c: Include "getline.h", to check interface.
2127         Move body of old getstr.c here: this defines MIN_CHUNK and
2128         declares getdelim2, which is renamed from getstr.
2129         (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
2130
2131         * linebuffer.c (readlinebuffer): Renamed from readline.
2132         All uses changed.
2133         * linebuffer.h: Likewise.
2134         (readline): Remove backward-compatibility macro.
2135
2136 2003-01-12  Jim Meyering  <jim@meyering.net>
2137
2138         * makepath.c: Don't test HAVE_ERRNO_H.  It's not necessary.
2139
2140 2003-01-10  Bruno Haible  <bruno@clisp.org>
2141
2142         * alloca_.h: New file.
2143         * getdate.y: Unconditionally include alloca.h.
2144         * makepath.c: Likewise.
2145         * setenv.c: Likewise.
2146         * userspec.c: Likewise.
2147
2148 2003-01-09  Bruno Haible  <bruno@clisp.org>
2149
2150         * stdbool.h.in: New file.
2151
2152 2003-01-08  Bruno Haible  <bruno@clisp.org>
2153
2154         * safe-read.c: Include specification header first, to ensure its
2155         selfcontainedness.
2156         * full-write.c: Likewise.
2157
2158 2003-01-08  Jim Meyering  <jim@meyering.net>
2159
2160         * full-write.c: Undefine and define-away `const' after inclusion
2161         of errno.h, not before.  Suggestion from Bruno Haible.
2162
2163 2003-01-07  Jim Meyering  <jim@meyering.net>
2164
2165         * full-write.c: Rework so that it may serve to define full_read, too.
2166         * full-read.c: Simply #define FULL_READ and include full-write.c.
2167
2168 2003-01-06  Jim Meyering  <jim@meyering.net>
2169
2170         * version-etc.c: Update year in translatable copyright string.
2171
2172 2002-12-25  Bruno Haible  <bruno@clisp.org>
2173
2174         * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
2175         * xstrtol.h: Likewise.
2176         * xstrtoimax.c: Likewise.
2177         * xstrtoumax.c: Likewise.
2178         * human.h: Likewise.
2179
2180         * tempname.c: Include <inttypes.h> too. Avoids a compilation error
2181         on systems that have <inttypes.h> but not <stdint.h>.
2182
2183 2002-12-31  Paul Eggert  <eggert@twinsun.com>
2184
2185         * memcoll.c (memcoll): Fall back on a simple algorithm using
2186         memcmp if strcoll doesn't work.
2187
2188 2002-12-23  Bruno Haible  <bruno@clisp.org>
2189
2190         * localcharset.h: New file.
2191         * localcharset.c: Include it.
2192         * unicodeio.c: Likewise.
2193
2194 2002-12-22  Bruno Haible  <bruno@clisp.org>
2195
2196         * utime.c (utime_null): No need to call ftruncate if the file was
2197         nonempty.
2198
2199 2002-12-23  Bruno Haible  <bruno@clisp.org>
2200
2201         * memcoll.c (STRCOLL): New macro.
2202         (memcoll): Use it.
2203
2204 2002-12-22  Bruno Haible  <bruno@clisp.org>
2205
2206         * getstr.h (getstr): Define, to avoid clash with libcurses.
2207         * linebuffer.h (readline): Define, to avoid clash with libreadline.
2208
2209 2002-12-22  Bruno Haible  <bruno@clisp.org>
2210
2211         * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
2212
2213 2002-12-23  Bruno Haible  <bruno@clisp.org>
2214
2215         * getline.h: Include <stddef.h>, for size_t.
2216
2217         * unicodeio.h: Include <stddef.h>, for size_t.
2218         * unicodeio.c: Don't include <stddef.h>.
2219
2220 2002-12-17  Bruno Haible  <bruno@clisp.org>
2221
2222         * canon-host.c (strdup): Remove unused declaration.
2223
2224         * fsusage.c: Include full_read.h.
2225         (get_fs_usage): Use full_read instead of safe_read.
2226
2227         * utime.c (utime_null): Use SAFE_READ_ERROR.
2228
2229 2002-12-11  Bruno Haible  <bruno@clisp.org>
2230
2231         * setenv.h: Rewritten to cope with systems that have setenv() but not
2232         unsetenv().
2233         * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
2234         modifications:
2235
2236         2002-12-11  Bruno Haible  <bruno@clisp.org>
2237
2238                 * setenv.c (alloca): Fall back to malloc.
2239                 (freea): New macro.
2240                 (setenv): Use freea() to free memory allocated with alloca().
2241
2242         2002-11-13  Bruno Haible  <bruno@clisp.org>
2243
2244                 * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
2245                 function declarations.
2246                 * unsetenv.c (unsetenv): Likewise.
2247
2248         2002-03-04  Bruno Haible  <bruno@clisp.org>
2249
2250                 Portability to AIX 4.3.3.
2251                 * unsetenv.c: New file, extracted from setenv.c.
2252                 * setenv.c: Move the unsetenv() function to unsetenv.c.
2253
2254         2001-12-20  Bruno Haible  <bruno@clisp.org>
2255
2256                 * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
2257                 use malloc instead. For SunOS 4.
2258
2259         2001-12-11  Bruno Haible  <bruno@clisp.org>
2260
2261                 * setenv.c: Declare alloca.
2262                 (compar_fn_t): New typedef.
2263                 (KNOWN_VALUE, STORE_VALUE): Use it.
2264
2265         * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
2266         setenv.h.
2267
2268 2002-12-10  Paul Eggert  <eggert@twinsun.com>
2269
2270         Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
2271         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
2272         Choose values that are less likely to collide with system fnmatch
2273         options.
2274         * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
2275         defined (e.g., a pure POSIX system).
2276         (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
2277         instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
2278
2279 2002-12-06  Jim Meyering  <jim@meyering.net>
2280
2281         * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
2282
2283         Merge in changes from libc's misc/error.c, in preparation
2284         for the merge of gnulib's changes back into libc.
2285
2286         * error.c (_): Define only if not already defined.
2287         Move definition to follow all #include directives.
2288         Include unlocked-io.h only if !_LIBC.
2289         [_LIBC]: Include <libio/libioP.h>.
2290         [USE_IN_LIBIO]: Include <libio/iolibio.h>
2291         (fflush): Tweak definition to use INTUSE.
2292         (putc): Define.
2293
2294 2002-12-05  Paul Eggert  <eggert@twinsun.com>
2295
2296         * alloca.c [defined emacs]: Include "lisp.h".
2297         (xalloc_die) [defined emacs]: New macro.
2298         (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
2299         [! defined emacs]: Include <xalloc.h>.
2300         (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
2301         (pointer): Typedef to POINTER_TYPE *.
2302         (malloc): Remove decl; we now always use xmalloc.
2303         (alloca): Use old-style definition, since Emacs needs this.
2304         Check for arithmetic overflow when computing combined size.
2305
2306 2002-12-04  Paul Eggert  <eggert@twinsun.com>
2307
2308         Do not generate unlocked-io.h automatically, since it's easier to
2309         maintain it by hand.
2310
2311         * unlocked-io.h: New file, from GNU diffutils,
2312         but with proper copyright notice and attribution.
2313         * gen-uio: Remove.
2314         * Makefile.am: Add copyright notice.
2315         (libfetish_a_SOURCES): Add unlocked-io.h.
2316         (BUILT_SOURCES, all-local): Remove unlocked-io.h.
2317         (DISTCLEANFILES, io_functions): Remove macros.
2318         (EXTRA_DIST): Remove gen_uio.
2319         (unlocked-io.h): Remove rule.
2320
2321 2002-12-04  Jim Meyering  <jim@meyering.net>
2322
2323         Reflect the fact that stat.c and lstat.c are no longer generated.
2324         * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
2325         (DISTCLEANFILES): Likewise.
2326         (EXTRA_DIST): Likewise.
2327         (all_local): Don't depend on stat.c or lstat.c.
2328         (stat.c, lstat.c): Remove rules.
2329         (EXTRA_DIST): Remove xstat.in.
2330
2331         * xstat.in: Remove file.  Contents moved into stat.c.
2332         * stat.c: New file.  Contents mostly from xstat.in.
2333         * stat.c: Rework so that it may serve to define rpl_lstat, too.
2334         * lstat.c: New file. Simply #define LSTAT and include stat.c.
2335
2336         * safe-read.c: Rework so that it may serve to define safe_write, too.
2337         * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
2338
2339 2002-12-03  Jim Meyering  <jim@meyering.net>
2340
2341         * safe-read.c, safe-write.c: Change variable names and comments, but
2342         not semantics, to minimize the differences between these two files.
2343         (safe_read): Change comment to mention SAFE_READ_ERROR.
2344
2345         * safe-read.c (IS_EINTR): Define.
2346         (safe_read): Use IS_EINTR in place of in-function cpp directives.
2347
2348 2002-12-02  Bruno Haible  <bruno@clisp.org>
2349
2350         * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
2351         Define, taken from safe-read.c.
2352         (INT_MAX): Provide fallback.
2353         (safe_write): Rewrite to iterate IFF the write fails with EINTR.
2354         * safe-write.h (SAFE_WRITE_ERROR): Define.
2355
2356         * safe-read.c (EINTR): Remove definition.
2357         (safe_read): Don't use EINTR if it is absent.
2358
2359 2002-12-02  Jim Meyering  <jim@meyering.net>
2360
2361         * safe-read.c (EINTR): Define.
2362         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
2363         (INT_MAX): Provide fallback.
2364         (safe_read): Rewrite to iterate IFF the read fails with EINTR.
2365
2366         * safe-read.h (SAFE_READ_ERROR): Define.
2367
2368 2002-12-01  Jim Meyering  <jim@meyering.net>
2369
2370         * safe-read.c: (safe_read): Also exit the loop when read returns zero.
2371         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
2372
2373 2002-11-27  Paul Eggert  <eggert@twinsun.com>
2374
2375         * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
2376         hash_rehash): Replace `if (limit <= value) abort ();' with
2377         `if (! (value < limit)) abort ();', for readability.
2378
2379 2002-11-26    <karl@gnu.org>
2380
2381         * strdup.c: copy from libc again, with jim's ok.
2382         * .cppi-disable: re-add strdup.c
2383
2384 2002-11-25    <karl@gnu.org>
2385
2386         * strtoll.c: copy from libc, meaning we now #include <strtol.c>
2387         instead of "strtol.c".
2388
2389 2002-11-25  Jim Meyering  <jim@meyering.net>
2390
2391         * mktime.c: Sync from libc, now that it has the latest fix.
2392
2393 2002-11-24    <karl@gnu.org>
2394
2395         * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
2396         regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
2397
2398 2002-11-24  Jim Meyering  <jim@meyering.net>
2399
2400         Update from coreutils:
2401
2402         * mktime.c: Merge in changes from libc.
2403
2404         Avoid a link-time failure on some Linux systems.
2405         * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
2406         (__mon_yday): Declare with the STATIC attribute.
2407         (__mktime_internal): Likewise.
2408         Based on a report from Greg Schafer.
2409
2410 2002-11-23  Jim Meyering  <jim@meyering.net>
2411
2412         * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
2413         Use `unsigned', not `int', as type of index.
2414
2415         * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
2416
2417         * fsusage.c: Remove unneeded parentheses around operands of `defined'.
2418
2419 2002-11-22  Paul Eggert  <eggert@twinsun.com>
2420
2421         * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
2422         hint that one should use `if (! x) abort ();' rather than `assert
2423         (x);', and anyway it's one less thing to worry about configuring.
2424         (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
2425         hash_rehash, hash_insert): Use abort rather than assert.
2426
2427 2002-11-22  Paul Eggert  <eggert@twinsun.com>
2428
2429         * quotearg.h: Allow multiple inclusion by surrounding with
2430         "#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
2431         so that we can be included first.
2432         (PARAMS): Remove; we now assume C89 or later.  All uses removed.
2433         * quotearg.c: Include quotearg.h immediately after config.h.
2434         No need to include stddef.h or sys/types.h any more.
2435         Surround local include files with "", not "<>".
2436         Assume HAVE_LIMITS_H unconditionally, as we assume C89.
2437         Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
2438         HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
2439         (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
2440         (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
2441         (ISPRINT): Remove; no longer needed now that we assume C89.
2442
2443         (clone_quoting_options, quotearg_buffer, quotearg_n_options):
2444         Preserve errno.
2445
2446         (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
2447         quotearg_char): Use SIZE_MAX rather than
2448         (size_t) -1 when we are talking about "infinity".
2449
2450         (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
2451
2452 2002-11-22  Bruno Haible  <bruno@clisp.org>
2453
2454         * safe-read.h: Assume C89. Add comments.
2455         (safe_read): Change return type to size_t.
2456         * safe-read.c (safe_read): Change return type to size_t. Handle byte
2457         counts > SSIZE_MAX correctly.
2458         * safe-write.h: New file.
2459         * safe-write.c: New file.
2460         * full-read.h: New file.
2461         * full-read.c: New file.
2462         * full-write.h: Assume C89. Add comments.
2463         * full-write.c: Include safe-write.h.
2464         (full_write): Rewritten to use safe_write.
2465         Suggested by Jim Meyering and Paul Eggert.
2466
2467 2002-11-21  Bruno Haible  <bruno@clisp.org>
2468
2469         Remove case insensitive option matching.
2470         * argmatch.h (argcasematch): Remove declaration.
2471         (ARGCASEMATCH): Remove macro.
2472         (__xargmatch_internal): Remove case_sensitive argument.
2473         (XARGMATCH): Update.
2474         (XARGCASEMATCH): Remove macro.
2475         * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
2476         case_sensitive argument.
2477         (argcasematch): Remove function.
2478         (__xargmatch_internal): Remove case_sensitive argument.
2479         (main): Use XARGMATCH instead of XARGCASEMATCH.
2480
2481         * xmalloc.c: Change compile-time error message. Add comment about
2482         required autoconf version.
2483
2484 2002-11-21  Jim Meyering  <jim@meyering.net>
2485
2486         * strdup.c (strdup): Tweak comment and initial #if/#include.
2487
2488         Merge in changes from the coreutils.
2489
2490         2002-09-25  Paul Eggert  <eggert@twinsun.com>
2491         * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
2492         (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
2493         (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
2494         int.  Work more efficiently if X is the same width as uintmax_t.
2495         Do not compare X to -1, to avoid bogus compiler warning.
2496         (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
2497         Don't assume that f_frsize and f_bsize are the same type.
2498
2499         * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
2500         on FreeBSD.
2501
2502         * makepath.c (make_path): Restore umask *before* creating the final
2503         component.
2504         (make_path): Minor reformatting.
2505
2506         * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
2507         and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
2508
2509         * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
2510         ones.  At least on GNU/Linux systems, `auto' means something else.
2511         From Michael Stone.
2512
2513 2002-11-20  Paul Eggert  <eggert@twinsun.com>
2514
2515         Merge argmatch cleanups from Bison.  Assume C89.
2516
2517         * argmatch.c: Include config.h here, not in argmatch.h.
2518         Include stdlib.h, for EXIT_FAILURE.
2519         Always include <string.h>, since we assume C89.
2520         (EXIT_FAILURE): Remove pre-C89 bug workaround.
2521         * argmatch.h: Do not include <config.h> or <sys/types.h>.
2522         Include <stddef.h> instead, since it's all we need for size_t.
2523         (PARAMS): Remove.  All uses removed.
2524         (ARRAY_CARDINALITY): Do not bother to #undef.
2525         (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
2526         ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
2527         Remove unnecessary parentheses.
2528         (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
2529         Insert necessary parentheses.
2530         (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
2531         (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
2532
2533 2002-11-19  Bruno Haible  <bruno@clisp.org>
2534
2535         * mbswidth.c: Include mbswidth.h right at the beginning.
2536         * mbswidth.h: Include <stddef.h>, for size_t.
2537
2538         * mbswidth.h (PARAMS): Remove macro.
2539         (mbswidth, mbsnwidth): Use ANSI C function declarations.
2540         * mbswidth.c (mbswidth, mbsnwidth): Likewise.
2541
2542         * gcd.h (PARAMS): Remove macro.
2543         (gcd): Use ANSI C function declarations.
2544         * gcd.c (gcd): Likewise.
2545
2546 2002-11-15  Bruno Haible  <bruno@clisp.org>
2547
2548         * strcspn.c: Include <stddef.h>.
2549         (strcspn): Use ANSI C function declaration. Change return type to
2550         size_t. Use NULL.
2551         * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
2552         (strpbrk): Use NULL.
2553         * strpbrk.h (PARAMS): Remove macro.
2554         (strpbrk): Use ANSI C function declaration.
2555         * strstr.c: Don't include <sys/types.h>.
2556         * strstr.h (PARAMS): Remove macro.
2557         (strstr): Use ANSI C function declarations.
2558
2559 2002-11-06  Bruno Haible  <bruno@clisp.org>
2560
2561         * gcd.h (gcd): Change argument type to 'unsigned long'.
2562         * gcd.c (gcd): Likewise.
2563
2564 2002-11-05  Bruno Haible  <bruno@clisp.org>
2565
2566         * gcd.h: New file, from gettext-0.11.5.
2567         * gcd.c: New file, from gettext-0.11.5.
2568
2569 2002-11-05  Bruno Haible  <bruno@clisp.org>
2570
2571         * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
2572         * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
2573         * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
2574         * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
2575
2576         * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
2577         * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
2578
2579         * closeout.c: Include gettext.h instead of <libintl.h>.
2580         * human.c: Include gettext.h instead of <libintl.h>.
2581         * quotearg.c: Include gettext.h instead of <libintl.h>.
2582         * rpmatch.c: Include gettext.h instead of <libintl.h>.
2583         * unicodeio.c: Include gettext.h instead of <libintl.h>.
2584         * userspec.c: Include gettext.h instead of <libintl.h>.
2585         * version-etc.c: Include gettext.h instead of <libintl.h>.
2586         * xmalloc.c: Include gettext.h instead of <libintl.h>.
2587         (textdomain): Remove definition.
2588         * xmemcoll.c: Include gettext.h instead of <libintl.h>.
2589
2590         * long-options.c: Remove include of <libintl.h> and definition of _.
2591         * same.c: Remove include of <libintl.h> and definition of _.
2592
2593 2002-11-04  Bruno Haible  <bruno@clisp.org>
2594
2595         * stpcpy.h: New file, from GNU gettext-0.11.5.
2596         * strcase.h: New file, from GNU gettext-0.11.5.
2597         * strpbrk.h: New file, from GNU gettext-0.11.5.
2598         * strstr.h: New file, from GNU gettext-0.11.5.
2599         * xgetcwd.h: New file, from GNU gettext-0.11.5.
2600
2601 2002-05-09  Bruno Haible  <bruno@clisp.org>
2602
2603         * config.charset: Update for newest glibc. Add canonical names
2604         ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
2605
2606 2002-05-09  Bruno Haible  <bruno@clisp.org>
2607
2608         * localcharset.c (get_charset_aliases): Add more Windows specific
2609         aliases.
2610
2611 2002-05-08  Owen Taylor  <otaylor@redhat.com>
2612
2613         * config.charset: A few additions for Solaris.
2614
2615 2001-12-05  Bruno Haible  <bruno@clisp.org>
2616
2617         * localcharset.c (locale_charset): Don't return an empty string.
2618
2619 2001-10-23  Bruno Haible  <haible@clisp.cons.org>
2620
2621         * config.charset: msdos in uk_UA uses CP1125.
2622
2623 2001-08-05  Bruno Haible  <haible@clisp.cons.org>
2624
2625         Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
2626         * localcharset.c (locale_charset): Declare as extern "C".
2627
2628 2002-02-15  Bruno Haible  <bruno@clisp.org>
2629
2630         * config.charset [msdosdjgpp]: For Russian, use CP866.
2631
2632 2002-02-11  Bruno Haible  <bruno@clisp.org>
2633
2634         * config.charset: Add support for NetBSD.
2635
2636 2002-09-25    <karl@gnu.org>
2637
2638         * strdup.c: copy from libc/string (via ../config/srclist*).
2639         * getopt*: copy from libc/posix.
2640         * gettext.h: copy from gettext.
2641         * .cppi-disable: add strdup.c, gettext.h.
2642
2643 2002-07-01  Jim Meyering  <meyering@lucent.com>
2644
2645         * c-stack.c: Include sys/time.h.
2646         From Volker Borchert.
2647
2648 2002-06-11  Paul Eggert  <eggert@twinsun.com>
2649
2650         * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
2651         New macro.  Use it uniformly instead of
2652         (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
2653         It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
2654         reported by Vin Shelton.
2655
2656 2002-06-22  Jim Meyering  <meyering@lucent.com>
2657
2658         * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
2659         redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
2660
2661 2002-06-22  Paul Eggert  <eggert@twinsun.com>
2662
2663         * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
2664         Do not assume SA_SIGINFO behavior.
2665         Bug reported by Jim Meyering on NetBSD 1.5.2.
2666
2667 2002-06-22  Jim Meyering  <meyering@lucent.com>
2668
2669         * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
2670
2671         * exitfail.c, exitfail.h: Likewise.
2672         * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
2673
2674         * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
2675         of fnmatch.h.
2676         (EXTRA_DIST): Add fnmatch_loop.c.
2677         (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
2678
2679         * fnmatch_loop.c: New file, from diffutils-2.8.2.
2680         * fnmatch.c: Update from diffutils-2.8.2.
2681         * fnmatch_.h: New file.  From diffutils-2.8.2.
2682         * fnmatch.h: Remove file.
2683
2684 2002-06-18  Paul Eggert  <eggert@twinsun.com>
2685
2686         * file-type.h: Report an error if neither S_ISREG nor
2687         S_IFREG is defined, instead of using a test specific to glibc
2688         2.2.  This should be safe, since POSIX requires S_ISREG and
2689         Unix Version 7 had S_IFREG.  We don't need to check for
2690         <sys/types.h> since we don't use any symbols that it defines.
2691
2692 2002-06-15  Jim Meyering  <meyering@lucent.com>
2693
2694         * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
2695         For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
2696         have been included before this file.
2697
2698 2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
2699
2700         * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
2701         so that each temporary file name is unique and valid in the first
2702         8 characters, for operation under DOS.
2703
2704 2002-06-15  Jim Meyering  <meyering@lucent.com>
2705
2706         Work even with DJGPP 2.03, which lacks support for symlinks.
2707         From Richard Dawe.
2708         * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
2709         is defined.
2710         * lchown.c (S_ISLNK): Likewise.
2711
2712 2002-06-14  Jim Meyering  <meyering@lucent.com>
2713
2714         * file-type.h: Use the version from diffutils-2.8.2.
2715         * file-type.c: Likewise.
2716
2717 2002-05-27  Jim Meyering  <meyering@lucent.com>
2718
2719         Fix a problem seen only on nonconforming systems whereby ls.c's
2720         use of localtime, and then of gettimeofday would cause trouble:
2721         the localtime call used to initialize rpl_gettimeofday's save
2722         mechanism would clobber ls's current local time information so
2723         that in any long listing the first file would always be listed
2724         with date 1970-01-01.  Analysis by Volker Borchert.
2725
2726         * gettimeofday.c (localtime): Undefine.
2727         (rpl_localtime): New function.
2728
2729 2002-05-22  Jim Meyering  <meyering@lucent.com>
2730
2731         * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
2732         * file-type.h: New file.
2733         * file-type.c (file_type): New file/function.  Extracted from diffutils.
2734
2735 2002-04-29  Paul Eggert  <eggert@twinsun.com>
2736
2737         * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
2738
2739 2002-04-28  Paul Eggert  <eggert@twinsun.com>
2740
2741         * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
2742         depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
2743         of 127, since 64 is the largest conceivable number for ancient
2744         nonstandard hosts.
2745         * sig2str.c: Do not include <sys/wait.h>; no longer needed.
2746
2747 2002-04-28  Jim Meyering  <meyering@lucent.com>
2748
2749         * sig2str.c (WTERMSIG): Remove definition (unused).
2750
2751 2002-04-28  Paul Eggert  <eggert@twinsun.com>
2752
2753         * sig2str.h, sig2str.c: New files.
2754         * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
2755
2756 2002-04-24  Jim Meyering  <meyering@lucent.com>
2757
2758         * gettext.h: New file, from Gettext.
2759         * Makefile.am (INCLUDES): Remove -I../intl.
2760         (libfetish_a_SOURCES): Add gettext.h.
2761
2762 2002-04-16  Jim Meyering  <meyering@lucent.com>
2763
2764         * readutmp.h (UT_TYPE): Remove definition (now in who.c).
2765         (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
2766         (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
2767
2768 2002-04-12  Jim Meyering  <meyering@lucent.com>
2769
2770         * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
2771
2772 2002-03-10  Jim Meyering  <meyering@lucent.com>
2773
2774         * makepath.c (make_path): Remove a comma from a diagnostic.
2775         Suggestion from Santiago Vila.
2776
2777 2002-03-08  Jim Meyering  <meyering@lucent.com>
2778
2779         * rename.c: Mention that this wrapper is needed also on
2780         mips-dec-ultrix4.4 systems.
2781
2782 2002-03-02  Jim Meyering  <meyering@lucent.com>
2783
2784         * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
2785         not HAVE_CLOCK_SETTIME.
2786
2787 2002-02-27  Paul Eggert  <eggert@twinsun.com>
2788
2789         * nanosleep.h: Rename to....
2790         * timespec.h: New name for nanosleep.h.  All uses changed.
2791
2792         * gettime.c: New file.
2793         * settime.c: New file.
2794         * stime.c: Remove.
2795
2796         * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
2797         timespec.h.  Remove nanosleep.h.
2798
2799 2002-02-25  Paul Eggert  <eggert@twinsun.com>
2800
2801         * acl.c, acl.h: New files.
2802         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
2803
2804 2002-02-24  Jim Meyering  <meyering@lucent.com>
2805
2806         * strnlen.c (strnlen): Define-away/undef so that an inconsistent
2807         prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
2808         cause trouble.  Reported by Nelson Beebe.
2809
2810 2002-02-23  Paul Eggert  <eggert@twinsun.com>
2811
2812         * path-concat.c (xpath_concat): Reorder code to pacify
2813         compilers that don't know that xalloc_die never returns.
2814
2815 2002-02-20  Jim Meyering  <meyering@lucent.com>
2816
2817         * getdate.c: Regenerate using bison-1.33.
2818
2819 2002-02-15  Paul Eggert  <eggert@twinsun.com>
2820
2821         * posixver.c, posixver.h: New files.
2822         * Makefile.am (libfetish_a_SOURCES): Add them.
2823
2824 2002-02-02  Paul Eggert  <eggert@twinsun.com>
2825             Bruno Haible  <bruno@clisp.org>
2826
2827         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
2828         (fwrite_success_callback): New declaration.
2829         * unicodeio.c (unicode_to_mb): New function, extracted from
2830         print_unicode_char. Call failure callback instead of error.
2831         (fwrite_success_callback): New function.
2832         (exit_failure_callback): New function.
2833         (fallback_failure_callback): New function.
2834         (print_unicode_char): Call unicode_to_mb.
2835
2836 2002-01-26  Jim Meyering  <meyering@lucent.com>
2837
2838         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
2839
2840 2002-01-22  Jim Meyering  <meyering@lucent.com>
2841
2842         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
2843         Otherwise, some versions of automake would omit the rule that makes
2844         Makefile from Makefile.in.
2845
2846 2001-01-21  Paul Eggert  <eggert@twinsun.com>
2847
2848         * xmemcoll.h, xmemcoll.c: New files.
2849         * Makefile.am (libfetish_a_SOURCES): Add them.
2850         * memcoll.c: Include errno.h, and declare errno if not defined.
2851         (memcoll): Set errno to zero if there is no error.
2852
2853         * quotearg.c (quotearg_buffer_restyled):
2854         Fix bug with quoting buffers containing NUL when backslashing escapes.
2855         This bug was exposed by the other changes in this patch.
2856         (quotearg_n_options): New arg ARGSIZE.
2857         All callers changed.
2858         (quoting_options_from_style): New function.
2859         (quotearg_n_style): Use it.
2860         (quotearg_n_style_mem): New function.
2861
2862         * quotearg.h (quotearg_n_style_mem): New function.
2863
2864 2002-01-16  Jim Meyering  <meyering@lucent.com>
2865
2866         * getdate.y: Add three semicolons, each just before a closing brace.
2867         Bison (as of version 1.31) no longer papers over that mistake.
2868
2869 2002-02-14  Paul Eggert  <eggert@twinsun.com>
2870
2871         * backupfile.c (ISDIGIT): Comment fix.
2872         * getdate.y (ISDIGIT): Likewise.
2873         * posixtm.c (ISDIGIT, year): Likewise.
2874         * strverscmp.c (ISDIGIT): Likewise.
2875         * userspec.c (ISDIGIT): Likewise.
2876
2877 2002-01-05  Jim Meyering  <meyering@lucent.com>
2878
2879         * version-etc.c (version_etc_copyright): Update copyright year.
2880
2881 2001-01-19  Paul Eggert  <eggert@twinsun.com>
2882
2883         * closeout.c (close_stdout_status): If ferror (stdout), do
2884         not silently exit merely because the output buffer happens to
2885         have nothing pending.
2886
2887 2001-12-18  Paul Eggert  <eggert@twinsun.com>
2888
2889         See the big note in ../ChangeLog.
2890         * human.c (suffixes): Prefer K to k for 1024.
2891         (generate_suffix_backwards): New function.
2892         (human_readable_inexact): Use it.
2893         * xstrtol.c (__xstrtol): If there is no number but there
2894         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
2895         Accept 'K' as well as 'k'.
2896
2897 2001-12-15  Jim Meyering  <meyering@lucent.com>
2898
2899         * regex.h (__restrict_arr): Update from libc.
2900
2901         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
2902         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
2903         (STREQ): Define.
2904
2905 2001-12-10  Jim Meyering  <meyering@lucent.com>
2906
2907         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
2908         Instead, include "xalloc.h".
2909         (initbuffer): Don't cast xmalloc return value to char*.
2910         (readline): Reword comment.
2911         Don't cast xrealloc return value to char*
2912         Return NULL, not 0.
2913
2914 2001-12-09  Jim Meyering  <meyering@lucent.com>
2915
2916         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
2917         `signed and unsigned type in conditional expression'.
2918         * posixtm.c (posix_time_parse): Likewise.
2919
2920         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
2921
2922         * readtokens.c (readtoken): Declare an index to be of type unsigned
2923         to avoid a pedantic warning.
2924
2925         * getstr.c: Don't include assert.h.
2926         (getstr): Remove warning-evoking assertions.
2927         Return -1 if offset parameter is out of bounds.
2928         Change the type of a local from int to size_t.
2929
2930         * strftime.c (my_strftime_localtime_r): Include this function
2931         definition in the `#if ! HAVE_TM_GMTOFF' block.
2932
2933         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
2934         Include xalloc.h instead.
2935
2936 2001-12-02  Jim Meyering  <meyering@lucent.com>
2937
2938         * tempname.c: Don't declare getenv, thus reverting the change of
2939         2001-11-18.  It's no longer necessary, now that stdlib.h is always
2940         included.
2941
2942         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
2943         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
2944
2945 2001-11-30  Akim Demaille  <akim@epita.fr>
2946
2947         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
2948         before being defined.
2949
2950 2001-11-27  Paul Eggert  <eggert@twinsun.com>
2951
2952         * quotearg.h (quotearg_n, quotearg_n_style):
2953         First arg is int, not unsigned.
2954         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
2955         (SIZE_MAX, UINT_MAX): New macros.
2956         (quotearg_n_options): Abort if N is negative.
2957         Avoid overflow check on hosts where size_t is 64 bits and int
2958         is 32 bits, as overflow is impossible there.
2959         Fix off-by-one typo that caused unnecessary reallocation.
2960
2961 2001-11-27  Jim Meyering  <meyering@lucent.com>
2962
2963         * tempname.c: Merge with version from libc.
2964         * regex.c: Likewise.
2965
2966         * tempname.c: Include stdlib.h unconditionally.  On some old systems
2967         for which STDC_HEADERS is 0, it was not included, resulting in a
2968         warning about an integer-to-pointer conversion problem with getenv.
2969         Reported by Volker Borchert.
2970
2971 2001-11-26  Jim Meyering  <meyering@lucent.com>
2972
2973         * gtod.h: Remove file.
2974         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
2975         * gettimeofday.c: Don't include gtod.h.
2976         (GTOD_init): Remove function.
2977         (rpl_gettimeofday): Do its job here instead, rather than aborting.
2978         Suggestion from Volker Borchert.
2979
2980 2001-11-23  Jim Meyering  <meyering@lucent.com>
2981
2982         * hash.h (struct hash_table): Don't define here.  Merely declare it.
2983         * hash.c (struct hash_table): Define it here instead.
2984
2985 2001-11-22  Jim Meyering  <meyering@lucent.com>
2986
2987         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
2988
2989 2001-11-18  Paul Eggert  <eggert@twinsun.com>
2990
2991         * tempname.c (TMP_MAX): Remove; no longer needed.
2992         (TEMPORARIES): New macro.
2993         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
2994         removes an artificial limitation (e.g. HP-UX 10.20, where
2995         TMP_MAX is 17576).
2996
2997 2001-11-18  Jim Meyering  <meyering@lucent.com>
2998
2999         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
3000         on SunOS 4.
3001
3002         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
3003         files will be created before anything else.
3004
3005 2001-11-17  Jim Meyering  <meyering@lucent.com>
3006
3007         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
3008         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
3009         rather than group writable.  Patch by Juan F. Codagnone.
3010
3011         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
3012         Instead, include "xalloc.h".
3013
3014         * mountlist.c: Include unlocked-io.h after all system headers.
3015         Remove explicit declarations of xmalloc, xrealloc,
3016         and xstrdup.  Instead, include "xalloc.h".
3017
3018         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
3019         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
3020         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
3021
3022         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
3023         Reported by Padraig Brady.
3024
3025         * mkstemp.c: #undef mkstemp.
3026         Include config.h.
3027         (rpl_mkstemp): Rename from mkstemp.
3028         Protoize.
3029
3030 2001-11-16  Jim Meyering  <meyering@lucent.com>
3031
3032         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
3033         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
3034         determine the amount of total physical memory, use pstat_getstatic.
3035         HPUX-11 doesn't define _SC_PHYS_PAGES.
3036         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
3037         If sysconf couldn't be used to determine the amount of available
3038         physical memory, use both pstat_getstatic and pstat_getdynamic.
3039         Based on a patch from Bob Proulx.
3040
3041 2001-11-05  Jim Meyering  <meyering@lucent.com>
3042
3043         * xstat.in (slash_aware_lstat): Correct a misleading comment.
3044
3045 2001-11-03  Jim Meyering  <meyering@lucent.com>
3046
3047         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
3048         in argmatch_to_argument call.
3049
3050         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
3051         argument.
3052
3053         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
3054         e.g., a fault due to an attempt to free a NULL pointer.
3055
3056 2001-11-01  Jim Meyering  <meyering@lucent.com>
3057
3058         * dirfd.c, dirfd.h: New files.
3059         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
3060
3061         * hash.c (hash_print) [TESTING]: Clean up.
3062
3063 2001-10-22  Paul Eggert  <eggert@twinsun.com>
3064
3065         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
3066         to avoid a warning if -Wall.
3067
3068 2001-10-21  Paul Eggert  <eggert@twinsun.com>
3069
3070         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
3071
3072 2001-10-21  Jim Meyering  <meyering@lucent.com>
3073
3074         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
3075         this code would end up calling gettext even in packages built
3076         with --disable-nls.
3077         * getopt.c (_): Likewise.
3078         * regex.c (_): Likewise.
3079
3080 2001-10-20  Paul Eggert  <eggert@twinsun.com>
3081
3082         * error.c (strerror_r): Do not declare unless !_LIBC.
3083         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
3084         Use strerror_r that is only a macro, even if it is not a function.
3085         (strerror): Check for HAVE_DECL_STRERROR before declaring.
3086         (private_strerror): Use prototypes, not old-style function definition.
3087         (print_errno_message): New function.
3088         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
3089         char*-flavored one.
3090         (error_tail, error, error_at_line): Use it.
3091
3092 2001-10-11  Jim Meyering  <meyering@lucent.com>
3093
3094         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
3095         and quote_n (1, ... to avoid clobbering a buffer.
3096
3097 2001-10-05  Jim Meyering  <meyering@lucent.com>
3098
3099         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
3100         * hash-pjw.c: New file (factored out of fileutils' remove.c).
3101         * hash-pjw.h: New file.
3102
3103 2001-09-30  Jim Meyering  <meyering@lucent.com>
3104
3105         * mountlist.c [MOUNTED_GETFSSTAT]:
3106         Include <sys/ucred.h>, for Apple Darwin.
3107         Include sys/mount.h and sys/fs_types.h only if available.
3108         (FS_TYPE): Define.
3109         (read_filesystem_list): Use FS_TYPE.
3110
3111 2001-09-29  Paul Eggert  <eggert@twinsun.com>
3112
3113         * exclude.c (excluded_filename): 0 -> false, since it's
3114         a boolean context.
3115
3116 2001-09-28  Paul Eggert  <eggert@twinsun.com>
3117
3118         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
3119         #defines strtoimax.  Also treat the other strto* functions
3120         like strtoimax.
3121
3122         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
3123         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
3124         (strtoimax, strtoumax): Do not declare if already defined as a macro.
3125
3126 2001-09-26  Jim Meyering  <meyering@lucent.com>
3127
3128         Most macros in unlocked-io.h had the wrong number of arguments.
3129         * gen-uio: New script.
3130         (USE_UNLOCKED_IO): Define to 1 if not already defined.
3131         * unlocked-io.hin: Remove file.
3132         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
3133         rather than trying to embed it here.
3134         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
3135         Reported by Padraig Brady.
3136
3137 2001-09-25  Volker Borchert  <bt@teknon.de>
3138
3139         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
3140
3141 2001-09-23  Jim Meyering  <meyering@lucent.com>
3142
3143         * mountlist.c: Remove useless parentheses in #if directives.
3144         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
3145         the deprecated MOUNTED symbol is no longer defined in mntent.h.
3146
3147 2001-09-22  Jim Meyering  <meyering@lucent.com>
3148
3149         * localcharset.c: Update from latest gettext.
3150         * config.charset: Likewise.
3151
3152 2001-09-20  Jim Meyering  <meyering@lucent.com>
3153
3154         * xstrtol.c (strtoimax): Guard declaration with
3155         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
3156         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
3157         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
3158         (strtoumax): Likewise, for completeness (it wasn't necessary).
3159
3160 2001-09-06  Paul Eggert  <eggert@twinsun.com>
3161
3162         * strtoimax.c (HAVE_LONG_LONG):
3163         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
3164         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
3165         to work around bug in IBM C compiler.
3166
3167 2001-09-16  Jim Meyering  <meyering@lucent.com>
3168
3169         * mkdir.c: New file.
3170
3171 2001-09-04  Paul Eggert  <eggert@twinsun.com>
3172
3173         * xgetcwd.c: Revert some of the previous change; intead,
3174         fix the HAVE_GETCWD_NULL code to behave more like the
3175         !HAVE_GETCWD_NULL code used to.
3176
3177         Include "xalloc.h".
3178         (xgetcwd): Do not return NULL when memory is exhausted; instead,
3179         invoke xalloc_die.
3180
3181 2001-09-04  Paul Eggert  <eggert@twinsun.com>
3182
3183         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
3184         Use ssize_t, not int, to store result of readlink.
3185         Check for ssize_t overflow as well as size_t overflow,
3186         as POSIX says the result of readlink is implementation-defined
3187         when ssize_t overflows.
3188         Remove unnecessary cast to char*.
3189         Use free+malloc instead of realloc, as the storage doesn't need
3190         to be preserved and it's clearer and can be more efficient that way.
3191         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
3192         * xreadlink.h (xreadlink): Update prototype.
3193
3194 2001-09-03  Paul Eggert  <eggert@twinsun.com>
3195
3196         * exclude.c (fnmatch_no_wildcards): Fix confusion between
3197         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
3198         spotted by Jim Meyering.
3199
3200 2001-09-03  Jim Meyering  <meyering@lucent.com>
3201
3202         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
3203
3204 2001-09-03  Paul Eggert  <eggert@twinsun.com>
3205
3206         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
3207         like the HAVE_GETCWD_NULL code.
3208         Include pathmax.h if not HAVE_GETCWD.
3209         Do not include xalloc.h.
3210         (INITIAL_BUFFER_SIZE): New symbol.
3211         Do not use xmalloc / xrealloc, since the caller is responsible for
3212         handling errors.  Preserve errno around `free' during failure.
3213         Do not overrun buffer when using getwd.
3214
3215 2001-09-03  Paul Eggert  <eggert@twinsun.com>
3216
3217         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
3218         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
3219
3220 2001-09-02  Jim Meyering  <meyering@lucent.com>
3221
3222         * error.c: Update from GNU libc.
3223
3224 2001-09-01  Jim Meyering  <meyering@lucent.com>
3225
3226         * xreadlink.c: New file.
3227         * xreadlink.h: New file.
3228         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
3229
3230         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
3231         doesn't conflict with sparc Solaris 7's definition in
3232         /usr/include/sys/int_types.h.
3233
3234         * exclude.c: Use `""', not `<>' to #include non-system header files.
3235         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
3236         and strncasecmp as r-values.  Unixware didn't have declarations.
3237
3238 2001-08-31  Jim Meyering  <meyering@lucent.com>
3239
3240         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
3241         Use an initial, malloc'd, buffer of length 128 rather than
3242         a statically allocated one of length 1024.
3243
3244 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3245
3246         * xgetcwd.c: Don't include pathmax.h.
3247         Include stdlib.h and unistd.h if available.
3248         Include xalloc.h.
3249         (xmalloc, xstrdup, free): Remove decls.
3250         (xgetcwd): Don't assume sizes fit in unsigned.
3251         Check for overflow when computing sizes.
3252         Simplify reallocation code.
3253
3254 2001-08-28  Paul Eggert  <eggert@twinsun.com>
3255
3256         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
3257
3258         * strtoimax.c: Renamed from strtoxmax.c, removing the
3259         old strtoimax.c.
3260
3261         Also, make the following further changes to make this file's
3262         configuration more similar to that of strtol.c:
3263         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
3264         (strtoumax, uintmax_t, strtoull, strtol): Remove.
3265         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
3266         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
3267         changed to signed values.
3268
3269         And make the following changes as well:
3270         Fix copyright notice, as 1999 was missing.
3271         (verify): New macro.
3272         (strtoimax): Check sizes at compile-time, not run-time.
3273         Prefer strtol to strtoll if both work.
3274         (main): Remove; it was not that useful and was a pain to maintain.
3275
3276         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
3277
3278 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3279
3280         * savedir.c (savedir): Remove size parameter, as POSIX says that
3281         a directory's st_size can have an arbitrary value, so the old
3282         usage could waste an arbitrary amount of memory.  All uses
3283         changed.
3284         * savedir.h: Update prototype.
3285
3286 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3287
3288         * xstrtol.c (strtoimax): New decl.
3289
3290 2001-08-28  Paul Eggert  <eggert@twinsun.com>
3291
3292         * xstrtol.h: Add copyright notice.
3293         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
3294         LONGINT_INVALID_SUFFIX_CHAR.
3295
3296 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3297
3298         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
3299         tm to be declared.
3300
3301 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3302
3303         * hash.c: Remove '2001' from copyright notice.
3304
3305 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3306
3307         * full-write.h: New file.
3308         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
3309         * full-write.c: Correct credits, as cccp.c no longer
3310         exists and anyway it was so heavily changed from the old cccp
3311         code as to be unrecognizable.  Include full-write.h.
3312         (full_write) Return size_t, with short writes meaning failure.
3313         All callers changed.  This fixes a bug with large buffers
3314         on 64-bit hosts.
3315         * utime.c: Include full-write.h.
3316
3317 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3318
3319         Merge 'exclude' changes from tar 1.13.22.
3320         This fixes one or two unlikely storage allocation overflow bugs,
3321         but doesn't change user-visible behavior otherwise.
3322
3323 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3324
3325         * exclude.c (bool): Declare, perhaps by including stdbool.h.
3326         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
3327         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
3328         Include if available.
3329         (<xalloc.h>): Include
3330         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
3331         (verify): New macro.  Use it to verify that EXCLUDE macros do not
3332         collide with FNM macros.
3333         (struct patopts): New struct.
3334         (struct exclude): Use it, as exclude patterns now come with options.
3335         (new_exclude): Support above changes.
3336         (new_exclude, add_exclude_file):
3337         Initial size must now be a power of two to simplify overflow checking.
3338         (free_exclude, fnmatch_no_wildcards): New function.
3339         (excluded_filename): No longer requires options arg, as the options
3340         are determined by add_exclude.  Now returns bool, not int.
3341         (excluded_filename, add_exclude):
3342         Add support for the fancy new exclusion options.
3343         (add_exclude, add_exclude_file): Now takes int options arg.
3344         Check for arithmetic overflow when computing sizes.
3345         (add_exclude_file): xrealloc might modify errno, so don't
3346         realloc until after errno might be used.
3347
3348         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
3349         New macros.
3350         (free_exclude): New decl.
3351         (add_exclude, add_exclude_file): Now takes int options arg.
3352         (excluded_filename): No longer requires options arg, as the options
3353         are determined by add_exclude.  Now returns bool, not int.
3354
3355 2001-08-30  Paul Eggert  <eggert@twinsun.com>
3356
3357         * alloca.c (alloca): Arg is of type size_t, not unsigned.
3358
3359 2001-08-27  Jim Meyering  <meyering@lucent.com>
3360
3361         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
3362
3363         * version-etc.c (N_): Remove definition.
3364         Revert most of last change.
3365         Instead, simply don't mark the `Copyright...' string for translation.
3366         Based on advice from Paul Eggert.
3367
3368         * strtoxmax.c: Tweak comment.
3369
3370 2001-08-26  Jim Meyering  <meyering@lucent.com>
3371
3372         * version-etc.c (version_etc_copyright_fmt): Replace literal year
3373         of copyright with `%s' so translators don't get an untranslated
3374         message in 2002.
3375         (COPYRIGHT_YEAR): Define.
3376         (version_etc): Use fprintf rather than fputs.
3377         Suggestion from Ulrich Drepper.
3378
3379         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
3380
3381         * strtoll.c: New file, from GNU libc.
3382         * xstrtoimax.c: New file.
3383
3384         * xstrtol.h: Add xstrtoimax.
3385         * strtoumax.c: New file.  Simply include "strtoumax.c".
3386         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
3387
3388         * strtoumax.c: Factor to work both for unsigned and signed types, ...
3389         * strtoxmax.c: ... then renamed to this.
3390
3391 2001-08-13  Paul Eggert  <eggert@twinsun.com>
3392
3393         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
3394         Port to Solaris 8, where 'sed' requires a space after the 'r'
3395         command, and where sh dislikes "$/".  Clean up the spacing a bit.
3396         Redirect output to $tmp just once.
3397
3398 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
3399
3400         * addext.c (<errno.h>): Include.
3401         (errno): Declare if not defined.
3402         (addext): Work correctly when pathconf returns -1 and leaves
3403         errno alone because there is no limit.  Also, work even if
3404         pathconf returns a value greater than SIZE_MAX.
3405
3406 2001-08-12  Jim Meyering  <meyering@lucent.com>
3407
3408         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
3409         Simply `return getcwd (NULL, 0);'.
3410         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
3411         Use 1300 as initial value for length, not PATH_MAX.
3412
3413         * pathmax.h: Clean up cpp syntax.
3414
3415 2001-08-12  Jim Meyering  <meyering@lucent.com>
3416
3417         * gettimeofday.c: New file.
3418         * gtod.h: New file.
3419         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
3420
3421 2001-08-04  Jim Meyering  <meyering@lucent.com>
3422
3423         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
3424         to get in sync with glibc.
3425
3426 2001-08-03  Paul Eggert  <eggert@twinsun.com>
3427
3428         The following changes are from gettext 0.10.39 as maintained by
3429         Bruno Haible.
3430
3431         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
3432         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
3433         with inverted sense.  All uses changed.
3434
3435         * mbswidth.c: Don't include <limits.h>.
3436         Include <stdlib.h> and <string.h> unconditionally.
3437         (iswcntrl, mbsinit, ISCNTRL): New macros.
3438         (mbsnwidth): Use K&R style function declarations.
3439         Don't bother checking for MB_LEN_MAX == 1, since the compiler
3440         can optimize it when MB_CUR_MAX == 1.
3441         The width of control characters is zero, not 1.
3442
3443 2001-07-15  Jim Meyering  <meyering@lucent.com>
3444
3445         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
3446         (BUILT_SOURCES): Add unlocked-io.h.
3447         (io_functions): Define.
3448         (unlocked-io.h): New rule.
3449         (DISTCLEANFILES): Add unlocked-io.h.
3450         (all-local): Depend on unlocked-io.h, to ensure it is created.
3451
3452         * unlocked-io.hin: New file
3453
3454         * regex.c: Update from glibc.
3455
3456 2001-07-05  Jim Meyering  <meyering@lucent.com>
3457
3458         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
3459         recommendation.
3460         (libfetish_a_SOURCES): Put all .h files here instead.
3461         Remove a thus-exposed (better checks in automake) duplicate and
3462         two unnecessary .h files.
3463
3464 2001-06-11  Jim Meyering  <meyering@lucent.com>
3465
3466         * regex.c: Update from GNU libc.
3467
3468 2001-05-27  Jim Meyering  <meyering@lucent.com>
3469
3470         * readutmp.h (UT_TYPE): Define.
3471
3472 2001-05-24  Jim Meyering  <meyering@lucent.com>
3473
3474         * argmatch.c: Include "quote.h".
3475         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
3476         quote function.  Reported by Göran Uddeborg.
3477
3478 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
3479
3480         * dirname.c (dir_name): Compute append_dot using path, not newpath
3481         which is not yet declared.
3482
3483 2001-05-11  Paul Eggert  <eggert@twinsun.com>
3484
3485         * Makefile.am (libfetish_a_SOURCES):
3486         Add strftime.c, since we now compile it on all hosts.
3487
3488         * strftime.c (my_strftime):
3489         Define to nstrftime if emacs, but only if my_strftime is not defined.
3490         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
3491         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
3492         Add one more extra argument: a nanoseconds value.
3493         All uses changed.
3494         (ns): New macro.
3495         (my_strftime function): Add %N format.
3496         (emacs_strftimeu): Renamed from emacs_strftime,
3497         with extra ut argument.
3498
3499 2001-05-11  Paul Eggert  <eggert@twinsun.com>
3500
3501         dirname code cleanup.  base_name now behaves more compatibly
3502         with POSIX basename when given file names that have trailing
3503         slashes, and similarly for dir_name.  Add new primitives
3504         base_len and dir_len.  Put the directory-name-related decls
3505         into dirname.h.
3506
3507         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
3508         * backupfile.c (base_name): Likewise.
3509         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
3510         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
3511         * makepath.c (strip_trailing_slashes): Likewise.
3512         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
3513         Likewise.
3514         * rename.c (strip_trailing_slashes): Likewise.
3515         * same.c (base_name): Likewise.
3516         * stripslash.c (ISSLASH): Likewise.
3517
3518         * addext.c: Include <dirname.h> after size_t is defined.
3519         * backupfile.c: Likewise.
3520
3521         * addext.c (addext): Use base_len to trim redundant
3522         trailing slashes instead of doing it ourselves.
3523         But do not trim the last slash if it is not redundant.
3524
3525         * backupfile.c (find_backup_file_name,
3526         max_backup_version): Use base_len instead of rolling it ourselves.
3527         Handle the case of "" and (on DOS) "C:" correctly.
3528
3529         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
3530         Include <string.h>, <dirname.h>.
3531         (base_name): Allow file names ending in slashes, other than names
3532         that are all slashes.  In this case, return the basename followed
3533         by the slashes.  This is more general, and can be used in places
3534         where the original base_name purposely had an assertion failure.
3535         (base_len): New function.
3536
3537         * dirname.c: Include <string.h> instead of <stdlib.h>.
3538         Do not include <assert.h>; no longer needed.
3539         Include xalloc.h.
3540         (memrchr): Remove decl.
3541         (dir_name_r): Remove.
3542         (dir_len): Renamed from dirlen.  All callers changed.
3543         Rewrite in terms of base_name, for simplicity and consistency.
3544         (dir_name): Never return NULL.  All callers changed.
3545         Do not include <stdlib.h> in test program; no longer needed.
3546         return 0; is fine for test program.
3547
3548         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
3549         New macros.
3550         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
3551
3552         * path-concat.c (path_concat): Use base_len to compute
3553         base length, not strlen; this means we cannot rely on memcpy
3554         to null-terminate.
3555
3556         * same.c (STREQ): Remove.
3557         (same_name): Handle the case where the basename ends in trailing '/'.
3558
3559         * stripslash.c (strip_trailing_slashes): Return nonzero if
3560         a slash was stripped.  Do not strip the last slash after a
3561         file system prefix.
3562
3563 2001-04-08  Jim Meyering  <meyering@lucent.com>
3564
3565         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
3566         recomputed; that's necessary when the offset spans a DST transition.
3567         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
3568
3569 2001-04-02  Jim Meyering  <meyering@lucent.com>
3570
3571         * regex.h, regex.c: Update from GNU libc.
3572
3573 2001-03-19  Paul Eggert  <eggert@twinsun.com>
3574
3575         * version-etc.c (version_etc_copyright): Update to 2001.
3576
3577 2001-03-16  Paul Eggert  <eggert@twinsun.com>
3578
3579         * tempname.c (uint64_t): Define to uintmax_t if
3580         not defined, and if UINT64_MAX is not defined.
3581         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
3582         Reported by John David Anglin.
3583
3584 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
3585
3586         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
3587         alias if codeset is empty.
3588         * config.charset (BeOS): Use wildcard syntax.
3589
3590 2001-03-13  Jim Meyering  <meyering@lucent.com>
3591
3592         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
3593         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
3594         From Bruno Haible.
3595
3596 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
3597
3598         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
3599         Don't return NULL.
3600         * unicodeio.c (print_unicode_char): Simplify accordingly.
3601
3602 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
3603
3604         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
3605         support for DOS/DJGPP.
3606
3607 2001-02-28  Paul Eggert  <eggert@twinsun.com>
3608
3609         * Makefile.am (libfetish_a_SOURCES):
3610         Add dup-safer.c, fopen-safer.c.
3611         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
3612
3613         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
3614
3615 2001-02-25  Paul Eggert  <eggert@twinsun.com>
3616
3617         The mkstemp replacement is taken from glibc 2.2.2, with some
3618         portability fixes for use outside glibc, as follows:
3619
3620         * tempname.c (struct_stat64): New macro.
3621         (direxists, __gen_tempname): Use it.
3622         This avoids a portability problem with Solaris 8.
3623
3624         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
3625         (<stddef.h>, <stdint.h>, <string.h>):
3626         Include only if STDC_HEADERS || _LIBC.
3627         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
3628         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
3629         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
3630         (__set_errno): Define this macro if <errno.h> doesn't.
3631         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
3632         Define these macros if <stdio.h> doesn't.
3633         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
3634         Define these macros if <sys/stat.h>
3635         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
3636         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
3637         __xstat64): Define if not _LIBC.
3638         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
3639         (__gen_tempname): Invoke gettimeofday only if
3640         HAVE_GETTIMEOFDAY || _LIBC;
3641         otherwise, fall back on plain "time".
3642         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
3643
3644         * mkstemp.c (__GT_FILE): Define to zero if not defined.
3645
3646         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
3647
3648 2001-02-17  Jim Meyering  <meyering@lucent.com>
3649
3650         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
3651         around included file name.
3652
3653         * strnlen.c (__strnlen): Merge in a change from GNU libc.
3654
3655         * strftime.c: Update from GNU libc (the only changes were to comments).
3656
3657 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
3658
3659         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
3660
3661 2001-02-17  Paul Eggert  <eggert@twinsun.com>
3662
3663         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
3664         Remove workaround macros for hosts that have mbrtowc but not
3665         mbstate_t, as we now insist on proper declarations for both
3666         before using mbrtowc.
3667
3668 2001-02-17  Jim Meyering  <meyering@lucent.com>
3669
3670         * regex.c: Update from libc.
3671
3672 2001-02-16  Paul Eggert  <eggert@twinsun.com>
3673
3674         * alloca.c (malloc): Undef before defining, since stdlib.h
3675         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
3676         Reported by Mark Hounschell via Paul Eggert.
3677
3678 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
3679
3680         * config.charset: Update for FreeBSD 4.2.
3681
3682 2001-01-26  Jim Meyering  <meyering@lucent.com>
3683
3684         * quotearg.c: Include stddef.h.
3685         * quote.c: Include stddef.h.
3686         Reported by Axel Kittenberger.
3687
3688         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
3689         line in double quotes so that it evokes a better diagnostic.
3690         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
3691         Reported by Axel Kittenberger.
3692
3693 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
3694
3695         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
3696         to avoid a warning.  Add back 'const' to inptr.
3697
3698 2001-01-16  Jim Meyering  <meyering@lucent.com>
3699
3700         * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
3701         From Bruno Haible.
3702
3703 2001-01-14  Jim Meyering  <meyering@lucent.com>
3704
3705         * rename.c: New file.  From Volker Borchert.
3706         Include stdlib.h, string.h or strings.h, and xalloc.h.
3707         Use strip_trailing_slashes rather than open-coding it.
3708
3709 2001-01-03  Paul Eggert  <eggert@twinsun.com>
3710
3711         * strftime.c: Sync with glibc time/strftime.c 1.81.
3712
3713 2001-01-03  Jim Meyering  <meyering@lucent.com>
3714
3715         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
3716         local `inptr' to avoid warning with some system declarations of iconv.
3717
3718 2000-12-29  Paul Eggert  <eggert@twinsun.com>
3719
3720         * modechange.c: Do not assume that mode_t uses the
3721         traditional octal encoding.  E.g. "chmod 1 FOO" should set
3722         the other-execute bit of FOO even if S_IXOTH != 1.
3723
3724         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
3725         WOTH, XOTH, ALLM): New macros.
3726         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
3727          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
3728         Use them.
3729         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
3730         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
3731         (mode_compile):
3732         No need to use uintmax_t; unsigned long is long enough.
3733         Don't bother to get suffix since we don't use it.
3734
3735 2000-12-24  Jim Meyering  <meyering@lucent.com>
3736
3737         * hash.c (is_prime): Return explicit boolean values.
3738         (hash_get_first): Return NULL to appease Irix5.6's 89.
3739         Reported by Nelson Beebe.
3740
3741 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
3742
3743         * localcharset.c (locale_charset): Add support for Win32.
3744
3745 2000-12-18  Paul Eggert  <eggert@twinsun.com>
3746
3747         * physmem.h, physmem.c: New files.
3748
3749         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
3750         (noinst_HEADERS): Add physmem.h.
3751
3752         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
3753         't' for compatibility with Solaris 8 sort.
3754
3755 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
3756
3757         * config.charset: Add support for BeOS.
3758
3759 2000-12-16  Jim Meyering  <meyering@lucent.com>
3760
3761         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
3762         SHELLS_FILE to a file name that's useful on djgpp systems.
3763         Include stdlib.h.
3764         (ADDITIONAL_DEFAULT_SHELLS): Define.
3765         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
3766         Based mostly on a patch from Prashant TR.
3767
3768 2000-12-16  Jim Meyering  <meyering@lucent.com>
3769
3770         This bug had a serious impact on chown: `chown N:M FILE' (for integer
3771         N and M) would have treated it like `chown N:N FILE'.
3772
3773         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
3774
3775 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
3776
3777         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
3778         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
3779         to the list of canonical encodings. Rename EUC-CN to GB2312.
3780
3781 2000-12-08  Andreas Schwab  <schwab@suse.de>
3782
3783         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
3784         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
3785
3786 2000-12-07  Jim Meyering  <meyering@lucent.com>
3787
3788         * stripslash.c (ISSLASH): Define.
3789         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
3790         From Prashant TR.
3791
3792         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
3793         (dir_name_r): Declare this function as static.
3794         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
3795         manifest itself on a name containing a mix of slashes and
3796         backslashes.
3797         Make this function work with names starting with a DOS-style
3798         drive letter and colon prefix.
3799         (dir_name): Append `.' if necessary.
3800         Based mostly on patches from Prashant TR and Eli Zaretskii.
3801
3802         * dirname.h (dir_name_r): Remove prototype.
3803
3804 2000-12-05  Jim Meyering  <meyering@lucent.com>
3805
3806         * dirname.c (dir_name_r): Add `const' in a few local declarations.
3807
3808 2000-12-04  Jim Meyering  <meyering@lucent.com>
3809
3810         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
3811         Also include memory.h, stdlib.h, unistd.h if appropriate.
3812         Reported by Andreas Jaeger (conflicting declaration of malloc).
3813
3814 2000-12-02  Jim Meyering  <meyering@lucent.com>
3815
3816         * closeout.h: Make idempotent, to avoid some obscure warnings.
3817
3818 2000-12-01  Paul Eggert  <eggert@twinsun.com>
3819
3820         * memrchr.c: Include <config.h> before any system include file.
3821
3822 2000-11-29  Paul Eggert  <eggert@twinsun.com>
3823
3824         * dirname.c (dir_name_r): Fix typo: int -> size_t.
3825
3826 2000-11-26  Jim Meyering  <meyering@lucent.com>
3827
3828         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
3829
3830 2000-11-22  Paul Eggert  <eggert@twinsun.com>
3831
3832         * strftime.c (my_strftime): Do not invoke mbrlen with a
3833         size of (size_t) -1; it's not portable.
3834
3835 2000-11-17  Akim Demaille  <akim@epita.fr>
3836
3837         * obstack.h: Formatting changes.
3838         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
3839         prevent type checking.
3840         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
3841         cast the value to (void *): assigning a `foo *' to a `void *'
3842         variable is valid.
3843         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
3844
3845 2000-11-17  Jim Meyering  <meyering@lucent.com>
3846
3847         * strstr.c: Update from GNU libc.
3848
3849 2000-11-16  Jim Meyering  <meyering@lucent.com>
3850
3851         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
3852
3853 2000-11-11  Jim Meyering  <meyering@lucent.com>
3854
3855         * error.c: Add a couple #includes, merging from GNU libc version.
3856
3857 2000-11-10  Jim Meyering  <meyering@lucent.com>
3858
3859         * obstack.h: Update from GNU libc.
3860         * obstack.c: Likewise.
3861
3862 2000-11-06  Paul Eggert  <eggert@twinsun.com>
3863
3864         * getusershell.c (setusershell): Use rewind rather than
3865         fseek/fseeko, to avoid configuration hassles with fseeko.
3866         Don't bother opening SHELLS_FILE if shellstream is NULL;
3867         it's not necessary.
3868
3869 2000-11-05  Jim Meyering  <meyering@lucent.com>
3870
3871         * makepath.h (make_dir): Declare.
3872         * makepath.c (make_dir): Remove `static' attribute.
3873         Tweak a comment.
3874
3875 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
3876
3877         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
3878         last one in a bucket, advance to the next bucket.
3879
3880 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
3881
3882         * fnmatch.c: Do not comment out all the code if we are using
3883         the GNU C library, because in some cases we are replacing buggy
3884         code in the GNU C library itself.
3885
3886 2000-10-30  Paul Eggert  <eggert@twinsun.com>
3887
3888         * error.h, getline.h, modechange.h:
3889         Remove "2000" from Copyright line, as the file hasn't been
3890         changed this year other than in the copyright notice.
3891
3892         * xalloc.h: Add "2000" to Copyright line, as this file
3893         was changed this year.
3894
3895 2000-10-30  Paul Eggert  <eggert@twinsun.com>
3896
3897         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
3898         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
3899         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
3900
3901 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
3902
3903         * regex.h (__restrict_arr): Move definition out of #ifndef block.
3904         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
3905         doesn't define __restrict_arr.
3906
3907 2000-10-29  Jim Meyering  <meyering@lucent.com>
3908
3909         * xstat.in: Fix grammar in comment.
3910
3911 2000-10-28  Jim Meyering  <meyering@lucent.com>
3912
3913         * memchr.c: Update from libc.
3914         Adjust for portability:
3915         [HAVE_STDLIB_H]: Include stdlib.h.
3916         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
3917         Undef __memchr, too.
3918         [!weak_alias]: Define __memchr to memchr.
3919
3920         * regex.c: Update from libc.
3921         * regex.h: Likewise.
3922         * getopt1.c: Likewise.
3923         * memcmp.c: Likewise.
3924
3925         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
3926         Avoid using fseek, when possible -- it's broken by design.
3927         Patch by Ulrich Drepper.
3928
3929 2000-10-26  Jim Meyering  <meyering@lucent.com>
3930
3931         * strftime.c: Update from libc.
3932
3933 2000-10-25  Jim Meyering  <meyering@lucent.com>
3934
3935         * obstack.c: Update from libc.
3936
3937 2000-10-23  Jim Meyering  <meyering@lucent.com>
3938
3939         * hard-locale.c (hard_locale): Revert last change -- it was simply
3940         wrong.  That set_locale call must not have any side effects.
3941         From Paul Eggert.
3942
3943 2000-10-22  Jim Meyering  <meyering@lucent.com>
3944
3945         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
3946         [CYCLIC]: Remove now-unused definition.
3947
3948         * save-cwd.c (O_DIRECTORY): Define, if needed.
3949         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
3950         Suggestion from Ulrich Drepper.
3951
3952 2000-10-21  Jim Meyering  <meyering@lucent.com>
3953
3954         * dirname.c (dir_name_r): New function, factored out of dir_name.
3955         (dir_name): Use dir_name_r.
3956         * dirname.h (dir_name_r): Declare it.
3957
3958 2000-10-21  Jim Meyering  <meyering@lucent.com>
3959
3960         * dirname.c (memrchr): Declare if necessary.
3961         (dir_name): Remove the restriction that there be no
3962         trailing slashes.  Now, this code skips past them, effectively
3963         ignoring them.
3964         [TEST_DIRNAME] (main): New unit tests.
3965
3966         * memrchr.c: New file from GNU libc.
3967         Undef __memrchr, too.
3968         [!weak_alias]: Define __memrchr to memrchr.
3969         Guard weak_alias use with `#ifdef weak_alias'.
3970
3971 2000-10-17  Jim Meyering  <meyering@lucent.com>
3972
3973         * quote.h (PARAMS): Define and use.
3974         Reported by Akim Demaille.
3975
3976         * getopt.c: Update from libc.
3977
3978 2000-10-16  Jim Meyering  <meyering@lucent.com>
3979
3980         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
3981         From Jan Fedak.
3982
3983 2000-09-25  Jim Meyering  <meyering@lucent.com>
3984
3985         * md5.h (rol): Define (from GnuPG).
3986
3987         * sha.c: Give credit (GnuPG) where due.
3988         (M): Use rol rather than open-coding it.
3989         Add a FIXME comment.
3990
3991 2000-09-21  Jim Meyering  <meyering@lucent.com>
3992
3993         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
3994         Reported by Michael Stone.
3995
3996 2000-09-20  Jim Meyering  <meyering@lucent.com>
3997
3998         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
3999         (noinst_HEADERS): Add sha.h.
4000         Based on code from Scott G. Miller and from GnuPG.
4001
4002 2000-09-15  Jim Meyering  <meyering@lucent.com>
4003
4004         * regex.c: Update from libc.
4005
4006 2000-09-10  Jim Meyering  <meyering@lucent.com>
4007
4008         * getopt.c (_getopt_internal): Update from glibc.
4009
4010 2000-09-09  Jim Meyering  <meyering@lucent.com>
4011
4012         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
4013         think it should be used as a general replacement for isascii.
4014         * fnmatch.c: Likewise.
4015         * mbswidth.c: Likewise
4016         * regex.c: Likewise.
4017
4018         Don't use atoi.
4019         * userspec.c: Include sys/param.h and limits.h.
4020         Include xstrtol.h.
4021         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
4022         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
4023         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
4024         UID, GID.  Check range.
4025
4026 2000-09-06  Jim Meyering  <meyering@lucent.com>
4027
4028         * getopt.c (_getopt_internal): Update from glibc.
4029
4030 2000-08-30  Jim Meyering  <meyering@lucent.com>
4031
4032         * strftime.c: Merge in changes from GNU libc.
4033
4034 2000-08-26  Jim Meyering  <meyering@lucent.com>
4035
4036         * closeout.c: Include "__fpending.h".
4037         (close_stdout_status): Return right away if there's nothing to flush.
4038
4039         * Makefile.am (noinst_HEADERS): Add __fpending.h.
4040         * __fpending.c: New file.
4041         * __fpending.h: New file.
4042
4043 2000-08-07  Paul Eggert  <eggert@twinsun.com>
4044
4045         Standardize on "memory exhausted" instead of "Memory exhausted"
4046         or "virtual memory exhausted".
4047         * obstack.c (print_and_abort): Use "memory exhausted", not
4048         "virtual memory exhausted".
4049         * same.c (same_name): Invoke xalloc_die instead of printing
4050         our own message.
4051         * userspec.c (parse_user_spec): Likewise.
4052         * bumpalloc.h: comment fix
4053         * same.c, userspec.c: Include xalloc.h.
4054
4055         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
4056         not char *const and pointing to a constant array.
4057         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
4058         (xrealloc): Comment fix.
4059
4060         * userspec.c (parse_user_spec):
4061         Don't translate a message until just before returning,
4062         to avoid unnecessary translation.
4063
4064 2000-08-07  Jim Meyering  <meyering@lucent.com>
4065
4066         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
4067         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
4068         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
4069         getgroups.c, gethostname.c, getopt.h, group-member.c,
4070         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
4071         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
4072         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
4073         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
4074         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
4075         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
4076         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
4077         yesno.c: Back out Copyright date changes for each file with no change
4078         this year.  This eases coordination with other programs using the same
4079         source code modules.  From Paul Eggert.
4080
4081 2000-08-03  Greg McGary  <greg@mcgary.org>
4082
4083         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
4084         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
4085         (EXTEND_BUFFER): Use them.
4086
4087 2000-08-01  Jim Meyering  <meyering@lucent.com>
4088
4089         * dirname.c (ISSLASH): Define.
4090         (BACKSLASH_IS_PATH_SEPARATOR): Define.
4091         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
4092         both `\' and `/' may be use as path separators.
4093         Based on a patch from Prashant TR.
4094
4095 2000-07-31  Paul Eggert  <eggert@twinsun.com>
4096
4097         * quotearg.c (quotearg_n_options): Don't make the initial
4098         slot vector a constant, since it might get modified.
4099
4100 2000-07-31  Jim Meyering  <meyering@lucent.com>
4101
4102         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
4103         * obstack.c (print_and_abort): Likewise.
4104
4105 2000-07-30  Paul Eggert  <eggert@twinsun.com>
4106
4107         * quotearg.c (quotearg_n_options): Preallocate a slot 0
4108         buffer, so that the caller can always quote one small
4109         component of a "memory exhausted" message in slot 0.
4110         From a suggestion by Jim Meyering.
4111
4112 2000-07-30  Jim Meyering  <meyering@lucent.com>
4113
4114         * makepath.c (make_path): Quote the other instance, too.
4115
4116         * quotearg.c (N_STATIC_SLOTVECS): Define.
4117         (STATIC_BUF_SIZE): Define.
4118         (quotearg_n_options): Use only statically allocated storage when
4119         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
4120         than STATIC_BUF_SIZE.
4121
4122 2000-07-29  Jim Meyering  <meyering@lucent.com>
4123
4124         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
4125         * dirname.c (dir_name): Likewise.
4126
4127         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
4128
4129         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
4130         (dir_name): Assert that there are no trailing slashes.
4131
4132 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
4133
4134         * mbswidth.h (mbswidth): Add a flags argument.
4135         (mbswidth): New declaration.
4136         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
4137         * mbswidth.c (mbswidth): Add a flags argument.
4138         (mbsnwidth): New function.
4139
4140 2000-07-24  Jim Meyering  <meyering@lucent.com>
4141
4142         * mbswidth.c: Remove useless #else.  From Bruno Haible.
4143
4144 2000-07-23  Paul Eggert  <eggert@twinsun.com>
4145
4146         * mbswidth.c (_XOPEN_SOURCE):
4147         Don't define; this causes problems on Solaris 7.
4148         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
4149
4150 2000-07-23  Paul Eggert  <eggert@twinsun.com>
4151
4152         * quotearg.c:
4153         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
4154         so that mbstate_t is always defined.
4155
4156         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
4157         be 1 in at least one GCC installation, and this configuration
4158         error is likely to be common.  Ignoring MB_LEN_MAX hurts
4159         performance on hosts that have mbrtowc but have only unibyte
4160         locales, but I assume these hosts are rare.
4161
4162 2000-07-23  Paul Eggert  <eggert@twinsun.com>
4163
4164         * quotearg.c: Streamline by invoking multibyte code only if needed.
4165         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
4166         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
4167         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
4168         invoke multibyte primitives.
4169
4170 2000-07-23  Jim Meyering  <meyering@lucent.com>
4171
4172         * basename.c (base_name): Add an assertion.
4173
4174 2000-07-15  Bruno Haible  <clisp.cons.org>
4175
4176         * quotearg.c: When the system forces us to redefine mbstate_t,
4177         shadow its mbsinit function.
4178
4179 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
4180
4181         * mbswidth.h: New file.
4182         * mbswidth.c: New file.
4183         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
4184         (noinst_HEADERS): Add mbswidth.h.
4185
4186 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
4187
4188         * config.charset: Add support for FreeBSD. Improve support for HP-UX
4189         and IRIX 6.
4190
4191 2000-07-15  Jim Meyering  <meyering@lucent.com>
4192
4193         * makepath.c: Include quote.h.
4194         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
4195         corresponding argument in a `quote (...)' call.
4196         Give better diagnostics.
4197
4198         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
4199         (noinst_HEADERS): Add quote.h.
4200
4201         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
4202         from tar's src/misc.c.
4203         * quote.h: New file.  Prototypes for same.
4204
4205 2000-07-10  Paul Eggert  <eggert@twinsun.com>
4206
4207         From a suggestion by Bruno Haible.
4208         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
4209         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
4210         to decide whether to define the BeOS workaround macro;
4211         this adjusts to the change to AC_MBSTATE_T.
4212
4213 2000-07-13  Paul Eggert  <eggert@twinsun.com>
4214
4215         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
4216
4217         * quotearg.c (quoting_style_args, quoting_style_vals,
4218         quotearg_buffer_restyled): Add support for
4219         clocale_quoting_style.  Undo previous change to
4220         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
4221         and "{RIGHT QUOTATION MARK}" msgids.
4222
4223 2000-07-05  Paul Eggert  <eggert@twinsun.com>
4224
4225         The old behavior of quoting `like this' doesn't look good with
4226         newer, ISO-style fonts.  See:
4227         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
4228
4229         Instead, quote "like this" by default.  Let the translator
4230         tailor the locale-specific quoting behavior by providing
4231         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
4232
4233         * quotearg.c (N_): New macro.
4234         (gettext_default): New function.
4235         (quotearg_buffer_restyled): Use
4236         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
4237         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
4238
4239 2000-07-09  Jim Meyering  <meyering@lucent.com>
4240
4241         * Most files: Update copyright dates to include 2000.
4242
4243 2000-07-08  Jim Meyering  <meyering@lucent.com>
4244
4245         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
4246         if not defined.
4247         (xgethostname): Remove now-unnecessary #ifdef.
4248         Move declaration of `err' into loop where it's used.
4249
4250 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
4251
4252         * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
4253         by allocating a larger buffer. Test the gethostname return value for
4254         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
4255         returns an error and ENAMETOOLONG isn't defined.
4256
4257 2000-07-05  Paul Eggert  <eggert@twinsun.com>
4258         and Bruno Haible  <haible@clisp.cons.org>
4259
4260         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
4261
4262 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
4263
4264         * quotearg.c (struct quoting_options): Simplify quote_these_too
4265         dimension.
4266
4267 2000-07-03  Jim Meyering  <meyering@lucent.com>
4268
4269         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
4270         Reported by Bruno Haible.
4271
4272 2000-07-04  Jim Meyering  <meyering@lucent.com>
4273
4274         * quotearg.c: Make inclusion of <wchar.h> independent of whether
4275         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
4276         lacks mbrtowc.
4277
4278 2000-07-03  Paul Eggert  <eggert@twinsun.com>
4279         and Bruno Haible  <haible@clisp.cons.org>
4280
4281         * quotearg.c (mbrtowc):
4282         Assign to *pwc, and return 1 only if result is nonzero.
4283         (iswprint): Use ISPRINT when substituting our own mbrtowc.
4284
4285 2000-07-03  Jim Meyering  <meyering@lucent.com>
4286
4287         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
4288         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
4289         From Bob Proulx.
4290
4291 2000-07-02  Jim Meyering  <meyering@lucent.com>
4292
4293         * quotearg.c (mbstate_t): Don't define here.
4294
4295 2000-07-02  Jim Meyering  <meyering@lucent.com>
4296
4297         * nanosleep.c (SIGCONT): Define if not already defined.
4298
4299 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4300
4301         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
4302         per change in ../m4/ls-mntd-fs.m4.
4303         (read_filesystem_list): Ignore symbolic links.
4304
4305 2000-06-29  Jim Meyering  <meyering@lucent.com>
4306
4307         * same.c: Include <string.h> or <strings.h>, as appropriate,
4308         for declaration of strcmp.
4309
4310         * long-options.c: Include <stdlib.h>, for declaration of exit.
4311
4312         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
4313         Avoid warning by casting result to `char *' to remove `const'.
4314
4315 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4316
4317         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
4318
4319 2000-06-26  Paul Eggert  <eggert@twinsun.com>
4320
4321         savedir now sets errno on failure and invokes xmalloc to get memory.
4322         Fix a couple of other minor bugs while we're at it.
4323
4324         * savedir.c (<unistd.h>): Do not include; there's no need.
4325         (NAMLEN): Remove macro.
4326         (malloc, realloc): Remove decls.
4327         (stpcpy): Likewise.
4328         ("xalloc.h"): Include.
4329         (NAME_SIZE_DEFAULT): New macro.
4330         (savedir): Use xmalloc / xrealloc to allocate memory.
4331         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
4332         Skip "" directory entries.
4333         Use strlen to calculate directory entry length, since the old method
4334         is rarely used these days and isn't worth supporting.
4335         Don't use a pointer after freeing it.
4336         Check for integer overflow when calculating allocation size.
4337         Use memcpy to copy entries, instead of stpcpy.
4338         Set errno properly when returning NULL.
4339         Check for readdir error.
4340
4341 2000-06-26  Jim Meyering  <meyering@lucent.com>
4342
4343         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
4344
4345 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4346
4347         * getusershell.c (xmalloc, xrealloc): Remove functions.
4348         Include xalloc.h.
4349         Don't include <stdlib.h>.  Don't declare malloc, realloc.
4350
4351 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
4352
4353         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
4354
4355 2000-06-24  Jim Meyering  <meyering@lucent.com>
4356
4357         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
4358
4359 2000-06-21  Jim Meyering  <meyering@lucent.com>
4360
4361         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
4362
4363 2000-06-19  Paul Eggert  <eggert@twinsun.com>
4364
4365         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
4366         (mbrtowc, mbstate_t): Define substitutes if
4367         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
4368         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
4369         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
4370
4371 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4372
4373         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
4374         than 1024, return a memory chunk of least possible size, instead
4375         of size PATH_MAX + 2. In the loop, increment the size proportionally.
4376         Use free/xmalloc instead of xrealloc to avoid copying for very long
4377         paths.
4378
4379 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4380
4381         * canon-host.c (canon_host): Use malloc and memcpy to copy an
4382         address, not strdup.  Include <stdlib.h> and don't declare free().
4383
4384 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
4385
4386         * path-concat.c (path_concat): Don't access dir[-1] if dir is
4387         the empty string.
4388
4389 2000-06-21  Jim Meyering  <meyering@lucent.com>
4390
4391         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
4392         (noinst_HEADERS): Add getstr.h.
4393
4394         * getline.c (getstr): Move into a separate file.
4395         * getstr.c (getstr): New file, extracted from getline.c, with
4396         the following changes: new parameter, delim2; both delim[12]
4397         parameters have type `int', not `char'.  The latter would lose
4398         with 8-bit delimiters.
4399         * getstr.h: New file.
4400
4401 2000-06-19  Jim Meyering  <meyering@lucent.com>
4402
4403         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
4404
4405 2000-06-18  Jim Meyering  <meyering@lucent.com>
4406
4407         * mkdir.c: Remove file, due mainly to copyright incompatibility.
4408         Besides, these days every porting target provides a mkdir function.
4409
4410         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
4411         (this snippet comes from src/system.h).
4412
4413 2000-06-15  Paul Eggert  <eggert@twinsun.com>
4414
4415         * human.c (adjust_value): New function.
4416         (human_readable_inexact): Apply rounding style even when
4417         printing approximate values.
4418
4419 2000-06-14  Paul Eggert  <eggert@twinsun.com>
4420
4421         * human.c (human_readable_inexact): Allow an input block
4422         size that is not a multiple of the output block size, and vice versa.
4423         Reported by Piergiorgio Sartor.
4424
4425 2000-06-14  Paul Eggert  <eggert@twinsun.com>
4426
4427         * getdate.y (get_date): Apply relative times after time
4428         zone indicator, not before.  Reported by Todd A. Jacobs.
4429
4430 2000-06-13  Jim Meyering  <meyering@lucent.com>
4431
4432         * Makefile.am (all-local): Depend on lstat.c and stat.c.
4433
4434         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
4435
4436 2000-06-12  Paul Eggert  <eggert@twinsun.com>
4437
4438         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
4439
4440 2000-06-04  Paul Eggert  <eggert@twinsun.com>
4441
4442         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
4443
4444 2000-06-04  Jim Meyering  <meyering@lucent.com>
4445
4446         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
4447         SunOS 4.1.4 for which gid_t is an unsigned type.
4448
4449 2000-06-03  Jim Meyering  <meyering@lucent.com>
4450
4451         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
4452
4453 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
4454
4455         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
4456         newer, don't install charset.alias.
4457         * config.charset: Change the Linux/glibc rules so they become empty
4458         on glibc-2.1 or newer.
4459
4460 2000-06-02  Jim Meyering  <meyering@lucent.com>
4461
4462         * mountlist.c: Back out last change.  Instead, do this...
4463         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
4464         member using the same `ignore'-testing code.
4465         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
4466         fs_type strings.
4467         From Mark D. Roth.
4468
4469 2000-05-29  Jim Meyering  <meyering@lucent.com>
4470
4471         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
4472         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
4473
4474 2000-05-22  Jim Meyering  <meyering@lucent.com>
4475
4476         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
4477
4478 2000-05-18  Jim Meyering  <meyering@lucent.com>
4479
4480         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
4481         back, too, since it may have been modified by allocate_entry.
4482         (hash_delete): Rewrite to use neither the assignment operator
4483         nor the comma operator in an if-expression.
4484
4485 2000-05-15  Paul Eggert  <eggert@twinsun.com>
4486
4487         * closeout.c:
4488         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
4489         Remove; no longer needed.
4490         "quotearg.h": Add include.
4491         (file_name): Do not bother to explicitly initialize to NULL; it's less
4492         efficient on some hosts.
4493         (close_stdout_status): Remove test as to whether stdout was already
4494         closed; it breaks for the case "echo x | sort >&-".
4495         Quote file name colons.
4496         Do not assume that _("write error") lacks format strings.
4497
4498 2000-05-15  Jim Meyering  <meyering@lucent.com>
4499
4500         * version-etc.c (version_etc_copyright): Update the copyright string
4501         used in all --version output.
4502
4503 2000-05-14  Jim Meyering  <meyering@lucent.com>
4504
4505         * closeout.c (close_stdout_set_file_name): New function.
4506         (close_stdout_status): Use new file-scoped global.
4507         Return right away if fstat says the stdout file descriptor is invalid.
4508         * closeout.h (close_stdout_set_file_name): Declare.
4509
4510 2000-05-10  Jim Meyering  <meyering@lucent.com>
4511
4512         * closeout.c [default_exit_status]: New file-scoped variable.
4513         (close_stdout_set_status): New function.
4514         * closeout.h (close_stdout_set_status): Declare.
4515
4516 2000-05-08  Jim Meyering  <meyering@lucent.com>
4517
4518         * long-options.c: Don't include closeout.h.
4519         (parse_long_options): Don't call close_stdout for --version.
4520
4521 2000-05-06  Jim Meyering  <meyering@lucent.com>
4522
4523         * strnlen.c: Undefine __strnlen and strnlen.
4524         [!weak_alias]: Define __strnlen to strnlen.
4525
4526         * atexit.c: New file, from libiberty.
4527
4528 2000-05-06  Jim Meyering  <meyering@lucent.com>
4529
4530         * closeout.c (close_stdout_status): Also check for errors on the
4531         stderr stream.
4532
4533 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
4534
4535         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
4536         instead of xmalloc, xrealloc, path_concat.
4537         (locale_charset): Treat empty environment variables as absent.
4538         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
4539
4540 2000-05-04  Jim Meyering  <meyering@lucent.com>
4541
4542         * getopt.c: Update from glibc.
4543         * obstack.c: Likewise.
4544         * obstack.h: Likewise.
4545         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
4546
4547         * regex.h: Likewise.
4548         * strndup.c: Likewise.
4549         * strnlen.c: New file, from glibc.
4550
4551 2000-05-01  Jim Meyering  <meyering@lucent.com>
4552
4553         * full-write.c (full_write): Remove `FIXME' part of comment.
4554
4555 2000-04-29  Jim Meyering  <meyering@lucent.com>
4556
4557         * path-concat.c: Declare strdup only if it's not defined.
4558         * canon-host.c: Likewise.
4559
4560 2000-04-28  Jim Meyering  <meyering@lucent.com>
4561
4562         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
4563         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
4564         included first, then limits.h is included by locale.h by libintl.h.
4565         From John David Anglin.
4566
4567 2000-04-25  Jim Meyering  <meyering@lucent.com>
4568
4569         * makepath.c (S_IRWXUGO): Define.
4570         (make_path): Always perform explicit chmod if MODE specifies any
4571         of the `special' permission bits.  Prompted by a bug report against
4572         install from Mate Wierdl and Joost van Baal.
4573
4574 2000-04-18  Jim Meyering  <meyering@lucent.com>
4575
4576         * README: New file.
4577
4578         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
4579         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
4580
4581 2000-04-17  Jim Meyering  <meyering@lucent.com>
4582
4583         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
4584         the definition of it to rpl_strftime also defined-away the system's
4585         declaration.
4586
4587 2000-04-15  Jim Meyering  <meyering@lucent.com>
4588
4589         Use `C' to denote so-called `contiguous' files, the same way
4590         that tar does.
4591         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
4592         (ftypelet): Use S_ISCTG.
4593         From Michael Deutschmann.
4594
4595 2000-04-14  Jim Meyering  <meyering@lucent.com>
4596
4597         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
4598
4599 2000-04-08  Jim Meyering  <meyering@lucent.com>
4600
4601         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
4602         names don't conflict.  Reported by Eli Zaretskii.
4603
4604 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
4605
4606         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
4607         bug.  Deal with the different error behavior of Irix iconv.
4608
4609 2000-04-07  Jim Meyering  <meyering@lucent.com>
4610
4611         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
4612         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
4613
4614 2000-04-05  Jim Meyering  <meyering@lucent.com>
4615
4616         Portability tweaks required for ultrix4.3.
4617         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
4618         * readutmp.c: Include sys/types.h before sys/stat.h.
4619         * canon-host.c: Declare strdup.
4620         * path-concat.c: Likewise.
4621         From John David Anglin.
4622
4623 2000-04-04  Jim Meyering  <meyering@lucent.com>
4624
4625         Be more DOS 8.3-friendly.
4626         * ref-add.sin: Renamed from ref-add.sed.in.
4627         * ref-del.sin: Renamed from ref-del.sed.in.
4628         * Makefile.am: Reflect renaming.
4629         Reported by Eli Zaretskii.
4630
4631         Use a temporary file name that won't clash with `charset.alias'
4632         in the DOS 8.3 name space.
4633         * Makefile.am (charset_tmp): Define.
4634         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
4635         (uninstall-local): Likewise.
4636         Reported by Eli Zaretskii.
4637
4638 2000-03-29  Paul Eggert  <eggert@twinsun.com>
4639
4640         * time/strftime.c (my_strftime): Make sure we call the system
4641         strftime, not ourselves, when invoking the underlying strftime.
4642
4643 2000-03-24  Jim Meyering  <meyering@lucent.com>
4644
4645         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
4646         (charset_alias): Define.
4647         (install-exec-local): Factor out common code.
4648         (uninstall-local): Split lines longer than 80.
4649         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
4650         (SUFFIXES): Define.
4651         (.sed.in.sed): New rule.  Don't redirect directly to $@.
4652         (CLEANFILES): Add ref-add.sed and ref-del.sed.
4653
4654 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
4655
4656         * config.charset: Output a line containing "Packages using this file".
4657         * ref-add.sed.in, ref-del.sed.in: New files.
4658         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
4659         ref-del.sed): New rules.
4660
4661 2000-03-17  Jim Meyering  <meyering@lucent.com>
4662
4663         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
4664         Otherwise, include <strings.h>
4665
4666 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
4667
4668         * unicodeio.c (utf8_wctomb): New function.
4669         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
4670         format instead of in UCS-4 with platform dependent endianness.
4671
4672 2000-03-07  Paul Eggert  <eggert@twinsun.com>
4673
4674         * savedir.c (savedir): Work even if directory size is
4675         negative; this can happen with some screwy NFS configurations.
4676
4677 2000-03-06  Jim Meyering  <meyering@lucent.com>
4678
4679         * localcharset.c (get_charset_aliases): Don't try to free file_name
4680         if it's NULL (because we ran out of memory).  From Bruno Haible.
4681
4682 2000-03-05  Jim Meyering  <meyering@lucent.com>
4683
4684         * localcharset.c ("path-concat.h"): Include.
4685         (get_charset_aliases): Use path_concat instead of ANSI string
4686         concatenation.
4687
4688         * unicodeio.h (PARAMS): Define.
4689         Use it to guard prototype.
4690
4691 2000-03-04  Jim Meyering  <meyering@lucent.com>
4692
4693         * Makefile.am (install-exec-local): Create $(libdir) before installing
4694         into it.
4695         (uninstall-local): Uncomment this rule so `make distcheck' works
4696         once again.
4697
4698         * unicodeio.c (<errno.h>): Include it.
4699         (errno): Declare if not defined.
4700
4701         * localcharset.c: Add Bruno's comment justifying use of volatile.
4702
4703         * config.charset: New version, incorporating remarks from a linux
4704         i18n mailing list.  From Bruno Haible.
4705
4706 2000-03-02  Jim Meyering  <meyering@lucent.com>
4707
4708         * Makefile.am (EXTRA_DIST): Add config.charset.
4709
4710 2000-03-01  Jim Meyering  <meyering@lucent.com>
4711
4712         * localcharset.c: Guard some #includes with `#if HAVE_...'.
4713         * unicodeio.c: Likewise.
4714
4715 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
4716
4717         * config.charset: New file.
4718         * localcharset.c: New file.
4719         * unicodeio.h, unicodeio.c: New files.
4720         * Makefile.am (DEFS): Add -DLIBDIR=...
4721         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
4722         (noinst_HEADERS): Add unicodeio.h.
4723         (all-local, install-exec-local, charset.alias): New targets.
4724
4725 2000-02-28  Paul Eggert  <eggert@twinsun.com>
4726
4727         * quotearg.c (ALERT_CHAR): New macro.
4728         (quotearg_buffer_restyled): Use it.
4729
4730 2000-02-27  Jim Meyering  <meyering@lucent.com>
4731
4732         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
4733         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
4734
4735         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
4736         not `#if STDC_HEADERS'.
4737         Declare malloc if needed.
4738
4739         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
4740         now that autoconf always defines the HAVE_DECL_ symbols.
4741         * human.c: Likewise.
4742         * same.c: Likewise.
4743         * strtoumax.c: Likewise.
4744
4745         * backupfile.c: Arrange for cpp to fail if the configure-time
4746         declaration check was not run.
4747         * hash.c: Likewise.
4748         * human.c: Likewise.
4749         * same.c: Likewise.
4750         * strtoumax.c: Likewise.
4751
4752         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
4753         then first look up the entire `.'-containing string as a login name.
4754
4755 2000-02-18  Paul Eggert  <eggert@twinsun.com>
4756
4757         * getdate.y: Handle two-digit years with leading zeros correctly.
4758         (textint): New typedef.
4759         (parser_control): Member year changed from int to textint.
4760         All uses changed.
4761         (YYSTYPE): Removed; replaced by %union with int and textint members.
4762         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
4763         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
4764         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
4765         (tSNUMBER, tUNUMBER): Now of type <textintval>.
4766         (date, number, to_year): Use width of number in digits, not its value,
4767         to determine whether it's a 2-digit year, or a 2-digit time.
4768         (yylex): Store number of digits of numeric tokens.
4769         Reported by John Kendall.
4770
4771         (parser_control): Changed from struct parser_control to typedef (for
4772         consistency).  All uses changed.
4773
4774         (tID): Removed; not used.
4775         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
4776
4777 2000-02-14  Paul Eggert  <eggert@twinsun.com>
4778
4779         * getpagesize.h (getpagesize): Port to VMS for Alpha;
4780         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
4781
4782 2000-02-12  Jim Meyering  <meyering@lucent.com>
4783
4784         * userspec.c (ISDIGIT): Define it.
4785         (isdigit): Remove definition.
4786         (is_number): Use ISDIGIT, not isdigit.
4787         <libintl.h>: Include.
4788         (_ and N_): Define.
4789         (parse_user_spec): Mark translatable strings.
4790
4791 2000-02-10  Jim Meyering  <meyering@lucent.com>
4792
4793         With these changes, nanosleep.[ch] are finally enough like the other
4794         lib/* replacement files to compile on a few more losing systems.
4795
4796         * nanosleep.h: Don't include config.h.
4797         Remove prototype from declaration of nanosleep.
4798         (PARAMS): Remove now-unneeded definition.
4799         * nanosleep.c: #undef nanosleep.
4800         (rpl_nanosleep): Rename from nanosleep.
4801
4802 2000-02-03  Jim Meyering  <meyering@lucent.com>
4803
4804         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
4805         rather than with `#if HAVE_UTMPNAME'.
4806
4807 2000-02-01  Jim Meyering  <meyering@lucent.com>
4808
4809         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
4810
4811 2000-01-31  Jim Meyering  <meyering@lucent.com>
4812
4813         * nanosleep.h (nanosleep): Guard declaration with
4814         `#if ! HAVE_DECL_NANOSLEEP'.
4815         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
4816         the declaration in that vendor's sys/timers.h.
4817         Reported by Christian Krackowizer.
4818
4819         * quotearg.c (ISASCII): Add #undef and move definition to follow
4820         inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
4821         (ISPRINT): Likewise.
4822         Reported by Tom Tromey.
4823
4824 2000-01-30  Jim Meyering  <meyering@lucent.com>
4825
4826         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
4827         uses of ->ut_name.  The latter doesn't work with new Linux header files
4828         where only utmpx.ut_user is declared.
4829
4830         * readutmp.h (UT_USER): Define.
4831
4832 2000-01-23  Jim Meyering  <meyering@lucent.com>
4833
4834         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
4835         obstack.c.
4836
4837 2000-01-22  Jim Meyering  <meyering@lucent.com>
4838
4839         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
4840         [! HAVE_DECL_STRTOULL]: Declare strtoull.
4841         Required for some AIX systems.  Reported by Christian Krackowizer.
4842         [TESTING] (main): New function.
4843
4844         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
4845         * dirname.c (dir_name): Support for DOS-style file names with drive
4846         letters.
4847
4848         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
4849
4850         * strverscmp.c (ISDIGIT): Define.
4851         (strverscmp): Use ISDIGIT, not isdigit.
4852
4853 2000-01-17  Paul Eggert  <eggert@twinsun.com>
4854
4855         * nanosleep.c (nanosleep):
4856         Don't use SA_INTERRUPT to decide whether to call sigaction, as
4857         POSIX.1 doesn't require SA_INTERRUPT and some systems
4858         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
4859         it's been part of POSIX.1 since day 1 (in 1988).
4860
4861 2000-01-17  Jim Meyering  <meyering@lucent.com>
4862
4863         * interlock: Remove unused file.  Reported by François Pinard.
4864
4865 2000-01-16  Paul Eggert  <eggert@twinsun.com>
4866
4867         * quotearg.c (quotearg_buffer_restyled): Do not quote
4868         alert, backslash, formfeed, and vertical tab unnecessarily in
4869         shell quoting style.
4870
4871 Local Variables:
4872 version-control: never
4873 End: