9b9681e4219a3a1fc4a6450676b5e1631cd19093
[gnulib.git] / lib / ChangeLog
1 2005-03-15  Bruno Haible  <bruno@clisp.org>
2
3         * regex.c (byte_re_match_2_internal): Rename local variable 'not' to
4         'negate'.
5
6         * regex.c (byte_re_match_2_internal): Reduce scope of same_str_p
7         variable.
8
9 2005-03-14  Paul Eggert  <eggert@cs.ucla.edu>
10
11         * mktime.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT,
12         TYPE_SIGNED_MAGNITUDE, TYPE_MINIMUM, TYPE_MAXIMUM): Sync from
13         intprops.h.
14         * strtol.c: Likewise.
15
16 2005-03-14  Simon Josefsson  <jas@extundo.com>
17
18         * timegm.h: Use proper prototype CPP guards, reported by Dave Love
19         <fx@gnu.org>.
20
21 2005-03-14  Jim Meyering  <jim@meyering.net>
22
23         * strftime.c (my_strftime) [HAVE_STRFTIME && ! (_NL_CURRENT
24         && HAVE_STRUCT_ERA_ENTRY)]: Initialize the first byte of ubuf[]
25         to be nonzero so that we (and caller) can detect the difference
26         between a valid zero-length expansion and an error return, even
27         when the underlying strftime fails before writing anything into
28         that location.
29
30 2005-03-10  Jim Meyering  <jim@meyering.net>
31
32         * save-cwd.c [!HAVE_FCHDIR]: Define open, fchdir, and chdir_long
33         so that this module works on systems without fchdir.
34
35 2005-03-09  Paul Eggert  <eggert@cs.ucla.edu>
36
37         Factor int-properties macros into a single file, except for
38         glibc-related files.
39         * intprops.h: New file.
40         * getloadavg.c: Include it instead of limits.h.
41         (INT_STRLEN_BOUND): Remove.
42         * human.c: Include intprops.h.
43         (group_number): Use INT_STRLEN_BOUND instead of rolling it ourself.
44         * human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000.
45         * inttostr.h: Include intprops.h instead of limits.h.
46         (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove.
47         * mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros,
48         for consistency with intprops.h.
49         (time_t_is_integer, twos_complement_arithmetic): Use them.
50         * sig2str.h: Include <signal.h>, intprops.h.
51         (INT_STRLEN_BOUND): Remove.
52         * strftime.c (TYPE_SIGNED): Remove.
53         (INT_STRLEN_BOUND): Switch to same implementation as intprops.h.
54         * strtol.c: Adjust comments to match intprops.h.
55         * userspec.c: Include intprops.h.
56         (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.
57         * utimecmp.c, xnanosleep.c, xstrtol.c: Likewise.
58         * utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT
59         instead of rolling our own expressions.
60         * xstrtol.c: Include xstrtol.h first, to test interface.
61
62         * strftime.c: Include <stdbool.h>.  Use bool where appropriate,
63         instead of int.
64         (my_strftime): Do not mishandle years close to INT_MAX, by doing
65         the right thing even if adding 1900 would overflow.  Similarly
66         for tm_mon + 1 and tm_yday + 1.
67         Make %Y always equivalent to %C%y, and similarly for %G and %g.
68         (DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional.
69         (DO_SIGNED_NUMBER): New macro.
70         (my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1.
71
72 2005-03-07  Bruno Haible  <bruno@clisp.org>
73
74         * pagealign_alloc.c (MAP_FILE, MAP_FAILED): Define fallbacks.
75
76 2005-03-03  Derek R. Price  <derek@ximbiot.com>
77             Bruno Haible  <bruno@clisp.org>
78
79         * pagealign_alloc.h: New file.
80         * pagealign_alloc.c: New file.
81
82 2005-01-28  Bruno Haible  <bruno@clisp.org>
83
84         * stpncpy.h (stpncpy): Define as a macro without arguments, so that
85         stpncpy.c uses it.
86
87 2005-03-01  Paul Eggert  <eggert@cs.ucla.edu>
88
89         Remove workaround for bug in Linux kernel 2.6.8 or thereabouts.
90         The workaround isn't strictly needed for POSIX conformance, and
91         it's too much of a pain to configure and maintain.  We'll ask
92         people to fix their kernels instead.
93         * xnanosleep.c: Don't include gethrxtime.h or xtime.h.
94         (NANOSLEEP_BUG_WORKAROUND): Remove.
95         (xnanosleep): Remove the workaround.
96
97 2005-02-12  Bruno Haible  <bruno@clisp.org>
98
99         * vasnprintf.c (EOVERFLOW): Define to a fallback if needed.
100
101 2005-02-25  Paul Eggert  <eggert@cs.ucla.edu>
102
103         * gethrxtime.h, gethrxtime.c, xtime.h: New files.
104         * timespec.h (gettime): Return void, since it always
105         succeeds now.  All uses changed.
106         * gettime.c (gettime) Likewise.
107         [HAVE_NANOTIME]: Prefer nanotime.
108         Assume gettimeofday succeeds, as POSIX requires.
109         Assime time () succeeds, since other code already does.
110         * xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h.
111         (timespec_subtract): Remove.
112         (NANOSLEEP_BUG_WORKAROUND): New constant.
113         (xnanosleep): Use gethrxtime rather than gettime; this simplifies
114         things considerably.  Use it only on GNU/Linux hosts, since the
115         workaround shouldn't be needed elsewhere.
116
117 2005-02-24  Bruno Haible  <bruno@clisp.org>
118
119         * gettext.h: Update from GNU gettext 0.14.2.
120
121 2005-02-24  Bruno Haible  <bruno@clisp.org>
122
123         * localcharset.c: Update from GNU gettext 0.14.2.
124         * config.charset: Update from GNU gettext 0.14.2.
125
126 2005-02-22  Simon Josefsson  <jas@extundo.com>
127
128         * iconvme.h, iconvme.c: New files, from libc.
129
130 2005-02-20  Neil Conway  <neilc@samurai.com>
131
132         * xgethostname.c (xgethostname): Check for ENOMEM, which is
133         returned by OSX/Darwin if the specified buffer is not large
134         enough for the hostname.
135
136 2005-02-03  Paul Eggert  <eggert@cs.ucla.edu>
137
138         * memrchr.h: New file.
139         * chdir-long.c: Include it.
140         * memrchr.c [!defined _LIBC]: Include it rather than <string.h>
141         Don't bother including stddef.h.
142
143 2005-02-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
144
145         * argp-help.c (__argp_help): Create a fake struct argp_state and
146         pass it to _help, otherwise the latter coredumps trying to
147         dereference state.root_argp.
148
149 2005-02-01  Paul Eggert  <eggert@cs.ucla.edu>
150
151         * mountlist.h (MOUNTLIST_H_): New macro, to protect against double
152         inclusion.
153         Include <sys/types.h>, for dev_t.
154         (ME_DUMMY, ME_REMOTE): Move from here....
155         * mountlist.c (ME_DUMMY, ME_REMOTE): To here.
156         (ME_DUMMY): Count "subfs" as a dummy.  Problem reported by
157         Dmitry V. Levin.
158         Include mountlist.h first, to test the interface.
159
160 2005-01-29  Bruno Haible  <bruno@clisp.org>
161
162         * progname.c (program_name): Initialize.
163         Needed when linking statically on MacOS X.
164
165 2005-01-28  Bruno Haible  <bruno@clisp.org>
166
167         * javacomp.sh.in: New file, from GNU gettext.
168         * javacomp.h: New file, from GNU gettext.
169         * javacomp.c: New file, from GNU gettext.
170
171 2005-01-26  Bruno Haible  <bruno@clisp.org>
172
173         * javaexec.sh.in: New file, from GNU gettext.
174         * javaexec.h: New file, from GNU gettext.
175         * javaexec.c: New file, from GNU gettext.
176
177 2005-01-26  Simon Josefsson  <jas@extundo.com>
178
179         * gai_strerror.c: Use GPL in header.
180
181 2005-01-24  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
182
183         * argp-help.c (hol_entry_help): Avoid using non-constant
184         initializers for struct pentry_state.
185         (__argp_error): Check return value of __asprintf
186         (__argp_failure): Translate error message
187
188         * argp-parse.c: Removed braces around the expansion of N_()
189
190 2005-01-21  Jim Meyering  <jim@meyering.net>
191
192         * openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the
193         same value as for Solaris 9.
194
195         * chdir-long.c (chdir_long): Rewrite to remove limitation on
196         component length.  This included changing the parameter to be
197         of type `char *' rather than `char const *'.
198         * chdir-long.h (chdir_long): Update prototype.
199
200         * openat.c (fdopendir, fstatat): New functions.
201         * openat.h: Include headers required for use of DIR and struct stat.
202         [AT_SYMLINK_NOFOLLOW]: Define.
203         (fdopendir, fstatat): Add prototypes.
204
205 2005-01-21  Bruno Haible  <bruno@clisp.org>
206
207         * classpath.h: New file, from GNU gettext.
208         * classpath.c: New file, from GNU gettext.
209
210 2005-01-20  Simon Josefsson  <jas@extundo.com>
211
212         * version-etc-fsf.c: New file, with version_etc_copyright.
213         * version-etc.c: Remove version_etc_copyright.
214         * version-etc.h (version_etc_copyright): Use [] instead of * in
215         prototype, suggested by Paul Eggert <eggert@CS.UCLA.EDU>.
216
217 2005-01-20  Paul Eggert  <eggert@cs.ucla.edu>
218
219         * save-cwd.c (save_cwd): Remove code to support the case
220         where fchdir is missing or flaky.
221
222 2005-01-20  Simon Josefsson  <jas@extundo.com>
223
224         * base64.h (isbase64): Add.
225
226         * base64.c (isb64): Rename to isbase64, use to_uchar instead of
227         using a unsigned prototype, don't inline.
228         (base64_decode): Use it.
229
230 2005-01-19  Bruno Haible  <bruno@clisp.org>
231
232         * sh-quote.h: New file, from GNU gettext.
233         * sh-quote.c: New file, from GNU gettext.
234
235 2005-01-18  Paul Eggert  <eggert@cs.ucla.edu>
236
237         Merge changes from coreutils, as described below in several
238         changelogs dated today.
239
240         * save-cwd.c: Include "save-cwd.h" before other include files.
241         (O_DIRECTORY): Remove; not needed here, since "." must be
242         a directory.  All uses removed.
243         (save_cwd): Use __sgi || __sun, not sun || __sun.  __sun is
244         universal on Suns, and we also need to test for IRIX.
245         Revamp code to use 'if' rather than '#if'.
246         Avoid unnecessary comparison of cwd->desc to 0.
247
248         * utimens.c (futimens): Robustify the previous patch, by checking
249         for known valid error numbers rather than observed invalid ones.
250
251 2005-01-18  Jim Meyering  <jim@meyering.net>
252
253         * version-etc.c (version_etc_copyright): Update copyright date.
254
255         * utimens.c (futimens): Account for the fact that futimes
256         can also fail with errno == ENOSYS or errno == ENOENT.
257         Patch from Dmitry V. Levin.
258
259         Change the name of the robust chdir function from chdir to chdir_long.
260         * save-cwd.c: Include chdir-long.h rather than chdir.h.
261         (restore_cwd): Use chdir_long, not chdir.
262         * chdir-long.c: Renamed from chdir.c.
263         * chdir-long.h: Renamed from chdir.h.
264         [!defined PATH_MAX]: Define chdir_long to chdir on systems like the
265         Hurd.
266
267 2005-01-18  Bob Proulx  <bob@proulx.com>
268
269         * obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to simplify
270         offsetof() macro construct to avoid compile failure with native HP-UX
271         11.0 ANSI C compiler.
272
273 2005-01-06  Bruno Haible  <bruno@clisp.org>
274
275         * stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming, redundant
276         because stpncpy.m4 takes care of it.
277
278 2004-01-24  Bruno Haible  <bruno@clisp.org>
279
280         * progreloc.c (xstrdup): Define as strdup if no xmalloc should be used.
281
282 2003-10-09  Bruno Haible  <bruno@clisp.org>
283
284         * progreloc.c: Include xalloc.h instead of xmalloc.h.
285
286 2005-01-06  Bruno Haible  <bruno@clisp.org>
287
288         * fwriteerror.h (fwriteerror): Change specification to include fclose.
289         * fwriteerror.c: Include <stdbool.h>.
290         (fwriteerror): At the end, close the file stream. Record whether
291         stdout was already closed.
292
293 2004-05-27  Bruno Haible  <bruno@clisp.org>
294
295         * execute.c (environ): Declare if needed.
296         * pipe.c (environ): Likewise.
297         Reported by Michael Schloh von Bennewitz <michael.schloh@cw.com>.
298
299 2005-01-04  Paul Eggert  <eggert@cs.ucla.edu>
300
301         * human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional
302         definitions to be after all include files, to avoid collisions.
303         Problem reported by Bob Proulx.
304
305 2004-12-28  Paul Eggert  <eggert@cs.ucla.edu>
306
307         * error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h";
308         not needed.  This removes a dependency on the gettext module.
309         [defined _LIBC]: Do not include <libintl.h>; not needed.
310
311 2004-12-24  Paul Eggert  <eggert@cs.ucla.edu>
312
313         * c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not
314         HAVE_DECL_STRTOLD.
315
316 2004-12-23  Paul Eggert  <eggert@cs.ucla.edu>
317
318         * argp-parse.c: Include <stddef.h>.
319         (alignof, alignto): New macros.
320         (parser_init): Don't assume that void * is aligned sufficiently
321         for struct option.
322
323         * getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no
324         need to extend the stack.
325         (YYINITDEPTH): New macro, so that the initial stack isn't overly
326         large.
327
328 2004-12-22  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
329
330         * argp-parse.c (parser_init): Avoid arithmetics on void pointers.
331
332 2004-12-19  Paul Eggert  <eggert@cs.ucla.edu>
333
334         * alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H.
335         Remove now-obsolete comment about AIX.
336         * getdate.y: Include <alloca.h> only if HAVE_ALLOCA.
337         (YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA.
338         (YYMAXDEPTH): New macro.
339
340 2004-12-18  Bruno Haible  <bruno@clisp.org>
341
342         * fatal-signal.c (fatal_signals): Make non-const.
343         (init_fatal_signals): New function.
344         (uninstall_handlers, install_handlers): Ignore signals that were set to
345         SIG_IGN.
346         (at_fatal_signal): Call init_fatal_signals.
347         (init_fatal_signal_set): Likewise. Ignore signals that were set to
348         SIG_IGN.
349         Reported by Paul Eggert.
350
351 2004-12-08  Paul Eggert  <eggert@cs.ucla.edu>
352
353         * getdate.y (textint): New member "negative".
354         (time_zone_hhmm): New function.
355         Expect 14 shift-reduce conflicts, not 13.
356         (o_colon_minutes): New rule.
357         (time, zone): Use it to add support for +HH:MM, UTC+HH:MM.
358         (yylex): Set the "negative" member of signed numbers.
359
360 2004-12-04  Paul Eggert  <eggert@cs.ucla.edu>
361
362         Changes imported from coreutils.
363         * hard-locale.c: Assume <locale.h> exists.
364         Include "strdup.h".
365         (GLIBC_VERSION): New macro.
366         (hard_locale): Assume setlocale exists.
367         Rewrite to avoid #ifdef.
368         Use strdup rather than malloc + strcpy.
369         * human.c: Assume <locale.h> exists.
370         (human_readable): Assume localeconv exists.
371
372 2004-12-01  Jakub Jelinek  <jakub@redhat.com>
373
374         * mktime.c (__mktime_internal): If SEC_REQUESTED != SEC,
375         convert T2, not T.  (Imported from libc.)
376
377 2004-11-30  Paul Eggert  <eggert@cs.ucla.edu>
378
379         * getcwd.c (is_ENAMETOOLONG): New macro.
380         (__getcwd.c): Don't restore errno; glibc doesn't.
381         [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd
382         first, falling back to our code only if its results look suspicious.
383         Ensure that the resulting buffer is only as large as necessary.
384
385         * readutmp.c: Include readutmp.h first.
386         Include <errno.h>, since readutmp.h no longer does that.
387         * readutmp.h: Don't include <errno.h>,
388         <sys/param.h>, <time.h>; not needed to establish interface.
389         (errno): Remove decl.
390         (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed.
391         (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME,
392         UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros.
393
394 2004-11-28  Simon Josefsson  <jas@extundo.com>
395
396         * base64.h, base64.c: New file.
397
398 2004-11-27  Paul Eggert  <eggert@cs.ucla.edu>
399
400         * getcwd.h: New file, which I forgot to check in on 2004-11-25.
401
402 2004-11-25  Paul Eggert  <eggert@cs.ucla.edu>
403
404         Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using
405         HP's ANSI C compiler.
406         * fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl.
407         Declaring int functions causes warnings on some modern systems and
408         shouldn't be needed to compile on ancient ones.
409         * same.c (MIN) [defined MIN]: Don't define, since it's already
410         defined.
411
412         * getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but
413         with the following changes.
414         (__set_errno): Parenthesize properly.
415         Include <stdbool.h>.
416         (MIN, MAX, MATCHING_INO): New macros.
417         (__getcwd): Define with prototype, not K&R form.
418         Use heuristics to allocate default buffer on stack if possible.
419         If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2)
420         behavior, and to avoid the PATH_MAX limit when computing
421         ../../../../...
422         Use MATCHING_INO to compare inode number to file.
423         Check for arithmetic overflow in size calculations.
424         Fix bug in reallocation of dot array that caused getcwd to fail
425         on directories nested deeper than 75.
426         Be more careful about saving errno on error.
427         Do not use realloc; use only free+malloc, as this is a bit
428         more flexible and avoids a needless copy operation.
429         Do not inspect st_dev and st_ino for symbolic links; POSIX
430         doesn't specify the latter.
431         Check for closedir errors.
432         Avoid needless casts.
433         Use "#ifdef weak_alias" around weak_alias, to be like other
434         glibc code.
435         The following changes to getcwd.c have effect only when used in
436         gnulib; they have no effect inside glibc proper.
437         (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove,
438         as alloca isn't used.
439         (alloca, __alloca): Likewise.
440         [!_LIBC]: Include "getcwd.h", "mempcpy.h".
441         Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
442         unconditionally, as gnulib assumes C89 or better.
443         Do not include <sys/param.h>.
444         (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove
445         no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or
446         better.
447         (NULL) [!defined NULL]: Remove; we assume C89 or better.
448         Include <dirent.h> in a way that is compatible with modern Autoconf.
449         (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN):
450         New macros, if not already defined.
451         Include <unistd.h> if _LIBC, not if __GNU_LIBRARY__.
452         Use "_LIBC", not "defined _LIBC", for consistency.
453         (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has
454         a mempcpy module.
455         (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros.
456         (GETCWD_RETURN_TYPE): Remove.  All uses replaced by char *.
457         * xgetcwd.c: David MacKenzie's old code was removed, so give
458         credit only to Jim Meyering and adjust the copyright dates.
459         Do not include <limits.h>, <stdio.h>, <sys/types.h>,
460         <stdlib.h>, <unistd.h>, "pathmax.h".
461         Instead, include "xgetcwd.h" (first) and "getcwd.h".
462         (INITIAL_BUFFER_SIZE): Remove.
463         (xgetcwd): Rely on getcwd, since we now depend on a reliable one.
464
465 2004-11-23  Jim Meyering  <jim@meyering.net>
466
467         * getopt_.h: Remove trailing blanks.
468
469 2004-11-23  Paul Eggert  <eggert@cs.ucla.edu>
470
471         * utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros.
472         (futimens): New function, which uses futimes if available.
473         (futimens, utimens): Support timespec==NULL, with same semantics
474         as utime and utimens.
475         * utimens.h (futimens): New decl.
476
477 2004-11-23  Jim Meyering  <jim@meyering.net>
478
479         * __fpending.c: Add comment.
480
481 2004-11-23  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
482
483         * getopt_.h: Re-addition of __getopt_argv_const caused
484         redefinition warnings. To avoid them, include the defines
485         in `#if !defined __need_getopt ... #endif'. The only place
486         where __getopt_argv_const is used is in definitions
487         of getopt_long and getopt_long_only below, which are as well
488         protected by `#ifndef __need_getopt'.
489         [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef
490         __need_getopt after including <stdio.h> and <unistd.h> These
491         headers might have defined it.
492
493 2004-11-20  Paul Eggert  <eggert@cs.ucla.edu>
494
495         * getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID):
496         New macros.
497         (getopt, getopt_long, getopt_long_only, optarg, opterr, optind,
498         optopt): Use them instead of invoking ## directly; otherwise, the
499         symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt.
500
501 2004-11-19  Bruno Haible  <bruno@clisp.org>
502
503         * strtok_r.c: Move comments from here...
504         * strtok_r.h: ... to here.
505
506 2004-11-17  Paul Eggert  <eggert@cs.ucla.edu>
507
508         * realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
509         might fail.  Problem reported by Yoann Vandoorselaere.
510         * calloc.c (rpl_calloc): Defend against buggy calloc implementations
511         that mishandle size_t overflow.
512
513 2004-11-16  Paul Eggert  <eggert@cs.ucla.edu>
514
515         * canon-host.c: Include "strdup.h".
516         (canon_host): Use getaddrinfo if available, so that IPv6 works.
517         Use strdup instead of malloc/strcpy to duplicate strings.
518
519         * human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit.
520         (human_space_before_unit): New constant.
521         * human.c (human_readable): Support it.
522
523         * xgetcwd.c: Include <limits.h>, for PATH_MAX.
524         (xgetcwd): Set errno correctly when failing.
525         Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
526         the failure is actually due to a PATH_MAX problem.
527
528         Further getopt changes to make it more likely that glibc will
529         buy the changes back.
530         * getopt.c (POSIXLY_CORRECT): New constant.
531         (getopt): Use it, so to preserve glibc semantic
532         * getopt1.c (getopt_long, getopt_long_only): Arg is char * const *
533         when compiling for libc.
534         * getopt_.h (__getopt_argv_const): Bring it back.
535         (getopt_long, getopt_long_only): Use it.
536
537         * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal):
538         New arg POSIXLY_CORRECT.  All callers changed.
539         (getopt): Argv is now char * const *, as per standard.
540         (_getopt_internal_r, _getopt_internal): Argv is now char **,
541         not char *__getopt_argv_const *.
542         * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
543         _getopt_long_only_r): Likewise.
544         * getopt_.h (getopt, getopt_long, geopt_long_only): Likewise.
545         * getopt_int.h (_getopt_internal, _getopt_internal_r,
546         _getopt_long_r, _getopt_long_only_r): Likewise.
547         * getopt_.h (__getopt_argv_const): Remove.
548         (getopt): Argv is now char * const *, as per standard.
549
550         * getdate.y (tORDINAL): New token.
551         (day, relunit): Allow it for relative times.
552         (relative_time_table): Use tORDINAL for ordinals.
553
554 2004-11-15  Jim Meyering  <jim@meyering.net>
555
556         * closeout.c: Include "__fpending.h" once again.
557         Include <stdbool.h>.
558         (close_stdout): Don't fail just because stdout was closed initially,
559         since some programs don't write to stdout in the normal course of
560         operation (other than --version and --help), and we don't want this
561         function to make e.g. `touch file >&-' fail.
562         But do fail if it was closed and someone has tried to write to it.
563         E.g., `printf foo >&-' must fail.
564
565 2004-11-11  Simon Josefsson  <jas@extundo.com>
566
567         * strtok_r.h, strtok_r.c: New file.
568
569 2004-11-11  Paul Eggert  <eggert@cs.ucla.edu>
570
571         * getopt_.h (__getopt_argv_const): New macro, to be used so that
572         we can stop lying to compilers about the constness of argv when we
573         are compiled outside glibc.
574         (getopt, getopt_long, getopt_long_only): Use it.
575         * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal,
576         getopt): Likewise.
577         * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
578         _getopt_long_only_r): Likewise.
579         * getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r,
580         _getopt_long_only_r): Likewise.
581
582         * getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]:
583         Include <stdlib.h> and <stdio.h>, and <unistd.h> if available.
584         Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for
585         the other external symbols.
586         (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style
587         declaration, since the above renaming now works around collisions.
588
589 2004-11-11  Jim Meyering  <jim@meyering.net>
590
591         * linebreak.c: Remove trailing blanks.
592         * alloca_.h: Likewise.
593         * acosl.c: Likewise.
594         * euidaccess.c: Likewise.
595         * allocsa.h: Likewise.
596
597 2004-11-10  Paul Eggert  <eggert@cs.ucla.edu>
598
599         * mktime.c (SHR): New macro, which is a portable
600         substitute for >> that should work even on Crays.
601         (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
602         Problem reported by Mark D. Baushke in
603         <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00071.html>.
604         * getdate.y (SHR): Likewise.
605         (tm_diff): Use it.
606         * strftime.c (SHR): Likewise.
607         (tm_diff): Use it.
608         * quotearg.c (struct quoting_options): Use unsigned int for
609         quote_these_too, so that right shifts are well defined.  All uses
610         changed.
611
612 2004-11-10  Simon Josefsson  <jas@extundo.com>
613
614         * getaddrinfo.h, getaddrinfo.c: New files.
615
616 2004-11-10  Jim Meyering  <jim@meyering.net>
617
618         Ensure that no close failure goes unreported.
619         * closeout.c (close_stdout): Always close stdout.  I.e., don't
620         return early when it seems there's nothing to flush.
621         Don't include __fpending.h.
622
623 2004-11-09  Paul Eggert  <eggert@cs.ucla.edu>
624
625         * strftime.c (DO_MULTIBYTE): Check for wchar.h, too.
626
627 2004-11-05  Bruno Haible  <bruno@clisp.org>
628
629         * readlink.c: Include stddef.h, needed for size_t on Woe32.
630         Reported by Mark D. Baushke <mdb@cvshome.org>.
631
632 2004-11-04  Bruno Haible  <bruno@clisp.org>
633
634         2004-09-11  Bruno Haible  <bruno@clisp.org>
635                 * allocsa.valgrind: New file.
636         2004-02-06  Bruno Haible  <bruno@clisp.org>
637                 * allocsa.h (sa_alignof): Define differently with HP-UX cc, to
638                 avoid a bug of this cc on HP-UX 10.20 dealing with enums.
639                 Reported by Christopher Seip <chris.seip@hp.com>.
640
641 2004-11-03  Paul Eggert  <eggert@cs.ucla.edu>
642
643         * xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
644         with errno == ERANGE if the buffer is too small.
645         Problem reported by Mark D. Baushke.
646
647 2004-11-02  Paul Eggert  <eggert@cs.ucla.edu>
648
649         * xreadlink.c (MAXSIZE): New macro.
650         (xreadlink): Use it instead of SSIZE_MAX.  Ensure initial buffer
651         size does not exceed MAXSIZE.  Avoid cast.
652         As suggested by Mark D. Baushke in
653         <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00009.html>,
654         if readlink fails with buffer size just under MAXSIZE, try again
655         with MAXSIZE.
656
657 2004-11-02  Derek R. Price  <derek@ximbiot.com>
658         and  Paul Eggert  <eggert@cs.ucla.edu>
659
660         * getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
661         (get_date): Overparenthesize to avoid GCC warning.
662
663 2004-11-02  Bruno Haible  <bruno@clisp.org>
664
665         * setenv.h (unsetenv): Define as a macro if the system's unsetenv()
666         function returns void.
667
668 2004-11-01  Paul Eggert  <eggert@cs.ucla.edu>
669
670         * getpass.c (fflush_unlocked, flockfile, funlockfile)
671         (funlockfile, fputs_unlocked, putc_unlocked): Don't define if
672         already declared.
673
674 2004-10-29  Paul Eggert  <eggert@cs.ucla.edu>
675
676         * getdate.y: Add support for TZ="foo" within a date string.
677         Fix some bugs near time_t boundaries.  Reject dates with
678         out-of-range components, e.g., "Sept 31".
679         Include <stdlib.h>, "setenv.h", "xalloc.h".
680         (ISDIGIT_LOCALE): Remove; unused.
681         Note that the TZ and time functions used here are not reentrant.
682         (mktime_ok, get_tz): New functions.
683         (TZBUFSIZE): New constant.
684         (get_date): Parse leading TZ="foo".  Reject out-of-range components;.
685         This requires that we sometimes generate our own TZ="XXX..." setting.
686
687 2004-10-27  Derek R. Price  <derek@ximbiot.com>
688
689         * mktime.c (not_equal_tm): Remove redundant check.
690
691 2004-10-24  Paul Eggert  <eggert@cs.ucla.edu>
692
693         * getdate.y: Use Bison 1.875 features, and some minor
694         code cleanups.  This change does not affect semantics.
695         Don't include <stdlib.h>; no longer needed.
696         Don't include unlocked-io.h; only the "#if TEST" code uses
697         stdio, and performance isn't crucial there.
698         (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by
699         Bison 1.875 features as described below.
700         All uses of "PC." replaced by "pc->".
701         (YYSTYPE): Add a forward declaration.
702         (yylex, yyerror): Use full prototypes in forward decls.
703         Use "%pure-parser" rather than obsolescent "%pure_parser".
704         Use %parse-param and %lex-param instead of obsolescent
705         YYPARSE_PARAM and YYLEX_PARAM.
706         (meridian_table, month_and_day_table, time_units_table,
707         relative_time_table, time_zone_table, military_table,
708         lookup_zone, lookup_word, get_date):
709         Use NULL instead of 0 where appropriate.
710         (to_hour): Avoid abort (), to avoid a dependency on
711         stdlib.h.
712         (yyerror, yylex): Now accepts parser_control * arg.
713         (main) [TEST]: Use '\0' rather than 0 for char.
714
715 2004-10-22  Paul Eggert  <eggert@cs.ucla.edu>
716
717         * getpagesize.c (getpagesize): Don't assume <sys/param.h> exists.
718         It's now the caller's responsibility to handle the case where
719         !HAVE_GETPAGESIZE && !defined getpagesize.
720
721         * mktime.c (leapyear): Arg is long int, not int.
722
723 2004-10-18  Paul Eggert  <eggert@cs.ucla.edu>
724
725         * argp-fs-xinl.c, argp-xinl.c: Update from glibc.
726
727 2004-10-12  Simon Josefsson  <jas@extundo.com>
728
729         * getpass.c (fflush_unlocked, flockfile, funlockfile)
730         (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
731         to real functions.
732
733 2004-10-11  Yoann Vandoorselaere  <yoann@prelude-ids.org>
734
735         * vsnprintf.h: New file.
736         * vsnprintf.c: New file.
737
738 2004-10-07  Bruno Haible  <bruno@clisp.org>
739
740         * snprintf.c (snprintf): Avoid a memory allocation if the result fits
741         into the provided buffer.
742
743 2004-10-06  Paul Eggert  <eggert@cs.ucla.edu>
744
745         * diacrit.c, diacrit.h: Add GPL notice.
746
747         * atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice.
748         * atanl.c (atanl): Keep the code as similar to glibc as possible.
749         * logl.c (logl): Keep the code as similar to glibc as possible.
750         This avoids a potential constant-folding bug.
751
752 2004-10-05  Bruno Haible  <bruno@clisp.org>
753
754         * strsep.h: Don't declare strsep() if HAVE_STRSEP.
755
756 2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
757
758         * xalloc.h (xmemdup): Renamed from xclone.  All uses changed.
759         * xmalloc.c (xmemdup): Likewise.
760         * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
761         XFREE): Remove these long-obsolescent macros.
762         * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
763         * xstrdup.c: Remove.
764
765         * regex.c (re_comp): Cast gettext return value to char *,
766         Problem reported by Martin Neitzel via Mark D. Baushke.
767
768 2004-10-04  Simon Josefsson  <jas@extundo.com>
769
770         * error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of
771         '#ifdef USE_UNLOCKED_IO'.
772
773 2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
774
775         * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
776         getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
777         md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
778         regex.c, sha1.c, version-etc.c, yesno.c:
779         Include "unlocked-io.h" only if USE_UNLOCKED_IO.
780         * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
781         the includer's responsibility.
782
783         Sync from coreutils.
784
785         * modechange.c (mode_compile): Don't decrement a pointer that
786         points to the start of a string, as the C Standard says the
787         resulting behavior is undefined.
788
789         * backupfile.h (enum backuptype): Rename none -> no_backups,
790         simple -> simple_backups, numbered_existing ->
791         numbered_existing_backups, numbered -> numbered_backups
792         to avoid shadowing problems.  All uses changed.
793         * argmatch.c (enum backuptype) [defined TEST]: Likewise.
794         * backupfile.c (check_extension, numbered_backup):
795         Rename locals to avoid shadowing 'basename'.
796         * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
797         once.
798
799         * .cppi-disable: Add getopt_.h, getopt_int.h.
800         * .cvsignore: Add getopt.h.
801
802 2004-10-04  Simon Josefsson  <jas@extundo.com>
803
804         * memmem.h: New file.
805         * memmem.c: New file, taken from glibc.
806
807 2004-10-02  Jim Meyering  <jim@meyering.net>
808
809         * dirfd.h, getpagesize.h: Add copyright notice.
810
811 2004-10-01  Paul Eggert  <eggert@cs.ucla.edu>
812
813         * snprintf.c: Remove comments as to why each header is needed.
814
815 2004-10-01  Yoann Vandoorselaere <yoann@prelude-ids.org>
816
817         * strsep.h: New file.
818         * strsep.c: New file.
819
820 2004-10-01  Simon Josefsson  <jas@extundo.com>
821
822         * snprintf.c (snprintf): Handle size==0.
823
824 2004-10-01  Simon Josefsson  <jas@extundo.com>
825             Bruno Haible  <bruno@clisp.org>
826
827         * snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
828         (snprintf): Declare 'args'.
829
830 2004-09-30  Simon Josefsson  <jas@extundo.com>
831
832         * snprintf.h, snprintf.c: New files.
833
834 2004-09-30  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
835
836         * argp-help.c (canon_doc_option): Fixed coredump if *name==NULL
837         (hol_entry_help): Never translate an empty string.
838         Do not translate option tag (opt->name) if OPTION_NO_TRANS is set
839         * argp.h (OPTION_NO_TRANS): New option.
840
841 2004-09-29  Oskar Liljeblad  <oskar@osk.mine.nu>
842
843         * xvasprintf.c: Include xalloc.h.
844         (xvasprintf): Use xalloc_die, not xmalloc_die.
845
846 2004-09-28  Paul Eggert  <eggert@cs.ucla.edu>
847
848         * dummy.c: Change copyright notice to FSF, and license to GPL.
849
850 2004-09-13  Paul Eggert  <eggert@cs.ucla.edu>
851
852         * argp-pvh.c (argp_program_version_hook): Provide initial value.
853         Problem reported by Bruno Haible in:
854         http://lists.gnu.org/archive/html/bug-tar/2004-09/msg00023.html
855
856 2004-09-11  Paul Eggert  <eggert@cs.ucla.edu>
857
858         * mempcpy.h: Wrap the entire include file inside #ifndef mempcpy,
859         in case some system header has #define'd it.  Problem reported by
860         Soeren D. Schulze in
861         <http://lists.gnu.org/archive/html/bug-gnulib/2004-09/msg00017.html>.
862
863 2004-09-08  Bruno Haible  <bruno@clisp.org>
864
865         * stdint_.h.in: New file, taken from GNU clisp.
866
867 2004-09-08  Oskar Liljeblad  <oskar@osk.mine.nu>
868
869         * xvasprintf.h: New file.
870         * xvasprintf.c: New file.
871         * xasprintf.c: New file.
872
873 2004-09-08  Bruno Haible  <bruno@clisp.org>
874
875         * vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length
876         is > INT_MAX.
877         * vasprintf.c (vasprintf): Don't test for length > INT_MAX any more.
878
879 2004-08-19  Paul Eggert  <eggert@cs.ucla.edu>
880
881         Import from coreutils.
882         * userspec.c: Don't use <alloca.h>, so that we don't use alloca on
883         strings on unbounded length.  alloca's performance benefits aren't
884         that important here.
885         (V_STRDUP): Remove.
886         (parse_with_separator): New function, with most of the internals
887         of the old parse_user_spec.  Allow user to omit both user and group,
888         for compatibility with FreeBSD.
889         Clone only the user name, not the entire spec.
890         Do not set *uid, *gid unless entirely successful.
891         Avoid memory leak in some failing cases.
892         Fix regression for USER.GROUP reported by Dmitry V. Levin in
893         <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00102.html>
894         (parse_user_spec): Rewrite to use parse_with_separator.
895
896 2004-08-12  Paul Eggert  <eggert@cs.ucla.edu>
897
898         * argp-help.c, argp-parse.c: Use "gettext.h" instead of
899         its complicated substitute.
900         * argp-help.c: Include <errno.h>, for program_invocation_short_name
901         and program_invocation_name.
902         (__argp_basename) [!_LIBC]: Remove; the only use was
903         replaced by its body.
904         (__argp_short_program_name): Change condition from
905         !defined __argp_short_program_name to
906         ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME),
907         to match argp-namefrob.h.
908         (__argp_failure): Don't assume strerror_r returns char *.
909         * argp-parse.c (N_): Define unconditionally.
910         (argp_default_options): Fill out initializers with 0 to avoid
911         gcc warnings.
912
913 2004-08-12  Simon Josefsson  <jas@extundo.com>
914
915         * getopt.c, getopt1.c: Remove ELIDE_CODE hack.
916         * getopt_.h: Renamed from getopt.h.
917
918 2004-08-11  Paul Eggert  <eggert@cs.ucla.edu>
919
920         Merge from coreutils.
921
922         * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
923         wmemchr or wmemcpy.  Problem reported by Robert Dahlem
924         for Reliant Unix 5.43.
925
926         * obstack.c: Include <inttypes.h> and <stdint.h> if available.
927         (union fooround): Use uintmax_t, not long int.
928         The rest is a merge from libc:
929         [defined _LIBC]: Include <shlib-compat.h>.
930         (_obstack) [defined _LIBC]: Remove after 2.3.4.
931
932         * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2.
933
934         * strverscmp.c: Convert to UTF-8.
935
936 2004-08-09  Paul Eggert  <eggert@cs.ucla.edu>
937
938         * obstack.h (obstack_empty_p):
939         Don't assume that chunk->contents is suitably aligned.
940         * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
941         Likewise. Problem reported by Benno in
942         <http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
943
944         * chown.c (rpl_chown): Work even if the file is writeable but not
945         readable.  This could be improved further but it'd take some work.
946
947 2004-08-08  Simon Josefsson  <jas@extundo.com>
948
949         * xgethostname.c: Don't include error.h (not used).
950
951         * getpass.h: Add.
952         * getpass.c: Include getpass.h first.
953
954 2004-08-08  Paul Eggert  <eggert@cs.ucla.edu>
955
956         * xalloc-die.c: New files.
957         * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
958         All uses removed.
959         * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise.
960         Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c.
961         (_, N_, xalloc_die): Move to xalloc-die.c.
962         * userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
963         so that we needn't mess with xalloc_msg_memory_exhausted.
964
965         * sha1.h: Renamed from sha.h.
966         (SHA1_H): Renamed from _SHA_H.
967         (sha1_ctx): Renamed from sha_ctx.
968         (sha1_init_ctx): Renamed from sha_init_ctx.
969         (sha1_process_block): Renamed from sha_process_block.
970         (sha1_process_bytes): Renamed from sha_process_bytes.
971         (sha1_finish_ctx): Renamed from sha_finish_ctx.
972         (sha1_read_ctx): Renamed from sha_read_ctx.
973         (sha1_stream): Renamed from sha_stream.
974         (sha1_buffer): Renamed from sha_buffer.
975         * sha1.c: Likewise; renamed from sha.c.
976         Do not include <sys/types.h>.
977         Include <stddef.h> rather than <stdlib.h>.
978
979 2004-08-08  Bruno Haible  <bruno@clisp.org>
980
981         * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
982         FILESYSTEM_PREFIX_LEN.
983         * progreloc.c: Likewise.
984         * concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN.
985
986 2004-08-06  Paul Eggert  <eggert@cs.ucla.edu>
987
988         Merge from tar.
989         * argp-help.c (make_hol, hol_append): Don't assume that
990         SIZE_MAX is a valid preprocessor constant.
991         (__argp_basename): Change from "#ifndef _LIBC"
992         to "#ifndef __argp_short_program_name", so that
993         we don't compile these functions for tar.
994
995         More merges from coreutils.
996         * raise.c, readtokens0.h, readtokens0.c, strftime.h, utimens.h,
997         utimens.c, utimecmp.h, utimecmp.c, xnanosleep.h, xnanosleep.c,
998         yesno.h: New files.
999         * addext.c: Remove; no longer needed.
1000         * yesno.c, argmatch.h, argmatch.c, backupfile.h, backupfile.c,
1001         euidaccess.c, filemode.c, closeout.c, dup2.c, exclude.c,
1002         fileblocks.c, filemode.c, fnmatch.c, fnmtahc_loop.c,
1003         fopen-safer.c, fsusage.c, fsusage.h, ftruncate.c, full-write.c,
1004         getdate.y, getloadavg.c, getugroups.c, hard-locale.c, hard-locale.h,
1005         hash.c, human.c, human.h, lchown.c, lchown.h, makepath.c, makepath.h,
1006         md5.c, md5.h, memchr.c, memcoll.c, memrchr.c, modechange.c,
1007         modechange.h, mountlist.c, mountlist.h, nanosleep.c, posixtm.c,
1008         putenv.c, quotearg.c, quotearg.h, readtokens.c, readutmp.c,
1009         readutmp.h, rmdir.c, safe-read.c, save-cwd.c, savedir.c, setenv.c,
1010         sig2str.c, stat.c, strtoimax.c, strverscmp.c, userspec.c, utime.c,
1011         version-etc.c., xgethostname.c, xmemcoll.c, xreadlink.c, xstrtod.c,
1012         xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c:
1013         Import changes from coreutils.
1014
1015 2004-08-05  Paul Eggert  <eggert@cs.ucla.edu>
1016
1017         Merge from coreutils.
1018
1019         * .gdb-history: Remove; this doesn't belong here.
1020
1021         * c-strtod.c, c-strtod.h, c-strtold.c, cycle-check.c,
1022         cycle-check.h, dev-ino.h, canonicalize.h, canonicalize.c,
1023         fcntl-safer.h, fcntl-safer.c, getcwd.c: New files.
1024
1025         * dirname.h: Include <stdbool.h>.
1026         (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN,
1027         for consistency with POSIX terminology.  All uses changed.
1028         (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
1029         (strip_trailing_slashes): Use bool for booleans.
1030         * stripslash.c (strip_trailing_slashes): Likewise.
1031
1032         * error.c: Work around bug in OpenBSD 3.4 sterror_r: it
1033         sometimes returns a positive errno value even when it succeeds.
1034         (print_errno_message) [!LIBC]: Fall back on strerror if
1035         __strerror_r fails.
1036
1037         * path-concat.c (mempcpy): Don't define if a system header defines it.
1038         Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
1039         (longest_relative_suffix): New function.
1040         (path_concat): Use it.  Assume first argument is not NULL.
1041         Port to DOS.  Omit redundant separators.
1042         Report an error instead of returning NULL.
1043         Use mempcpy instead of memcpy.
1044         (xpath_concat): Remove: not declared or used.
1045
1046         * same.h: Include <stdbool.h>
1047         (same_name): Return bool, not int.
1048         * same.c (same_name): Likewise.
1049         (errno): Don't declare; we assume C89 or better now.
1050
1051         * stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros,
1052         if not already defined.
1053
1054         * xgetcwd.c (errno): Don't declare; we assume C89 or better now.
1055         * dup-safer.c (errno): Likewise.
1056
1057 2004-08-03  Paul Eggert  <eggert@cs.ucla.edu>
1058
1059         * fatal.c, fatal.h: Remove as the "fatal" module wasn't used or
1060         working.
1061
1062 2004-08-03  Simon Josefsson  <jas@extundo.com>
1063
1064         * strdup.h: Only use HAVE_DECL_STRDUP if defined.
1065         * progname.h: Don't include stdbool.h.
1066
1067 2004-08-02  Simon Josefsson  <jas@extundo.com>
1068
1069         * getsubopt.h: New file, with comments from Bruno Haible.
1070         * getsubopt.c: New file, from glibc, but slightly modified based on
1071         suggestions from Paul Eggert <eggert@cs.ucla.edu>.
1072
1073 2004-08-01  Simon Josefsson  <jas@extundo.com>
1074
1075         * xgetdomainname.c: Include stdlib.h, for free().
1076
1077 2004-07-16  Simon Josefsson  <jas@extundo.com>
1078
1079         * dummy.c: New file.
1080
1081 2004-07-16  Bruno Haible  <bruno@clisp.org>
1082
1083         * backupfile.h: Add extern "C" for C++.
1084         * closeout.h: Likewise.
1085         * copy-file.h: Likewise.
1086         * findprog.h: Likewise.
1087         * full-write.h: Likewise.
1088         * pathname.h: Likewise.
1089         * progname.h: Likewise.
1090         * stpcpy.h: Likewise.
1091         * stpncpy.h: Likewise.
1092         * strcase.h: Likewise.
1093         * strstr.h: Likewise.
1094         * xalloc.h: Likewise.
1095
1096         * mbswidth.h: Add extern "C" for C++.
1097         Reported by Albert Chin-A-Young <china@thewrittenword.com>.
1098
1099 2004-07-09  Simon Josefsson  <jas@extundo.com>
1100
1101         * getndelim2.c: Include stddef.h, for ptrdiff_t.  (FreeBSD 4.9
1102         failed without this.)
1103
1104 2004-07-09  Paul Eggert  <eggert@cs.ucla.edu>
1105
1106         * fchown-stub.c: New file.
1107
1108 2004-06-24  Jim Meyering  <jim@meyering.net>
1109
1110         * obstack.h (obstack_base): Cast to (void *), per documentation.
1111
1112 2004-06-22  Paul Eggert  <eggert@cs.ucla.edu>
1113
1114         * argz.c, argz_.h: New files, which are autoupdated from libtool.
1115
1116 2004-06-01  Jim Meyering  <jim@meyering.net>
1117
1118         * calloc.c: New file.
1119
1120 2004-06-06  Paul Eggert  <eggert@cs.ucla.edu>
1121
1122         * getdate.y (yylex): Allow space between sign and number.
1123         Problem reported by Dan Jacobson.
1124
1125 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1126         and  Jim Meyering  <jim@meyering.net>
1127
1128         Merge from coreutils CVS.
1129
1130         * stat-macros.h: New file, with contents from file-type.h
1131         and coreutils' system.h.
1132         * file-type.c: Include "stat-macros.h".
1133         * file-type.h (file_type): Move all macro definitions to new file,
1134         stat-macros.h.
1135
1136         * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
1137         Wrap old code with this conditional.
1138         [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
1139         function that does not dereference symlinks.
1140         * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
1141
1142         * xreadlink.c: Include xreadlink.h first, to catch .h file
1143         dependency problems.
1144         (xreadlink): Accept new arg SIZE, for efficiency.
1145         All decls and uses changed.
1146         * xreadlink.h: Include <stddef.h>, for size_t.
1147
1148         * .cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h,
1149         gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h.
1150
1151         * .cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h.
1152
1153 2004-05-30  Paul Eggert  <eggert@cs.ucla.edu>
1154
1155         * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these
1156         macros to be defined.
1157         (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if
1158         the allocator returns NULL because the requested size is zero.
1159
1160 2004-05-20  Paul Eggert  <eggert@cs.ucla.edu>
1161
1162         * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this
1163         var.  Add comment explaining why libc still defines it.  This
1164         merges the following patch from glibc:
1165         http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html
1166
1167 2004-05-19  Paul Eggert  <eggert@cs.ucla.edu>
1168
1169         * obstack.c (_obstack): Remove unused variable.  It hasn't been
1170         present in glibc since revision 1.1 of this file.
1171         * obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast,
1172         obstack_alignment_mask, obstack_alloc, obstack_base,
1173         obstack_blank, obstack_blank_fast, obstack_chunk_size,
1174         obstack_copy, obstack_copy0, obstack_finish, obstack_grow,
1175         obstack_grow0, obstack_init, obstack_int_grow,
1176         obstack_int_grow_fast, obstack_make_room, obstack_memory_used,
1177         obstack_next_free, obstack_object_size, obstack_ptr_grow,
1178         obstack_ptr_grow_fast, obstack_room): Remove declarations of
1179         nonexistent functions.
1180
1181 2004-05-17  Derek R. Price  <derek@ximbiot.com>
1182             Paul Eggert  <eggert@cs.ucla.edu>
1183
1184         * argp-help.c, argp-parse.c: Assume <alloca.h> rather than freecoding.
1185
1186 2004-05-14  Bruno Haible  <bruno@clisp.org>
1187
1188         * vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision
1189         that consists of a '.' followed by an empty digit string.
1190         Patch by Tor Lillqvist <tml@iki.fi>.
1191
1192 2004-05-17  Paul Eggert  <eggert@cs.ucla.edu>
1193
1194         Port obstack to the AS/400, where pointers are 16 bytes wide and
1195         you cannot cast an integer to a valid pointer.  This patch is
1196         currently waiting to be integrated into glibc; see
1197         <http://sources.redhat.com/ml/libc-alpha/2004-05/msg00073.html>.
1198
1199         * obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove.
1200         All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN.
1201         (__BPTR_ALIGN, __PTR_ALIGN): New macros.
1202         (struct obstack): temp member is now a union of a pointer and
1203         an integer, instead of an integer.  All integer uses changed.
1204         This does not affect the physical layout of struct obstack,
1205         except on hosts (like the AS/400) where the size or alignment of
1206         void * is greater than that of ptrdiff_t.
1207         (obstack_finish) [! (defined __GNUC__ && defined __STDC__ &&
1208         __STDC__)]: Store temporary in pointer member of union, not
1209         integer member.
1210         * obstack.c: Include <stddef.h>, for offsetof.
1211         (struct fooalign): Remove; it doesn't need a name.
1212         (union fooround): Change double to long double, and add void *.
1213         (DEFAULT_ALIGNMENT): Use offsetof to compute.
1214         (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant,
1215         not a macro.  Hence the values are always int; so remove all
1216         casts-to-int in uses.
1217
1218 2004-05-16  Paul Eggert  <eggert@cs.ucla.edu>
1219             Derek Price  <derek@ximbiot.com>
1220
1221         * alloca.c: Include <alloca.h>, to get our interface.
1222         * alloca_.h: Use __alloca on AIX, so that we don't have to
1223         include <alloca.h> first.  Use C89 prototype for alloca; this
1224         requires including <stddef.h> for size_t.  Use extern "C" if C++.
1225         Use #elif for simplicity, since we can assume C89 now.
1226         Don't try to source the system alloca.h since it will not be found
1227         and to prevent recursively including its replacement.
1228         * fnmatch.c: Include <alloca.h> instead of opencoding.
1229         * regex.c: Likewise.
1230
1231 2004-05-16  Derek Price  <derek@ximbiot.com>
1232             Paul Eggert  <eggert@cs.ucla.edu>
1233
1234         getline cleanup.  This changes the getndelim2 API: both order of
1235         arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
1236         no delimiter).
1237
1238         * getline.c: Don't include stddef.h or stdio.h, since our
1239         interface does that.
1240         (getline): Always use getdelim, so that we don't have two
1241         copies of this code.
1242         * getndelim2.c: Include <limits.h>, <inttypes.h>, <stdint.h>
1243         if available.
1244         (PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined.
1245         (GETNDELIM2_MAXIMUM): New macro.
1246         (getndelim2): Reorder arguments.  delim==EOF now means no delimiter,
1247         instead of the old practice of delim2==0.  All callers changed.
1248         Return -1 on overflow, instead of returning junk.
1249         Do not set *linesize unless allocation succeeds.
1250         * getndelim2.h: Do not include stddef.h; no longer needed, now
1251         that we include sys/types.h.
1252         * getnline.h: Likewise.
1253         * getndelim2.h (GETNLINE_NO_LIMIT): New macro.
1254         (getndelim2): Reorder arguments.
1255         * getnline.c (getnline, getndelim):
1256         Don't discard the NMAX argument.
1257         (getnline): Invoke getndelim, to avoid code duplication.
1258         * getnline.h (GETNLINE_NO_LIMIT): New macro, used instead
1259         of (size_t) -1 by callers of the getnline family.
1260
1261 2004-05-13  Paul Eggert  <eggert@cs.ucla.edu>
1262
1263         * nanosleep.c (suspended): Change its type from int to
1264         sig_atomic_t volatile.
1265         (first_call): Make it private to rpl_nanosleep, and have it
1266         be zero initially as that's a bit faster.
1267         (my_usleep): Round up fractional times instead of truncating them,
1268         as this is the usual meaning for 'sleep'.
1269
1270         * gettime.c (gettime): Fall back on `time' if `gettimeofday'
1271         doesn't work.
1272         * settime.c: Include <unistd.h>, for stime (on Solaris 8, anyway).
1273         (ENOSYS): Define if not defined.
1274         (settime): Fall back on stime if it exists and settimeofday fails.
1275         But don't bother with fallbacks if a method fails with errno == EPERM.
1276
1277 2004-05-11  Jim Meyering  <jim@meyering.net>
1278
1279         Prior to this change, the save_cwd caller required read access to the
1280         current directory on most systems (ones with the fchdir function).
1281
1282         * save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only
1283         fails, try write-only, and finally, resort to using xgetcwd.
1284
1285 2004-05-06  Paul Eggert  <eggert@cs.ucla.edu>
1286
1287         * obstack.c, obstack.h: Import changes from libc.
1288
1289 2004-04-28  Bruno Haible  <bruno@clisp.org>
1290
1291         * findprog.c (find_in_path): Treat Cygwin like Windows, since it also
1292         implicitly appends .exe to executables.
1293         * localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now
1294         accepts Windows pathnames.
1295         * pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
1296         Cygwin like Windows, since it now accepts Windows pathnames.
1297         * progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
1298         Cygwin like Windows, since it now accepts Windows pathnames.
1299         Reported by Derek Robert Price <derek@ximbiot.com>.
1300
1301 2004-04-20  Jim Meyering  <jim@meyering.net>
1302
1303         * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory.
1304
1305 2004-04-20  Jim Meyering  <jim@meyering.net>
1306             Bruno Haible  <bruno@clisp.org>
1307
1308         * localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
1309         memory when realloc fails.
1310
1311 2004-04-18  Jim Meyering  <jim@meyering.net>
1312
1313         * readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure,
1314         don't leak memory and do call END_UTMP_ENT.
1315
1316 2004-04-11  Paul Eggert  <eggert@twinsun.com>
1317
1318         * inttostr.h: Include <limits.h> unconditionally, since we assume C89.
1319         (CHAR_BIT): Remove, since we assume C89.
1320         Include <stdint.h> if available, as per current Autoconf CVS advice.
1321
1322 2004-03-30  Paul Eggert  <eggert@twinsun.com>
1323
1324         * cloexec.h, cloexec.c (set_cloexec_flag): Return int
1325         not bool, to be more consistent with Unix conventions.
1326         Suggested by Bruno Haible.
1327
1328         Merge from coreutils.
1329
1330         * imaxtostr.c, inttostr.c, inttostr.h, offtostr.c, umaxtostr.c:
1331         New files.
1332
1333         * getdate.h: Include stdbool.h, and timespec.h instead of
1334         the usual <time.h> dance.
1335         (get_date): Change signature to support fractional time stamps.
1336         All callers changed.
1337         * getdate.y: Include "getdate.h" first, as we can now
1338         assume C89 and don't need to worry about 'const'.
1339         Similarly, include "unlocked-io.h" near start, not in middle.
1340         Include <limits.h>.
1341         (textint.value): Use long int rather than int.
1342         (textint.digits): Use size_t rather than int.
1343         (BILLION, LOG10_BILLION): New constants.
1344         (parser_control): New member rel_ns.  Members day_ordinal,
1345         time_zone, month, day, hour, minutes, rel_year, rel_month,
1346         rel_day, rel_hour, rel_minutes, rel_seconds
1347         are now long int, not int.  Member seconds is now struct timespec,
1348         not int.  New member timespec_seen.  Members dates_seen, days_seen,
1349         local_zones_seen, rels_seen, times_seen, zones_seen are now size_t,
1350         not int.
1351         (%union.intval): Now long int, not int.
1352         New member timespec.
1353         (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens.
1354         (seconds, signed_seconds, unsigned_seconds): New nonterminals.
1355         (spec): Now is a timespec or an item list.
1356         (timespec, items): New nonterminals.
1357         (time, rel, relunit, number, get_date):
1358         Add support for fractional seconds.
1359         (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax.
1360         (gmtime, localtime, mktime): Remove decls; not needed with C89.
1361         (to_hour): First arg is now long int, not int.
1362         (to_year): Returns long int, not int.
1363         Don't treat year -70 like 70.
1364         (tm_diff): Returns long int, not int.
1365         (lookup_word): Use bool instead of int when appropriate.
1366         (yylex): Use size_t for count, not int.
1367         Detect overflow when parsing large integer constants.
1368         Add support for fractions.
1369         (get_date): Make pointers 'const' if possible.
1370         Use more-portable code to detect integer overflow.
1371         (main) [TEST]: Adjust to above changes.  Test for localtime failure.
1372         Don't use ctime; it's not reliable if the year has >4 digits.
1373
1374         * human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set.
1375         This is for compatibility with BSD.
1376
1377         * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define.
1378         (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise.
1379         From coreutils' system.h.
1380
1381         * userspec.c: Don't include "posixver.h".
1382         (parse_user_spec): Fall back on USER.GROUP parsing, regardless
1383         of POSIX version, as POSIX 1003.1-2001 allows that behavior as a
1384         compatible extension.  Simplify code by removing a boolean int
1385         that was always nonzero if a string was nonnull.
1386
1387 2004-03-30  Jim Meyering  <jim@meyering.net>
1388
1389         Merge from coreutils.
1390
1391         * mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h.
1392
1393         * readtokens.c (readtoken): Don't leak 64 bytes when reading
1394         an empty input stream.
1395
1396         * readtokens.c: Include <stdbool.h>.
1397         (readtoken): Use `size_t' rather than int/long.
1398         All callers adjusted.
1399         Use `bool' rather than `int' where appropriate.
1400         Use memset rather than an explicit loop.
1401         Use x2nrealloc rather than xrealloc.
1402         Allow the use of `\0' as a delimiter.
1403         (readtokens): Likewise.
1404         * readtokens.h (readtoken, readtokens): Update prototypes.
1405
1406 2004-03-30  Bruno Haible  <bruno@clisp.org>
1407
1408         * getloadavg.c (getloadavg): Don't assume setlocale returns
1409         nonnull.
1410
1411 2004-03-29  Paul Eggert  <eggert@twinsun.com>
1412
1413         Merge changes to getloadavg.c from coreutils and Emacs.
1414
1415         * getloadavg.c [!defined HAVE_SETLOCALE] (setlocale):
1416         Define to an expression, not to the empty string.
1417         Include cloexec.h and xalloc.h.
1418         (getloadavg): Restore LC_NUMERIC locale after setting it temporarily.
1419         Use set_cloexec_flag rather than rolling our own.
1420         * cloexec.c, cloexec.h: New files.
1421
1422 2004-03-18  Paul Eggert  <eggert@twinsun.com>
1423
1424         * getopt.h: Sync with libc CVS.
1425
1426 2004-03-18  Paul Eggert  <eggert@twinsun.com>
1427             Bruno Haible  <bruno@clisp.org>
1428
1429         * mbswidth.h: Include <wchar.h> only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H,
1430         not on all platforms that have <wchar.h>.
1431         * mbswidth.c: Include <stdio.h> and <time.h> before <wchar.h>.
1432
1433 2004-03-09  Paul Eggert  <eggert@twinsun.com>
1434
1435         * argp-parse.c, getopt.c, getopt.h, getopt1.c:
1436         Sync with libc CVS.
1437         * getopt_int.h: New file, also synced from libc.
1438
1439 2004-03-07  Paul Eggert  <eggert@twinsun.com>
1440
1441         * c-stack.c (SIGACTION_WORKS): New macro.  Use it instead of long
1442         '#if' expressions.  Unlike the code it replaces, it does not
1443         depend on (defined _SC_PAGESIZE).  However, it does depend on
1444         HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug
1445         first reported by Jason Andrade in
1446         <http://mail.gnu.org/archive/html/bug-textutils/2003-03/msg00027.html>.
1447
1448 2004-01-18  Simon Josefsson  <jas@extundo.com>
1449
1450         * strdup.h: New file.
1451         * strdup.c: Include it.
1452         * path-concat.c: Include strdup.h. Drop strdup declaration.
1453         * userspec.c: Include strdup.h. Drop strdup declaration.
1454
1455 2004-02-06  Karl Berry  <karl@gnu.org>
1456
1457         * config.charset: update from gettext 0.14.1.
1458
1459 2004-02-05  Paul Eggert  <eggert@twinsun.com>
1460
1461         Add comments and code, prompted by suggestions from Bruno Haible
1462         for sh-quote.
1463         * quotearg.h (quotearg_alloc): New decl.  Improve the comments
1464         describing the enum quoting_style values.
1465         * quotearg.c (quotearg_alloc): New function.
1466         (quotearg_buffer_restyled): Treat lone { and } as special.
1467         Treat = as special.  Work around bug with older shells
1468         that "see" a '\' that is really the 2nd byte of a multibyte char.
1469         Quote empty string with shell_quoting_style.
1470
1471 2004-02-03  Bruno Haible  <bruno@clisp.org>
1472
1473         * pipe.h: New file, from GNU gettext.
1474         * pipe.c: New file, from GNU gettext.
1475
1476 2004-01-27  Bruno Haible  <bruno@clisp.org>
1477
1478         * execute.h: New file, from GNU gettext.
1479         * execute.c: New file, from GNU gettext.
1480         * w32spawn.h: New file, from GNU gettext.
1481
1482 2004-01-23  Paul Eggert  <eggert@twinsun.com>
1483
1484         Exit-status fix from coreutils.
1485
1486         Use exit_failure consistently in place of EXIT_FAILURE,
1487         so that program exit statuses are consistent on failure.
1488
1489         * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
1490         Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
1491         * argmatch.h: Comment fix to match the above.
1492         * obstack.c (obstack_exit_failure) [!defined _LIBC]:
1493         Now a macro referring to exit_failure, instead of a separate
1494         variable.  Include "exitfail.h" to get it.
1495         * xstrtol.h: Include "exitfail.h".
1496         (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
1497
1498         * long-options.c (parse_long_options): Use prototype
1499         for usage function arg.  Pass it EXIT_SUCCESS rather than 0,
1500         for clarity.
1501
1502 2004-01-21  Jim Meyering  <jim@meyering.net>
1503
1504         * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
1505         so as not to conflict with a different-sized __mktime_internal
1506         function in GNU libc.
1507         * timegm.c (__mktime_internal) [!_LIBC]: Likewise.
1508         Problem building statically-linked `ls' reported by Michael Brunnbauer.
1509
1510 2004-01-18  Paul Eggert  <eggert@twinsun.com>
1511
1512         Merge from diffutils.
1513
1514         * file-type.c (file_type): Add typed memory objects.
1515         * file-type.h (S_TYPEISTMO): New macro.
1516
1517         * c-stack.h (c_stack_action): Remove argv argument.
1518         * c-stack.c (c_stack_action): Likewise.  All uses changed.
1519         (die): Don't calculate message unless segv_action returns.
1520         (get_stack_location, min_address_from_argv, max_address_from_argv,
1521         volatile stack_base, volatile_stack_size): Remove.
1522         (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume
1523         that every segmentation violation is a stack overflow.  (Ouch!)
1524         See Debian bug 136249 (still outstanding) for more info about why
1525         HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels.
1526
1527 2003-11-30  Bruno Haible  <bruno@clisp.org>
1528
1529         Safer stack allocation.
1530         * setenv.c: Include allocsa.h.
1531         (alloca): Remove fallback definition.
1532         (freea): Remove macro.
1533         (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
1534         instead of freea.
1535
1536 2003-10-17  Bruno Haible  <bruno@clisp.org>
1537
1538         * binary-io.h: Avoid warnings on Cygwin.
1539
1540 2003-12-28  Bruno Haible  <bruno@clisp.org>
1541
1542         * wait-process.c (wait_subprocess): Add ignore_sigpipe argument.
1543         * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially.
1544
1545 2003-11-28  Bruno Haible  <bruno@clisp.org>
1546
1547         * wait-process.c (cleanup_slaves): Use ANSI C declaration.
1548
1549 2003-11-27  Bruno Haible  <bruno@clisp.org>
1550
1551         * wait-process.c: On Windows, include windows.h. Needed on mingw.
1552
1553 2003-11-17  Bruno Haible  <bruno@clisp.org>
1554
1555         * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch.
1556
1557 2003-11-24  Bruno Haible  <bruno@clisp.org>
1558
1559         * xallocsa.h: New file, from GNU gettext.
1560         * xallocsa.c: New file, from GNU gettext.
1561
1562 2003-11-24  Bruno Haible  <bruno@clisp.org>
1563
1564         * allocsa.h: New file, from GNU gettext.
1565         * allocsa.c: New file, from GNU gettext.
1566
1567 2003-11-24  Bruno Haible  <bruno@clisp.org>
1568
1569         * eealloc.h: New file.
1570
1571 2004-01-15  Jim Meyering  <jim@meyering.net>
1572
1573         Merge from coreutils.
1574
1575         * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code.  These
1576         days, gcc-3.x does better all by itself.  Patch from Dean Gaudet:
1577         http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html
1578
1579         * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
1580         optional configure-time default.
1581
1582         * version-etc.c (version_etc_copyright): Update copyright date.
1583
1584         * xreadlink.c (xreadlink): Correct outdated comment.
1585
1586 2004-01-15  Paul Eggert  <eggert@twinsun.com>
1587
1588         Merge from coreutils.
1589
1590         * posixver.c: Include posixver.h.
1591
1592         * same.c: Include <stdbool.h>, <limits.h>.
1593         (_POSIX_NAME_MAX): Define if not defined.
1594         (MIN): New macro.
1595         (same_name): If file names are silently truncated, report
1596         that the file names are the same if they are the same after
1597         the silent truncation.
1598
1599         * xstrtod.h (xstrtod): Accept an extra arg, specifying the
1600         conversion function.
1601         * xstrtod.c (xstrtod): Likewise.  All callers changed to
1602         include c-strtod.h and use c_strtod.  Don't include stdlib.h; no
1603         longer needed.
1604
1605 2004-01-14  Paul Eggert  <eggert@twinsun.com>
1606
1607         * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
1608         with like-named macro in fnmatch.c.
1609         (EXT): Use an internal constant instead.
1610
1611         Merge fnmatch patches from glibc.
1612         * fnmatch.c (mbsinit): Remove define.
1613         Add libc_hidden_ver (__fnmatch, fnmatch).
1614         * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
1615         Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
1616
1617 2003-12-14  Karl Berry  <karl@gnu.org>
1618
1619         * config.charset: update from gettext-runtime.
1620
1621 2003-12-03  Paul Eggert  <eggert@twinsun.com>
1622
1623         * getgroups.c (getgroups): xmalloc takes one argument, not two.
1624         Bug reported by Alfred M. Szmidt.
1625
1626 2003-11-29  Karl Berry  <karl@gnu.org>
1627
1628         * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
1629
1630 2003-11-23  Paul Eggert  <eggert@twinsun.com>
1631             Bruno Haible  <bruno@clisp.org>
1632
1633         * printf-parse.h: Don't include sys/types.h.
1634         (ARG_NONE): New macro.
1635         (char_directive): Change type of *arg_index fields to size_t.
1636         * printf-parse.c: Don't include sys/types.h.
1637         (SSIZE_MAX): Remove macro.
1638         (PRINTF_PARSE): Change the type of the arg_index variables to size_t.
1639         Remove unnecessary overflow check.
1640         * vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
1641         fields.
1642
1643 2003-11-24  Paul Eggert  <eggert@twinsun.com>
1644
1645         * alloca.c: Remove dependency on xalloc module.
1646         (xalloc_die): Remove.
1647         (memory_full) [!defined emacs]: New macro.
1648         [!defined emacs]: Don't include xalloc.h.
1649         (alloca): Invoke memory_full, not xalloc_die, if malloc fails or
1650         address arithmetic overflows.  Change datatypes a bit to avoid
1651         unnecessary casts.
1652
1653 2003-11-22  Jim Meyering  <jim@meyering.net>
1654
1655         * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/.
1656
1657 2003-11-17  Bruno Haible  <bruno@clisp.org>
1658
1659         * vasnprintf.c (alloca): Remove fallback definition.
1660         (freea): Remove definition.
1661         (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
1662         Reported by Paul Eggert.
1663
1664 2003-11-17  Jim Meyering  <jim@meyering.net>
1665
1666         On systems without utime and without a utimes function capable of
1667         dealing with a NULL struct utimbuf* argument, this utime replacement
1668         could -- in unusual circumstances -- leak a file descriptor.
1669         * utime.c: Include <unistd.h> and <errno.h>.
1670         (utime_null): Be sure to close `fd' and to preserve errno.
1671         Reported by Geoff Collyer via Arnold Robbins.
1672
1673 2003-11-16  Paul Eggert  <eggert@twinsun.com>
1674             Bruno Haible  <bruno@clisp.org>
1675
1676         Protect against address arithmetic overflow.
1677         * printf-args.h: Include stddef.h.
1678         (arguments): Change type of field 'count' to size_t.
1679         * printf-args.c (printf_fetchargs): Use size_t instead of
1680         'unsigned int' where appropriate.
1681         * printf-parse.h: Include sys/types.h.
1682         (char_directive): Change type of *arg_index fields to ssize_t.
1683         (char_directives): Change type of fields 'count', max_*_length to
1684         size_t.
1685         * printf-parse.c: Include sys/types.h and xsize.h.
1686         (SSIZE_MAX): Define fallback value.
1687         (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
1688         instead of 'int' where appropriate. Check a_allocated, d_allocated
1689         against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
1690         * vasnprintf.c: Include xsize.h.
1691         (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
1692         Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
1693         overflow. Avoid wraparound when converting a width or precision from
1694         decimal to binary.
1695
1696 2003-11-16  Bruno Haible  <bruno@clisp.org>
1697
1698         Update from GNU gettext.
1699         * printf-parse.c: Generalize to it can be compiled for wide strings.
1700         (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
1701         * vasnprintf.c: Generalize to it can be compiled for wide strings.
1702         (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
1703         SNPRINTF): New macros.
1704         Don't include <alloca.h> if the file is used inside libintl.
1705         (local_wcslen): New function, for Solaris 2.5.1.
1706         (VASNPRINTF): Use it instead of wcslen.
1707
1708 2003-11-16  Bruno Haible  <bruno@clisp.org>
1709
1710         * xsize.h (xmax): New function.
1711         (xsum, xsum3, xsum4): Declare as "pure" functions.
1712
1713 2003-11-12  Paul Eggert  <eggert@twinsun.com>
1714
1715         * xalloc.h: Do not include <limits.h> or <stdint.h>.
1716         (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for
1717         the heuristic, rather than PTRDIFF_MAX and SIZE_MAX.  This
1718         heuristic is just as accurate as far as we know, and it removes a
1719         dependency on size_max.m4 and ptrdiff_max.m4.
1720
1721 2003-11-12  Paul Eggert  <eggert@twinsun.com>
1722
1723         * xstrtol.c (__xstrtol): Remove "break" immediately after
1724         "return", to pacify some unknown compiler.  Problem reported
1725         by Joerg Schilling.
1726
1727 2003-11-11  Bruno Haible  <bruno@clisp.org>
1728
1729         * xsize.h (SIZE_MAX): Remove fallback definition.
1730         * xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are
1731         defined.
1732
1733 2003-11-10  Paul Eggert  <eggert@twinsun.com>
1734
1735         * xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX &&
1736         PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have
1737         rejected some allocations of exactly SIZE_MAX - 2 bytes.
1738         From Bruno Haible.
1739         [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX,
1740         not (size_t) -1, since it's defined here.
1741
1742 2003-11-06  Paul Eggert  <eggert@twinsun.com>
1743
1744         * xalloc.h [HAVE_STDINT_H]: Include <stdint.h>.
1745         (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]:
1746         Reject sizes of exactly SIZE_MAX bytes.
1747         * xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX
1748         is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts.
1749
1750 2003-11-05  Bruno Haible  <bruno@clisp.org>
1751
1752         * xsize.h: Include limits.h, to avoid a possible collision with
1753         SIZE_MAX defined in <limits.h> on Solaris.
1754
1755 2003-11-04  Bruno Haible  <bruno@clisp.org>
1756
1757         * xsize.h: New file.
1758         * linebreak.c: Include xsize.h.
1759         (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc()
1760         argument for overflow.
1761         Suggested by Paul Eggert.
1762
1763 2003-10-31  Bruno Haible  <bruno@clisp.org>
1764
1765         * wait-process.c (wait_process): Use waitid with WNOWAIT if available,
1766         to avoid (extremely rare) race condition.
1767         Suggested by Paul Eggert.
1768
1769 2003-11-03  Jim Meyering  <jim@meyering.net>
1770
1771         * userspec.c: Include "userspec.h".
1772         * userspec.h: New file.
1773
1774 2003-10-31  Paul Eggert  <eggert@twinsun.com>
1775
1776         * mountlist.h (struct mount_entry.me_type_malloced): New member.
1777         * mountlist.c (SIZE_MAX): Define if not defined already.
1778         (read_filesystem_list): Set and use me_type_malloced.
1779         Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
1780         whatever the type happens to be), for brevity and consistency.
1781         Check for size calculation overflow on Alphas running OSF/1.
1782
1783 2003-10-31  Jim Meyering  <jim@meyering.net>
1784
1785         * hash.c: Include "xalloc.h" for use of xalloc_oversized.
1786
1787         * linebuffer.c: Include <string.h> for declaration of memset.
1788
1789 2003-10-30  Paul Eggert  <eggert@twinsun.com>
1790             Bruno Haible  <bruno@clisp.org>
1791
1792         * vasprintf.c: Include <limits.h>, <stdlib.h>.
1793         (vasprintf): Fail if the resulting length doesn't fit in an 'int'.
1794
1795 2003-10-29  Paul Eggert  <eggert@twinsun.com>
1796
1797         * xalloc.h (xalloc_oversized): Now a macro, not a function,
1798         so that it works even if SIZE_MAX < N.  Do not include <stdbool.h>;
1799         no longer needed.
1800         * quotearg.c (quotearg_n_options): Use it.
1801         * group-member.c: Include <stdbool.h>.
1802         (free_group_info): Arg is now const *; don't free arg.
1803         (get_group_info): Now returns bool and accepts struct group_info *,
1804         rather than returning a malloc'ed struct group_info *.
1805         All uses changed.  Check for overflow in internal size calculation.
1806
1807         * getusershell.c (readname): Simplify the code by using x2nrealloc
1808         rather than xmalloc/xrealloc.
1809         * linebuffer.c (initbuffer, readlinebuffer): Simplify the code by
1810         using x2realloc rather than xmalloc/xrealloc.  Also, fix a C
1811         conformance bug: the old code used a pointer after freeing the
1812         storage that it addressed.
1813         * hash.c (hash_initialize): Simplify the code by using xalloc_oversized
1814         rather than doing it by hand.
1815         * getgroups.c (getgroups): Don't use xrealloc, since we don't need
1816         the buffer preserved.  Use free and xmalloc instead.
1817         * quotearg.c (quotearg_n_options): Likewise.
1818         Use a simpler test for size overflow.  Don't use xalloc_oversized
1819         because unsigned int might be wider than size_t (!); this suggests
1820         that we should switch from unsigned int to size_t for slot numbers.
1821
1822 2003-10-27  Bruno Haible  <bruno@clisp.org>
1823
1824         * stdbool_.h: Better support for BeOS.
1825
1826 2003-10-27  Paul Eggert  <eggert@twinsun.com>
1827
1828         * exclude.c (new_exclude): Use xzalloc rather than xmalloc
1829         to allocate the returned structure.  Do not allocate a subarray,
1830         as x2nrealloc will do that.
1831         (add_exclude): Use x2nrealloc to reallocate ex->exclude,
1832         instead of xnrealloc.
1833         (add_exclude_file): Use x2realloc instead of malloc + xnrealloc.
1834
1835 2003-10-26  Paul Eggert  <eggert@twinsun.com>
1836
1837         * xalloc.h (xalloc_oversized): New static inline function, for
1838         callers that want to do their own size-overflow checking.  Include
1839         <stdbool.h>, since xalloc_oversized returns bool.
1840         * xalloc.c (array_size_overflow): Remove.  All callers changed
1841         to use xalloc_oversized.
1842
1843         Add two functions x2realloc, x2nrealloc, for programs that grow
1844         arrays dynamically by doubling their sizes.
1845         * xalloc.h (x2realloc, x2nrealloc): New decls.
1846         * xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc):
1847         New functions.
1848
1849         Port to C99 semantics for 'inline' of external functions.
1850         Bug reported by Bruno Haible.
1851         * xmalloc.c (xnmalloc_inline): New static inline function,
1852         with the old contents of xnmalloc.
1853         (xnmalloc, xmalloc): Use it.
1854         (xnrealloc_inline): New static inline function,
1855         with the old contents of xnrealloc.
1856         (xnrealloc, xrealloc): Use it.
1857
1858         * alloc.c (alloca): xmalloc cannot return NULL, so don't test for that.
1859
1860 2003-10-25  Paul Eggert  <eggert@twinsun.com>
1861
1862         Fix several address-calculation bugs in the hash modules,
1863         plus some minor code cleanup.
1864
1865         * hash.h: Include <stdbool.h>, for bool.
1866         * hash.c: Don't include <stdbool.h>, since hash.h does it now.
1867         * hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used,
1868         hash_get_n_entries, hash_get_max_bucket_length,
1869         hash_get_entries, hash_do_for_each, hash_string, hash_initialize,
1870         hash_rehash): Use size_t rather than unsigned.
1871         * hash.c (struct hash_table, hash_get_n_buckets,
1872         hash_get_n_buckets_used, hash_get_n_entries,
1873         hash_get_max_bucket_length, hash_table_ok, hash_print_statistics,
1874         hash_get_entries, hash_do_for_each, hash_string, is_prime,
1875         next_prime, hash_initialize, hash_rehash, hash_delete, hash_print):
1876         Likewise.
1877         (SIZE_MAX): Define if not defined.
1878         (hash_get_max_bucket_length, hash_table_ok, hash_lookup,
1879         hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each,
1880         hash_print):
1881         Use const * when possible.
1882         (hash_string): Use (unsigned char) *P rather than *(unsigned char *) P.
1883         (check_tuning): Fix bug: if tuning parameters were very close to
1884         0 or 1, rounding errors could have caused subscript violations.
1885         (hash_initialize, allocate_entry, hash_print): Remove unnecessary cast.
1886         (hash_initialize): Add 'fail:' label
1887         to free table and return NULL, and use it to simplify code.
1888         Use calloc rather than clearing the storage ourself.
1889         (hash_initialize, hash_rehash): Check for arithmetic overflow in
1890         buffer size calculations.
1891         * hash-pjw.h (hash_pjw): Use size_t, not unsigned.
1892         Include <stddef.h>, for size_t.
1893         * hash-pjw.c (hash_pjw): Likewise.
1894         Switch to method described by Bruno Haible.
1895         Include <limits.h>, for CHAR_BIT.
1896         (SIZE_BITS): New macro.
1897
1898 2003-10-21  Paul Eggert  <eggert@twinsun.com>
1899
1900         * getndelim2.c (getndelim2): When size calculation overflows,
1901         ceiling the allocation at NMAX bytes rather than silently
1902         discarding input bytes before NMAX is reached.  This makes
1903         a difference only if NMAX exceeds SIZE_MAX / 2.
1904
1905         * obstack.c: Merge from glibc.
1906         [defined _LIBC]: Include <obstack.h>, not "obstack.h".
1907         Add libc_hidden_def (_obstack_newchunk).
1908         (_obstack_free) [! defined _LIBC]: Remove.
1909         [defined _LIBC]: Make a strong alias from obstack_free, rather than
1910         a clone of the function body.
1911         (fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove.
1912         [defined _LIBC && !defined USE_IN_LIBIO]: Include <libio/iolibio.h>.
1913
1914         * obstack.h: Indenting cleanup, to make it easier to merge with glibc.
1915         (obstack_grow, obstack_grow0): Remove unnecessary parentheses around
1916         arg to memcpy.
1917
1918         * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
1919         (obstack_ptr_grow_fast, obstack_int_grow_fast):
1920         Don't use lvalue casts, as GCC plans to remove support for them
1921         in GCC 3.5.  Reported by Joseph S. Myers.  This bug
1922         was also present in the non-GCC version, indicating that this
1923         code had always been buggy and had never been widely used.
1924         (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
1925         Use the fast variant of each macro, rather than copying the
1926         definiens of the fast variant; that way, we'll be more likely to
1927         catch future bugs in the fast variants.
1928
1929 2003-10-20  Bruno Haible  <bruno@clisp.org>
1930
1931         * wait-process.h: New file, from GNU gettext.
1932         * wait-process.c: New file, from GNU gettext.
1933
1934 2003-10-19  Jim Meyering  <jim@meyering.net>
1935
1936         * vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20.
1937
1938 2003-10-16  Paul Eggert  <eggert@twinsun.com>
1939
1940         * getgroups.c: Include <errno.h>, <stdlib.h>.
1941         (getgroups): First arg is int, not size_t.
1942         Don't let 'free' mangle errno.
1943
1944 2003-10-16  Jim Meyering  <jim@meyering.net>
1945
1946         * xmalloc.c: Include <string.h>, for declarations of memset and memcpy.
1947
1948 2003-10-15  Paul Eggert  <eggert@twinsun.com>
1949
1950         * exclude.c: Do not include <inttypes.h> or <stdint.h>.
1951         (SIZE_MAX): Remove.
1952         (new_exclude, add_exclude_file): Initial size no longer needs to
1953         be a power of 2.
1954         (add_exclude, add_exclude_file): Use xnrealloc instead of rolling
1955         our own address arithmetic overflow checking.
1956
1957         * fnmatch.c (SIZE_MAX): Define if standard headers don't.
1958         (fnmatch): Do not alloca more than 2000 wide characters;
1959         instead, use malloc for large buffers.
1960         Check for address arithmetic overflow, and return -1
1961         with errno set to ENOMEM in that case.
1962         * fnmatch_loop.c (ALLOCA_LIMIT): New macro.
1963         (NEW_PATTERN): Do not alloca more than 8000 bytes;
1964         instead, return -1.  Check for address arithmetic overflow.
1965
1966 2003-10-14  Paul Eggert  <eggert@twinsun.com>
1967
1968         Handle invalid suffixes and overflow independently, so that
1969         callers can treat them independently as needed.  Fix some bugs in
1970         suffix handling, e.g., "100k@" was not diagnosed as an invalid
1971         suffix for a human-readable blocksize.  The major caller-visible
1972         change is the addition of a new
1973         LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating
1974         that both overflow and suffix chars were found.
1975
1976         * human.c (humblock): Don't check separately for invalid suffix
1977         char; that is xstrtoumax's job (now that its bug is fixed).
1978         * xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined
1979         INTMAX_MAX]: New macros.
1980         * xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM,
1981         TYPE_MAXIMUM): New macros.
1982         (bkm_scale, bkm_scale_by_power): Return strtol_error, not int.
1983         (bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values
1984         if overflow occurs, as it's what __strtol does and it's more useful
1985         in practice.
1986         (__xstrtol): If __strtol reports some error other than ERANGE,
1987         reflect it to the caller as LONGINT_INVALID.  If it reports
1988         ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW
1989         | LONGINT_INVALID_SUFFIX_CHAR if both errors occur.
1990         * xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum
1991         value.
1992         (_STRTOL_ERROR): Handle it.  Abort when given unknown error codes.
1993         * xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros.
1994         * xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM)
1995         [defined UINTMAX_MAX]: New macros.
1996
1997 2003-10-14  Bruno Haible  <bruno@clisp.org>
1998
1999         * fatal-signal.h: Improved comments. Suggested by Paul Eggert.
2000         * fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert.
2001         Also use volatile where needed.
2002
2003 2003-10-12  Paul Eggert  <eggert@twinsun.com>
2004
2005         * xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
2006         (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
2007         and define in terms of the other primitives.
2008         * xmalloc.c: Include stdbool.h; do not include exit.h.
2009         (SIZE_MAX): Define if not already defined.
2010         (array_size_overflow): New function.
2011         (xalloc_die): Abort instead of exiting if 'error' returns.
2012         (xnmalloc, xnrealloc, xzalloc, xclone): New functions.
2013         (xmalloc, xrealloc): Use them.
2014         (xcalloc): Check for address arithmetic overflow.
2015         * xstrdup.c (xstrdup): Use xclone, since memcpy should be
2016         a bit faster than strcpy.
2017
2018 2003-10-08  Paul Eggert  <eggert@twinsun.com>
2019
2020         Merge getpass from libc, plus a few fixes.
2021
2022         * getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1.
2023         Include <stdbool.h>.
2024         Include <stdio_ext.h> if HAVE_STDIO_H, otherwise define
2025         __fsetlocking to empty.
2026         [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but
2027         do include <bits/libc-lock.h>.
2028         Do not include <fcntl.h>; not needed.
2029         [_LIBC]: Include <wchar.h>.
2030         (NOTCANCEL_MODE): New macro.
2031         (flockfile, funlockfile) [_LIBC]: New macros.
2032         (__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr)
2033         [!_LIBC]: New macros.
2034         (call_fclose): New function.
2035         (getpass): Use it.  Save tty stream separately; this simplifies the
2036         code and makes it more reliable if stdin happens to equal stdout.
2037         Invoke __fsetlocking on tty.
2038         Handle thread cancellation if needed.
2039         Namespace cleanup (use __tcgetattr, __getline).
2040         Use bool for Booleans.
2041         [USE_IN_LIBIO]: Handle wide streams.
2042         [!_LIBC]: Unconditionally do the fseek, since we don't know what
2043         stream might go where.
2044
2045         * unlocked-io.h: Include <stdio.h>, so that the caller
2046         doesn't have to include <stdio.h> before us.
2047         (clearerr_unlocked, feof_unlocked, ferror_unlocked,
2048         fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
2049         fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
2050         putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
2051         if not declared, so that we can use getpass.c code from libc without
2052         rewriting it.
2053         (flockfile, ftrylockfile, funlockfile): New macros.
2054
2055 2003-10-06  Bruno Haible  <bruno@clisp.org>
2056
2057         * version-etc-2.h: Remove file.
2058         * version-etc-2.c: Remove file.
2059
2060 2003-09-25  Jim Meyering  <jim@meyering.net>
2061             Bruno Haible  <bruno@clisp.org>
2062
2063         This lets translators provide better translations for the
2064         "Written by ..." part of --version output.
2065         * version-etc.h: Include stdarg.h.
2066         (version_etc_copyright): Declare as readonly.
2067         (version_etc): Make this function variadic with a NULL-terminated list
2068         of author name strings.
2069         (version_etc_va): New declaration.
2070         * version-etc.c: Include stdarg.h, stdlib.h.
2071         (version_etc_copyright): Declare as readonly.
2072         (version_etc_va): New function. Provide a different translatable string
2073         for each possible number of authors < 10. Abbreviate when there are 10
2074         authors or more.
2075         (version_etc): Make this function variadic. Call version_etc_va.
2076         Suggestion from Gary V. Vaughan.
2077
2078         * long-options.h (parse_long_options): Change prototype: the authors
2079         string is moved to the end and becomes variadic.
2080         * long-options.c: Include stdarg.h.
2081         (parse_long_options): Make this function variadic, too.
2082         Call version_etc_va, not version_etc.
2083
2084 2003-10-06  Bruno Haible  <bruno@clisp.org>
2085
2086         * fatal-signal.h: New file, from GNU gettext.
2087         * fatal-signal.c: New file, from GNU gettext.
2088
2089 2003-10-04  Karl Berry  <karl@gnu.org>
2090
2091         * argp*: update from libc.
2092
2093 2003-10-01  Larry Jones  <lawrence.jones@eds.com>
2094
2095         * getpass.c (getpass): Use a no-op fseek when switching from input to
2096         output mode on the same stream.
2097
2098 2003-09-29  Paul Eggert  <eggert@twinsun.com>
2099
2100         * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
2101         Fix arg typo in previous patch.
2102
2103 2003-09-28  Jim Meyering  <jim@meyering.net>
2104
2105         * error.c: Correct cpp indentation.
2106
2107 2003-09-27  Paul Eggert  <eggert@twinsun.com>
2108
2109         * minmax.h (MIN, MAX) [__STDC__ && defined __GNUC__ && __GNUC__ >= 2]:
2110         Omit the special code that used __typeof__, since we worry that
2111         it could be more trouble than it's worth.  See:
2112         http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00090.html
2113         http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00095.html
2114
2115         * free.c: New file.
2116
2117 2003-09-26  Jim Meyering  <jim@meyering.net>
2118
2119         * error.c (error_tail): Move some declarations
2120         into inner scope where the local variables are used.
2121
2122 2003-09-26  Bruno Haible  <bruno@clisp.org>
2123
2124         * stpncpy.h (gnu_stpncpy): New declaration.
2125         (stpncpy): Define as alias for gnu_stpncpy.
2126         * stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy.
2127
2128 2003-09-26  Paul Eggert  <eggert@twinsun.com>
2129
2130         * error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
2131         (error_tail): Do not loop, reallocating temporary buffer, since
2132         the output cannot contain more wide characters than the input
2133         contains bytes, the size must be big enough already.  This avoids
2134         one potential size overflow calculation.  Check for size overflow
2135         when calculating temporary buffer size.  Free temporary buffer
2136         when done, if it was allocated with malloc; this plugs a memory
2137         leak.  Remove casts from void * to pointers, that are no longer
2138         needed now that we're assuming C89 or better.
2139
2140         Merge error changes from glibc.
2141
2142         * error.c, error.h: Update copyright notice header to match glibc.
2143         * error.c [defined _LIBC]: Include <errno.h>, <bits/libc-lock.h>.
2144         (error, error_at_line) [defined _LIBC && defined __libc_ptf_call]:
2145         Disable cancellation while printing error.
2146         * error.h: Prepend __ to parameter names.
2147
2148 2003-09-25  Karl Berry  <karl@gnu.org>
2149
2150         * argp-fmtstream.c, argp-help.c: update from libc.
2151
2152 2003-09-25  Bruno Haible  <bruno@clisp.org>
2153
2154         * version-etc-2.h: New file, from version-etc.h with modifications.
2155         * version-etc-2.c: New file, from version-etc.c with modifications.
2156
2157 2003-09-25  Simon Josefsson  <jas@extundo.com>
2158
2159         * xgetdomainname.h: New file.
2160         * xgetdomainname.c: New file.
2161
2162 2003-09-25  Simon Josefsson  <jas@extundo.com>
2163             Bruno Haible  <bruno@clisp.org>
2164
2165         * getdomainname.h: New file.
2166         * getdomainname.c: New file.
2167
2168 2003-09-24  Paul Eggert  <eggert@twinsun.com>
2169
2170         * linebuffer.c (freebuffer): Don't free the argument, just
2171         the buffer associated with the argument.  Bug reported by
2172         Simon Josefsson.
2173
2174 2003-09-19  Karl Berry  <karl@gnu.org>
2175
2176         * argp.h: update from libc.
2177
2178 2003-09-16  Paul Eggert  <eggert@twinsun.com>
2179
2180         * linebuffer.c (readlinebuffer): Return NULL immediately upon
2181         input error, instead of returning NULL the next time we are called
2182         (and therefore losing track of errno).
2183
2184 2003-09-15  Paul Eggert  <eggert@twinsun.com>
2185
2186         * getndelim2.c (getndelim2): Don't trash errno when a read
2187         fails, so that the caller gets the proper errno.
2188
2189         * readutmp.c (read_utmp): Likewise.
2190         Check for fstat error.  Close stream and free storage
2191         when failing.
2192
2193 2003-09-14  Bruno Haible  <bruno@clisp.org>
2194
2195         * fwriteerror.h: New file.
2196         * fwriteerror.c: New file.
2197
2198 2003-09-14  Jim Meyering  <jim@meyering.net>
2199
2200         * getloadavg.c: Correct cpp indentation.
2201         * strdup.c: Likewise.
2202         * vasnprintf.c: Likewise.
2203
2204 2003-09-12  Paul Eggert  <eggert@twinsun.com>
2205
2206         * argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h.
2207         * obstack.c [!defined _LIBC]: Likewise.
2208         * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
2209         * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
2210         * exitfail.c: Don't include stdlib.h; no longer needed.
2211
2212         More changes to assume C89 or better.
2213
2214         * error.c (error_tail): Assume vprintf.
2215
2216         * argmatch.c (getenv): Remove decl.
2217         * progreloc.c (get_full_program_name): Define via prototype.
2218         * setenv.c (clearenv): Likewise.
2219         * stpncpy.c: Do not include <string.h> or <sys/types.h>; not
2220         needed.
2221         * strdup.c: Include <stdlib.h>, <string.h> unconditionally.
2222         (malloc, memcpy): Remove decls.
2223         * strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove.
2224         (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove.
2225         Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
2226         (memcpy): Remove macro.
2227         (MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally.
2228         (__P): Remove.  All uses removed.
2229         (PTR): Remove.  All uses changed to void *.
2230         (CHAR_BIT, NULL): Remove.
2231         (spaces, zeros, memset_space, memset_zero)
2232         [!defined memset && !defined HAVE_MEMSET && !defined _LIBC]:
2233         Remove.
2234         (LOCALE_PARAM, LOCALE_PARAM_DECL): Remove.
2235         (memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days):
2236         Define with prototype.
2237         Remove now-unnecessary prototype decl.
2238         (extra_args_spec): Assume ANSI C.  All uses changed.
2239         (extra_args_spec_iso): Remove.
2240         (my_strftime, emacs_strftimeu): Define via prototype.
2241         * strtod.c: Include <float.h>, <stdlib.h>, <string.h>
2242         unconditionally.
2243         (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls.
2244         * strtoimax.c: Include <stdlib.h> unconditionally.
2245         (strtoul, strtol): Remove decls.
2246         * strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX,
2247         LONG_MAX): Remove.
2248         Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
2249         (LOCALE_PARAM_DECL): Remove.  All uses changed to LOCALE_PARAM_PROTO.
2250         (LOCALE_PARAM_PROTO): New macro.
2251         (INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R.
2252         (INTERNAL (strtol), strtol): Define with a prototype.
2253         (PARAMS): Remove.  All uses removed.
2254         * tempname.c: Include <string.h> unconditionally.
2255         * userspec.c: Include <stdlib.h>, <string.h> unconditionally.
2256         * xgethostname.c (main): Define with a prototype.
2257         * xmalloc.c: Include "xalloc.h" first, to check interface.
2258         Include <stdlib.h> unconditionally.
2259         (calloc, malloc, realloc, free): Remove decls.
2260         * xstrtod.c: Include "xstrtod.h" first, to check interface.
2261         Include <stdlib.h> unconditionally.  Sort include file names.
2262         (strtod): Remove.
2263         (xstrtod): Define with a prototype.
2264         * xstrtol.c: Include <stdlib.h>, <string.h> unconditionally.
2265         (strtol, strtoul): Remove decls.
2266
2267 2003-09-11  Paul Eggert  <eggert@twinsun.com>
2268
2269         * strndup.c: Don't include <stdio.h>, <sys/types.h>.
2270         Include <stdlib.h>, <string.h> unconditionally.
2271         Remove now-unnecessary cast to char *.
2272         * strnlen.c: Include <string.h> unconditionally.
2273         * yesno.c (yesno): Define with a prototype.
2274
2275 2003-09-10  Bruno Haible  <bruno@clisp.org>
2276
2277         * strcspn.c: Include <string.h> unconditionally.
2278         * strpbrk.c: Include <string.h> unconditionally.
2279         * strstr.c: Include <string.h> unconditionally.
2280         * unicodeio.c: Include <string.h> unconditionally.
2281         * setenv.c: Include <stdlib.h> and <string.h> unconditionally.
2282         * unsetenv.c: Likewise.
2283         * xreadlink.c: Include <stdlib.h> unconditionally.
2284         * yesno.c: Include <stdlib.h> unconditionally.
2285         (rpmatch): Add prototype.
2286
2287 2003-09-10  Jim Meyering  <jim@meyering.net>
2288
2289         * error.c: Correct indentation of cpp directives.
2290
2291 2003-09-09  Paul Eggert  <eggert@twinsun.com>
2292
2293         More K&R removal.
2294
2295         * acosl.c (main): Use a prototype.
2296         * asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c,
2297         tanl.c: Likewise.
2298
2299         * getloadavg.c (getloadavg, main): Define via prototypes.
2300
2301         * getopt.h (struct option.name): Assume C89, and use 'const'.
2302         (getopt, etopt_long, getopt_long_only, _getopt_internal)
2303         [defined __GNU_LIBRARY__]: Assume C89, so we can always declare
2304         with a prototype.
2305         * getopt.c (const): Remove macro.
2306         Include <string.h> unconditionally.
2307         (my_index): Remove; all uses changed to strchr.
2308         (strlen): Remove decl.
2309         (exchange): Remove forward decl; no longer needed.
2310         (exchange, _getopt_initialize, _getopt_internal, getopt, main):
2311         Define with prototype.
2312         * getopt1.c (const): Remove macro.
2313         (getopt_long, getopt_long_only, main): Define with prototype.
2314
2315         * getugroups.c: Include <string.h> unconditionally.
2316
2317         * getusershell.c: Include <stdlib.h> unconditionally.
2318         (getusershell, setusershell, endusershell, readname, main):
2319         Define with prototypes.
2320
2321         * group-member.c: Include group-member.h first.
2322         Include <stdlib.h> unconditionally.
2323
2324         * hard-locale.c: Include hard-locale.h first.
2325         Include <stdlib.h>, <string.h> unconditionally.
2326
2327         * hash.c (free, malloc): Remove decls.
2328         Include <stdlib.h> unconditionally.
2329
2330         * human.c: Include <stdlib.h>, <string.h> unconditionally.
2331         (getenv): Do not declare.
2332
2333         * idcache.c: Include <string.h> unconditionally.
2334
2335         * long-options.c: Include long-options.h first, to test interface.
2336         Include <stdlib.h> unconditionally.
2337
2338         * makepath.c: Include makepath.h first, to test interface.
2339         Include <stdlib.h> and <string.h> unconditionally.
2340
2341         * linebuffer.c: Include <stdlib.h>.
2342         (free): Remove decl.
2343
2344         * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h.
2345         rpl_malloc returns void *, not char *.
2346         * realloc.c (rpl_realloc): Likewise.  Also, define with a prototype.
2347
2348         * md5.h: Include <limits.h> unconditionally.
2349         (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
2350         (__P): Remove; all uses removed.
2351         * md5.c: Include "md5.h" first.
2352         (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
2353         md5_buffer, md5_process_bytes, md5_process_block):
2354         Define with prototypes.
2355         * sha.h (__P): Remove all uses.  (It wasn't defined??)
2356         * sha.c: Include "sha.h" first.
2357         Include <stdlib.h>, <string.h> unconditionally.
2358
2359         * memchr.c (__ptr_t): Remove; all uses changed to void *.
2360         * memcmp.c (__ptr_t): Likewise.
2361         * memrchr.c (__ptr_t): Likewise.
2362         * memchr.c, memcmp.c, memcoll.c, memrchr.c:
2363         Include <string.h> unconditionally.
2364         * memchr.c, memrchr.c: Include <limits.h> unconditionally.
2365         * memchr.c: Include <stdlib.h> unconditionally.
2366         * memchr.c (LONG_MAX): Remove.
2367         * memrchr.c (LONG_MAX): Likewise.
2368         * memchr.c (__memchr): Define via a prototype.
2369         * memrchr.c (__memrchr): Likewise.
2370         * memcmp.c (__P): Remove, and remove all uses.
2371         (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
2372         Remove forward decls; no longer needed.
2373         * memcpy.c, memmove.c, memset.c: Include <stddef.h>.
2374         Use types required by C89 in prototype.
2375
2376         * mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
2377         * savedir.c: Likewise.
2378         * mkdir.c (free): Remove decl.
2379         * rmdir.c (rmdir): Define with a prototype.
2380         * savedir.c: Include savedir.h first, to test interface.
2381
2382         * mktime.c (STDC_HEADERS): Remove.
2383         Include <stdlib.h>, <string.h> unconditionally.
2384
2385         * modechange.c: Include <stdlib.h> unconditionally.
2386         (malloc): Remove decl.
2387
2388         * mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
2389         (free): Remove decl.
2390
2391         * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
2392         Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
2393         (This type really should be intptr_t, but that's a C99ism.)
2394         (_obstack_memcpy): Remove: all uses changed to memcpy.
2395         Include <string.h> unconditionally.
2396         (struct obstack): Assume __STDC__ for types of members
2397         chunkfun, freefun, extra_arg.
2398         (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
2399         _obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
2400         obstack_begin, obstack_specify_allocation,
2401         obstack_specify_allocation_with_arg, obstack_chunkfun,
2402         obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
2403         Remove unprototyped decls and the macros that use them.
2404         * obstack.c (POINTER): Remove.  All uses changed to void *.
2405         (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
2406         _obstack_begin, _obstack_begin_1, _obstack_allocated_p)
2407         (defined __STDC__ && __STDC__)]:
2408         Remove nonprototyped code.
2409         Include <stdlib.h> unconditionally.
2410         (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
2411         _obstack_allocated_p, _obstack_free, obstack_free,
2412         _obstack_memory_used, print_and_abort):
2413         Define using prototypes.
2414         (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
2415         obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
2416         obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
2417         obstack_next_free, obstack_object_size, obstack_room) [0]:
2418         Remove unused, unprototyped code.
2419
2420         * path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
2421
2422         * physmem.c (physmem_total, physmem_available, main): Define
2423         with prototypes.
2424
2425         * posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
2426         (main): Define with a prototype.
2427
2428         * posixver.c (getenv): Remove decl.
2429
2430         * putenv.c (malloc): Returns void *, not char *.
2431         Include <string.h> unconditionally.
2432         (strchr, memcpy, NULL): Do not define.
2433
2434         * readtokens.c: Include readtokens.h first, to test interface.
2435         Include <stdlib.h>, <string.h> unconditionally.
2436         (init_tokenbuffer): Define with a prototype.
2437
2438         * regex.c (PARAMS): Remove.  All uses removed.
2439         All uses of _RE_ARGS removed, too.
2440         Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
2441         unconditionally.
2442         (bzero): Assume memset exists.
2443         (memcmp, memcpy, NULL): Remove.
2444         (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
2445         char, or assignments to local vars of type signed char.
2446         (init_syntax_once, PREFIX(extract_number_and_incr),
2447         PREFIX(print_partial_compiled_pattern),
2448         PREFIX(print_compiled_pattern), PREFIX(print_double_string),
2449         convert_mbs_to_wcs, print_fastmap, re_set_syntax,
2450         PREFIX(regex_grow_registers), PREFIX(regex_compile),
2451         PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
2452         PREFIX(insert_op2), PREFIX(at_begline_loc_p),
2453         PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
2454         wcs_compile_range, byte_compile_range, truncate_wchar,
2455         PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
2456         re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
2457         count_mbs_length, wcs_re_match_2_internal,
2458         byte_re_match_2_internal, PREFIX(group_match_null_string_p),
2459         PREFIX(alt_match_null_string_p),
2460         PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
2461         re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
2462         regfree, PREFIX(extract_number)): Define with prototype.  Remove
2463         now-unnecessary declaration, if any.
2464         (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
2465         regcomp, regexec):
2466         Remove now-unnecessary casts among pointer types.
2467         * regex.h (_RE_ARGS): Remove.  All uses removed.
2468
2469         * rename.c: Include <stdlib.h>, <string.h> unconditionally.
2470         (free): Remove decl.
2471
2472         * rpmatch.c: Include <stdlib.h> unconditionally.
2473
2474         * same.c: Include <stdlib.h>, <string.h> unconditionally.
2475         (free): Remove decl.
2476
2477         * save-cwd.c: Include <stdlib.h> unconditionally.
2478         * xgetcwd.c: Likewise.
2479
2480         * stat.c: Include <stdlib.h>, <string.h> unconditionally.
2481         (free): Remove decl.
2482
2483         * strchrnul.c (strchrnul): Define with a prototype.
2484         Fix bug: c_in was not converted to char before searching.
2485
2486         The following changes are not K&R related:
2487
2488         * group-member.h: Include <sys/types.h>, so that this file is
2489         self-contained.
2490         * makepath.h: Likewise.
2491
2492         * getusershell.c (readname, default_index, line_size, readname):
2493         Use size_t, not int, for sizes.
2494         (readname): If the size overflows, report an error instead of
2495         looping forever.
2496
2497 2003-09-09  Derek Robert Price  <derek@ximbiot.com>
2498
2499         * getndelim2.c: Assume stdlib.h per the C89 spec.
2500
2501 2003-09-08  Paul Eggert  <eggert@twinsun.com>
2502
2503         Assume C89 or better; remove K&R cruft.
2504         A few of these changes were first proposed by Derek Robert Price
2505         in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>.
2506
2507         * addext.c: Include <string.h> unconditionally.
2508         * backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
2509         Don't declare getenv or malloc.
2510
2511         * alloca.c: Include <string.h>, <stdlib.h> unconditionally.
2512         (POINTER_TYPE, pointer): Remove; all uses changed to void *.
2513         (NULL): Remove.
2514         (find_stack_direction, alloca): Use prototypes.
2515
2516         * atexit.c (atexit): Define using a prototype.
2517
2518         * basename.c, dirname.c, stripslash.c:
2519         Include <string.h> unconditionally.
2520
2521         * bcopy.c: Include <stddef.h>.
2522         (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
2523
2524         * canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
2525
2526         * error.h (error, error_at_line, error_print_progname)
2527         [! (defined (__STDC__) && __STDC__)]: Remove decls.
2528         * error.c: Include error.h first, to check interface.
2529         Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
2530         (VA_START): Remove; all uses changeed to va_start.
2531         (exit, strerror): Remove decls.
2532         (error_print_progname): Prototype uncondionally.
2533         Don't include <errno.h>; no longer needed.
2534         (private_strerror): Remove.
2535         (error_tail): Always define.
2536         (error, error_at_line): Assume C89 or better; always use prototypes.
2537         * fatal.c: Include "fatal.h" first, to test interface.
2538         Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
2539         (VA_START): Remove; all uses changed to va_start.
2540         [! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for
2541         this case.
2542         (exit): Remove decl.
2543         (fatal): Prototype unconditionally.  Assume va_start works.
2544         Abort at end, to pacify gcc.
2545
2546         * euidaccess.c (main): Define with a prototype.
2547
2548         * exclude.c: Include <stdlib.h>, <string.h> unconditionally.
2549
2550         * exitfail.c: Include <stdlib.h> unconditionally.
2551
2552         * fnmatch_.h (__P): Remove.  All uses changed to assume
2553         prototypes.
2554         * fnmatch.c: Include fnmatch.h first, to test interface.
2555         Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
2556         (getenv): Remove decl.
2557         (fnmatch): Define using a prototype.
2558         * fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
2559         (FCT): Define using a prototype.
2560
2561         * getdate.y: Include <stdlib.h>, <string.h> unconditionally.
2562
2563         * gethostname.c: Include <stddef.h>.
2564         (gethostname): Define with prototype.  Length is size_t, not int.
2565
2566 2003-09-08  Paul Eggert  <eggert@twinsun.com>
2567
2568         * getversion.c: Remove; was migrated to backupfile.c in 1997.
2569         getversion.c should have been removed then, but was accidentally
2570         preserved.
2571
2572         * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
2573         (utime_null): Fix typo: 'st' was sometimes called 'sb'.
2574
2575 2003-09-07  Paul Eggert  <eggert@twinsun.com>
2576
2577         * time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to
2578         copy_tm_result.  Bug reported by Simon Josefsson in
2579         <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00028.html>.
2580
2581 2003-09-06  Paul Eggert  <eggert@twinsun.com>
2582
2583         * time_r.c, time_r.h: New files.
2584
2585         * mktime.c (my_mktime_localtime_r): Remove; all uses changed to
2586         __localtime_r.
2587         (__localtime_r) [!defined _LIBC]: New macro.  Include <time_r.h>.
2588         (__mktime_internal) [!defined _LIBC]: Now extern, not static.
2589
2590         * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
2591         __gmtime_r.
2592         (my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
2593         (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
2594         Include <time_r.h>.
2595
2596         * timegm.c: Switch to glibc implementation, with the following changes:
2597         [defined HAVE_CONFIG_H]: Include <config.h>.
2598         [!defined _LIBC]: Include "timegm.h" rather than <time.h>.
2599         (__mktime_internal) [!defined _LIBC]: New decl.
2600         (__gmtime_r) [!defined _LIBC]: New macro and function.
2601         (timegm): Use a prototype, since gnulib assumes C89.
2602         Do not bother declaring tmp to be const, as it's not really usefu.
2603         * timegm.h: Hoist "#include <time.h>" out of #ifdef.
2604         (timegm): Declare only if HAVE_DECL_TIMEGM.
2605
2606 2003-09-03  Paul Eggert  <eggert@twinsun.com>
2607
2608         * human.c (human_readable): Fix bug that rounded 10501 to 10k.
2609         Bug reported by Lute Kamstra in
2610         <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00003.html>.
2611
2612         * getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
2613         "yesterday", "today", and "now" rather than tMINUTE_UNIT.  Of
2614         course with correspondingly smaller numbers for tomorrow and
2615         yesterday.  From Tadayoshi Funaba.  Originally installed into
2616         sh-utils on 1999-08-07, but the patch got lost (I guess during the
2617         coreutils merge?).
2618
2619 2003-08-31  Simon Josefsson  <jas@extundo.com>
2620
2621         * timegm.h: New file.
2622         * timegm.c: New file.  Based on wget-1.8.2/src/http.c:mktime_from_utc.
2623
2624 2003-08-31  Karl Berry  <karl@gnu.org>
2625
2626         * argp.h: update from libc.
2627
2628 2003-08-28  Bruno Haible  <bruno@clisp.org>
2629
2630         * binary-io.h: Undefine O_BINARY before defining it. This avoids a
2631         warning on QNX, which defines O_BINARY to 000000.
2632
2633 2003-08-24  Bruno Haible  <bruno@clisp.org>
2634
2635         * binary-io.h: Include <stdio.h>, to avoid a compilation error when
2636         MSVC7 <stdio.h> is included later.
2637
2638 2003-08-20  Bruno Haible  <bruno@clisp.org>
2639
2640         * progname.h: New file, from GNU gettext.
2641         * progname.c: New file, from GNU gettext.
2642         * progreloc.c: New file, from GNU gettext.
2643
2644 2003-08-19  Bruno Haible  <bruno@clisp.org>
2645
2646         * xstrdup.c: Assume <string.h> exists.
2647
2648 2003-08-18  Jim Meyering  <jim@meyering.net>
2649
2650         * setenv.h: Indent nested cpp directive.
2651         * vasnprintf.c: Remove trailing blanks.
2652
2653 2003-08-17  Simon Josefsson  <jas@extundo.com>
2654             Bruno Haible  <bruno@clisp.org>
2655
2656         * xstrndup.h: New file.
2657         * xstrndup.c: New file.
2658
2659 2003-08-17  Bruno Haible  <bruno@clisp.org>
2660
2661         * strndup.h: New file.
2662
2663 2003-08-16  Paul Eggert  <eggert@twinsun.com>
2664
2665         * regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
2666         space, undoing this 2003-08-12 change:
2667         <http://mail.gnu.org/archive/html/bug-gnulib/2003-08/msg00080.html>
2668
2669 2003-08-16  Jim Meyering  <jim@meyering.net>
2670
2671         Merge from coreutils.
2672         * xstrtoimax.c: #else #if -> #elif.
2673         * xstrtoumax.c: Likewise.
2674
2675 2003-08-15  Paul Eggert  <eggert@twinsun.com>
2676
2677         * config.charset, ref-add.sin, ref-del.sin: Use three spaces,
2678         rather than tab, after '#' in shell-script copyright notices.
2679         Suggested by Bruno Haible.
2680
2681 2003-08-15  Jim Meyering  <jim@meyering.net>
2682         and Paul Eggert  <eggert@twinsun.com>
2683
2684         Merge from coreutils.
2685         * readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
2686         member but strut utmpx does not.  Needed for AIX 4.3.3.
2687         (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
2688
2689 2003-08-15  Jim Meyering  <jim@meyering.net>
2690
2691         Merge from coreutils.
2692         * xgethostname.c: Include <stdlib.h>.
2693         (xghostname): Don't exit for anything other than memory-related
2694         failure; just return NULL.
2695         * userspec.c: Include "posixver.h".
2696         (parse_user_spec): Accept `.' as a separator only
2697         in pre-POSIX-200112 mode.
2698         * strtoimax.c: Use #elif rather than #else #if.
2699         * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
2700         Remove function, now that we can rely on a working tzset function.
2701         [!_LIBC]: Ensure that the required autoconf test has been run.
2702         [!defined _NL_CURRENT && HAVE_STRFTIME]:
2703         Use underlying_strftime for %r.
2704         * sha.c: Merge in some clean-up and optimization changes from glibc.
2705         * sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
2706         Ensure that it is a multiple of 64.
2707         Rearrange loop exit tests so as to avoid performing an
2708         additional fread after encountering an error or EOF.
2709         * realloc.c: Update copyright date.
2710
2711 2003-08-14  Jim Meyering  <jim@meyering.net>
2712
2713         Merge from coreutils.
2714         * obstack.h: Whitespace changes.
2715         * mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
2716         and xcalloc return values.
2717         (read_filesystem_list) [MOUNTED_GETFSSTAT]:
2718         Use MNT_NOWAIT, rather than MNT_WAIT.  Otherwise, `df DIR' could
2719         hang on OSF/1 5.1 for DIR on both local and remote file systems.
2720         Reported by (and fix confirmed by) Nelson H. F. Beebe.
2721         (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
2722         error from mntctl.
2723         Use mntctl's return value to drive the entry-processing loop, since
2724         we can't rely on the value of the vmt_length member in the last
2725         entry.  On some systems doing so could result in exhausting
2726         virtual memory.  Based in part on a patch from Mike Jetzer.
2727
2728 2003-08-14  Jim Meyering  <jim@meyering.net>
2729         and Paul Eggert  <eggert@twinsun.com>
2730
2731         Merges from coreutils, plus other fixes.
2732         * physmem.c: Merge in portability changes from gcc/libiberty
2733         to support AIX, IRIX, Tru64, and Windows.  See the ChangeLog there
2734         for credits and details.  Thanks to Kaveh Ghazi for helping
2735         to keep these files in sync.
2736         (ARRAY_SIZE): Define it.
2737         (physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
2738         * memcasecmp.c: Remove unnecessary parentheses after 'defined'.
2739         (memcasecmp): Don't assume size_t fits in unsigned int.
2740         Remove casts and duplicate code.
2741         * md5.c: Include <string.h> and <stdlib.h> unconditionally.
2742         (memcpy): Remove definition.
2743         Merge in some clean-up and optimization changes from glibc.
2744         [BLOCKSIZE]: Move definition to top of file.
2745         Ensure that it is a multiple of 64.
2746         Rearrange loop exit tests so as to avoid performing an
2747         additional fread after encountering an error or EOF.
2748         * md5.h (md5_uintptr): Define.
2749         * makepath.c (CLEANUP_CWD): Report an error if we failed to
2750         return to the initial working directory.  Preserve errno
2751         for caller.
2752         * idcache.c: Include "xalloc.h".
2753         (xmalloc, xrealloc): Remove decls.
2754         (getuser): Remove casts no longer required in C89.
2755         * human.c: Include stdio.h, for sprintf.
2756         * group-member.c: Include "xalloc.h".
2757         (xmalloc, xrealloc): Remove decls.
2758         (get_group_info): Remove casts no longer required in C89.
2759         * getusershell.c (readname): Remove casts no longer required in C89.
2760         * gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
2761         * getline.c: Whitespace fix, from coreutils.
2762
2763 2003-08-13  Paul Eggert  <eggert@twinsun.com>
2764
2765         * exclude.c: Include <ctype.h>
2766         (IN_CTYPE_DOMAIN): New macro.
2767         (is_space): New fn.
2768         (add_exclude_file): If LINE_END is a space, ignore trailing spaces
2769         and empty lines.
2770
2771         * argp-help.c, argp-parse.c, config.charset, getopt.h:
2772         Undo previous (whitespace-only) change.
2773
2774 2003-08-12  Paul Eggert  <eggert@twinsun.com>
2775
2776         * argp-help.c, argp-parse.c, config.charset, getopt.h:
2777         Normalize leading white space and remove trailing white space.
2778         * ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
2779         notice, as per ../config/srclist-update.
2780
2781         Merge from coreutils.
2782         * euidaccess.h: New file.
2783         * euidaccess.c: Include it.
2784         * .cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
2785         vasnprintf.h, vasprintf.h.  Remove strdup.c, gettext.h.
2786         * regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
2787
2788 2003-08-11  Bruno Haible  <bruno@clisp.org>
2789
2790         * vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
2791         (vasnprintf): Use it instead of wcslen.
2792
2793 2003-08-11  Bruno Haible  <bruno@clisp.org>
2794
2795         * stdbool_.h (_Bool): Undo last change; instead use a negative enum
2796         value to ensure that _Bool promotes to int. Use #define for _Bool when
2797         using the Solaris C compiler. Adds comments suggested by Paul Eggert.
2798
2799 2003-08-10  Karl Berry  <karl@gnu.org>
2800
2801         * regex.h: update from libc (whitespace fix).
2802
2803 2003-08-09  Paul Eggert  <eggert@twinsun.com>
2804
2805         Merge some files from coreutils.  These changes were
2806         originally made by Jim Meyering.
2807         * acl.c: Include <sys/types.h> before <sys/stat.h>;
2808         many older Unixes require this.
2809         * alloca.c (alloca): Remove cast to argument of free;
2810         no longer needed in C89.
2811         * alloca_.h, regex.h: Fix white space to match
2812         what GNU indent does.
2813
2814 2003-08-05  Paul Eggert  <eggert@twinsun.com>
2815
2816         * bumpalloc.h: Remove.
2817
2818 2003-08-04  Paul Eggert  <eggert@twinsun.com>
2819
2820         * getloadavg.c: Change copyright notice and spacing to conform to
2821         GNU coding style.
2822
2823         Merge from coreutils.
2824         * error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
2825         From glibc.
2826         * getdate.y (date): Also accept dates like May-23-2003; suggestion
2827         from Karl Berry, implemented by Jim Meyering.
2828         * getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
2829         from Dmitry V. Levin.
2830         Remove anachronistic cast of xrealloc.
2831         * fnmatch_.h (__const): Remove.  Use 'const'.
2832         * fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
2833         type. Otherwise, it wouldn't compile with at least /bin/cc on
2834         ymp-cray-unicos9.0.2.X.
2835         Combine two mostly-identical uses of alloca into one.
2836         Thanks to the Cray-Cyber project for access to a Cray Y-MP.
2837
2838 2003-08-04  Dave Love <d.love@dl.ac.uk>
2839
2840         [From Emacs.]
2841
2842         * getloadavg.c: Check `__unix' as well as `unix'.  Use #ifdef, not
2843         #if.  Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE.  Check
2844         F_SETFD, not FD_SETFD.  Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
2845         obsolete NLIST_NAME_UNION.
2846         [__GNU__]: Undef BSD and FSCALE.
2847         [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
2848
2849 2003-08-03  Paul Eggert  <eggert@twinsun.com>
2850
2851         * stdbool_.h (_Bool): Make it signed char, instead of
2852         an enum type, so that it's guaranteed to promote to int.  See:
2853         <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
2854
2855 2003-07-31  Paul Eggert  <eggert@twinsun.com>
2856
2857         * strerror.c: Include config.h, limits.h.  Declare sprintf.
2858         (strerror): Don't assume that a printable int fits in 14 bytes.
2859
2860 2003-07-24  Derek Robert Price  <derek@ximbiot.com>
2861             Bruno Haible  <bruno@clisp.org>
2862
2863         * getline.h (getline, getdelim): Change return type to ssize_t.
2864         * getline.c (getline, getdelim): Likewise.
2865         Remove _GNU_SOURCE define; now it's defined in config.h through
2866         m4/getline.m4.
2867
2868 2003-07-22  Paul Eggert  <eggert@twinsun.com>
2869
2870         * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
2871         over-parenthesization in macros.
2872
2873         Sync with coreutils.
2874
2875         * xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
2876         required by C99.
2877
2878         Use `exit_failure' for xalloc and xmemcoll instead of their own
2879         private exit-failure variables.
2880         * xalloc.h (xalloc_exit_failure): Remove.
2881         * xmalloc.c: Likewise.  Include exitfail.h.
2882         (xalloc_die): Use exit_failure instead of xalloc_exit_failure.
2883         * xmemcoll.h (xmemcoll_exit_failure): Remove.
2884         * xmemcoll.c: Likewise.  Include exitfail.h.
2885         (xmemcoll): Use exit_failure instead of xalloc_exit_failure.
2886
2887 2003-07-18  Paul Eggert  <eggert@twinsun.com>
2888
2889         * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
2890         * closeout.c: Likewise.  Include "closeout.h" right after config.h,
2891         to test that it can stand by itself.  Include "exitfail.h".
2892         Clients should set exit_failure instead.
2893         (EXIT_FAILURE): Remove; no longer needed.  Do not include <stdlib.h>.
2894
2895 2003-07-18  Andreas Schwab  <schwab@suse.de>
2896
2897         * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
2898
2899 2003-07-18  Bruno Haible  <bruno@clisp.org>
2900
2901         * getndelim2.h: New file.
2902         * getndelim2.c: Make into a module of its own. Include config.h,
2903         getndelim2.h.
2904         (getndelim2): Make non-static. Change return type to ssize_t.
2905         * getline.h: Change argument names.
2906         * getline.c: Include getndelim2.h instead of getndelim2.c.
2907         * getnline.c: Include getndelim2.h.
2908
2909 2003-07-17  Bruno Haible  <bruno@clisp.org>
2910
2911         * Makefile.am: Remove file.
2912         * Makefile.in: Remove file.
2913
2914 2003-07-17  Bruno Haible  <bruno@clisp.org>
2915
2916         * getnline.h: New file.
2917         * getnline.c: New file.
2918         * getndelim2.c: New file, extracted from getline.c.
2919         (getndelim2): Renamed from getdelim2, with added nmax argument.
2920         * getline.c: Include getndelim2.c.
2921         (getdelim2): Moved out to getndelim2.c.
2922         (getline, getdelim): Update.
2923
2924 2003-07-15    <karl@gnu.org>
2925
2926         * vasnprintf.c: update from gettext.
2927
2928 2003-07-15  Jim Meyering  <jim@meyering.net>
2929
2930         * makepath.c (make_path): Enclose diagnostic in _(...).
2931
2932 2003-07-14  Paul Eggert  <eggert@twinsun.com>
2933
2934         * asnprintf.c, asprintf.c, config.charset, gettext.h,
2935         localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
2936         printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
2937         ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
2938         vasprintf.c, vasprintf.h: Regenerate.  These files are now being
2939         updated automatically by ../config/srclist-update.  This changes
2940         their license from LPGL to GPL.
2941
2942 2003-07-14  Jim Meyering  <jim@meyering.net>
2943
2944         Don't emit diagnostics.  Let callers do that.
2945         * save-cwd.c: Don't include "error.h".
2946         (save_cwd): Don't call error.  Ensure that errno is valid
2947         when returning nonzero.
2948
2949         * save-cwd.h (restore_cwd): Update prototype.
2950         * save-cwd.c (restore_cwd): Remove two parameters.
2951         Simplify.  Don't call error upon failure.  Let callers do that.
2952         (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
2953         when auditing is enabled.  But don't bother updating the #if.
2954
2955 2003-07-14  Simon Josefsson  <jas@extundo.com>
2956
2957         * mempcpy.h: New file.
2958         * mempcpy.c: New file.
2959
2960 2003-07-14  Paul Eggert  <eggert@twinsun.com>
2961
2962         * ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
2963         sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
2964         unicodeio.c, unicodeio.h, unlocked-io.h:
2965         Switch from LGPL to GPL.
2966
2967 2003-07-11  Alexandre Duret-Lutz  <adl@gnu.org>
2968
2969         * obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
2970         it breaks C++ compilation.
2971         [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
2972
2973 2003-07-10  Jim Meyering  <jim@meyering.net>
2974
2975         * vasnprintf.c: Remove trailing blanks.
2976         Make cpp indentation consistent.
2977
2978 2003-07-09  Paul Eggert  <eggert@twinsun.com>
2979
2980         * alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
2981         posixver.c, strftime.c, strnlen.c, strverscmp.c:
2982         Switch from LGPL to GPL.
2983
2984 2003-07-07  Paul Eggert  <eggert@twinsun.com>
2985
2986         * mktime.c: Fix some boundary cases and remove need for floating point.
2987
2988         Issue a compile-time diagnostic if time_t is floating point, or if
2989         two's complement arithmetic is not in effect, or if arithmetic
2990         right shift does not propagate the sign.  These assumptions were
2991         all in the original code but they weren't checked.
2992
2993         (TIME_T_MIDPOINT, verify): New macros.
2994         (__isleap): Remove; it has integer overflow problems.
2995         (leapyear): New function, without those problems.
2996         (ydhms_tm_diff): Remove; splitting into two parts.
2997         (ydhms_diff): New function, containing the arithmetic part of
2998         the old ydhms_tm_diff function.  Issue a compile-time
2999         diagnostic if we are not using C99 integer division.
3000         Avoid casts when possible.
3001         (guess_time_tm): New function, containing the checking part of
3002         the old ydhms_tm_diff function.  Return the new value, rather than
3003         the difference between it and the old.  Accept a new argument T
3004         so that *T specifies the old value.  Check for overflow in the result.
3005
3006         (__mktime_internal): Use a time_t offset, not a long int offset.
3007         This undoes the 2003-06-04 change, which is no longer needed now
3008         that we have better overflow checking.
3009         (localtime_offset): Likewise.
3010
3011         (__mktime_internal): Avoid harmful overflow on hosts where time_t
3012         and long are 64-bit but int is only 32-bit.
3013         (ydhms_diff): Use long int to store year1 and yday1.
3014         Issue a compile-time diagnostic if long int is not wide enough.
3015
3016         (__mktime_internal): Use long int to store adjusted year and yday.
3017         Use plain C rather than preprocessor commands, if that doesn't
3018         affect efficiency.
3019         Check for overflow (and try to repair) after each probe
3020         rather than checking only at the very end.  This avoids some bugs
3021         (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
3022         does not equal GMT offset at maximum time).
3023         Use integer to check for overflow rather than floating point; this
3024         is more portable to non-IEEE hosts, and is a tad faster.
3025         When we detect that we are oscillating between two values,
3026         don't check whether tm_isdst has the requested value, since
3027         we already know the answer.  When tm_isdst has the wrong value,
3028         use a different heuristic to find the right one, based on the
3029         extreme values actually observed in practice in tz2003a,
3030         rather than the (overly optimistic) "previous 3 calendar quarters".
3031
3032         (not_equal_tm, print_tm, check_result): Use "const T" rather than
3033         "T const" to accommodate glibc style.
3034         (check_result): Use less-confusing report format.  "long" -> "long int.
3035         (main): Likewise.
3036         Don't loop if the iteration overflows time_t.
3037         Allow a negative step in the iteration.
3038
3039 2003-07-01  Paul Eggert  <eggert@twinsun.com>
3040
3041         * xreadlink.c: Include <sys/types.h> unconditionally, instead of
3042         having it depend on HAVE_SYS_TYPES_H.
3043
3044 2003-06-25  Bruno Haible  <bruno@clisp.org>
3045
3046         * readlink.c: New file.
3047
3048 2003-06-20  Bruno Haible  <bruno@clisp.org>
3049
3050         Assume C89, so PARAMS isn't needed.
3051         * unicodeio.h (PARAMS): Remove.
3052         * unicodeio.c: Don't use PARAMS.
3053
3054 2003-06-18  Jim Meyering  <jim@meyering.net>
3055
3056         Merge changes from coreutils.
3057         * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
3058         Remove explicit declarations of xmalloc and realloc.
3059         Include xalloc.h.
3060         (read_utmp): Remove anachronistic cast of xmalloc.
3061
3062 2003-06-17  Paul Eggert  <eggert@twinsun.com>
3063
3064         Assume C89, so PARAMS isn't needed.
3065         * backupfile.h (PARAMS): Remove.  All uses removed.
3066         * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
3067         group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
3068         makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
3069         path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
3070         save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
3071         unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
3072         xstrtol.h: Likewise.
3073         * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h,
3074         same.h, strverscmp.h: Do not include config.h; no longer needed.
3075         Anyway, config.h should always be included before any other file.
3076
3077 2003-06-11  Simon Josefsson  <jas@extundo.com>
3078
3079         * sysexit_.h: New file.
3080
3081 2003-05-20  Derek Price  <derek@ximbiot.com>
3082
3083         * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
3084
3085 2003-06-10  Simon Josefsson  <jas@extundo.com>
3086
3087         * strchrnul.h: New file.
3088         * strchrnul.c: New file.
3089
3090 2003-06-10  Simon Josefsson <jas@extundo.com>
3091
3092         * argp.h: New file, from glibc.
3093         * argp-ba.c: New file, from glibc.
3094         * argp-eexst.c: New file, from glibc.
3095         * argp-fmtstream.c: New file, from glibc.
3096         * argp-fmtstream.h: New file, from glibc.
3097         * argp-fs-xinl.c: New file, from glibc.
3098         * argp-help.c: New file, from glibc.
3099         * argp-namefrob.h: New file, from glibc.
3100         * argp-parse.c: New file, from glibc.
3101         * argp-pv.c: New file, from glibc.
3102         * argp-pvh.c: New file, from glibc.
3103         * argp-xinl.c: New file, from glibc.
3104
3105 2003-06-07  Jim Meyering  <jim@meyering.net>
3106
3107         * readtokens.h: Put `Free Software Foundation, Inc.'
3108         in place of my name in the copyright comment.
3109         Remove definition and uses of __P.
3110
3111         From coreutils.
3112         * stat.c: Don't declare xmalloc explicitly.
3113         Instead, include "xalloc.h".
3114         * readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
3115         xrealloc, and xcalloc return values.
3116         * xgetcwd.c (xgetcwd): Include "xgetcwd.h".
3117         Improve comment.
3118         * xgetcwd.h: Remove definition/uses of PARAMS.
3119
3120 2003-06-06  Jim Meyering  <jim@meyering.net>
3121
3122         * stdbool_.h: Renamed from stdbool.h.in.
3123
3124 2003-06-06  Jim Meyering  <jim@meyering.net>
3125
3126         Merge from coreutils.
3127         * same.c: (same_name): Declare *_basename locals to be `const'.
3128         Consolidate declarations and initializations of *_base* locals.
3129
3130         Merge from coreutils.
3131         This avoids a core dump on systems without GNU putenv,
3132         when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
3133         * putenv.c (__set_errno, LOCK, UNLOCK): Define.
3134         (unsetenv): New static function, from GNU libc.
3135         (rpl_putenv): Use it.
3136
3137         * modechange.c: Remove trailing blanks.
3138
3139         Merge from coreutils.
3140         * fsusage.c: Remove declaration of statfs.
3141         It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
3142
3143         * posixtm.c: Include <stdbool.h> unconditionally.
3144
3145 2003-06-05  Paul Eggert  <eggert@twinsun.com>
3146
3147         * mktime.c (__mktime_internal): When resolving a tm_isdst
3148         mismatch, look in future quarters as well as past.  This fixes a
3149         bug when processing fall-backwards gaps immediately after a long
3150         period of daylight-saving time.
3151
3152         * mktime.c: Assume freestanding C89 or better.
3153         (HAVE_LIMITS_H): Remove.  Assume it's 1.
3154         (__P): Remove; not used.
3155         (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
3156         (mktime, not_equal_tm, print_tm, check_result,
3157         main): Use prototypes.  Use const * where appropriate.
3158         (main): Fix typo in testing code that uncovered by above changes.
3159         (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
3160
3161 2003-06-04  Paul Eggert  <eggert@twinsun.com>
3162
3163         * mktime.c: Fix Debian bug 177940
3164         <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
3165         (localtime_offset): Now long int, not time_t, because we want it
3166         to be guaranteed to be signed.  All uses changed.
3167         (__mktime_internal): If overflow would occur when adding offset,
3168         don't add it.
3169
3170         Merge 'human' changes from coreutils.  Rewrite to support
3171         locale-specific notations like thousands separators.
3172         * human.c: Simplify authorship notice.
3173         Include human.h immediately after config.h.
3174         <sys/types.h>, <stdio.h>: Do not include; no longer needed.
3175         <limits.h>: Do not include, since human.h does.
3176         (SIZE_MAX, UINTMAX_MAX): New macros.
3177         <strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
3178         <locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
3179         (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
3180         (power_letter): Renamed from suffixes.
3181         (generate_suffix_backwards): Remove.
3182         (adjust_value): Now takes int style (because of human.h changes)
3183         and long double value (for greater precision on some platforms).
3184         (group_number): New function.
3185         (human_readable): Use it.  Use integer options, not enum.
3186         Put the options before the sizes in the arg list.
3187         Support all the new options.
3188         The old human_readable function has been removed;
3189         use inttostr.h instead.
3190         (human_readable, default_block_size, humblock):
3191         Use uintmax_t, not int, for block sizes.
3192         (human_readable_inexact, block_size_types): Remove.
3193         (block_size_opts): New constant.
3194         (human_options): Renamed from human_block_size, with new signature
3195         that allows block sizes up to UINTMAX_MAX.  All callers changed.
3196         * human.h: Add copyright and authorship notice.
3197         Include <limits.h> and <stdbool.h> unconditionally.
3198         (PARAMS): Remove.  All uses removed.
3199         (LONGEST_HUMAN_READABLE): Add support for thousands separator.
3200         (enum human_inexact_style): Remove tag; now a nameless enum.
3201         (human_floor, human_ceiling, human_round_to_even): Now have
3202         values 2, 0, 1 rather than -1, 1, 0.
3203         (human_group_digits, human_suppress_point_zero, human_autoscale,
3204         human_base_1024, human_SI, human_B): New constants.
3205         (human_readable_inexact, human_block_size): Remove.
3206         (human_readable): Size args are now uintmax_t, not int.
3207         (human_options): New decl.
3208
3209         * exclude.c: (new_exclude, add_exclude): Remove casts that are
3210         unnecessary now that we assume C89 or better.  This change
3211         imported from coreutils.
3212
3213         * mktime.c (__mktime_internal): Do not reject negative timestamps
3214         arbitrarily.  This is the same patch as 2003-05-28, but it got lost
3215         in the 2003-05-30 sync from glibc.
3216
3217         .h files should stand alone, but we shouldn't include <sys/types.h>
3218         if we can get away with just <stddef.h>.
3219
3220         * __fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
3221         malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
3222         rather than <sys/types.h>, as we merely need size_t.
3223         * dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
3224         to get size_t.
3225         * hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
3226         Include <stdio.h>, to get FILE.
3227         * memcasecmp.c: Don't include <sys/types.h>, as we can assume
3228         memcasecmp.h has included <stddef.h> and all we need is size_t.
3229         * memcoll.c: Include "memcoll.h", which gets us size_t and checks
3230         our interface, instead of including <sys/types.h>
3231
3232 2003-06-02  Paul Eggert  <eggert@twinsun.com>
3233
3234         [from coreutils]
3235         Fix some minor time-related bugs with POSIX time arguments.
3236         Some valid time stamps were being rejected (notably -1, and
3237         time stamps before 1900 on 64-bit hosts).  And some invalid
3238         time stamps were being accepted, e.g. September 31.
3239
3240         * posixtm.h (posixtime): Return bool instead of time_t, so
3241         that we can return (time_t) -1 successfully.
3242         * posixtm.c: Likewise.
3243         [HAVE_STDBOOL_H]: Include <stdbool.h>.
3244         (bool, false, true) [!HAVE_STDBOOL_H]: New type.
3245         (t): Remove static var.
3246         (year, posix_time_parse): Now takes struct tm * arg to modify, instead
3247         of static var.  All uses changed.
3248         (year): Do not reject years before 1900; they can occur with
3249         64-bit time_t.
3250         (posix_time_parse): Do not check for out-of-range components;
3251         that is now the caller's responsibility, since our checks were
3252         only approximations.
3253         (posixtime): Use mktime to check for out-of-range components,
3254         since it knows them exactly.
3255         If mktime returns (time_t) -1, check whether an error actually occurred
3256         by invoking localtime on -1.
3257         (main) [TEST_POSIXTIME]: Check for input data errors, and report
3258         posixtime failures better.
3259         Improve the test data (in comments only).
3260
3261 2003-05-30    <karl@gnu.org>
3262
3263         * mktime.c: update from libc.
3264
3265 2003-05-30  Bruno Haible  <bruno@clisp.org>
3266
3267         * config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
3268         * localcharset.h: Likewise.
3269         * localcharset.c: Likewise.
3270
3271 2003-05-28  Paul Eggert  <eggert@twinsun.com>
3272
3273         Assume the headers required for C89 freestanding compilers.
3274         * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h,
3275         rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h>
3276         without checking for HAVE_LIMITS_H.
3277         * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c,
3278         xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed
3279         to do that.
3280         * fatal.c: Include <stdarg.h> without checking for __STDC__.
3281         * exclude.c: Include <stdbool.h> unconditionally.
3282         * tempname.c: Include <stddef.h> unconditionally.
3283         * hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
3284         * modechange.c, rpmatch.c (NULL): Don't define, since
3285         <stddef.h> does that.
3286         * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
3287         * safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
3288         * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed.
3289         * xstrtol.c: Likewise.
3290         * safe-read.c: Remove TYPE_SIGNED; no longer needed.
3291         * savedir.c: Include <stddef.h> instead of defining NULL.
3292
3293         * addext.c (addext): Use assignment rather than cast, to avoid
3294         warnings on some platforms.
3295
3296         * mktime.c (__mktime_internal): Do not reject negative timestamps
3297         arbitrarily.
3298
3299 2003-05-10  Bruno Haible  <bruno@clisp.org>
3300
3301         * linebreak.c (iconv_string_length): Don't return -1 just because the
3302         string is longer than 4 KB.
3303
3304 2003-05-12  Jim Meyering  <jim@meyering.net>
3305
3306         * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
3307         the space-padded-by-default conversion specifiers, %e, %k, %l.
3308
3309 2003-05-03  Bruno Haible  <bruno@clisp.org>
3310
3311         Upgrade to Unicode-4.0.
3312         * linebreak.c (nonspacing_table_data): Change width of U+00AD,
3313         U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
3314         U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
3315         U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
3316         from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
3317         (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
3318         of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
3319         Change width of U+E0100..U+E01EF from 1 to 0.
3320
3321 2003-04-25  Bruno Haible  <bruno@clisp.org>
3322
3323         * copy-file.c: Include <stddef.h>, for size_t.
3324
3325 2003-04-25  Jim Meyering  <jim@meyering.net>
3326
3327         * copy-file.c (copy_file_preserving): Declare buf_size to be
3328         of type size_t, not int.
3329
3330 2003-04-11  Jim Meyering  <jim@meyering.net>
3331
3332         Merge changes from Coreutils.
3333
3334         2003-03-22  Jim Meyering  <jim@meyering.net>
3335
3336         * strftime.c (widen): Cast alloca return value to proper type.
3337
3338         2003-01-19  Ulrich Drepper  <drepper@redhat.com>
3339
3340         From GNU libc.
3341         * strftime.c (my_strftime): Handle very large width
3342         specifications for numeric values correctly.  Improve checks for
3343         overflow.
3344
3345         2003-01-19  Jim Meyering  <jim@meyering.net>
3346
3347         * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
3348         (nl_get_alt_digit) [! defined my_strftime]: Define.
3349         (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
3350         _nl_get_alt_digit and _nl_get_walt_digit.
3351
3352         * strftime.c (my_strftime): Merge in locale-related changes from libc.
3353         These changes have no effect outside of _LIBC.
3354
3355 2003-04-10  Bruno Haible  <bruno@clisp.org>
3356
3357         * findprog.h: New file, from GNU gettext.
3358         * findprog.c: New file, from GNU gettext.
3359
3360 2003-04-05  Jim Meyering  <jim@meyering.net>
3361
3362         Merge changes from Coreutils.
3363
3364         * exclude.h (PARAMS): Remove definition and uses.
3365         * exclude.c: Remove uses of `PARAMS'.
3366
3367         * dirname.c [TEST_DIRNAME]: Update build instructions for test.
3368         Add test-cases for DOS filenames. Declare program_name.
3369         (main): Set up program_name.  Patch by Rich Dawe.
3370
3371         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
3372         error from mntctl.
3373         Use mntctl's return value to drive the entry-processing loop, since
3374         we can't rely on the value of the vmt_length member in the last
3375         entry.  On some systems doing so could result in exhausting
3376         virtual memory.  Based in part on a patch from Mike Jetzer.
3377
3378 2003-04-04  Bruno Haible  <bruno@clisp.org>
3379
3380         * linebreak.h: New file, from GNU gettext.
3381         * linebreak.c: New file, from GNU gettext with slight modifications.
3382         * lbrkprop.h: New file, from GNU gettext.
3383
3384 2003-04-03  Bruno Haible  <bruno@clisp.org>
3385
3386         * utf8-ucs4.h: New file, from GNU gettext.
3387         * utf16-ucs4.h: New file, from GNU gettext.
3388         * ucs4-utf8.h: New file, from GNU gettext.
3389         * ucs4-utf16.h: New file, from GNU gettext.
3390
3391 2003-04-02  Bruno Haible  <bruno@clisp.org>
3392
3393         * binary-io.h: New file, from GNU gettext.
3394
3395 2003-04-01  Bruno Haible  <bruno@clisp.org>
3396
3397         * pathname.h: New file, from GNU gettext.
3398         * concatpath.c: New file, from GNU gettext.
3399
3400 2003-03-30  Bruno Haible  <bruno@clisp.org>
3401
3402         * copy-file.c (copy_file_preserving): Don't set owner if the function
3403         chown() doesn't exist.
3404
3405 2003-03-28  Bruno Haible  <bruno@clisp.org>
3406
3407         * copy-file.h: New file, from GNU gettext.
3408         * copy-file.c: New file, from GNU gettext.
3409
3410 2003-03-18  Jim Meyering  <jim@meyering.net>
3411
3412         * quote.c (quote_n): Fix typo in comment.
3413
3414 2003-03-14  Jim Meyering  <jim@meyering.net>
3415
3416         Merge changes from Coreutils.
3417         * obstack.h (obstack_object_size): Declare temporary, __o,
3418         to be const, in order to avoid warnings.
3419         (obstack_room): Likewise.
3420         (obstack_empty_p): Likewise.
3421
3422 2003-03-13  Paul Eggert  <eggert@twinsun.com>
3423
3424         Merge changes from Bison.
3425         * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
3426         (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
3427         when compiling Bison 1.875's `bitset bset = obstack_alloc
3428         (bobstack, bytes);'.  Problem reported by Nelson H. F. Beebe.
3429         * hash.c: Include <stdbool.h> unconditionally.
3430
3431 2003-03-09  Paul Eggert  <eggert@twinsun.com>
3432
3433         * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
3434         Reported by Bruce Becker; see:
3435         http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
3436
3437 2003-03-03  Paul Eggert  <eggert@twinsun.com>
3438             Bruno Haible  <bruno@clisp.org>
3439
3440         * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
3441         Reported by John Hughes, see
3442         http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
3443
3444 2003-02-19  Paolo Bonzino  <bonzini@gnu.org>
3445
3446         * poll_.h: New file.
3447         * poll.c: New file.
3448
3449 2003-02-18  Paolo Bonzino  <bonzini@gnu.org>
3450
3451         * mathl.h: New file.
3452         * acosl.c: New file.
3453         * asinl.c: New file.
3454         * atanl.c: New file.
3455         * ceill.c: New file.
3456         * cosl.c: New file.
3457         * expl.c: New file.
3458         * floorl.c: New file.
3459         * frexpl.c: New file.
3460         * ldexpl.c: New file.
3461         * logl.c: New file.
3462         * sincosl.c: New file.
3463         * sinl.c: New file.
3464         * sqrtl.c: New file.
3465         * tanl.c: New file.
3466         * trigl.c: New file.
3467         * trigl.h: New file.
3468
3469 2003-02-17  Bruno Haible  <bruno@clisp.org>
3470
3471         * mkdtemp.h: New file, from GNU gettext.
3472         * mkdtemp.c: New file, from GNU gettext.
3473
3474 2003-01-31  Bruno Haible  <bruno@clisp.org>
3475
3476         * rename.c: #undef rename before defining rpl_rename.
3477         * strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
3478
3479 2003-01-30  Bruno Haible  <bruno@clisp.org>
3480
3481         * printf-args.h: New file, from GNU gettext.
3482         * printf-args.c: New file, from GNU gettext.
3483         * printf-parse.h: New file, from GNU gettext.
3484         * printf-parse.c: New file, from GNU gettext.
3485         * vasnprintf.h: New file, from GNU gettext.
3486         * vasnprintf.c: New file, from GNU gettext.
3487         * asnprintf.c: New file, from GNU gettext.
3488         * vasprintf.h: New file, from GNU gettext with modifications.
3489         * vasprintf.c: New file, from GNU gettext.
3490         * asprintf.c: New file, from GNU gettext.
3491
3492 2003-01-29  Bruno Haible  <bruno@clisp.org>
3493
3494         * stpncpy.h: New file, from GNU gettext with modifications.
3495         * stpncpy.c: New file, from GNU gettext with modifications.
3496
3497 2003-01-28  Bruno Haible  <bruno@clisp.org>
3498
3499         * c-ctype.h: New file, from GNU gettext, with changes suggested by
3500         Paul Eggert.
3501         * c-ctype.c: New file, from GNU gettext, with changes suggested by
3502         Paul Eggert.
3503
3504 2003-01-27  Bruno Haible  <bruno@clisp.org>
3505
3506         * xsetenv.h: New file, from GNU gettext.
3507         * xsetenv.c: New file, from GNU gettext.
3508
3509 2003-01-23  Bruno Haible  <bruno@clisp.org>
3510
3511         * minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
3512
3513 2003-01-22  Bruno Haible  <bruno@clisp.org>
3514
3515         * exit.h: New file, from GNU gettext.
3516
3517 2003-01-11  Bruno Haible  <bruno@clisp.org>
3518
3519         * stpcpy.h (stpcpy): Use ANSI C function declarations.
3520         * strcase.h (strcasecmp, strncasecmp): Likewise.
3521
3522 2003-01-14  Jim Meyering  <jim@meyering.net>
3523
3524         * same.c (same_name): Tweak a comment.
3525
3526 2003-01-11  Bruno Haible  <bruno@clisp.org>
3527
3528         * same.c (same_name): Reorder tests so as to avoid calling stat()
3529         when a string comparison is sufficient.
3530
3531 2003-01-11  Bruno Haible  <bruno@clisp.org>
3532
3533         * readtokens.c (readtoken): Cast character to 'unsigned char', not
3534         'unsigned int'.
3535
3536 2003-01-11  Bruno Haible  <bruno@clisp.org>
3537
3538         * hash-pjw.c: Add comment about low quality of this function.
3539
3540 2003-01-12  Paul Eggert  <eggert@twinsun.com>
3541
3542         Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
3543         to avoid collisions with libcurses and libreadline.
3544
3545         * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
3546         * getstr.h, getstr.c: Remove.
3547         * getline.c: Include "getline.h", to check interface.
3548         Move body of old getstr.c here: this defines MIN_CHUNK and
3549         declares getdelim2, which is renamed from getstr.
3550         (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
3551
3552         * linebuffer.c (readlinebuffer): Renamed from readline.
3553         All uses changed.
3554         * linebuffer.h: Likewise.
3555         (readline): Remove backward-compatibility macro.
3556
3557 2003-01-12  Jim Meyering  <jim@meyering.net>
3558
3559         * makepath.c: Don't test HAVE_ERRNO_H.  It's not necessary.
3560
3561 2003-01-10  Bruno Haible  <bruno@clisp.org>
3562
3563         * alloca_.h: New file.
3564         * getdate.y: Unconditionally include alloca.h.
3565         * makepath.c: Likewise.
3566         * setenv.c: Likewise.
3567         * userspec.c: Likewise.
3568
3569 2003-01-09  Bruno Haible  <bruno@clisp.org>
3570
3571         * stdbool.h.in: New file.
3572
3573 2003-01-08  Bruno Haible  <bruno@clisp.org>
3574
3575         * safe-read.c: Include specification header first, to ensure its
3576         selfcontainedness.
3577         * full-write.c: Likewise.
3578
3579 2003-01-08  Jim Meyering  <jim@meyering.net>
3580
3581         * full-write.c: Undefine and define-away `const' after inclusion
3582         of errno.h, not before.  Suggestion from Bruno Haible.
3583
3584 2003-01-07  Jim Meyering  <jim@meyering.net>
3585
3586         * full-write.c: Rework so that it may serve to define full_read, too.
3587         * full-read.c: Simply #define FULL_READ and include full-write.c.
3588
3589 2003-01-06  Jim Meyering  <jim@meyering.net>
3590
3591         * version-etc.c: Update year in translatable copyright string.
3592
3593 2002-12-25  Bruno Haible  <bruno@clisp.org>
3594
3595         * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
3596         * xstrtol.h: Likewise.
3597         * xstrtoimax.c: Likewise.
3598         * xstrtoumax.c: Likewise.
3599         * human.h: Likewise.
3600
3601         * tempname.c: Include <inttypes.h> too. Avoids a compilation error
3602         on systems that have <inttypes.h> but not <stdint.h>.
3603
3604 2002-12-31  Paul Eggert  <eggert@twinsun.com>
3605
3606         * memcoll.c (memcoll): Fall back on a simple algorithm using
3607         memcmp if strcoll doesn't work.
3608
3609 2002-12-23  Bruno Haible  <bruno@clisp.org>
3610
3611         * localcharset.h: New file.
3612         * localcharset.c: Include it.
3613         * unicodeio.c: Likewise.
3614
3615 2002-12-22  Bruno Haible  <bruno@clisp.org>
3616
3617         * utime.c (utime_null): No need to call ftruncate if the file was
3618         nonempty.
3619
3620 2002-12-23  Bruno Haible  <bruno@clisp.org>
3621
3622         * memcoll.c (STRCOLL): New macro.
3623         (memcoll): Use it.
3624
3625 2002-12-22  Bruno Haible  <bruno@clisp.org>
3626
3627         * getstr.h (getstr): Define, to avoid clash with libcurses.
3628         * linebuffer.h (readline): Define, to avoid clash with libreadline.
3629
3630 2002-12-22  Bruno Haible  <bruno@clisp.org>
3631
3632         * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
3633
3634 2002-12-23  Bruno Haible  <bruno@clisp.org>
3635
3636         * getline.h: Include <stddef.h>, for size_t.
3637
3638         * unicodeio.h: Include <stddef.h>, for size_t.
3639         * unicodeio.c: Don't include <stddef.h>.
3640
3641 2002-12-17  Bruno Haible  <bruno@clisp.org>
3642
3643         * canon-host.c (strdup): Remove unused declaration.
3644
3645         * fsusage.c: Include full_read.h.
3646         (get_fs_usage): Use full_read instead of safe_read.
3647
3648         * utime.c (utime_null): Use SAFE_READ_ERROR.
3649
3650 2002-12-11  Bruno Haible  <bruno@clisp.org>
3651
3652         * setenv.h: Rewritten to cope with systems that have setenv() but not
3653         unsetenv().
3654         * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
3655         modifications:
3656
3657         2002-12-11  Bruno Haible  <bruno@clisp.org>
3658
3659                 * setenv.c (alloca): Fall back to malloc.
3660                 (freea): New macro.
3661                 (setenv): Use freea() to free memory allocated with alloca().
3662
3663         2002-11-13  Bruno Haible  <bruno@clisp.org>
3664
3665                 * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
3666                 function declarations.
3667                 * unsetenv.c (unsetenv): Likewise.
3668
3669         2002-03-04  Bruno Haible  <bruno@clisp.org>
3670
3671                 Portability to AIX 4.3.3.
3672                 * unsetenv.c: New file, extracted from setenv.c.
3673                 * setenv.c: Move the unsetenv() function to unsetenv.c.
3674
3675         2001-12-20  Bruno Haible  <bruno@clisp.org>
3676
3677                 * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
3678                 use malloc instead. For SunOS 4.
3679
3680         2001-12-11  Bruno Haible  <bruno@clisp.org>
3681
3682                 * setenv.c: Declare alloca.
3683                 (compar_fn_t): New typedef.
3684                 (KNOWN_VALUE, STORE_VALUE): Use it.
3685
3686         * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
3687         setenv.h.
3688
3689 2002-12-10  Paul Eggert  <eggert@twinsun.com>
3690
3691         Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
3692         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
3693         Choose values that are less likely to collide with system fnmatch
3694         options.
3695         * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
3696         defined (e.g., a pure POSIX system).
3697         (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
3698         instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
3699
3700 2002-12-06  Jim Meyering  <jim@meyering.net>
3701
3702         * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
3703
3704         Merge in changes from libc's misc/error.c, in preparation
3705         for the merge of gnulib's changes back into libc.
3706
3707         * error.c (_): Define only if not already defined.
3708         Move definition to follow all #include directives.
3709         Include unlocked-io.h only if !_LIBC.
3710         [_LIBC]: Include <libio/libioP.h>.
3711         [USE_IN_LIBIO]: Include <libio/iolibio.h>
3712         (fflush): Tweak definition to use INTUSE.
3713         (putc): Define.
3714
3715 2002-12-05  Paul Eggert  <eggert@twinsun.com>
3716
3717         * alloca.c [defined emacs]: Include "lisp.h".
3718         (xalloc_die) [defined emacs]: New macro.
3719         (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
3720         [! defined emacs]: Include <xalloc.h>.
3721         (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
3722         (pointer): Typedef to POINTER_TYPE *.
3723         (malloc): Remove decl; we now always use xmalloc.
3724         (alloca): Use old-style definition, since Emacs needs this.
3725         Check for arithmetic overflow when computing combined size.
3726
3727 2002-12-04  Paul Eggert  <eggert@twinsun.com>
3728
3729         Do not generate unlocked-io.h automatically, since it's easier to
3730         maintain it by hand.
3731
3732         * unlocked-io.h: New file, from GNU diffutils,
3733         but with proper copyright notice and attribution.
3734         * gen-uio: Remove.
3735         * Makefile.am: Add copyright notice.
3736         (libfetish_a_SOURCES): Add unlocked-io.h.
3737         (BUILT_SOURCES, all-local): Remove unlocked-io.h.
3738         (DISTCLEANFILES, io_functions): Remove macros.
3739         (EXTRA_DIST): Remove gen_uio.
3740         (unlocked-io.h): Remove rule.
3741
3742 2002-12-04  Jim Meyering  <jim@meyering.net>
3743
3744         Reflect the fact that stat.c and lstat.c are no longer generated.
3745         * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
3746         (DISTCLEANFILES): Likewise.
3747         (EXTRA_DIST): Likewise.
3748         (all_local): Don't depend on stat.c or lstat.c.
3749         (stat.c, lstat.c): Remove rules.
3750         (EXTRA_DIST): Remove xstat.in.
3751
3752         * xstat.in: Remove file.  Contents moved into stat.c.
3753         * stat.c: New file.  Contents mostly from xstat.in.
3754         * stat.c: Rework so that it may serve to define rpl_lstat, too.
3755         * lstat.c: New file. Simply #define LSTAT and include stat.c.
3756
3757         * safe-read.c: Rework so that it may serve to define safe_write, too.
3758         * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
3759
3760 2002-12-03  Jim Meyering  <jim@meyering.net>
3761
3762         * safe-read.c, safe-write.c: Change variable names and comments, but
3763         not semantics, to minimize the differences between these two files.
3764         (safe_read): Change comment to mention SAFE_READ_ERROR.
3765
3766         * safe-read.c (IS_EINTR): Define.
3767         (safe_read): Use IS_EINTR in place of in-function cpp directives.
3768
3769 2002-12-02  Bruno Haible  <bruno@clisp.org>
3770
3771         * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
3772         Define, taken from safe-read.c.
3773         (INT_MAX): Provide fallback.
3774         (safe_write): Rewrite to iterate IFF the write fails with EINTR.
3775         * safe-write.h (SAFE_WRITE_ERROR): Define.
3776
3777         * safe-read.c (EINTR): Remove definition.
3778         (safe_read): Don't use EINTR if it is absent.
3779
3780 2002-12-02  Jim Meyering  <jim@meyering.net>
3781
3782         * safe-read.c (EINTR): Define.
3783         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
3784         (INT_MAX): Provide fallback.
3785         (safe_read): Rewrite to iterate IFF the read fails with EINTR.
3786
3787         * safe-read.h (SAFE_READ_ERROR): Define.
3788
3789 2002-12-01  Jim Meyering  <jim@meyering.net>
3790
3791         * safe-read.c: (safe_read): Also exit the loop when read returns zero.
3792         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
3793
3794 2002-11-27  Paul Eggert  <eggert@twinsun.com>
3795
3796         * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
3797         hash_rehash): Replace `if (limit <= value) abort ();' with
3798         `if (! (value < limit)) abort ();', for readability.
3799
3800 2002-11-26    <karl@gnu.org>
3801
3802         * strdup.c: copy from libc again, with jim's ok.
3803         * .cppi-disable: re-add strdup.c
3804
3805 2002-11-25    <karl@gnu.org>
3806
3807         * strtoll.c: copy from libc, meaning we now #include <strtol.c>
3808         instead of "strtol.c".
3809
3810 2002-11-25  Jim Meyering  <jim@meyering.net>
3811
3812         * mktime.c: Sync from libc, now that it has the latest fix.
3813
3814 2002-11-24    <karl@gnu.org>
3815
3816         * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
3817         regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
3818
3819 2002-11-24  Jim Meyering  <jim@meyering.net>
3820
3821         Update from coreutils:
3822
3823         * mktime.c: Merge in changes from libc.
3824
3825         Avoid a link-time failure on some Linux systems.
3826         * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
3827         (__mon_yday): Declare with the STATIC attribute.
3828         (__mktime_internal): Likewise.
3829         Based on a report from Greg Schafer.
3830
3831 2002-11-23  Jim Meyering  <jim@meyering.net>
3832
3833         * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
3834         Use `unsigned', not `int', as type of index.
3835
3836         * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
3837
3838         * fsusage.c: Remove unneeded parentheses around operands of `defined'.
3839
3840 2002-11-22  Paul Eggert  <eggert@twinsun.com>
3841
3842         * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
3843         hint that one should use `if (! x) abort ();' rather than `assert
3844         (x);', and anyway it's one less thing to worry about configuring.
3845         (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
3846         hash_rehash, hash_insert): Use abort rather than assert.
3847
3848 2002-11-22  Paul Eggert  <eggert@twinsun.com>
3849
3850         * quotearg.h: Allow multiple inclusion by surrounding with
3851         "#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
3852         so that we can be included first.
3853         (PARAMS): Remove; we now assume C89 or later.  All uses removed.
3854         * quotearg.c: Include quotearg.h immediately after config.h.
3855         No need to include stddef.h or sys/types.h any more.
3856         Surround local include files with "", not "<>".
3857         Assume HAVE_LIMITS_H unconditionally, as we assume C89.
3858         Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
3859         HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
3860         (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
3861         (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
3862         (ISPRINT): Remove; no longer needed now that we assume C89.
3863
3864         (clone_quoting_options, quotearg_buffer, quotearg_n_options):
3865         Preserve errno.
3866
3867         (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
3868         quotearg_char): Use SIZE_MAX rather than
3869         (size_t) -1 when we are talking about "infinity".
3870
3871         (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
3872
3873 2002-11-22  Bruno Haible  <bruno@clisp.org>
3874
3875         * safe-read.h: Assume C89. Add comments.
3876         (safe_read): Change return type to size_t.
3877         * safe-read.c (safe_read): Change return type to size_t. Handle byte
3878         counts > SSIZE_MAX correctly.
3879         * safe-write.h: New file.
3880         * safe-write.c: New file.
3881         * full-read.h: New file.
3882         * full-read.c: New file.
3883         * full-write.h: Assume C89. Add comments.
3884         * full-write.c: Include safe-write.h.
3885         (full_write): Rewritten to use safe_write.
3886         Suggested by Jim Meyering and Paul Eggert.
3887
3888 2002-11-21  Bruno Haible  <bruno@clisp.org>
3889
3890         Remove case insensitive option matching.
3891         * argmatch.h (argcasematch): Remove declaration.
3892         (ARGCASEMATCH): Remove macro.
3893         (__xargmatch_internal): Remove case_sensitive argument.
3894         (XARGMATCH): Update.
3895         (XARGCASEMATCH): Remove macro.
3896         * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
3897         case_sensitive argument.
3898         (argcasematch): Remove function.
3899         (__xargmatch_internal): Remove case_sensitive argument.
3900         (main): Use XARGMATCH instead of XARGCASEMATCH.
3901
3902         * xmalloc.c: Change compile-time error message. Add comment about
3903         required autoconf version.
3904
3905 2002-11-21  Jim Meyering  <jim@meyering.net>
3906
3907         * strdup.c (strdup): Tweak comment and initial #if/#include.
3908
3909         Merge in changes from the coreutils.
3910
3911         2002-09-25  Paul Eggert  <eggert@twinsun.com>
3912         * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
3913         (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
3914         (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
3915         int.  Work more efficiently if X is the same width as uintmax_t.
3916         Do not compare X to -1, to avoid bogus compiler warning.
3917         (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
3918         Don't assume that f_frsize and f_bsize are the same type.
3919
3920         * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
3921         on FreeBSD.
3922
3923         * makepath.c (make_path): Restore umask *before* creating the final
3924         component.
3925         (make_path): Minor reformatting.
3926
3927         * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
3928         and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
3929
3930         * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
3931         ones.  At least on GNU/Linux systems, `auto' means something else.
3932         From Michael Stone.
3933
3934 2002-11-20  Paul Eggert  <eggert@twinsun.com>
3935
3936         Merge argmatch cleanups from Bison.  Assume C89.
3937
3938         * argmatch.c: Include config.h here, not in argmatch.h.
3939         Include stdlib.h, for EXIT_FAILURE.
3940         Always include <string.h>, since we assume C89.
3941         (EXIT_FAILURE): Remove pre-C89 bug workaround.
3942         * argmatch.h: Do not include <config.h> or <sys/types.h>.
3943         Include <stddef.h> instead, since it's all we need for size_t.
3944         (PARAMS): Remove.  All uses removed.
3945         (ARRAY_CARDINALITY): Do not bother to #undef.
3946         (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
3947         ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
3948         Remove unnecessary parentheses.
3949         (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
3950         Insert necessary parentheses.
3951         (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
3952         (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
3953
3954 2002-11-19  Bruno Haible  <bruno@clisp.org>
3955
3956         * mbswidth.c: Include mbswidth.h right at the beginning.
3957         * mbswidth.h: Include <stddef.h>, for size_t.
3958
3959         * mbswidth.h (PARAMS): Remove macro.
3960         (mbswidth, mbsnwidth): Use ANSI C function declarations.
3961         * mbswidth.c (mbswidth, mbsnwidth): Likewise.
3962
3963         * gcd.h (PARAMS): Remove macro.
3964         (gcd): Use ANSI C function declarations.
3965         * gcd.c (gcd): Likewise.
3966
3967 2002-11-15  Bruno Haible  <bruno@clisp.org>
3968
3969         * strcspn.c: Include <stddef.h>.
3970         (strcspn): Use ANSI C function declaration. Change return type to
3971         size_t. Use NULL.
3972         * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
3973         (strpbrk): Use NULL.
3974         * strpbrk.h (PARAMS): Remove macro.
3975         (strpbrk): Use ANSI C function declaration.
3976         * strstr.c: Don't include <sys/types.h>.
3977         * strstr.h (PARAMS): Remove macro.
3978         (strstr): Use ANSI C function declarations.
3979
3980 2002-11-06  Bruno Haible  <bruno@clisp.org>
3981
3982         * gcd.h (gcd): Change argument type to 'unsigned long'.
3983         * gcd.c (gcd): Likewise.
3984
3985 2002-11-05  Bruno Haible  <bruno@clisp.org>
3986
3987         * gcd.h: New file, from gettext-0.11.5.
3988         * gcd.c: New file, from gettext-0.11.5.
3989
3990 2002-11-05  Bruno Haible  <bruno@clisp.org>
3991
3992         * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
3993         * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
3994         * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
3995         * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
3996
3997         * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
3998         * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
3999
4000         * closeout.c: Include gettext.h instead of <libintl.h>.
4001         * human.c: Include gettext.h instead of <libintl.h>.
4002         * quotearg.c: Include gettext.h instead of <libintl.h>.
4003         * rpmatch.c: Include gettext.h instead of <libintl.h>.
4004         * unicodeio.c: Include gettext.h instead of <libintl.h>.
4005         * userspec.c: Include gettext.h instead of <libintl.h>.
4006         * version-etc.c: Include gettext.h instead of <libintl.h>.
4007         * xmalloc.c: Include gettext.h instead of <libintl.h>.
4008         (textdomain): Remove definition.
4009         * xmemcoll.c: Include gettext.h instead of <libintl.h>.
4010
4011         * long-options.c: Remove include of <libintl.h> and definition of _.
4012         * same.c: Remove include of <libintl.h> and definition of _.
4013
4014 2002-11-04  Bruno Haible  <bruno@clisp.org>
4015
4016         * stpcpy.h: New file, from GNU gettext-0.11.5.
4017         * strcase.h: New file, from GNU gettext-0.11.5.
4018         * strpbrk.h: New file, from GNU gettext-0.11.5.
4019         * strstr.h: New file, from GNU gettext-0.11.5.
4020         * xgetcwd.h: New file, from GNU gettext-0.11.5.
4021
4022 2002-05-09  Bruno Haible  <bruno@clisp.org>
4023
4024         * config.charset: Update for newest glibc. Add canonical names
4025         ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
4026
4027 2002-05-09  Bruno Haible  <bruno@clisp.org>
4028
4029         * localcharset.c (get_charset_aliases): Add more Windows specific
4030         aliases.
4031
4032 2002-05-08  Owen Taylor  <otaylor@redhat.com>
4033
4034         * config.charset: A few additions for Solaris.
4035
4036 2001-12-05  Bruno Haible  <bruno@clisp.org>
4037
4038         * localcharset.c (locale_charset): Don't return an empty string.
4039
4040 2001-10-23  Bruno Haible  <haible@clisp.cons.org>
4041
4042         * config.charset: msdos in uk_UA uses CP1125.
4043
4044 2001-08-05  Bruno Haible  <haible@clisp.cons.org>
4045
4046         Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
4047         * localcharset.c (locale_charset): Declare as extern "C".
4048
4049 2002-02-15  Bruno Haible  <bruno@clisp.org>
4050
4051         * config.charset [msdosdjgpp]: For Russian, use CP866.
4052
4053 2002-02-11  Bruno Haible  <bruno@clisp.org>
4054
4055         * config.charset: Add support for NetBSD.
4056
4057 2002-09-25    <karl@gnu.org>
4058
4059         * strdup.c: copy from libc/string (via ../config/srclist*).
4060         * getopt*: copy from libc/posix.
4061         * gettext.h: copy from gettext.
4062         * .cppi-disable: add strdup.c, gettext.h.
4063
4064 2002-07-01  Jim Meyering  <meyering@lucent.com>
4065
4066         * c-stack.c: Include sys/time.h.
4067         From Volker Borchert.
4068
4069 2002-06-11  Paul Eggert  <eggert@twinsun.com>
4070
4071         * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
4072         New macro.  Use it uniformly instead of
4073         (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
4074         It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
4075         reported by Vin Shelton.
4076
4077 2002-06-22  Jim Meyering  <meyering@lucent.com>
4078
4079         * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
4080         redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
4081
4082 2002-06-22  Paul Eggert  <eggert@twinsun.com>
4083
4084         * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
4085         Do not assume SA_SIGINFO behavior.
4086         Bug reported by Jim Meyering on NetBSD 1.5.2.
4087
4088 2002-06-22  Jim Meyering  <meyering@lucent.com>
4089
4090         * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
4091
4092         * exitfail.c, exitfail.h: Likewise.
4093         * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
4094
4095         * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
4096         of fnmatch.h.
4097         (EXTRA_DIST): Add fnmatch_loop.c.
4098         (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
4099
4100         * fnmatch_loop.c: New file, from diffutils-2.8.2.
4101         * fnmatch.c: Update from diffutils-2.8.2.
4102         * fnmatch_.h: New file.  From diffutils-2.8.2.
4103         * fnmatch.h: Remove file.
4104
4105 2002-06-18  Paul Eggert  <eggert@twinsun.com>
4106
4107         * file-type.h: Report an error if neither S_ISREG nor
4108         S_IFREG is defined, instead of using a test specific to glibc
4109         2.2.  This should be safe, since POSIX requires S_ISREG and
4110         Unix Version 7 had S_IFREG.  We don't need to check for
4111         <sys/types.h> since we don't use any symbols that it defines.
4112
4113 2002-06-15  Jim Meyering  <meyering@lucent.com>
4114
4115         * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
4116         For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
4117         have been included before this file.
4118
4119 2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
4120
4121         * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
4122         so that each temporary file name is unique and valid in the first
4123         8 characters, for operation under DOS.
4124
4125 2002-06-15  Jim Meyering  <meyering@lucent.com>
4126
4127         Work even with DJGPP 2.03, which lacks support for symlinks.
4128         From Richard Dawe.
4129         * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
4130         is defined.
4131         * lchown.c (S_ISLNK): Likewise.
4132
4133 2002-06-14  Jim Meyering  <meyering@lucent.com>
4134
4135         * file-type.h: Use the version from diffutils-2.8.2.
4136         * file-type.c: Likewise.
4137
4138 2002-05-27  Jim Meyering  <meyering@lucent.com>
4139
4140         Fix a problem seen only on nonconforming systems whereby ls.c's
4141         use of localtime, and then of gettimeofday would cause trouble:
4142         the localtime call used to initialize rpl_gettimeofday's save
4143         mechanism would clobber ls's current local time information so
4144         that in any long listing the first file would always be listed
4145         with date 1970-01-01.  Analysis by Volker Borchert.
4146
4147         * gettimeofday.c (localtime): Undefine.
4148         (rpl_localtime): New function.
4149
4150 2002-05-22  Jim Meyering  <meyering@lucent.com>
4151
4152         * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
4153         * file-type.h: New file.
4154         * file-type.c (file_type): New file/function.  Extracted from diffutils.
4155
4156 2002-04-29  Paul Eggert  <eggert@twinsun.com>
4157
4158         * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
4159
4160 2002-04-28  Paul Eggert  <eggert@twinsun.com>
4161
4162         * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
4163         depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
4164         of 127, since 64 is the largest conceivable number for ancient
4165         nonstandard hosts.
4166         * sig2str.c: Do not include <sys/wait.h>; no longer needed.
4167
4168 2002-04-28  Jim Meyering  <meyering@lucent.com>
4169
4170         * sig2str.c (WTERMSIG): Remove definition (unused).
4171
4172 2002-04-28  Paul Eggert  <eggert@twinsun.com>
4173
4174         * sig2str.h, sig2str.c: New files.
4175         * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
4176
4177 2002-04-24  Jim Meyering  <meyering@lucent.com>
4178
4179         * gettext.h: New file, from Gettext.
4180         * Makefile.am (INCLUDES): Remove -I../intl.
4181         (libfetish_a_SOURCES): Add gettext.h.
4182
4183 2002-04-16  Jim Meyering  <meyering@lucent.com>
4184
4185         * readutmp.h (UT_TYPE): Remove definition (now in who.c).
4186         (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
4187         (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
4188
4189 2002-04-12  Jim Meyering  <meyering@lucent.com>
4190
4191         * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
4192
4193 2002-03-10  Jim Meyering  <meyering@lucent.com>
4194
4195         * makepath.c (make_path): Remove a comma from a diagnostic.
4196         Suggestion from Santiago Vila.
4197
4198 2002-03-08  Jim Meyering  <meyering@lucent.com>
4199
4200         * rename.c: Mention that this wrapper is needed also on
4201         mips-dec-ultrix4.4 systems.
4202
4203 2002-03-02  Jim Meyering  <meyering@lucent.com>
4204
4205         * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
4206         not HAVE_CLOCK_SETTIME.
4207
4208 2002-02-27  Paul Eggert  <eggert@twinsun.com>
4209
4210         * nanosleep.h: Rename to....
4211         * timespec.h: New name for nanosleep.h.  All uses changed.
4212
4213         * gettime.c: New file.
4214         * settime.c: New file.
4215         * stime.c: Remove.
4216
4217         * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
4218         timespec.h.  Remove nanosleep.h.
4219
4220 2002-02-25  Paul Eggert  <eggert@twinsun.com>
4221
4222         * acl.c, acl.h: New files.
4223         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
4224
4225 2002-02-24  Jim Meyering  <meyering@lucent.com>
4226
4227         * strnlen.c (strnlen): Define-away/undef so that an inconsistent
4228         prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
4229         cause trouble.  Reported by Nelson Beebe.
4230
4231 2002-02-23  Paul Eggert  <eggert@twinsun.com>
4232
4233         * path-concat.c (xpath_concat): Reorder code to pacify
4234         compilers that don't know that xalloc_die never returns.
4235
4236 2002-02-20  Jim Meyering  <meyering@lucent.com>
4237
4238         * getdate.c: Regenerate using bison-1.33.
4239
4240 2002-02-15  Paul Eggert  <eggert@twinsun.com>
4241
4242         * posixver.c, posixver.h: New files.
4243         * Makefile.am (libfetish_a_SOURCES): Add them.
4244
4245 2002-02-02  Paul Eggert  <eggert@twinsun.com>
4246             Bruno Haible  <bruno@clisp.org>
4247
4248         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
4249         (fwrite_success_callback): New declaration.
4250         * unicodeio.c (unicode_to_mb): New function, extracted from
4251         print_unicode_char. Call failure callback instead of error.
4252         (fwrite_success_callback): New function.
4253         (exit_failure_callback): New function.
4254         (fallback_failure_callback): New function.
4255         (print_unicode_char): Call unicode_to_mb.
4256
4257 2002-01-26  Jim Meyering  <meyering@lucent.com>
4258
4259         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
4260
4261 2002-01-22  Jim Meyering  <meyering@lucent.com>
4262
4263         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
4264         Otherwise, some versions of automake would omit the rule that makes
4265         Makefile from Makefile.in.
4266
4267 2001-01-21  Paul Eggert  <eggert@twinsun.com>
4268
4269         * xmemcoll.h, xmemcoll.c: New files.
4270         * Makefile.am (libfetish_a_SOURCES): Add them.
4271         * memcoll.c: Include errno.h, and declare errno if not defined.
4272         (memcoll): Set errno to zero if there is no error.
4273
4274         * quotearg.c (quotearg_buffer_restyled):
4275         Fix bug with quoting buffers containing NUL when backslashing escapes.
4276         This bug was exposed by the other changes in this patch.
4277         (quotearg_n_options): New arg ARGSIZE.
4278         All callers changed.
4279         (quoting_options_from_style): New function.
4280         (quotearg_n_style): Use it.
4281         (quotearg_n_style_mem): New function.
4282
4283         * quotearg.h (quotearg_n_style_mem): New function.
4284
4285 2002-01-16  Jim Meyering  <meyering@lucent.com>
4286
4287         * getdate.y: Add three semicolons, each just before a closing brace.
4288         Bison (as of version 1.31) no longer papers over that mistake.
4289
4290 2002-02-14  Paul Eggert  <eggert@twinsun.com>
4291
4292         * backupfile.c (ISDIGIT): Comment fix.
4293         * getdate.y (ISDIGIT): Likewise.
4294         * posixtm.c (ISDIGIT, year): Likewise.
4295         * strverscmp.c (ISDIGIT): Likewise.
4296         * userspec.c (ISDIGIT): Likewise.
4297
4298 2002-01-05  Jim Meyering  <meyering@lucent.com>
4299
4300         * version-etc.c (version_etc_copyright): Update copyright year.
4301
4302 2001-01-19  Paul Eggert  <eggert@twinsun.com>
4303
4304         * closeout.c (close_stdout_status): If ferror (stdout), do
4305         not silently exit merely because the output buffer happens to
4306         have nothing pending.
4307
4308 2001-12-18  Paul Eggert  <eggert@twinsun.com>
4309
4310         See the big note in ../ChangeLog.
4311         * human.c (suffixes): Prefer K to k for 1024.
4312         (generate_suffix_backwards): New function.
4313         (human_readable_inexact): Use it.
4314         * xstrtol.c (__xstrtol): If there is no number but there
4315         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
4316         Accept 'K' as well as 'k'.
4317
4318 2001-12-15  Jim Meyering  <meyering@lucent.com>
4319
4320         * regex.h (__restrict_arr): Update from libc.
4321
4322         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
4323         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
4324         (STREQ): Define.
4325
4326 2001-12-10  Jim Meyering  <meyering@lucent.com>
4327
4328         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
4329         Instead, include "xalloc.h".
4330         (initbuffer): Don't cast xmalloc return value to char*.
4331         (readline): Reword comment.
4332         Don't cast xrealloc return value to char*
4333         Return NULL, not 0.
4334
4335 2001-12-09  Jim Meyering  <meyering@lucent.com>
4336
4337         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
4338         `signed and unsigned type in conditional expression'.
4339         * posixtm.c (posix_time_parse): Likewise.
4340
4341         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
4342
4343         * readtokens.c (readtoken): Declare an index to be of type unsigned
4344         to avoid a pedantic warning.
4345
4346         * getstr.c: Don't include assert.h.
4347         (getstr): Remove warning-evoking assertions.
4348         Return -1 if offset parameter is out of bounds.
4349         Change the type of a local from int to size_t.
4350
4351         * strftime.c (my_strftime_localtime_r): Include this function
4352         definition in the `#if ! HAVE_TM_GMTOFF' block.
4353
4354         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
4355         Include xalloc.h instead.
4356
4357 2001-12-02  Jim Meyering  <meyering@lucent.com>
4358
4359         * tempname.c: Don't declare getenv, thus reverting the change of
4360         2001-11-18.  It's no longer necessary, now that stdlib.h is always
4361         included.
4362
4363         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
4364         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
4365
4366 2001-11-30  Akim Demaille  <akim@epita.fr>
4367
4368         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
4369         before being defined.
4370
4371 2001-11-27  Paul Eggert  <eggert@twinsun.com>
4372
4373         * quotearg.h (quotearg_n, quotearg_n_style):
4374         First arg is int, not unsigned.
4375         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
4376         (SIZE_MAX, UINT_MAX): New macros.
4377         (quotearg_n_options): Abort if N is negative.
4378         Avoid overflow check on hosts where size_t is 64 bits and int
4379         is 32 bits, as overflow is impossible there.
4380         Fix off-by-one typo that caused unnecessary reallocation.
4381
4382 2001-11-27  Jim Meyering  <meyering@lucent.com>
4383
4384         * tempname.c: Merge with version from libc.
4385         * regex.c: Likewise.
4386
4387         * tempname.c: Include stdlib.h unconditionally.  On some old systems
4388         for which STDC_HEADERS is 0, it was not included, resulting in a
4389         warning about an integer-to-pointer conversion problem with getenv.
4390         Reported by Volker Borchert.
4391
4392 2001-11-26  Jim Meyering  <meyering@lucent.com>
4393
4394         * gtod.h: Remove file.
4395         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
4396         * gettimeofday.c: Don't include gtod.h.
4397         (GTOD_init): Remove function.
4398         (rpl_gettimeofday): Do its job here instead, rather than aborting.
4399         Suggestion from Volker Borchert.
4400
4401 2001-11-23  Jim Meyering  <meyering@lucent.com>
4402
4403         * hash.h (struct hash_table): Don't define here.  Merely declare it.
4404         * hash.c (struct hash_table): Define it here instead.
4405
4406 2001-11-22  Jim Meyering  <meyering@lucent.com>
4407
4408         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
4409
4410 2001-11-18  Paul Eggert  <eggert@twinsun.com>
4411
4412         * tempname.c (TMP_MAX): Remove; no longer needed.
4413         (TEMPORARIES): New macro.
4414         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
4415         removes an artificial limitation (e.g. HP-UX 10.20, where
4416         TMP_MAX is 17576).
4417
4418 2001-11-18  Jim Meyering  <meyering@lucent.com>
4419
4420         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
4421         on SunOS 4.
4422
4423         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
4424         files will be created before anything else.
4425
4426 2001-11-17  Jim Meyering  <meyering@lucent.com>
4427
4428         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
4429         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
4430         rather than group writable.  Patch by Juan F. Codagnone.
4431
4432         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
4433         Instead, include "xalloc.h".
4434
4435         * mountlist.c: Include unlocked-io.h after all system headers.
4436         Remove explicit declarations of xmalloc, xrealloc,
4437         and xstrdup.  Instead, include "xalloc.h".
4438
4439         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
4440         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
4441         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
4442
4443         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
4444         Reported by Padraig Brady.
4445
4446         * mkstemp.c: #undef mkstemp.
4447         Include config.h.
4448         (rpl_mkstemp): Rename from mkstemp.
4449         Protoize.
4450
4451 2001-11-16  Jim Meyering  <meyering@lucent.com>
4452
4453         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
4454         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
4455         determine the amount of total physical memory, use pstat_getstatic.
4456         HPUX-11 doesn't define _SC_PHYS_PAGES.
4457         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
4458         If sysconf couldn't be used to determine the amount of available
4459         physical memory, use both pstat_getstatic and pstat_getdynamic.
4460         Based on a patch from Bob Proulx.
4461
4462 2001-11-05  Jim Meyering  <meyering@lucent.com>
4463
4464         * xstat.in (slash_aware_lstat): Correct a misleading comment.
4465
4466 2001-11-03  Jim Meyering  <meyering@lucent.com>
4467
4468         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
4469         in argmatch_to_argument call.
4470
4471         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
4472         argument.
4473
4474         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
4475         e.g., a fault due to an attempt to free a NULL pointer.
4476
4477 2001-11-01  Jim Meyering  <meyering@lucent.com>
4478
4479         * dirfd.c, dirfd.h: New files.
4480         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
4481
4482         * hash.c (hash_print) [TESTING]: Clean up.
4483
4484 2001-10-22  Paul Eggert  <eggert@twinsun.com>
4485
4486         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
4487         to avoid a warning if -Wall.
4488
4489 2001-10-21  Paul Eggert  <eggert@twinsun.com>
4490
4491         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
4492
4493 2001-10-21  Jim Meyering  <meyering@lucent.com>
4494
4495         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
4496         this code would end up calling gettext even in packages built
4497         with --disable-nls.
4498         * getopt.c (_): Likewise.
4499         * regex.c (_): Likewise.
4500
4501 2001-10-20  Paul Eggert  <eggert@twinsun.com>
4502
4503         * error.c (strerror_r): Do not declare unless !_LIBC.
4504         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
4505         Use strerror_r that is only a macro, even if it is not a function.
4506         (strerror): Check for HAVE_DECL_STRERROR before declaring.
4507         (private_strerror): Use prototypes, not old-style function definition.
4508         (print_errno_message): New function.
4509         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
4510         char*-flavored one.
4511         (error_tail, error, error_at_line): Use it.
4512
4513 2001-10-11  Jim Meyering  <meyering@lucent.com>
4514
4515         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
4516         and quote_n (1, ... to avoid clobbering a buffer.
4517
4518 2001-10-05  Jim Meyering  <meyering@lucent.com>
4519
4520         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
4521         * hash-pjw.c: New file (factored out of fileutils' remove.c).
4522         * hash-pjw.h: New file.
4523
4524 2001-09-30  Jim Meyering  <meyering@lucent.com>
4525
4526         * mountlist.c [MOUNTED_GETFSSTAT]:
4527         Include <sys/ucred.h>, for Apple Darwin.
4528         Include sys/mount.h and sys/fs_types.h only if available.
4529         (FS_TYPE): Define.
4530         (read_filesystem_list): Use FS_TYPE.
4531
4532 2001-09-29  Paul Eggert  <eggert@twinsun.com>
4533
4534         * exclude.c (excluded_filename): 0 -> false, since it's
4535         a boolean context.
4536
4537 2001-09-28  Paul Eggert  <eggert@twinsun.com>
4538
4539         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
4540         #defines strtoimax.  Also treat the other strto* functions
4541         like strtoimax.
4542
4543         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
4544         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
4545         (strtoimax, strtoumax): Do not declare if already defined as a macro.
4546
4547 2001-09-26  Jim Meyering  <meyering@lucent.com>
4548
4549         Most macros in unlocked-io.h had the wrong number of arguments.
4550         * gen-uio: New script.
4551         (USE_UNLOCKED_IO): Define to 1 if not already defined.
4552         * unlocked-io.hin: Remove file.
4553         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
4554         rather than trying to embed it here.
4555         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
4556         Reported by Padraig Brady.
4557
4558 2001-09-25  Volker Borchert  <bt@teknon.de>
4559
4560         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
4561
4562 2001-09-23  Jim Meyering  <meyering@lucent.com>
4563
4564         * mountlist.c: Remove useless parentheses in #if directives.
4565         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
4566         the deprecated MOUNTED symbol is no longer defined in mntent.h.
4567
4568 2001-09-22  Jim Meyering  <meyering@lucent.com>
4569
4570         * localcharset.c: Update from latest gettext.
4571         * config.charset: Likewise.
4572
4573 2001-09-20  Jim Meyering  <meyering@lucent.com>
4574
4575         * xstrtol.c (strtoimax): Guard declaration with
4576         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
4577         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
4578         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
4579         (strtoumax): Likewise, for completeness (it wasn't necessary).
4580
4581 2001-09-06  Paul Eggert  <eggert@twinsun.com>
4582
4583         * strtoimax.c (HAVE_LONG_LONG):
4584         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
4585         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
4586         to work around bug in IBM C compiler.
4587
4588 2001-09-16  Jim Meyering  <meyering@lucent.com>
4589
4590         * mkdir.c: New file.
4591
4592 2001-09-04  Paul Eggert  <eggert@twinsun.com>
4593
4594         * xgetcwd.c: Revert some of the previous change; intead,
4595         fix the HAVE_GETCWD_NULL code to behave more like the
4596         !HAVE_GETCWD_NULL code used to.
4597
4598         Include "xalloc.h".
4599         (xgetcwd): Do not return NULL when memory is exhausted; instead,
4600         invoke xalloc_die.
4601
4602 2001-09-04  Paul Eggert  <eggert@twinsun.com>
4603
4604         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
4605         Use ssize_t, not int, to store result of readlink.
4606         Check for ssize_t overflow as well as size_t overflow,
4607         as POSIX says the result of readlink is implementation-defined
4608         when ssize_t overflows.
4609         Remove unnecessary cast to char*.
4610         Use free+malloc instead of realloc, as the storage doesn't need
4611         to be preserved and it's clearer and can be more efficient that way.
4612         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
4613         * xreadlink.h (xreadlink): Update prototype.
4614
4615 2001-09-03  Paul Eggert  <eggert@twinsun.com>
4616
4617         * exclude.c (fnmatch_no_wildcards): Fix confusion between
4618         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
4619         spotted by Jim Meyering.
4620
4621 2001-09-03  Jim Meyering  <meyering@lucent.com>
4622
4623         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
4624
4625 2001-09-03  Paul Eggert  <eggert@twinsun.com>
4626
4627         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
4628         like the HAVE_GETCWD_NULL code.
4629         Include pathmax.h if not HAVE_GETCWD.
4630         Do not include xalloc.h.
4631         (INITIAL_BUFFER_SIZE): New symbol.
4632         Do not use xmalloc / xrealloc, since the caller is responsible for
4633         handling errors.  Preserve errno around `free' during failure.
4634         Do not overrun buffer when using getwd.
4635
4636 2001-09-03  Paul Eggert  <eggert@twinsun.com>
4637
4638         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
4639         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
4640
4641 2001-09-02  Jim Meyering  <meyering@lucent.com>
4642
4643         * error.c: Update from GNU libc.
4644
4645 2001-09-01  Jim Meyering  <meyering@lucent.com>
4646
4647         * xreadlink.c: New file.
4648         * xreadlink.h: New file.
4649         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
4650
4651         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
4652         doesn't conflict with sparc Solaris 7's definition in
4653         /usr/include/sys/int_types.h.
4654
4655         * exclude.c: Use `""', not `<>' to #include non-system header files.
4656         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
4657         and strncasecmp as r-values.  Unixware didn't have declarations.
4658
4659 2001-08-31  Jim Meyering  <meyering@lucent.com>
4660
4661         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
4662         Use an initial, malloc'd, buffer of length 128 rather than
4663         a statically allocated one of length 1024.
4664
4665 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4666
4667         * xgetcwd.c: Don't include pathmax.h.
4668         Include stdlib.h and unistd.h if available.
4669         Include xalloc.h.
4670         (xmalloc, xstrdup, free): Remove decls.
4671         (xgetcwd): Don't assume sizes fit in unsigned.
4672         Check for overflow when computing sizes.
4673         Simplify reallocation code.
4674
4675 2001-08-28  Paul Eggert  <eggert@twinsun.com>
4676
4677         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
4678
4679         * strtoimax.c: Renamed from strtoxmax.c, removing the
4680         old strtoimax.c.
4681
4682         Also, make the following further changes to make this file's
4683         configuration more similar to that of strtol.c:
4684         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
4685         (strtoumax, uintmax_t, strtoull, strtol): Remove.
4686         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
4687         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
4688         changed to signed values.
4689
4690         And make the following changes as well:
4691         Fix copyright notice, as 1999 was missing.
4692         (verify): New macro.
4693         (strtoimax): Check sizes at compile-time, not run-time.
4694         Prefer strtol to strtoll if both work.
4695         (main): Remove; it was not that useful and was a pain to maintain.
4696
4697         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
4698
4699 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4700
4701         * savedir.c (savedir): Remove size parameter, as POSIX says that
4702         a directory's st_size can have an arbitrary value, so the old
4703         usage could waste an arbitrary amount of memory.  All uses
4704         changed.
4705         * savedir.h: Update prototype.
4706
4707 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4708
4709         * xstrtol.c (strtoimax): New decl.
4710
4711 2001-08-28  Paul Eggert  <eggert@twinsun.com>
4712
4713         * xstrtol.h: Add copyright notice.
4714         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
4715         LONGINT_INVALID_SUFFIX_CHAR.
4716
4717 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4718
4719         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
4720         tm to be declared.
4721
4722 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4723
4724         * hash.c: Remove '2001' from copyright notice.
4725
4726 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4727
4728         * full-write.h: New file.
4729         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
4730         * full-write.c: Correct credits, as cccp.c no longer
4731         exists and anyway it was so heavily changed from the old cccp
4732         code as to be unrecognizable.  Include full-write.h.
4733         (full_write) Return size_t, with short writes meaning failure.
4734         All callers changed.  This fixes a bug with large buffers
4735         on 64-bit hosts.
4736         * utime.c: Include full-write.h.
4737
4738 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4739
4740         Merge 'exclude' changes from tar 1.13.22.
4741         This fixes one or two unlikely storage allocation overflow bugs,
4742         but doesn't change user-visible behavior otherwise.
4743
4744 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4745
4746         * exclude.c (bool): Declare, perhaps by including stdbool.h.
4747         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
4748         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
4749         Include if available.
4750         (<xalloc.h>): Include
4751         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
4752         (verify): New macro.  Use it to verify that EXCLUDE macros do not
4753         collide with FNM macros.
4754         (struct patopts): New struct.
4755         (struct exclude): Use it, as exclude patterns now come with options.
4756         (new_exclude): Support above changes.
4757         (new_exclude, add_exclude_file):
4758         Initial size must now be a power of two to simplify overflow checking.
4759         (free_exclude, fnmatch_no_wildcards): New function.
4760         (excluded_filename): No longer requires options arg, as the options
4761         are determined by add_exclude.  Now returns bool, not int.
4762         (excluded_filename, add_exclude):
4763         Add support for the fancy new exclusion options.
4764         (add_exclude, add_exclude_file): Now takes int options arg.
4765         Check for arithmetic overflow when computing sizes.
4766         (add_exclude_file): xrealloc might modify errno, so don't
4767         realloc until after errno might be used.
4768
4769         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
4770         New macros.
4771         (free_exclude): New decl.
4772         (add_exclude, add_exclude_file): Now takes int options arg.
4773         (excluded_filename): No longer requires options arg, as the options
4774         are determined by add_exclude.  Now returns bool, not int.
4775
4776 2001-08-30  Paul Eggert  <eggert@twinsun.com>
4777
4778         * alloca.c (alloca): Arg is of type size_t, not unsigned.
4779
4780 2001-08-27  Jim Meyering  <meyering@lucent.com>
4781
4782         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
4783
4784         * version-etc.c (N_): Remove definition.
4785         Revert most of last change.
4786         Instead, simply don't mark the `Copyright...' string for translation.
4787         Based on advice from Paul Eggert.
4788
4789         * strtoxmax.c: Tweak comment.
4790
4791 2001-08-26  Jim Meyering  <meyering@lucent.com>
4792
4793         * version-etc.c (version_etc_copyright_fmt): Replace literal year
4794         of copyright with `%s' so translators don't get an untranslated
4795         message in 2002.
4796         (COPYRIGHT_YEAR): Define.
4797         (version_etc): Use fprintf rather than fputs.
4798         Suggestion from Ulrich Drepper.
4799
4800         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
4801
4802         * strtoll.c: New file, from GNU libc.
4803         * xstrtoimax.c: New file.
4804
4805         * xstrtol.h: Add xstrtoimax.
4806         * strtoumax.c: New file.  Simply include "strtoumax.c".
4807         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
4808
4809         * strtoumax.c: Factor to work both for unsigned and signed types, ...
4810         * strtoxmax.c: ... then renamed to this.
4811
4812 2001-08-13  Paul Eggert  <eggert@twinsun.com>
4813
4814         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
4815         Port to Solaris 8, where 'sed' requires a space after the 'r'
4816         command, and where sh dislikes "$/".  Clean up the spacing a bit.
4817         Redirect output to $tmp just once.
4818
4819 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
4820
4821         * addext.c (<errno.h>): Include.
4822         (errno): Declare if not defined.
4823         (addext): Work correctly when pathconf returns -1 and leaves
4824         errno alone because there is no limit.  Also, work even if
4825         pathconf returns a value greater than SIZE_MAX.
4826
4827 2001-08-12  Jim Meyering  <meyering@lucent.com>
4828
4829         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
4830         Simply `return getcwd (NULL, 0);'.
4831         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
4832         Use 1300 as initial value for length, not PATH_MAX.
4833
4834         * pathmax.h: Clean up cpp syntax.
4835
4836 2001-08-12  Jim Meyering  <meyering@lucent.com>
4837
4838         * gettimeofday.c: New file.
4839         * gtod.h: New file.
4840         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
4841
4842 2001-08-04  Jim Meyering  <meyering@lucent.com>
4843
4844         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
4845         to get in sync with glibc.
4846
4847 2001-08-03  Paul Eggert  <eggert@twinsun.com>
4848
4849         The following changes are from gettext 0.10.39 as maintained by
4850         Bruno Haible.
4851
4852         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
4853         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
4854         with inverted sense.  All uses changed.
4855
4856         * mbswidth.c: Don't include <limits.h>.
4857         Include <stdlib.h> and <string.h> unconditionally.
4858         (iswcntrl, mbsinit, ISCNTRL): New macros.
4859         (mbsnwidth): Use K&R style function declarations.
4860         Don't bother checking for MB_LEN_MAX == 1, since the compiler
4861         can optimize it when MB_CUR_MAX == 1.
4862         The width of control characters is zero, not 1.
4863
4864 2001-07-15  Jim Meyering  <meyering@lucent.com>
4865
4866         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
4867         (BUILT_SOURCES): Add unlocked-io.h.
4868         (io_functions): Define.
4869         (unlocked-io.h): New rule.
4870         (DISTCLEANFILES): Add unlocked-io.h.
4871         (all-local): Depend on unlocked-io.h, to ensure it is created.
4872
4873         * unlocked-io.hin: New file
4874
4875         * regex.c: Update from glibc.
4876
4877 2001-07-05  Jim Meyering  <meyering@lucent.com>
4878
4879         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
4880         recommendation.
4881         (libfetish_a_SOURCES): Put all .h files here instead.
4882         Remove a thus-exposed (better checks in automake) duplicate and
4883         two unnecessary .h files.
4884
4885 2001-06-11  Jim Meyering  <meyering@lucent.com>
4886
4887         * regex.c: Update from GNU libc.
4888
4889 2001-05-27  Jim Meyering  <meyering@lucent.com>
4890
4891         * readutmp.h (UT_TYPE): Define.
4892
4893 2001-05-24  Jim Meyering  <meyering@lucent.com>
4894
4895         * argmatch.c: Include "quote.h".
4896         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
4897         quote function.  Reported by Göran Uddeborg.
4898
4899 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
4900
4901         * dirname.c (dir_name): Compute append_dot using path, not newpath
4902         which is not yet declared.
4903
4904 2001-05-11  Paul Eggert  <eggert@twinsun.com>
4905
4906         * Makefile.am (libfetish_a_SOURCES):
4907         Add strftime.c, since we now compile it on all hosts.
4908
4909         * strftime.c (my_strftime):
4910         Define to nstrftime if emacs, but only if my_strftime is not defined.
4911         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
4912         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
4913         Add one more extra argument: a nanoseconds value.
4914         All uses changed.
4915         (ns): New macro.
4916         (my_strftime function): Add %N format.
4917         (emacs_strftimeu): Renamed from emacs_strftime,
4918         with extra ut argument.
4919
4920 2001-05-11  Paul Eggert  <eggert@twinsun.com>
4921
4922         dirname code cleanup.  base_name now behaves more compatibly
4923         with POSIX basename when given file names that have trailing
4924         slashes, and similarly for dir_name.  Add new primitives
4925         base_len and dir_len.  Put the directory-name-related decls
4926         into dirname.h.
4927
4928         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
4929         * backupfile.c (base_name): Likewise.
4930         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
4931         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
4932         * makepath.c (strip_trailing_slashes): Likewise.
4933         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
4934         Likewise.
4935         * rename.c (strip_trailing_slashes): Likewise.
4936         * same.c (base_name): Likewise.
4937         * stripslash.c (ISSLASH): Likewise.
4938
4939         * addext.c: Include <dirname.h> after size_t is defined.
4940         * backupfile.c: Likewise.
4941
4942         * addext.c (addext): Use base_len to trim redundant
4943         trailing slashes instead of doing it ourselves.
4944         But do not trim the last slash if it is not redundant.
4945
4946         * backupfile.c (find_backup_file_name,
4947         max_backup_version): Use base_len instead of rolling it ourselves.
4948         Handle the case of "" and (on DOS) "C:" correctly.
4949
4950         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
4951         Include <string.h>, <dirname.h>.
4952         (base_name): Allow file names ending in slashes, other than names
4953         that are all slashes.  In this case, return the basename followed
4954         by the slashes.  This is more general, and can be used in places
4955         where the original base_name purposely had an assertion failure.
4956         (base_len): New function.
4957
4958         * dirname.c: Include <string.h> instead of <stdlib.h>.
4959         Do not include <assert.h>; no longer needed.
4960         Include xalloc.h.
4961         (memrchr): Remove decl.
4962         (dir_name_r): Remove.
4963         (dir_len): Renamed from dirlen.  All callers changed.
4964         Rewrite in terms of base_name, for simplicity and consistency.
4965         (dir_name): Never return NULL.  All callers changed.
4966         Do not include <stdlib.h> in test program; no longer needed.
4967         return 0; is fine for test program.
4968
4969         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
4970         New macros.
4971         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
4972
4973         * path-concat.c (path_concat): Use base_len to compute
4974         base length, not strlen; this means we cannot rely on memcpy
4975         to null-terminate.
4976
4977         * same.c (STREQ): Remove.
4978         (same_name): Handle the case where the basename ends in trailing '/'.
4979
4980         * stripslash.c (strip_trailing_slashes): Return nonzero if
4981         a slash was stripped.  Do not strip the last slash after a
4982         file system prefix.
4983
4984 2001-04-08  Jim Meyering  <meyering@lucent.com>
4985
4986         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
4987         recomputed; that's necessary when the offset spans a DST transition.
4988         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
4989
4990 2001-04-02  Jim Meyering  <meyering@lucent.com>
4991
4992         * regex.h, regex.c: Update from GNU libc.
4993
4994 2001-03-19  Paul Eggert  <eggert@twinsun.com>
4995
4996         * version-etc.c (version_etc_copyright): Update to 2001.
4997
4998 2001-03-16  Paul Eggert  <eggert@twinsun.com>
4999
5000         * tempname.c (uint64_t): Define to uintmax_t if
5001         not defined, and if UINT64_MAX is not defined.
5002         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
5003         Reported by John David Anglin.
5004
5005 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
5006
5007         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
5008         alias if codeset is empty.
5009         * config.charset (BeOS): Use wildcard syntax.
5010
5011 2001-03-13  Jim Meyering  <meyering@lucent.com>
5012
5013         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
5014         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
5015         From Bruno Haible.
5016
5017 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
5018
5019         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
5020         Don't return NULL.
5021         * unicodeio.c (print_unicode_char): Simplify accordingly.
5022
5023 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
5024
5025         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
5026         support for DOS/DJGPP.
5027
5028 2001-02-28  Paul Eggert  <eggert@twinsun.com>
5029
5030         * Makefile.am (libfetish_a_SOURCES):
5031         Add dup-safer.c, fopen-safer.c.
5032         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
5033
5034         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
5035
5036 2001-02-25  Paul Eggert  <eggert@twinsun.com>
5037
5038         The mkstemp replacement is taken from glibc 2.2.2, with some
5039         portability fixes for use outside glibc, as follows:
5040
5041         * tempname.c (struct_stat64): New macro.
5042         (direxists, __gen_tempname): Use it.
5043         This avoids a portability problem with Solaris 8.
5044
5045         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
5046         (<stddef.h>, <stdint.h>, <string.h>):
5047         Include only if STDC_HEADERS || _LIBC.
5048         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
5049         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
5050         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
5051         (__set_errno): Define this macro if <errno.h> doesn't.
5052         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
5053         Define these macros if <stdio.h> doesn't.
5054         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
5055         Define these macros if <sys/stat.h>
5056         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
5057         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
5058         __xstat64): Define if not _LIBC.
5059         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
5060         (__gen_tempname): Invoke gettimeofday only if
5061         HAVE_GETTIMEOFDAY || _LIBC;
5062         otherwise, fall back on plain "time".
5063         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
5064
5065         * mkstemp.c (__GT_FILE): Define to zero if not defined.
5066
5067         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
5068
5069 2001-02-17  Jim Meyering  <meyering@lucent.com>
5070
5071         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
5072         around included file name.
5073
5074         * strnlen.c (__strnlen): Merge in a change from GNU libc.
5075
5076         * strftime.c: Update from GNU libc (the only changes were to comments).
5077
5078 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
5079
5080         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
5081
5082 2001-02-17  Paul Eggert  <eggert@twinsun.com>
5083
5084         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
5085         Remove workaround macros for hosts that have mbrtowc but not
5086         mbstate_t, as we now insist on proper declarations for both
5087         before using mbrtowc.
5088
5089 2001-02-17  Jim Meyering  <meyering@lucent.com>
5090
5091         * regex.c: Update from libc.
5092
5093 2001-02-16  Paul Eggert  <eggert@twinsun.com>
5094
5095         * alloca.c (malloc): Undef before defining, since stdlib.h
5096         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
5097         Reported by Mark Hounschell via Paul Eggert.
5098
5099 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
5100
5101         * config.charset: Update for FreeBSD 4.2.
5102
5103 2001-01-26  Jim Meyering  <meyering@lucent.com>
5104
5105         * quotearg.c: Include stddef.h.
5106         * quote.c: Include stddef.h.
5107         Reported by Axel Kittenberger.
5108
5109         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
5110         line in double quotes so that it evokes a better diagnostic.
5111         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
5112         Reported by Axel Kittenberger.
5113
5114 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
5115
5116         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
5117         to avoid a warning.  Add back 'const' to inptr.
5118
5119 2001-01-16  Jim Meyering  <meyering@lucent.com>
5120
5121         * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
5122         From Bruno Haible.
5123
5124 2001-01-14  Jim Meyering  <meyering@lucent.com>
5125
5126         * rename.c: New file.  From Volker Borchert.
5127         Include stdlib.h, string.h or strings.h, and xalloc.h.
5128         Use strip_trailing_slashes rather than open-coding it.
5129
5130 2001-01-03  Paul Eggert  <eggert@twinsun.com>
5131
5132         * strftime.c: Sync with glibc time/strftime.c 1.81.
5133
5134 2001-01-03  Jim Meyering  <meyering@lucent.com>
5135
5136         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
5137         local `inptr' to avoid warning with some system declarations of iconv.
5138
5139 2000-12-29  Paul Eggert  <eggert@twinsun.com>
5140
5141         * modechange.c: Do not assume that mode_t uses the
5142         traditional octal encoding.  E.g. "chmod 1 FOO" should set
5143         the other-execute bit of FOO even if S_IXOTH != 1.
5144
5145         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
5146         WOTH, XOTH, ALLM): New macros.
5147         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
5148          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
5149         Use them.
5150         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
5151         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
5152         (mode_compile):
5153         No need to use uintmax_t; unsigned long is long enough.
5154         Don't bother to get suffix since we don't use it.
5155
5156 2000-12-24  Jim Meyering  <meyering@lucent.com>
5157
5158         * hash.c (is_prime): Return explicit boolean values.
5159         (hash_get_first): Return NULL to appease Irix5.6's 89.
5160         Reported by Nelson Beebe.
5161
5162 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
5163
5164         * localcharset.c (locale_charset): Add support for Win32.
5165
5166 2000-12-18  Paul Eggert  <eggert@twinsun.com>
5167
5168         * physmem.h, physmem.c: New files.
5169
5170         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
5171         (noinst_HEADERS): Add physmem.h.
5172
5173         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
5174         't' for compatibility with Solaris 8 sort.
5175
5176 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
5177
5178         * config.charset: Add support for BeOS.
5179
5180 2000-12-16  Jim Meyering  <meyering@lucent.com>
5181
5182         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
5183         SHELLS_FILE to a file name that's useful on djgpp systems.
5184         Include stdlib.h.
5185         (ADDITIONAL_DEFAULT_SHELLS): Define.
5186         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
5187         Based mostly on a patch from Prashant TR.
5188
5189 2000-12-16  Jim Meyering  <meyering@lucent.com>
5190
5191         This bug had a serious impact on chown: `chown N:M FILE' (for integer
5192         N and M) would have treated it like `chown N:N FILE'.
5193
5194         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
5195
5196 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
5197
5198         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
5199         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
5200         to the list of canonical encodings. Rename EUC-CN to GB2312.
5201
5202 2000-12-08  Andreas Schwab  <schwab@suse.de>
5203
5204         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
5205         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
5206
5207 2000-12-07  Jim Meyering  <meyering@lucent.com>
5208
5209         * stripslash.c (ISSLASH): Define.
5210         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
5211         From Prashant TR.
5212
5213         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
5214         (dir_name_r): Declare this function as static.
5215         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
5216         manifest itself on a name containing a mix of slashes and
5217         backslashes.
5218         Make this function work with names starting with a DOS-style
5219         drive letter and colon prefix.
5220         (dir_name): Append `.' if necessary.
5221         Based mostly on patches from Prashant TR and Eli Zaretskii.
5222
5223         * dirname.h (dir_name_r): Remove prototype.
5224
5225 2000-12-05  Jim Meyering  <meyering@lucent.com>
5226
5227         * dirname.c (dir_name_r): Add `const' in a few local declarations.
5228
5229 2000-12-04  Jim Meyering  <meyering@lucent.com>
5230
5231         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
5232         Also include memory.h, stdlib.h, unistd.h if appropriate.
5233         Reported by Andreas Jaeger (conflicting declaration of malloc).
5234
5235 2000-12-02  Jim Meyering  <meyering@lucent.com>
5236
5237         * closeout.h: Make idempotent, to avoid some obscure warnings.
5238
5239 2000-12-01  Paul Eggert  <eggert@twinsun.com>
5240
5241         * memrchr.c: Include <config.h> before any system include file.
5242
5243 2000-11-29  Paul Eggert  <eggert@twinsun.com>
5244
5245         * dirname.c (dir_name_r): Fix typo: int -> size_t.
5246
5247 2000-11-26  Jim Meyering  <meyering@lucent.com>
5248
5249         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
5250
5251 2000-11-22  Paul Eggert  <eggert@twinsun.com>
5252
5253         * strftime.c (my_strftime): Do not invoke mbrlen with a
5254         size of (size_t) -1; it's not portable.
5255
5256 2000-11-17  Akim Demaille  <akim@epita.fr>
5257
5258         * obstack.h: Formatting changes.
5259         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
5260         prevent type checking.
5261         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
5262         cast the value to (void *): assigning a `foo *' to a `void *'
5263         variable is valid.
5264         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
5265
5266 2000-11-17  Jim Meyering  <meyering@lucent.com>
5267
5268         * strstr.c: Update from GNU libc.
5269
5270 2000-11-16  Jim Meyering  <meyering@lucent.com>
5271
5272         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
5273
5274 2000-11-11  Jim Meyering  <meyering@lucent.com>
5275
5276         * error.c: Add a couple #includes, merging from GNU libc version.
5277
5278 2000-11-10  Jim Meyering  <meyering@lucent.com>
5279
5280         * obstack.h: Update from GNU libc.
5281         * obstack.c: Likewise.
5282
5283 2000-11-06  Paul Eggert  <eggert@twinsun.com>
5284
5285         * getusershell.c (setusershell): Use rewind rather than
5286         fseek/fseeko, to avoid configuration hassles with fseeko.
5287         Don't bother opening SHELLS_FILE if shellstream is NULL;
5288         it's not necessary.
5289
5290 2000-11-05  Jim Meyering  <meyering@lucent.com>
5291
5292         * makepath.h (make_dir): Declare.
5293         * makepath.c (make_dir): Remove `static' attribute.
5294         Tweak a comment.
5295
5296 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
5297
5298         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
5299         last one in a bucket, advance to the next bucket.
5300
5301 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
5302
5303         * fnmatch.c: Do not comment out all the code if we are using
5304         the GNU C library, because in some cases we are replacing buggy
5305         code in the GNU C library itself.
5306
5307 2000-10-30  Paul Eggert  <eggert@twinsun.com>
5308
5309         * error.h, getline.h, modechange.h:
5310         Remove "2000" from Copyright line, as the file hasn't been
5311         changed this year other than in the copyright notice.
5312
5313         * xalloc.h: Add "2000" to Copyright line, as this file
5314         was changed this year.
5315
5316 2000-10-30  Paul Eggert  <eggert@twinsun.com>
5317
5318         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
5319         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
5320         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
5321
5322 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
5323
5324         * regex.h (__restrict_arr): Move definition out of #ifndef block.
5325         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
5326         doesn't define __restrict_arr.
5327
5328 2000-10-29  Jim Meyering  <meyering@lucent.com>
5329
5330         * xstat.in: Fix grammar in comment.
5331
5332 2000-10-28  Jim Meyering  <meyering@lucent.com>
5333
5334         * memchr.c: Update from libc.
5335         Adjust for portability:
5336         [HAVE_STDLIB_H]: Include stdlib.h.
5337         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
5338         Undef __memchr, too.
5339         [!weak_alias]: Define __memchr to memchr.
5340
5341         * regex.c: Update from libc.
5342         * regex.h: Likewise.
5343         * getopt1.c: Likewise.
5344         * memcmp.c: Likewise.
5345
5346         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
5347         Avoid using fseek, when possible -- it's broken by design.
5348         Patch by Ulrich Drepper.
5349
5350 2000-10-26  Jim Meyering  <meyering@lucent.com>
5351
5352         * strftime.c: Update from libc.
5353
5354 2000-10-25  Jim Meyering  <meyering@lucent.com>
5355
5356         * obstack.c: Update from libc.
5357
5358 2000-10-23  Jim Meyering  <meyering@lucent.com>
5359
5360         * hard-locale.c (hard_locale): Revert last change -- it was simply
5361         wrong.  That set_locale call must not have any side effects.
5362         From Paul Eggert.
5363
5364 2000-10-22  Jim Meyering  <meyering@lucent.com>
5365
5366         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
5367         [CYCLIC]: Remove now-unused definition.
5368
5369         * save-cwd.c (O_DIRECTORY): Define, if needed.
5370         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
5371         Suggestion from Ulrich Drepper.
5372
5373 2000-10-21  Jim Meyering  <meyering@lucent.com>
5374
5375         * dirname.c (dir_name_r): New function, factored out of dir_name.
5376         (dir_name): Use dir_name_r.
5377         * dirname.h (dir_name_r): Declare it.
5378
5379 2000-10-21  Jim Meyering  <meyering@lucent.com>
5380
5381         * dirname.c (memrchr): Declare if necessary.
5382         (dir_name): Remove the restriction that there be no
5383         trailing slashes.  Now, this code skips past them, effectively
5384         ignoring them.
5385         [TEST_DIRNAME] (main): New unit tests.
5386
5387         * memrchr.c: New file from GNU libc.
5388         Undef __memrchr, too.
5389         [!weak_alias]: Define __memrchr to memrchr.
5390         Guard weak_alias use with `#ifdef weak_alias'.
5391
5392 2000-10-17  Jim Meyering  <meyering@lucent.com>
5393
5394         * quote.h (PARAMS): Define and use.
5395         Reported by Akim Demaille.
5396
5397         * getopt.c: Update from libc.
5398
5399 2000-10-16  Jim Meyering  <meyering@lucent.com>
5400
5401         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
5402         From Jan Fedak.
5403
5404 2000-09-25  Jim Meyering  <meyering@lucent.com>
5405
5406         * md5.h (rol): Define (from GnuPG).
5407
5408         * sha.c: Give credit (GnuPG) where due.
5409         (M): Use rol rather than open-coding it.
5410         Add a FIXME comment.
5411
5412 2000-09-21  Jim Meyering  <meyering@lucent.com>
5413
5414         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
5415         Reported by Michael Stone.
5416
5417 2000-09-20  Jim Meyering  <meyering@lucent.com>
5418
5419         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
5420         (noinst_HEADERS): Add sha.h.
5421         Based on code from Scott G. Miller and from GnuPG.
5422
5423 2000-09-15  Jim Meyering  <meyering@lucent.com>
5424
5425         * regex.c: Update from libc.
5426
5427 2000-09-10  Jim Meyering  <meyering@lucent.com>
5428
5429         * getopt.c (_getopt_internal): Update from glibc.
5430
5431 2000-09-09  Jim Meyering  <meyering@lucent.com>
5432
5433         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
5434         think it should be used as a general replacement for isascii.
5435         * fnmatch.c: Likewise.
5436         * mbswidth.c: Likewise
5437         * regex.c: Likewise.
5438
5439         Don't use atoi.
5440         * userspec.c: Include sys/param.h and limits.h.
5441         Include xstrtol.h.
5442         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
5443         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
5444         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
5445         UID, GID.  Check range.
5446
5447 2000-09-06  Jim Meyering  <meyering@lucent.com>
5448
5449         * getopt.c (_getopt_internal): Update from glibc.
5450
5451 2000-08-30  Jim Meyering  <meyering@lucent.com>
5452
5453         * strftime.c: Merge in changes from GNU libc.
5454
5455 2000-08-26  Jim Meyering  <meyering@lucent.com>
5456
5457         * closeout.c: Include "__fpending.h".
5458         (close_stdout_status): Return right away if there's nothing to flush.
5459
5460         * Makefile.am (noinst_HEADERS): Add __fpending.h.
5461         * __fpending.c: New file.
5462         * __fpending.h: New file.
5463
5464 2000-08-07  Paul Eggert  <eggert@twinsun.com>
5465
5466         Standardize on "memory exhausted" instead of "Memory exhausted"
5467         or "virtual memory exhausted".
5468         * obstack.c (print_and_abort): Use "memory exhausted", not
5469         "virtual memory exhausted".
5470         * same.c (same_name): Invoke xalloc_die instead of printing
5471         our own message.
5472         * userspec.c (parse_user_spec): Likewise.
5473         * bumpalloc.h: comment fix
5474         * same.c, userspec.c: Include xalloc.h.
5475
5476         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
5477         not char *const and pointing to a constant array.
5478         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
5479         (xrealloc): Comment fix.
5480
5481         * userspec.c (parse_user_spec):
5482         Don't translate a message until just before returning,
5483         to avoid unnecessary translation.
5484
5485 2000-08-07  Jim Meyering  <meyering@lucent.com>
5486
5487         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
5488         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
5489         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
5490         getgroups.c, gethostname.c, getopt.h, group-member.c,
5491         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
5492         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
5493         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
5494         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
5495         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
5496         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
5497         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
5498         yesno.c: Back out Copyright date changes for each file with no change
5499         this year.  This eases coordination with other programs using the same
5500         source code modules.  From Paul Eggert.
5501
5502 2000-08-03  Greg McGary  <greg@mcgary.org>
5503
5504         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
5505         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
5506         (EXTEND_BUFFER): Use them.
5507
5508 2000-08-01  Jim Meyering  <meyering@lucent.com>
5509
5510         * dirname.c (ISSLASH): Define.
5511         (BACKSLASH_IS_PATH_SEPARATOR): Define.
5512         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
5513         both `\' and `/' may be use as path separators.
5514         Based on a patch from Prashant TR.
5515
5516 2000-07-31  Paul Eggert  <eggert@twinsun.com>
5517
5518         * quotearg.c (quotearg_n_options): Don't make the initial
5519         slot vector a constant, since it might get modified.
5520
5521 2000-07-31  Jim Meyering  <meyering@lucent.com>
5522
5523         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
5524         * obstack.c (print_and_abort): Likewise.
5525
5526 2000-07-30  Paul Eggert  <eggert@twinsun.com>
5527
5528         * quotearg.c (quotearg_n_options): Preallocate a slot 0
5529         buffer, so that the caller can always quote one small
5530         component of a "memory exhausted" message in slot 0.
5531         From a suggestion by Jim Meyering.
5532
5533 2000-07-30  Jim Meyering  <meyering@lucent.com>
5534
5535         * makepath.c (make_path): Quote the other instance, too.
5536
5537         * quotearg.c (N_STATIC_SLOTVECS): Define.
5538         (STATIC_BUF_SIZE): Define.
5539         (quotearg_n_options): Use only statically allocated storage when
5540         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
5541         than STATIC_BUF_SIZE.
5542
5543 2000-07-29  Jim Meyering  <meyering@lucent.com>
5544
5545         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
5546         * dirname.c (dir_name): Likewise.
5547
5548         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
5549
5550         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
5551         (dir_name): Assert that there are no trailing slashes.
5552
5553 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
5554
5555         * mbswidth.h (mbswidth): Add a flags argument.
5556         (mbswidth): New declaration.
5557         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
5558         * mbswidth.c (mbswidth): Add a flags argument.
5559         (mbsnwidth): New function.
5560
5561 2000-07-24  Jim Meyering  <meyering@lucent.com>
5562
5563         * mbswidth.c: Remove useless #else.  From Bruno Haible.
5564
5565 2000-07-23  Paul Eggert  <eggert@twinsun.com>
5566
5567         * mbswidth.c (_XOPEN_SOURCE):
5568         Don't define; this causes problems on Solaris 7.
5569         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
5570
5571 2000-07-23  Paul Eggert  <eggert@twinsun.com>
5572
5573         * quotearg.c:
5574         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
5575         so that mbstate_t is always defined.
5576
5577         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
5578         be 1 in at least one GCC installation, and this configuration
5579         error is likely to be common.  Ignoring MB_LEN_MAX hurts
5580         performance on hosts that have mbrtowc but have only unibyte
5581         locales, but I assume these hosts are rare.
5582
5583 2000-07-23  Paul Eggert  <eggert@twinsun.com>
5584
5585         * quotearg.c: Streamline by invoking multibyte code only if needed.
5586         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
5587         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
5588         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
5589         invoke multibyte primitives.
5590
5591 2000-07-23  Jim Meyering  <meyering@lucent.com>
5592
5593         * basename.c (base_name): Add an assertion.
5594
5595 2000-07-15  Bruno Haible  <clisp.cons.org>
5596
5597         * quotearg.c: When the system forces us to redefine mbstate_t,
5598         shadow its mbsinit function.
5599
5600 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
5601
5602         * mbswidth.h: New file.
5603         * mbswidth.c: New file.
5604         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
5605         (noinst_HEADERS): Add mbswidth.h.
5606
5607 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
5608
5609         * config.charset: Add support for FreeBSD. Improve support for HP-UX
5610         and IRIX 6.
5611
5612 2000-07-15  Jim Meyering  <meyering@lucent.com>
5613
5614         * makepath.c: Include quote.h.
5615         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
5616         corresponding argument in a `quote (...)' call.
5617         Give better diagnostics.
5618
5619         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
5620         (noinst_HEADERS): Add quote.h.
5621
5622         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
5623         from tar's src/misc.c.
5624         * quote.h: New file.  Prototypes for same.
5625
5626 2000-07-10  Paul Eggert  <eggert@twinsun.com>
5627
5628         From a suggestion by Bruno Haible.
5629         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
5630         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
5631         to decide whether to define the BeOS workaround macro;
5632         this adjusts to the change to AC_MBSTATE_T.
5633
5634 2000-07-13  Paul Eggert  <eggert@twinsun.com>
5635
5636         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
5637
5638         * quotearg.c (quoting_style_args, quoting_style_vals,
5639         quotearg_buffer_restyled): Add support for
5640         clocale_quoting_style.  Undo previous change to
5641         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
5642         and "{RIGHT QUOTATION MARK}" msgids.
5643
5644 2000-07-05  Paul Eggert  <eggert@twinsun.com>
5645
5646         The old behavior of quoting `like this' doesn't look good with
5647         newer, ISO-style fonts.  See:
5648         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
5649
5650         Instead, quote "like this" by default.  Let the translator
5651         tailor the locale-specific quoting behavior by providing
5652         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
5653
5654         * quotearg.c (N_): New macro.
5655         (gettext_default): New function.
5656         (quotearg_buffer_restyled): Use
5657         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
5658         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
5659
5660 2000-07-09  Jim Meyering  <meyering@lucent.com>
5661
5662         * Most files: Update copyright dates to include 2000.
5663
5664 2000-07-08  Jim Meyering  <meyering@lucent.com>
5665
5666         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
5667         if not defined.
5668         (xgethostname): Remove now-unnecessary #ifdef.
5669         Move declaration of `err' into loop where it's used.
5670
5671 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
5672
5673         * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
5674         by allocating a larger buffer. Test the gethostname return value for
5675         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
5676         returns an error and ENAMETOOLONG isn't defined.
5677
5678 2000-07-05  Paul Eggert  <eggert@twinsun.com>
5679         and Bruno Haible  <haible@clisp.cons.org>
5680
5681         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
5682
5683 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
5684
5685         * quotearg.c (struct quoting_options): Simplify quote_these_too
5686         dimension.
5687
5688 2000-07-03  Jim Meyering  <meyering@lucent.com>
5689
5690         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
5691         Reported by Bruno Haible.
5692
5693 2000-07-04  Jim Meyering  <meyering@lucent.com>
5694
5695         * quotearg.c: Make inclusion of <wchar.h> independent of whether
5696         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
5697         lacks mbrtowc.
5698
5699 2000-07-03  Paul Eggert  <eggert@twinsun.com>
5700         and Bruno Haible  <haible@clisp.cons.org>
5701
5702         * quotearg.c (mbrtowc):
5703         Assign to *pwc, and return 1 only if result is nonzero.
5704         (iswprint): Use ISPRINT when substituting our own mbrtowc.
5705
5706 2000-07-03  Jim Meyering  <meyering@lucent.com>
5707
5708         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
5709         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
5710         From Bob Proulx.
5711
5712 2000-07-02  Jim Meyering  <meyering@lucent.com>
5713
5714         * quotearg.c (mbstate_t): Don't define here.
5715
5716 2000-07-02  Jim Meyering  <meyering@lucent.com>
5717
5718         * nanosleep.c (SIGCONT): Define if not already defined.
5719
5720 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5721
5722         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
5723         per change in ../m4/ls-mntd-fs.m4.
5724         (read_filesystem_list): Ignore symbolic links.
5725
5726 2000-06-29  Jim Meyering  <meyering@lucent.com>
5727
5728         * same.c: Include <string.h> or <strings.h>, as appropriate,
5729         for declaration of strcmp.
5730
5731         * long-options.c: Include <stdlib.h>, for declaration of exit.
5732
5733         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
5734         Avoid warning by casting result to `char *' to remove `const'.
5735
5736 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5737
5738         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
5739
5740 2000-06-26  Paul Eggert  <eggert@twinsun.com>
5741
5742         savedir now sets errno on failure and invokes xmalloc to get memory.
5743         Fix a couple of other minor bugs while we're at it.
5744
5745         * savedir.c (<unistd.h>): Do not include; there's no need.
5746         (NAMLEN): Remove macro.
5747         (malloc, realloc): Remove decls.
5748         (stpcpy): Likewise.
5749         ("xalloc.h"): Include.
5750         (NAME_SIZE_DEFAULT): New macro.
5751         (savedir): Use xmalloc / xrealloc to allocate memory.
5752         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
5753         Skip "" directory entries.
5754         Use strlen to calculate directory entry length, since the old method
5755         is rarely used these days and isn't worth supporting.
5756         Don't use a pointer after freeing it.
5757         Check for integer overflow when calculating allocation size.
5758         Use memcpy to copy entries, instead of stpcpy.
5759         Set errno properly when returning NULL.
5760         Check for readdir error.
5761
5762 2000-06-26  Jim Meyering  <meyering@lucent.com>
5763
5764         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
5765
5766 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5767
5768         * getusershell.c (xmalloc, xrealloc): Remove functions.
5769         Include xalloc.h.
5770         Don't include <stdlib.h>.  Don't declare malloc, realloc.
5771
5772 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
5773
5774         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
5775
5776 2000-06-24  Jim Meyering  <meyering@lucent.com>
5777
5778         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
5779
5780 2000-06-21  Jim Meyering  <meyering@lucent.com>
5781
5782         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
5783
5784 2000-06-19  Paul Eggert  <eggert@twinsun.com>
5785
5786         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
5787         (mbrtowc, mbstate_t): Define substitutes if
5788         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
5789         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
5790         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
5791
5792 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5793
5794         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
5795         than 1024, return a memory chunk of least possible size, instead
5796         of size PATH_MAX + 2. In the loop, increment the size proportionally.
5797         Use free/xmalloc instead of xrealloc to avoid copying for very long
5798         paths.
5799
5800 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5801
5802         * canon-host.c (canon_host): Use malloc and memcpy to copy an
5803         address, not strdup.  Include <stdlib.h> and don't declare free().
5804
5805 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
5806
5807         * path-concat.c (path_concat): Don't access dir[-1] if dir is
5808         the empty string.
5809
5810 2000-06-21  Jim Meyering  <meyering@lucent.com>
5811
5812         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
5813         (noinst_HEADERS): Add getstr.h.
5814
5815         * getline.c (getstr): Move into a separate file.
5816         * getstr.c (getstr): New file, extracted from getline.c, with
5817         the following changes: new parameter, delim2; both delim[12]
5818         parameters have type `int', not `char'.  The latter would lose
5819         with 8-bit delimiters.
5820         * getstr.h: New file.
5821
5822 2000-06-19  Jim Meyering  <meyering@lucent.com>
5823
5824         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
5825
5826 2000-06-18  Jim Meyering  <meyering@lucent.com>
5827
5828         * mkdir.c: Remove file, due mainly to copyright incompatibility.
5829         Besides, these days every porting target provides a mkdir function.
5830
5831         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
5832         (this snippet comes from src/system.h).
5833
5834 2000-06-15  Paul Eggert  <eggert@twinsun.com>
5835
5836         * human.c (adjust_value): New function.
5837         (human_readable_inexact): Apply rounding style even when
5838         printing approximate values.
5839
5840 2000-06-14  Paul Eggert  <eggert@twinsun.com>
5841
5842         * human.c (human_readable_inexact): Allow an input block
5843         size that is not a multiple of the output block size, and vice versa.
5844         Reported by Piergiorgio Sartor.
5845
5846 2000-06-14  Paul Eggert  <eggert@twinsun.com>
5847
5848         * getdate.y (get_date): Apply relative times after time
5849         zone indicator, not before.  Reported by Todd A. Jacobs.
5850
5851 2000-06-13  Jim Meyering  <meyering@lucent.com>
5852
5853         * Makefile.am (all-local): Depend on lstat.c and stat.c.
5854
5855         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
5856
5857 2000-06-12  Paul Eggert  <eggert@twinsun.com>
5858
5859         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
5860
5861 2000-06-04  Paul Eggert  <eggert@twinsun.com>
5862
5863         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
5864
5865 2000-06-04  Jim Meyering  <meyering@lucent.com>
5866
5867         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
5868         SunOS 4.1.4 for which gid_t is an unsigned type.
5869
5870 2000-06-03  Jim Meyering  <meyering@lucent.com>
5871
5872         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
5873
5874 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
5875
5876         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
5877         newer, don't install charset.alias.
5878         * config.charset: Change the Linux/glibc rules so they become empty
5879         on glibc-2.1 or newer.
5880
5881 2000-06-02  Jim Meyering  <meyering@lucent.com>
5882
5883         * mountlist.c: Back out last change.  Instead, do this...
5884         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
5885         member using the same `ignore'-testing code.
5886         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
5887         fs_type strings.
5888         From Mark D. Roth.
5889
5890 2000-05-29  Jim Meyering  <meyering@lucent.com>
5891
5892         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
5893         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
5894
5895 2000-05-22  Jim Meyering  <meyering@lucent.com>
5896
5897         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
5898
5899 2000-05-18  Jim Meyering  <meyering@lucent.com>
5900
5901         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
5902         back, too, since it may have been modified by allocate_entry.
5903         (hash_delete): Rewrite to use neither the assignment operator
5904         nor the comma operator in an if-expression.
5905
5906 2000-05-15  Paul Eggert  <eggert@twinsun.com>
5907
5908         * closeout.c:
5909         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
5910         Remove; no longer needed.
5911         "quotearg.h": Add include.
5912         (file_name): Do not bother to explicitly initialize to NULL; it's less
5913         efficient on some hosts.
5914         (close_stdout_status): Remove test as to whether stdout was already
5915         closed; it breaks for the case "echo x | sort >&-".
5916         Quote file name colons.
5917         Do not assume that _("write error") lacks format strings.
5918
5919 2000-05-15  Jim Meyering  <meyering@lucent.com>
5920
5921         * version-etc.c (version_etc_copyright): Update the copyright string
5922         used in all --version output.
5923
5924 2000-05-14  Jim Meyering  <meyering@lucent.com>
5925
5926         * closeout.c (close_stdout_set_file_name): New function.
5927         (close_stdout_status): Use new file-scoped global.
5928         Return right away if fstat says the stdout file descriptor is invalid.
5929         * closeout.h (close_stdout_set_file_name): Declare.
5930
5931 2000-05-10  Jim Meyering  <meyering@lucent.com>
5932
5933         * closeout.c [default_exit_status]: New file-scoped variable.
5934         (close_stdout_set_status): New function.
5935         * closeout.h (close_stdout_set_status): Declare.
5936
5937 2000-05-08  Jim Meyering  <meyering@lucent.com>
5938
5939         * long-options.c: Don't include closeout.h.
5940         (parse_long_options): Don't call close_stdout for --version.
5941
5942 2000-05-06  Jim Meyering  <meyering@lucent.com>
5943
5944         * strnlen.c: Undefine __strnlen and strnlen.
5945         [!weak_alias]: Define __strnlen to strnlen.
5946
5947         * atexit.c: New file, from libiberty.
5948
5949 2000-05-06  Jim Meyering  <meyering@lucent.com>
5950
5951         * closeout.c (close_stdout_status): Also check for errors on the
5952         stderr stream.
5953
5954 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
5955
5956         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
5957         instead of xmalloc, xrealloc, path_concat.
5958         (locale_charset): Treat empty environment variables as absent.
5959         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
5960
5961 2000-05-04  Jim Meyering  <meyering@lucent.com>
5962
5963         * getopt.c: Update from glibc.
5964         * obstack.c: Likewise.
5965         * obstack.h: Likewise.
5966         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
5967
5968         * regex.h: Likewise.
5969         * strndup.c: Likewise.
5970         * strnlen.c: New file, from glibc.
5971
5972 2000-05-01  Jim Meyering  <meyering@lucent.com>
5973
5974         * full-write.c (full_write): Remove `FIXME' part of comment.
5975
5976 2000-04-29  Jim Meyering  <meyering@lucent.com>
5977
5978         * path-concat.c: Declare strdup only if it's not defined.
5979         * canon-host.c: Likewise.
5980
5981 2000-04-28  Jim Meyering  <meyering@lucent.com>
5982
5983         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
5984         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
5985         included first, then limits.h is included by locale.h by libintl.h.
5986         From John David Anglin.
5987
5988 2000-04-25  Jim Meyering  <meyering@lucent.com>
5989
5990         * makepath.c (S_IRWXUGO): Define.
5991         (make_path): Always perform explicit chmod if MODE specifies any
5992         of the `special' permission bits.  Prompted by a bug report against
5993         install from Mate Wierdl and Joost van Baal.
5994
5995 2000-04-18  Jim Meyering  <meyering@lucent.com>
5996
5997         * README: New file.
5998
5999         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
6000         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
6001
6002 2000-04-17  Jim Meyering  <meyering@lucent.com>
6003
6004         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
6005         the definition of it to rpl_strftime also defined-away the system's
6006         declaration.
6007
6008 2000-04-15  Jim Meyering  <meyering@lucent.com>
6009
6010         Use `C' to denote so-called `contiguous' files, the same way
6011         that tar does.
6012         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
6013         (ftypelet): Use S_ISCTG.
6014         From Michael Deutschmann.
6015
6016 2000-04-14  Jim Meyering  <meyering@lucent.com>
6017
6018         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
6019
6020 2000-04-08  Jim Meyering  <meyering@lucent.com>
6021
6022         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
6023         names don't conflict.  Reported by Eli Zaretskii.
6024
6025 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
6026
6027         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
6028         bug.  Deal with the different error behavior of Irix iconv.
6029
6030 2000-04-07  Jim Meyering  <meyering@lucent.com>
6031
6032         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
6033         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
6034
6035 2000-04-05  Jim Meyering  <meyering@lucent.com>
6036
6037         Portability tweaks required for ultrix4.3.
6038         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
6039         * readutmp.c: Include sys/types.h before sys/stat.h.
6040         * canon-host.c: Declare strdup.
6041         * path-concat.c: Likewise.
6042         From John David Anglin.
6043
6044 2000-04-04  Jim Meyering  <meyering@lucent.com>
6045
6046         Be more DOS 8.3-friendly.
6047         * ref-add.sin: Renamed from ref-add.sed.in.
6048         * ref-del.sin: Renamed from ref-del.sed.in.
6049         * Makefile.am: Reflect renaming.
6050         Reported by Eli Zaretskii.
6051
6052         Use a temporary file name that won't clash with `charset.alias'
6053         in the DOS 8.3 name space.
6054         * Makefile.am (charset_tmp): Define.
6055         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
6056         (uninstall-local): Likewise.
6057         Reported by Eli Zaretskii.
6058
6059 2000-03-29  Paul Eggert  <eggert@twinsun.com>
6060
6061         * time/strftime.c (my_strftime): Make sure we call the system
6062         strftime, not ourselves, when invoking the underlying strftime.
6063
6064 2000-03-24  Jim Meyering  <meyering@lucent.com>
6065
6066         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
6067         (charset_alias): Define.
6068         (install-exec-local): Factor out common code.
6069         (uninstall-local): Split lines longer than 80.
6070         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
6071         (SUFFIXES): Define.
6072         (.sed.in.sed): New rule.  Don't redirect directly to $@.
6073         (CLEANFILES): Add ref-add.sed and ref-del.sed.
6074
6075 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
6076
6077         * config.charset: Output a line containing "Packages using this file".
6078         * ref-add.sed.in, ref-del.sed.in: New files.
6079         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
6080         ref-del.sed): New rules.
6081
6082 2000-03-17  Jim Meyering  <meyering@lucent.com>
6083
6084         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
6085         Otherwise, include <strings.h>
6086
6087 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
6088
6089         * unicodeio.c (utf8_wctomb): New function.
6090         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
6091         format instead of in UCS-4 with platform dependent endianness.
6092
6093 2000-03-07  Paul Eggert  <eggert@twinsun.com>
6094
6095         * savedir.c (savedir): Work even if directory size is
6096         negative; this can happen with some screwy NFS configurations.
6097
6098 2000-03-06  Jim Meyering  <meyering@lucent.com>
6099
6100         * localcharset.c (get_charset_aliases): Don't try to free file_name
6101         if it's NULL (because we ran out of memory).  From Bruno Haible.
6102
6103 2000-03-05  Jim Meyering  <meyering@lucent.com>
6104
6105         * localcharset.c ("path-concat.h"): Include.
6106         (get_charset_aliases): Use path_concat instead of ANSI string
6107         concatenation.
6108
6109         * unicodeio.h (PARAMS): Define.
6110         Use it to guard prototype.
6111
6112 2000-03-04  Jim Meyering  <meyering@lucent.com>
6113
6114         * Makefile.am (install-exec-local): Create $(libdir) before installing
6115         into it.
6116         (uninstall-local): Uncomment this rule so `make distcheck' works
6117         once again.
6118
6119         * unicodeio.c (<errno.h>): Include it.
6120         (errno): Declare if not defined.
6121
6122         * localcharset.c: Add Bruno's comment justifying use of volatile.
6123
6124         * config.charset: New version, incorporating remarks from a linux
6125         i18n mailing list.  From Bruno Haible.
6126
6127 2000-03-02  Jim Meyering  <meyering@lucent.com>
6128
6129         * Makefile.am (EXTRA_DIST): Add config.charset.
6130
6131 2000-03-01  Jim Meyering  <meyering@lucent.com>
6132
6133         * localcharset.c: Guard some #includes with `#if HAVE_...'.
6134         * unicodeio.c: Likewise.
6135
6136 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
6137
6138         * config.charset: New file.
6139         * localcharset.c: New file.
6140         * unicodeio.h, unicodeio.c: New files.
6141         * Makefile.am (DEFS): Add -DLIBDIR=...
6142         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
6143         (noinst_HEADERS): Add unicodeio.h.
6144         (all-local, install-exec-local, charset.alias): New targets.
6145
6146 2000-02-28  Paul Eggert  <eggert@twinsun.com>
6147
6148         * quotearg.c (ALERT_CHAR): New macro.
6149         (quotearg_buffer_restyled): Use it.
6150
6151 2000-02-27  Jim Meyering  <meyering@lucent.com>
6152
6153         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
6154         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
6155
6156         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
6157         not `#if STDC_HEADERS'.
6158         Declare malloc if needed.
6159
6160         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
6161         now that autoconf always defines the HAVE_DECL_ symbols.
6162         * human.c: Likewise.
6163         * same.c: Likewise.
6164         * strtoumax.c: Likewise.
6165
6166         * backupfile.c: Arrange for cpp to fail if the configure-time
6167         declaration check was not run.
6168         * hash.c: Likewise.
6169         * human.c: Likewise.
6170         * same.c: Likewise.
6171         * strtoumax.c: Likewise.
6172
6173         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
6174         then first look up the entire `.'-containing string as a login name.
6175
6176 2000-02-18  Paul Eggert  <eggert@twinsun.com>
6177
6178         * getdate.y: Handle two-digit years with leading zeros correctly.
6179         (textint): New typedef.
6180         (parser_control): Member year changed from int to textint.
6181         All uses changed.
6182         (YYSTYPE): Removed; replaced by %union with int and textint members.
6183         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
6184         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
6185         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
6186         (tSNUMBER, tUNUMBER): Now of type <textintval>.
6187         (date, number, to_year): Use width of number in digits, not its value,
6188         to determine whether it's a 2-digit year, or a 2-digit time.
6189         (yylex): Store number of digits of numeric tokens.
6190         Reported by John Kendall.
6191
6192         (parser_control): Changed from struct parser_control to typedef (for
6193         consistency).  All uses changed.
6194
6195         (tID): Removed; not used.
6196         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
6197
6198 2000-02-14  Paul Eggert  <eggert@twinsun.com>
6199
6200         * getpagesize.h (getpagesize): Port to VMS for Alpha;
6201         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
6202
6203 2000-02-12  Jim Meyering  <meyering@lucent.com>
6204
6205         * userspec.c (ISDIGIT): Define it.
6206         (isdigit): Remove definition.
6207         (is_number): Use ISDIGIT, not isdigit.
6208         <libintl.h>: Include.
6209         (_ and N_): Define.
6210         (parse_user_spec): Mark translatable strings.
6211
6212 2000-02-10  Jim Meyering  <meyering@lucent.com>
6213
6214         With these changes, nanosleep.[ch] are finally enough like the other
6215         lib/* replacement files to compile on a few more losing systems.
6216
6217         * nanosleep.h: Don't include config.h.
6218         Remove prototype from declaration of nanosleep.
6219         (PARAMS): Remove now-unneeded definition.
6220         * nanosleep.c: #undef nanosleep.
6221         (rpl_nanosleep): Rename from nanosleep.
6222
6223 2000-02-03  Jim Meyering  <meyering@lucent.com>
6224
6225         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
6226         rather than with `#if HAVE_UTMPNAME'.
6227
6228 2000-02-01  Jim Meyering  <meyering@lucent.com>
6229
6230         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
6231
6232 2000-01-31  Jim Meyering  <meyering@lucent.com>
6233
6234         * nanosleep.h (nanosleep): Guard declaration with
6235         `#if ! HAVE_DECL_NANOSLEEP'.
6236         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
6237         the declaration in that vendor's sys/timers.h.
6238         Reported by Christian Krackowizer.
6239
6240         * quotearg.c (ISASCII): Add #undef and move definition to follow
6241         inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
6242         (ISPRINT): Likewise.
6243         Reported by Tom Tromey.
6244
6245 2000-01-30  Jim Meyering  <meyering@lucent.com>
6246
6247         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
6248         uses of ->ut_name.  The latter doesn't work with new Linux header files
6249         where only utmpx.ut_user is declared.
6250
6251         * readutmp.h (UT_USER): Define.
6252
6253 2000-01-23  Jim Meyering  <meyering@lucent.com>
6254
6255         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
6256         obstack.c.
6257
6258 2000-01-22  Jim Meyering  <meyering@lucent.com>
6259
6260         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
6261         [! HAVE_DECL_STRTOULL]: Declare strtoull.
6262         Required for some AIX systems.  Reported by Christian Krackowizer.
6263         [TESTING] (main): New function.
6264
6265         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
6266         * dirname.c (dir_name): Support for DOS-style file names with drive
6267         letters.
6268
6269         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
6270
6271         * strverscmp.c (ISDIGIT): Define.
6272         (strverscmp): Use ISDIGIT, not isdigit.
6273
6274 2000-01-17  Paul Eggert  <eggert@twinsun.com>
6275
6276         * nanosleep.c (nanosleep):
6277         Don't use SA_INTERRUPT to decide whether to call sigaction, as
6278         POSIX.1 doesn't require SA_INTERRUPT and some systems
6279         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
6280         it's been part of POSIX.1 since day 1 (in 1988).
6281
6282 2000-01-17  Jim Meyering  <meyering@lucent.com>
6283
6284         * interlock: Remove unused file.  Reported by François Pinard.
6285
6286 2000-01-16  Paul Eggert  <eggert@twinsun.com>
6287
6288         * quotearg.c (quotearg_buffer_restyled): Do not quote
6289         alert, backslash, formfeed, and vertical tab unnecessarily in
6290         shell quoting style.
6291
6292
6293 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
6294 Free Software Foundation, Inc.
6295 Copying and distribution of this file, with or without modification,
6296 are permitted provided the copyright notice and this notice are preserved.