82542c80a6a06f248f1ba8644f5cb66a524040f8
[gnulib.git] / lib / ChangeLog
1 2003-08-31  Karl Berry  <karl@gnu.org>
2
3         * argp.h: update from libc.
4
5 2003-08-28  Bruno Haible  <bruno@clisp.org>
6
7         * binary-io.h: Undefine O_BINARY before defining it. This avoids a
8         warning on QNX, which defines O_BINARY to 000000.
9
10 2003-08-24  Bruno Haible  <bruno@clisp.org>
11
12         * binary-io.h: Include <stdio.h>, to avoid a compilation error when
13         MSVC7 <stdio.h> is included later.
14
15 2003-08-20  Bruno Haible  <bruno@clisp.org>
16
17         * progname.h: New file, from GNU gettext.
18         * progname.c: New file, from GNU gettext.
19         * progreloc.c: New file, from GNU gettext.
20
21 2003-08-19  Bruno Haible  <bruno@clisp.org>
22
23         * xstrdup.c: Assume <string.h> exists.
24
25 2003-08-18  Jim Meyering  <jim@meyering.net>
26
27         * setenv.h: Indent nested cpp directive.
28         * vasnprintf.c: Remove trailing blanks.
29
30 2003-08-17  Simon Josefsson  <jas@extundo.com>
31             Bruno Haible  <bruno@clisp.org>
32
33         * xstrndup.h: New file.
34         * xstrndup.c: New file.
35
36 2003-08-17  Bruno Haible  <bruno@clisp.org>
37
38         * strndup.h: New file.
39
40 2003-08-16  Paul Eggert  <eggert@twinsun.com>
41
42         * regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
43         space, undoing this 2003-08-12 change:
44         <http://mail.gnu.org/archive/html/bug-gnulib/2003-08/msg00080.html>
45
46 2003-08-16  Jim Meyering  <jim@meyering.net>
47
48         Merge from coreutils.
49         * xstrtoimax.c: #else #if -> #elif.
50         * xstrtoumax.c: Likewise.
51
52 2003-08-15  Paul Eggert  <eggert@twinsun.com>
53
54         * config.charset, ref-add.sin, ref-del.sin: Use three spaces,
55         rather than tab, after '#' in shell-script copyright notices.
56         Suggested by Bruno Haible.
57
58 2003-08-15  Jim Meyering  <jim@meyering.net>
59         and Paul Eggert  <eggert@twinsun.com>
60
61         Merge from coreutils.
62         * readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
63         member but strut utmpx does not.  Needed for AIX 4.3.3.
64         (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
65
66 2003-08-15  Jim Meyering  <jim@meyering.net>
67
68         Merge from coreutils.
69         * xgethostname.c: Include <stdlib.h>.
70         (xghostname): Don't exit for anything other than memory-related
71         failure; just return NULL.
72         * userspec.c: Include "posixver.h".
73         (parse_user_spec): Accept `.' as a separator only
74         in pre-POSIX-200112 mode.
75         * strtoimax.c: Use #elif rather than #else #if.
76         * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
77         Remove function, now that we can rely on a working tzset function.
78         [!_LIBC]: Ensure that the required autoconf test has been run.
79         [!defined _NL_CURRENT && HAVE_STRFTIME]:
80         Use underlying_strftime for %r.
81         * sha.c: Merge in some clean-up and optimization changes from glibc.
82         * sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
83         Ensure that it is a multiple of 64.
84         Rearrange loop exit tests so as to avoid performing an
85         additional fread after encountering an error or EOF.
86         * realloc.c: Update copyright date.
87
88 2003-08-14  Jim Meyering  <jim@meyering.net>
89
90         Merge from coreutils.
91         * obstack.h: Whitespace changes.
92         * mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
93         and xcalloc return values.
94         (read_filesystem_list) [MOUNTED_GETFSSTAT]:
95         Use MNT_NOWAIT, rather than MNT_WAIT.  Otherwise, `df DIR' could
96         hang on OSF/1 5.1 for DIR on both local and remote file systems.
97         Reported by (and fix confirmed by) Nelson H. F. Beebe.
98         (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
99         error from mntctl.
100         Use mntctl's return value to drive the entry-processing loop, since
101         we can't rely on the value of the vmt_length member in the last
102         entry.  On some systems doing so could result in exhausting
103         virtual memory.  Based in part on a patch from Mike Jetzer.
104
105 2003-08-14  Jim Meyering  <jim@meyering.net>
106         and Paul Eggert  <eggert@twinsun.com>
107
108         Merges from coreutils, plus other fixes.
109         * physmem.c: Merge in portability changes from gcc/libiberty
110         to support AIX, IRIX, Tru64, and Windows.  See the ChangeLog there
111         for credits and details.  Thanks to Kaveh Ghazi for helping
112         to keep these files in sync.
113         (ARRAY_SIZE): Define it.
114         (physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
115         * memcasecmp.c: Remove unnecessary parentheses after 'defined'.
116         (memcasecmp): Don't assume size_t fits in unsigned int.
117         Remove casts and duplicate code.
118         * md5.c: Include <string.h> and <stdlib.h> unconditionally.
119         (memcpy): Remove definition.
120         Merge in some clean-up and optimization changes from glibc.
121         [BLOCKSIZE]: Move definition to top of file.
122         Ensure that it is a multiple of 64.
123         Rearrange loop exit tests so as to avoid performing an
124         additional fread after encountering an error or EOF.
125         * md5.h (md5_uintptr): Define.
126         * makepath.c (CLEANUP_CWD): Report an error if we failed to
127         return to the initial working directory.  Preserve errno
128         for caller.
129         * idcache.c: Include "xalloc.h".
130         (xmalloc, xrealloc): Remove decls.
131         (getuser): Remove casts no longer required in C89.
132         * human.c: Include stdio.h, for sprintf.
133         * group-member.c: Include "xalloc.h".
134         (xmalloc, xrealloc): Remove decls.
135         (get_group_info): Remove casts no longer required in C89.
136         * getusershell.c (readname): Remove casts no longer required in C89.
137         * gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
138         * getline.c: Whitespace fix, from coreutils.
139
140 2003-08-13  Paul Eggert  <eggert@twinsun.com>
141
142         * exclude.c: Include <ctype.h>
143         (IN_CTYPE_DOMAIN): New macro.
144         (is_space): New fn.
145         (add_exclude_file): If LINE_END is a space, ignore trailing spaces
146         and empty lines.
147
148         * argp-help.c, argp-parse.c, config.charset, getopt.h:
149         Undo previous (whitespace-only) change.
150
151 2003-08-12  Paul Eggert  <eggert@twinsun.com>
152
153         * argp-help.c, argp-parse.c, config.charset, getopt.h:
154         Normalize leading white space and remove trailing white space.
155         * ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
156         notice, as per ../config/srclist-update.
157
158         Merge from coreutils.
159         * euidaccess.h: New file.
160         * euidaccess.c: Include it.
161         * .cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
162         vasnprintf.h, vasprintf.h.  Remove strdup.c, gettext.h.
163         * regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
164
165 2003-08-11  Bruno Haible  <bruno@clisp.org>
166
167         * vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
168         (vasnprintf): Use it instead of wcslen.
169
170 2003-08-11  Bruno Haible  <bruno@clisp.org>
171
172         * stdbool_.h (_Bool): Undo last change; instead use a negative enum
173         value to ensure that _Bool promotes to int. Use #define for _Bool when
174         using the Solaris C compiler. Adds comments suggested by Paul Eggert.
175
176 2003-08-10  Karl Berry  <karl@gnu.org>
177
178         * regex.h: update from libc (whitespace fix).
179
180 2003-08-09  Paul Eggert  <eggert@twinsun.com>
181
182         Merge some files from coreutils.  These changes were
183         originally made by Jim Meyering.
184         * lib/acl.c: Include <sys/types.h> before <sys/stat.h>;
185         many older Unixes require this.
186         * lib/alloca.c (alloca): Remove cast to argument of free;
187         no longer needed in C89.
188         * lib/alloca_.h, lib/regex.h: Fix white space to match
189         what GNU indent does.
190
191 2003-08-05  Paul Eggert  <eggert@twinsun.com>
192
193         * bumpalloc.h: Remove.
194
195 2003-08-04  Paul Eggert  <eggert@twinsun.com>
196
197         * getloadavg.c: Change copyright notice and spacing to conform to
198         GNU coding style.
199
200         Merge from coreutils.
201         * error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
202         From glibc.
203         * getdate.y (date): Also accept dates like May-23-2003; suggestion
204         from Karl Berry, implemented by Jim Meyering.
205         * getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
206         from Dmitry V. Levin.
207         Remove anachronistic cast of xrealloc.
208         * fnmatch_.h (__const): Remove.  Use 'const'.
209         * fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
210         type. Otherwise, it wouldn't compile with at least /bin/cc on
211         ymp-cray-unicos9.0.2.X.
212         Combine two mostly-identical uses of alloca into one.
213         Thanks to the Cray-Cyber project for access to a Cray Y-MP.
214
215 2003-08-04  Dave Love <d.love@dl.ac.uk>
216
217         [From Emacs.]
218
219         * getloadavg.c: Check `__unix' as well as `unix'.  Use #ifdef, not
220         #if.  Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE.  Check
221         F_SETFD, not FD_SETFD.  Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
222         obsolete NLIST_NAME_UNION.
223         [__GNU__]: Undef BSD and FSCALE.
224         [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
225
226 2003-08-03  Paul Eggert  <eggert@twinsun.com>
227
228         * stdbool_.h (_Bool): Make it signed char, instead of
229         an enum type, so that it's guaranteed to promote to int.  See:
230         <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
231
232 2003-07-31  Paul Eggert  <eggert@twinsun.com>
233
234         * strerror.c: Include config.h, limits.h.  Declare sprintf.
235         (strerror): Don't assume that a printable int fits in 14 bytes.
236
237 2003-07-24  Derek Robert Price  <derek@ximbiot.com>
238             Bruno Haible  <bruno@clisp.org>
239
240         * getline.h (getline, getdelim): Change return type to ssize_t.
241         * getline.c (getline, getdelim): Likewise.
242         Remove _GNU_SOURCE define; now it's defined in config.h through
243         m4/getline.m4.
244
245 2003-07-22  Paul Eggert  <eggert@twinsun.com>
246
247         * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
248         over-parenthesization in macros.
249
250         Sync with coreutils.
251
252         * xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
253         required by C99.
254
255         Use `exit_failure' for xalloc and xmemcoll instead of their own
256         private exit-failure variables.
257         * xalloc.h (xalloc_exit_failure): Remove.
258         * xmalloc.c: Likewise.  Include exitfail.h.
259         (xalloc_die): Use exit_failure instead of xalloc_exit_failure.
260         * xmemcoll.h (xmemcoll_exit_failure): Remove.
261         * xmemcoll.c: Likewise.  Include exitfail.h.
262         (xmemcoll): Use exit_failure instead of xalloc_exit_failure.
263
264 2003-07-18  Paul Eggert  <eggert@twinsun.com>
265
266         * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
267         * closeout.c: Likewise.  Include "closeout.h" right after config.h,
268         to test that it can stand by itself.  Include "exitfail.h".
269         Clients should set exit_failure instead.
270         (EXIT_FAILURE): Remove; no longer needed.  Do not include <stdlib.h>.
271
272 2003-07-18  Andreas Schwab  <schwab@suse.de>
273
274         * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
275
276 2003-07-18  Bruno Haible  <bruno@clisp.org>
277
278         * getndelim2.h: New file.
279         * getndelim2.c: Make into a module of its own. Include config.h,
280         getndelim2.h.
281         (getndelim2): Make non-static. Change return type to ssize_t.
282         * getline.h: Change argument names.
283         * getline.c: Include getndelim2.h instead of getndelim2.c.
284         * getnline.c: Include getndelim2.h.
285
286 2003-07-17  Bruno Haible  <bruno@clisp.org>
287
288         * Makefile.am: Remove file.
289         * Makefile.in: Remove file.
290
291 2003-07-17  Bruno Haible  <bruno@clisp.org>
292
293         * getnline.h: New file.
294         * getnline.c: New file.
295         * getndelim2.c: New file, extracted from getline.c.
296         (getndelim2): Renamed from getdelim2, with added nmax argument.
297         * getline.c: Include getndelim2.c.
298         (getdelim2): Moved out to getndelim2.c.
299         (getline, getdelim): Update.
300
301 2003-07-15    <karl@gnu.org>
302
303         * vasnprintf.c: update from gettext.
304
305 2003-07-15  Jim Meyering  <jim@meyering.net>
306
307         * makepath.c (make_path): Enclose diagnostic in _(...).
308
309 2003-07-14  Paul Eggert  <eggert@twinsun.com>
310
311         * asnprintf.c, asprintf.c, config.charset, gettext.h,
312         localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
313         printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
314         ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
315         vasprintf.c, vasprintf.h: Regenerate.  These files are now being
316         updated automatically by ../config/srclist-update.  This changes
317         their license from LPGL to GPL.
318
319 2003-07-14  Jim Meyering  <jim@meyering.net>
320
321         Don't emit diagnostics.  Let callers do that.
322         * save-cwd.c: Don't include "error.h".
323         (save_cwd): Don't call error.  Ensure that errno is valid
324         when returning nonzero.
325
326         * save-cwd.h (restore_cwd): Update prototype.
327         * save-cwd.c (restore_cwd): Remove two parameters.
328         Simplify.  Don't call error upon failure.  Let callers do that.
329         (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
330         when auditing is enabled.  But don't bother updating the #if.
331
332 2003-07-14  Simon Josefsson  <jas@extundo.com>
333
334         * mempcpy.h: New file.
335         * mempcpy.c: New file.
336
337 2003-07-14  Paul Eggert  <eggert@twinsun.com>
338
339         * ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
340         sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
341         unicodeio.c, unicodeio.h, unlocked-io.h:
342         Switch from LGPL to GPL.
343
344 2003-07-11  Alexandre Duret-Lutz  <adl@gnu.org>
345
346         * obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
347         it breaks C++ compilation.
348         [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
349
350 2003-07-10  Jim Meyering  <jim@meyering.net>
351
352         * vasnprintf.c: Remove trailing blanks.
353         Make cpp indentation consistent.
354
355 2003-07-09  Paul Eggert  <eggert@twinsun.com>
356
357         * alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
358         posixver.c, strftime.c, strnlen.c, strverscmp.c:
359         Switch from LGPL to GPL.
360
361 2003-07-07  Paul Eggert  <eggert@twinsun.com>
362
363         * mktime.c: Fix some boundary cases and remove need for floating point.
364
365         Issue a compile-time diagnostic if time_t is floating point, or if
366         two's complement arithmetic is not in effect, or if arithmetic
367         right shift does not propagate the sign.  These assumptions were
368         all in the original code but they weren't checked.
369
370         (TIME_T_MIDPOINT, verify): New macros.
371         (__isleap): Remove; it has integer overflow problems.
372         (leapyear): New function, without those problems.
373         (ydhms_tm_diff): Remove; splitting into two parts.
374         (ydhms_diff): New function, containing the arithmetic part of
375         the old ydhms_tm_diff function.  Issue a compile-time
376         diagnostic if we are not using C99 integer division.
377         Avoid casts when possible.
378         (guess_time_tm): New function, containing the checking part of
379         the old ydhms_tm_diff function.  Return the new value, rather than
380         the difference between it and the old.  Accept a new argument T
381         so that *T specifies the old value.  Check for overflow in the result.
382
383         (__mktime_internal): Use a time_t offset, not a long int offset.
384         This undoes the 2003-06-04 change, which is no longer needed now
385         that we have better overflow checking.
386         (localtime_offset): Likewise.
387
388         (__mktime_internal): Avoid harmful overflow on hosts where time_t
389         and long are 64-bit but int is only 32-bit.
390         (ydhms_diff): Use long int to store year1 and yday1.
391         Issue a compile-time diagnostic if long int is not wide enough.
392
393         (__mktime_internal): Use long int to store adjusted year and yday.
394         Use plain C rather than preprocessor commands, if that doesn't
395         affect efficiency.
396         Check for overflow (and try to repair) after each probe
397         rather than checking only at the very end.  This avoids some bugs
398         (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
399         does not equal GMT offset at maximum time).
400         Use integer to check for overflow rather than floating point; this
401         is more portable to non-IEEE hosts, and is a tad faster.
402         When we detect that we are oscillating between two values,
403         don't check whether tm_isdst has the requested value, since
404         we already know the answer.  When tm_isdst has the wrong value,
405         use a different heuristic to find the right one, based on the
406         extreme values actually observed in practice in tz2003a,
407         rather than the (overly optimistic) "previous 3 calendar quarters".
408
409         (not_equal_tm, print_tm, check_result): Use "const T" rather than
410         "T const" to accommodate glibc style.
411         (check_result): Use less-confusing report format.  "long" -> "long int.
412         (main): Likewise.
413         Don't loop if the iteration overflows time_t.
414         Allow a negative step in the iteration.
415
416 2003-07-01  Paul Eggert  <eggert@twinsun.com>
417
418         * xreadlink.c: Include <sys/types.h> unconditionally, instead of
419         having it depend on HAVE_SYS_TYPES_H.
420
421 2003-06-25  Bruno Haible  <bruno@clisp.org>
422
423         * readlink.c: New file.
424
425 2003-06-20  Bruno Haible  <bruno@clisp.org>
426
427         Assume C89, so PARAMS isn't needed.
428         * unicodeio.h (PARAMS): Remove.
429         * unicodeio.c: Don't use PARAMS.
430
431 2003-06-18  Jim Meyering  <jim@meyering.net>
432
433         Merge changes from coreutils.
434         * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
435         Remove explicit declarations of xmalloc and realloc.
436         Include xalloc.h.
437         (read_utmp): Remove anachronistic cast of xmalloc.
438
439 2003-06-17  Paul Eggert  <eggert@twinsun.com>
440
441         Assume C89, so PARAMS isn't needed.
442         * backupfile.h (PARAMS): Remove.  All uses removed.
443         * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
444         group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
445         makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
446         path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
447         save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
448         unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
449         xstrtol.h: Likewise.
450         * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h,
451         same.h, strverscmp.h: Do not include config.h; no longer needed.
452         Anyway, config.h should always be included before any other file.
453
454 2003-06-11  Simon Josefsson  <jas@extundo.com>
455
456         * sysexit_.h: New file.
457
458 2003-05-20  Derek Price  <derek@ximbiot.com>
459
460         * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
461
462 2003-06-10  Simon Josefsson  <jas@extundo.com>
463
464         * strchrnul.h: New file.
465         * strchrnul.c: New file.
466
467 2003-06-10  Simon Josefsson <jas@extundo.com>
468
469         * argp.h: New file, from glibc.
470         * argp-ba.c: New file, from glibc.
471         * argp-eexst.c: New file, from glibc.
472         * argp-fmtstream.c: New file, from glibc.
473         * argp-fmtstream.h: New file, from glibc.
474         * argp-fs-xinl.c: New file, from glibc.
475         * argp-help.c: New file, from glibc.
476         * argp-namefrob.h: New file, from glibc.
477         * argp-parse.c: New file, from glibc.
478         * argp-pv.c: New file, from glibc.
479         * argp-pvh.c: New file, from glibc.
480         * argp-xinl.c: New file, from glibc.
481
482 2003-06-07  Jim Meyering  <jim@meyering.net>
483
484         * readtokens.h: Put `Free Software Foundation, Inc.'
485         in place of my name in the copyright comment.
486         Remove definition and uses of __P.
487
488         From coreutils.
489         * stat.c: Don't declare xmalloc explicitly.
490         Instead, include "xalloc.h".
491         * readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
492         xrealloc, and xcalloc return values.
493         * xgetcwd.c (xgetcwd): Include "xgetcwd.h".
494         Improve comment.
495         * xgetcwd.h: Remove definition/uses of PARAMS.
496
497 2003-06-06  Jim Meyering  <jim@meyering.net>
498
499         * stdbool_.h: Renamed from stdbool.h.in.
500
501 2003-06-06  Jim Meyering  <jim@meyering.net>
502
503         Merge from coreutils.
504         * same.c: (same_name): Declare *_basename locals to be `const'.
505         Consolidate declarations and initializations of *_base* locals.
506
507         Merge from coreutils.
508         This avoids a core dump on systems without GNU putenv,
509         when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
510         * putenv.c (__set_errno, LOCK, UNLOCK): Define.
511         (unsetenv): New static function, from GNU libc.
512         (rpl_putenv): Use it.
513
514         * modechange.c: Remove trailing blanks.
515
516         Merge from coreutils.
517         * fsusage.c: Remove declaration of statfs.
518         It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
519
520         * posixtm.c: Include <stdbool.h> unconditionally.
521
522 2003-06-05  Paul Eggert  <eggert@twinsun.com>
523
524         * mktime.c (__mktime_internal): When resolving a tm_isdst
525         mismatch, look in future quarters as well as past.  This fixes a
526         bug when processing fall-backwards gaps immediately after a long
527         period of daylight-saving time.
528
529         * mktime.c: Assume freestanding C89 or better.
530         (HAVE_LIMITS_H): Remove.  Assume it's 1.
531         (__P): Remove; not used.
532         (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
533         (mktime, not_equal_tm, print_tm, check_result,
534         main): Use prototypes.  Use const * where appropriate.
535         (main): Fix typo in testing code that uncovered by above changes.
536         (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
537
538 2003-06-04  Paul Eggert  <eggert@twinsun.com>
539
540         * mktime.c: Fix Debian bug 177940
541         <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
542         (localtime_offset): Now long int, not time_t, because we want it
543         to be guaranteed to be signed.  All uses changed.
544         (__mktime_internal): If overflow would occur when adding offset,
545         don't add it.
546
547         Merge 'human' changes from coreutils.  Rewrite to support
548         locale-specific notations like thousands separators.
549         * human.c: Simplify authorship notice.
550         Include human.h immediately after config.h.
551         <sys/types.h>, <stdio.h>: Do not include; no longer needed.
552         <limits.h>: Do not include, since human.h does.
553         (SIZE_MAX, UINTMAX_MAX): New macros.
554         <strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
555         <locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
556         (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
557         (power_letter): Renamed from suffixes.
558         (generate_suffix_backwards): Remove.
559         (adjust_value): Now takes int style (because of human.h changes)
560         and long double value (for greater precision on some platforms).
561         (group_number): New function.
562         (human_readable): Use it.  Use integer options, not enum.
563         Put the options before the sizes in the arg list.
564         Support all the new options.
565         The old human_readable function has been removed;
566         use inttostr.h instead.
567         (human_readable, default_block_size, humblock):
568         Use uintmax_t, not int, for block sizes.
569         (human_readable_inexact, block_size_types): Remove.
570         (block_size_opts): New constant.
571         (human_options): Renamed from human_block_size, with new signature
572         that allows block sizes up to UINTMAX_MAX.  All callers changed.
573         * human.h: Add copyright and authorship notice.
574         Include <limits.h> and <stdbool.h> unconditionally.
575         (PARAMS): Remove.  All uses removed.
576         (LONGEST_HUMAN_READABLE): Add support for thousands separator.
577         (enum human_inexact_style): Remove tag; now a nameless enum.
578         (human_floor, human_ceiling, human_round_to_even): Now have
579         values 2, 0, 1 rather than -1, 1, 0.
580         (human_group_digits, human_suppress_point_zero, human_autoscale,
581         human_base_1024, human_SI, human_B): New constants.
582         (human_readable_inexact, human_block_size): Remove.
583         (human_readable): Size args are now uintmax_t, not int.
584         (human_options): New decl.
585
586         * exclude.c: (new_exclude, add_exclude): Remove casts that are
587         unnecessary now that we assume C89 or better.  This change
588         imported from coreutils.
589
590         * mktime.c (__mktime_internal): Do not reject negative timestamps
591         arbitrarily.  This is the same patch as 2003-05-28, but it got lost
592         in the 2003-05-30 sync from glibc.
593
594         .h files should stand alone, but we shouldn't include <sys/types.h>
595         if we can get away with just <stddef.h>.
596
597         * __fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
598         malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
599         rather than <sys/types.h>, as we merely need size_t.
600         * dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
601         to get size_t.
602         * hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
603         Include <stdio.h>, to get FILE.
604         * memcasecmp.c: Don't include <sys/types.h>, as we can assume
605         memcasecmp.h has included <stddef.h> and all we need is size_t.
606         * memcoll.c: Include "memcoll.h", which gets us size_t and checks
607         our interface, instead of including <sys/types.h>
608
609 2003-06-02  Paul Eggert  <eggert@twinsun.com>
610
611         [from coreutils]
612         Fix some minor time-related bugs with POSIX time arguments.
613         Some valid time stamps were being rejected (notably -1, and
614         time stamps before 1900 on 64-bit hosts).  And some invalid
615         time stamps were being accepted, e.g. September 31.
616
617         * posixtm.h (posixtime): Return bool instead of time_t, so
618         that we can return (time_t) -1 successfully.
619         * posixtm.c: Likewise.
620         [HAVE_STDBOOL_H]: Include <stdbool.h>.
621         (bool, false, true) [!HAVE_STDBOOL_H]: New type.
622         (t): Remove static var.
623         (year, posix_time_parse): Now takes struct tm * arg to modify, instead
624         of static var.  All uses changed.
625         (year): Do not reject years before 1900; they can occur with
626         64-bit time_t.
627         (posix_time_parse): Do not check for out-of-range components;
628         that is now the caller's responsibility, since our checks were
629         only approximations.
630         (posixtime): Use mktime to check for out-of-range components,
631         since it knows them exactly.
632         If mktime returns (time_t) -1, check whether an error actually occurred
633         by invoking localtime on -1.
634         (main) [TEST_POSIXTIME]: Check for input data errors, and report
635         posixtime failures better.
636         Improve the test data (in comments only).
637
638 2003-05-30    <karl@gnu.org>
639
640         * mktime.c: update from libc.
641
642 2003-05-30  Bruno Haible  <bruno@clisp.org>
643
644         * config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
645         * localcharset.h: Likewise.
646         * localcharset.c: Likewise.
647
648 2003-05-28  Paul Eggert  <eggert@twinsun.com>
649
650         Assume the headers required for C89 freestanding compilers.
651         * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h,
652         rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h>
653         without checking for HAVE_LIMITS_H.
654         * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c,
655         xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed
656         to do that.
657         * fatal.c: Include <stdarg.h> without checking for __STDC__.
658         * exclude.c: Include <stdbool.h> unconditionally.
659         * tempname.c: Include <stddef.h> unconditionally.
660         * hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
661         * modechange.c, rpmatch.c (NULL): Don't define, since
662         <stddef.h> does that.
663         * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
664         * safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
665         * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed.
666         * xstrtol.c: Likewise.
667         * safe-read.c: Remove TYPE_SIGNED; no longer needed.
668         * savedir.c: Include <stddef.h> instead of defining NULL.
669
670         * addext.c (addext): Use assignment rather than cast, to avoid
671         warnings on some platforms.
672
673         * mktime.c (__mktime_internal): Do not reject negative timestamps
674         arbitrarily.
675
676 2003-05-10  Bruno Haible  <bruno@clisp.org>
677
678         * linebreak.c (iconv_string_length): Don't return -1 just because the
679         string is longer than 4 KB.
680
681 2003-05-12  Jim Meyering  <jim@meyering.net>
682
683         * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
684         the space-padded-by-default conversion specifiers, %e, %k, %l.
685
686 2003-05-03  Bruno Haible  <bruno@clisp.org>
687
688         Upgrade to Unicode-4.0.
689         * linebreak.c (nonspacing_table_data): Change width of U+00AD,
690         U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
691         U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
692         U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
693         from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
694         (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
695         of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
696         Change width of U+E0100..U+E01EF from 1 to 0.
697
698 2003-04-25  Bruno Haible  <bruno@clisp.org>
699
700         * copy-file.c: Include <stddef.h>, for size_t.
701
702 2003-04-25  Jim Meyering  <jim@meyering.net>
703
704         * copy-file.c (copy_file_preserving): Declare buf_size to be
705         of type size_t, not int.
706
707 2003-04-11  Jim Meyering  <jim@meyering.net>
708
709         Merge changes from Coreutils.
710
711         2003-03-22  Jim Meyering  <jim@meyering.net>
712
713         * strftime.c (widen): Cast alloca return value to proper type.
714
715         2003-01-19  Ulrich Drepper  <drepper@redhat.com>
716
717         From GNU libc.
718         * strftime.c (my_strftime): Handle very large width
719         specifications for numeric values correctly.  Improve checks for
720         overflow.
721
722         2003-01-19  Jim Meyering  <jim@meyering.net>
723
724         * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
725         (nl_get_alt_digit) [! defined my_strftime]: Define.
726         (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
727         _nl_get_alt_digit and _nl_get_walt_digit.
728
729         * strftime.c (my_strftime): Merge in locale-related changes from libc.
730         These changes have no effect outside of _LIBC.
731
732 2003-04-10  Bruno Haible  <bruno@clisp.org>
733
734         * findprog.h: New file, from GNU gettext.
735         * findprog.c: New file, from GNU gettext.
736
737 2003-04-05  Jim Meyering  <jim@meyering.net>
738
739         Merge changes from Coreutils.
740
741         * exclude.h (PARAMS): Remove definition and uses.
742         * exclude.c: Remove uses of `PARAMS'.
743
744         * dirname.c [TEST_DIRNAME]: Update build instructions for test.
745         Add test-cases for DOS filenames. Declare program_name.
746         (main): Set up program_name.  Patch by Rich Dawe.
747
748         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
749         error from mntctl.
750         Use mntctl's return value to drive the entry-processing loop, since
751         we can't rely on the value of the vmt_length member in the last
752         entry.  On some systems doing so could result in exhausting
753         virtual memory.  Based in part on a patch from Mike Jetzer.
754
755 2003-04-04  Bruno Haible  <bruno@clisp.org>
756
757         * linebreak.h: New file, from GNU gettext.
758         * linebreak.c: New file, from GNU gettext with slight modifications.
759         * lbrkprop.h: New file, from GNU gettext.
760
761 2003-04-03  Bruno Haible  <bruno@clisp.org>
762
763         * utf8-ucs4.h: New file, from GNU gettext.
764         * utf16-ucs4.h: New file, from GNU gettext.
765         * ucs4-utf8.h: New file, from GNU gettext.
766         * ucs4-utf16.h: New file, from GNU gettext.
767
768 2003-04-02  Bruno Haible  <bruno@clisp.org>
769
770         * binary-io.h: New file, from GNU gettext.
771
772 2003-04-01  Bruno Haible  <bruno@clisp.org>
773
774         * pathname.h: New file, from GNU gettext.
775         * concatpath.c: New file, from GNU gettext.
776
777 2003-03-30  Bruno Haible  <bruno@clisp.org>
778
779         * copy-file.c (copy_file_preserving): Don't set owner if the function
780         chown() doesn't exist.
781
782 2003-03-28  Bruno Haible  <bruno@clisp.org>
783
784         * copy-file.h: New file, from GNU gettext.
785         * copy-file.c: New file, from GNU gettext.
786
787 2003-03-18  Jim Meyering  <jim@meyering.net>
788
789         * quote.c (quote_n): Fix typo in comment.
790
791 2003-03-14  Jim Meyering  <jim@meyering.net>
792
793         Merge changes from Coreutils.
794         * obstack.h (obstack_object_size): Declare temporary, __o,
795         to be const, in order to avoid warnings.
796         (obstack_room): Likewise.
797         (obstack_empty_p): Likewise.
798
799 2003-03-13  Paul Eggert  <eggert@twinsun.com>
800
801         Merge changes from Bison.
802         * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
803         (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
804         when compiling Bison 1.875's `bitset bset = obstack_alloc
805         (bobstack, bytes);'.  Problem reported by Nelson H. F. Beebe.
806         * hash.c: Include <stdbool.h> unconditionally.
807
808 2003-03-09  Paul Eggert  <eggert@twinsun.com>
809
810         * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
811         Reported by Bruce Becker; see:
812         http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
813
814 2003-03-03  Paul Eggert  <eggert@twinsun.com>
815             Bruno Haible  <bruno@clisp.org>
816
817         * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
818         Reported by John Hughes, see
819         http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
820
821 2003-02-19  Paolo Bonzino  <bonzini@gnu.org>
822
823         * poll_.h: New file.
824         * poll.c: New file.
825
826 2003-02-18  Paolo Bonzino  <bonzini@gnu.org>
827
828         * mathl.h: New file.
829         * acosl.c: New file.
830         * asinl.c: New file.
831         * atanl.c: New file.
832         * ceill.c: New file.
833         * cosl.c: New file.
834         * expl.c: New file.
835         * floorl.c: New file.
836         * frexpl.c: New file.
837         * ldexpl.c: New file.
838         * logl.c: New file.
839         * sincosl.c: New file.
840         * sinl.c: New file.
841         * sqrtl.c: New file.
842         * tanl.c: New file.
843         * trigl.c: New file.
844         * trigl.h: New file.
845
846 2003-02-17  Bruno Haible  <bruno@clisp.org>
847
848         * mkdtemp.h: New file, from GNU gettext.
849         * mkdtemp.c: New file, from GNU gettext.
850
851 2003-01-31  Bruno Haible  <bruno@clisp.org>
852
853         * rename.c: #undef rename before defining rpl_rename.
854         * strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
855
856 2003-01-30  Bruno Haible  <bruno@clisp.org>
857
858         * printf-args.h: New file, from GNU gettext.
859         * printf-args.c: New file, from GNU gettext.
860         * printf-parse.h: New file, from GNU gettext.
861         * printf-parse.c: New file, from GNU gettext.
862         * vasnprintf.h: New file, from GNU gettext.
863         * vasnprintf.c: New file, from GNU gettext.
864         * asnprintf.c: New file, from GNU gettext.
865         * vasprintf.h: New file, from GNU gettext with modifications.
866         * vasprintf.c: New file, from GNU gettext.
867         * asprintf.c: New file, from GNU gettext.
868
869 2003-01-29  Bruno Haible  <bruno@clisp.org>
870
871         * stpncpy.h: New file, from GNU gettext with modifications.
872         * stpncpy.c: New file, from GNU gettext with modifications.
873
874 2003-01-28  Bruno Haible  <bruno@clisp.org>
875
876         * c-ctype.h: New file, from GNU gettext, with changes suggested by
877         Paul Eggert.
878         * c-ctype.c: New file, from GNU gettext, with changes suggested by
879         Paul Eggert.
880
881 2003-01-27  Bruno Haible  <bruno@clisp.org>
882
883         * xsetenv.h: New file, from GNU gettext.
884         * xsetenv.c: New file, from GNU gettext.
885
886 2003-01-23  Bruno Haible  <bruno@clisp.org>
887
888         * minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
889
890 2003-01-22  Bruno Haible  <bruno@clisp.org>
891
892         * exit.h: New file, from GNU gettext.
893
894 2003-01-11  Bruno Haible  <bruno@clisp.org>
895
896         * stpcpy.h (stpcpy): Use ANSI C function declarations.
897         * strcase.h (strcasecmp, strncasecmp): Likewise.
898
899 2003-01-14  Jim Meyering  <jim@meyering.net>
900
901         * same.c (same_name): Tweak a comment.
902
903 2003-01-11  Bruno Haible  <bruno@clisp.org>
904
905         * same.c (same_name): Reorder tests so as to avoid calling stat()
906         when a string comparison is sufficient.
907
908 2003-01-11  Bruno Haible  <bruno@clisp.org>
909
910         * readtokens.c (readtoken): Cast character to 'unsigned char', not
911         'unsigned int'.
912
913 2003-01-11  Bruno Haible  <bruno@clisp.org>
914
915         * hash-pjw.c: Add comment about low quality of this function.
916
917 2003-01-12  Paul Eggert  <eggert@twinsun.com>
918
919         Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
920         to avoid collisions with libcurses and libreadline.
921
922         * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
923         * getstr.h, getstr.c: Remove.
924         * getline.c: Include "getline.h", to check interface.
925         Move body of old getstr.c here: this defines MIN_CHUNK and
926         declares getdelim2, which is renamed from getstr.
927         (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
928
929         * linebuffer.c (readlinebuffer): Renamed from readline.
930         All uses changed.
931         * linebuffer.h: Likewise.
932         (readline): Remove backward-compatibility macro.
933
934 2003-01-12  Jim Meyering  <jim@meyering.net>
935
936         * makepath.c: Don't test HAVE_ERRNO_H.  It's not necessary.
937
938 2003-01-10  Bruno Haible  <bruno@clisp.org>
939
940         * alloca_.h: New file.
941         * getdate.y: Unconditionally include alloca.h.
942         * makepath.c: Likewise.
943         * setenv.c: Likewise.
944         * userspec.c: Likewise.
945
946 2003-01-09  Bruno Haible  <bruno@clisp.org>
947
948         * stdbool.h.in: New file.
949
950 2003-01-08  Bruno Haible  <bruno@clisp.org>
951
952         * safe-read.c: Include specification header first, to ensure its
953         selfcontainedness.
954         * full-write.c: Likewise.
955
956 2003-01-08  Jim Meyering  <jim@meyering.net>
957
958         * full-write.c: Undefine and define-away `const' after inclusion
959         of errno.h, not before.  Suggestion from Bruno Haible.
960
961 2003-01-07  Jim Meyering  <jim@meyering.net>
962
963         * full-write.c: Rework so that it may serve to define full_read, too.
964         * full-read.c: Simply #define FULL_READ and include full-write.c.
965
966 2003-01-06  Jim Meyering  <jim@meyering.net>
967
968         * version-etc.c: Update year in translatable copyright string.
969
970 2002-12-25  Bruno Haible  <bruno@clisp.org>
971
972         * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
973         * xstrtol.h: Likewise.
974         * xstrtoimax.c: Likewise.
975         * xstrtoumax.c: Likewise.
976         * human.h: Likewise.
977
978         * tempname.c: Include <inttypes.h> too. Avoids a compilation error
979         on systems that have <inttypes.h> but not <stdint.h>.
980
981 2002-12-31  Paul Eggert  <eggert@twinsun.com>
982
983         * memcoll.c (memcoll): Fall back on a simple algorithm using
984         memcmp if strcoll doesn't work.
985
986 2002-12-23  Bruno Haible  <bruno@clisp.org>
987
988         * localcharset.h: New file.
989         * localcharset.c: Include it.
990         * unicodeio.c: Likewise.
991
992 2002-12-22  Bruno Haible  <bruno@clisp.org>
993
994         * utime.c (utime_null): No need to call ftruncate if the file was
995         nonempty.
996
997 2002-12-23  Bruno Haible  <bruno@clisp.org>
998
999         * memcoll.c (STRCOLL): New macro.
1000         (memcoll): Use it.
1001
1002 2002-12-22  Bruno Haible  <bruno@clisp.org>
1003
1004         * getstr.h (getstr): Define, to avoid clash with libcurses.
1005         * linebuffer.h (readline): Define, to avoid clash with libreadline.
1006
1007 2002-12-22  Bruno Haible  <bruno@clisp.org>
1008
1009         * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
1010
1011 2002-12-23  Bruno Haible  <bruno@clisp.org>
1012
1013         * getline.h: Include <stddef.h>, for size_t.
1014
1015         * unicodeio.h: Include <stddef.h>, for size_t.
1016         * unicodeio.c: Don't include <stddef.h>.
1017
1018 2002-12-17  Bruno Haible  <bruno@clisp.org>
1019
1020         * canon-host.c (strdup): Remove unused declaration.
1021
1022         * fsusage.c: Include full_read.h.
1023         (get_fs_usage): Use full_read instead of safe_read.
1024
1025         * utime.c (utime_null): Use SAFE_READ_ERROR.
1026
1027 2002-12-11  Bruno Haible  <bruno@clisp.org>
1028
1029         * setenv.h: Rewritten to cope with systems that have setenv() but not
1030         unsetenv().
1031         * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
1032         modifications:
1033
1034         2002-12-11  Bruno Haible  <bruno@clisp.org>
1035
1036                 * setenv.c (alloca): Fall back to malloc.
1037                 (freea): New macro.
1038                 (setenv): Use freea() to free memory allocated with alloca().
1039
1040         2002-11-13  Bruno Haible  <bruno@clisp.org>
1041
1042                 * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
1043                 function declarations.
1044                 * unsetenv.c (unsetenv): Likewise.
1045
1046         2002-03-04  Bruno Haible  <bruno@clisp.org>
1047
1048                 Portability to AIX 4.3.3.
1049                 * unsetenv.c: New file, extracted from setenv.c.
1050                 * setenv.c: Move the unsetenv() function to unsetenv.c.
1051
1052         2001-12-20  Bruno Haible  <bruno@clisp.org>
1053
1054                 * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
1055                 use malloc instead. For SunOS 4.
1056
1057         2001-12-11  Bruno Haible  <bruno@clisp.org>
1058
1059                 * setenv.c: Declare alloca.
1060                 (compar_fn_t): New typedef.
1061                 (KNOWN_VALUE, STORE_VALUE): Use it.
1062
1063         * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
1064         setenv.h.
1065
1066 2002-12-10  Paul Eggert  <eggert@twinsun.com>
1067
1068         Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
1069         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
1070         Choose values that are less likely to collide with system fnmatch
1071         options.
1072         * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
1073         defined (e.g., a pure POSIX system).
1074         (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
1075         instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
1076
1077 2002-12-06  Jim Meyering  <jim@meyering.net>
1078
1079         * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
1080
1081         Merge in changes from libc's misc/error.c, in preparation
1082         for the merge of gnulib's changes back into libc.
1083
1084         * error.c (_): Define only if not already defined.
1085         Move definition to follow all #include directives.
1086         Include unlocked-io.h only if !_LIBC.
1087         [_LIBC]: Include <libio/libioP.h>.
1088         [USE_IN_LIBIO]: Include <libio/iolibio.h>
1089         (fflush): Tweak definition to use INTUSE.
1090         (putc): Define.
1091
1092 2002-12-05  Paul Eggert  <eggert@twinsun.com>
1093
1094         * alloca.c [defined emacs]: Include "lisp.h".
1095         (xalloc_die) [defined emacs]: New macro.
1096         (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
1097         [! defined emacs]: Include <xalloc.h>.
1098         (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
1099         (pointer): Typedef to POINTER_TYPE *.
1100         (malloc): Remove decl; we now always use xmalloc.
1101         (alloca): Use old-style definition, since Emacs needs this.
1102         Check for arithmetic overflow when computing combined size.
1103
1104 2002-12-04  Paul Eggert  <eggert@twinsun.com>
1105
1106         Do not generate unlocked-io.h automatically, since it's easier to
1107         maintain it by hand.
1108
1109         * unlocked-io.h: New file, from GNU diffutils,
1110         but with proper copyright notice and attribution.
1111         * gen-uio: Remove.
1112         * Makefile.am: Add copyright notice.
1113         (libfetish_a_SOURCES): Add unlocked-io.h.
1114         (BUILT_SOURCES, all-local): Remove unlocked-io.h.
1115         (DISTCLEANFILES, io_functions): Remove macros.
1116         (EXTRA_DIST): Remove gen_uio.
1117         (unlocked-io.h): Remove rule.
1118
1119 2002-12-04  Jim Meyering  <jim@meyering.net>
1120
1121         Reflect the fact that stat.c and lstat.c are no longer generated.
1122         * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
1123         (DISTCLEANFILES): Likewise.
1124         (EXTRA_DIST): Likewise.
1125         (all_local): Don't depend on stat.c or lstat.c.
1126         (stat.c, lstat.c): Remove rules.
1127         (EXTRA_DIST): Remove xstat.in.
1128
1129         * xstat.in: Remove file.  Contents moved into stat.c.
1130         * stat.c: New file.  Contents mostly from xstat.in.
1131         * stat.c: Rework so that it may serve to define rpl_lstat, too.
1132         * lstat.c: New file. Simply #define LSTAT and include stat.c.
1133
1134         * safe-read.c: Rework so that it may serve to define safe_write, too.
1135         * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
1136
1137 2002-12-03  Jim Meyering  <jim@meyering.net>
1138
1139         * safe-read.c, safe-write.c: Change variable names and comments, but
1140         not semantics, to minimize the differences between these two files.
1141         (safe_read): Change comment to mention SAFE_READ_ERROR.
1142
1143         * safe-read.c (IS_EINTR): Define.
1144         (safe_read): Use IS_EINTR in place of in-function cpp directives.
1145
1146 2002-12-02  Bruno Haible  <bruno@clisp.org>
1147
1148         * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
1149         Define, taken from safe-read.c.
1150         (INT_MAX): Provide fallback.
1151         (safe_write): Rewrite to iterate IFF the write fails with EINTR.
1152         * safe-write.h (SAFE_WRITE_ERROR): Define.
1153
1154         * safe-read.c (EINTR): Remove definition.
1155         (safe_read): Don't use EINTR if it is absent.
1156
1157 2002-12-02  Jim Meyering  <jim@meyering.net>
1158
1159         * safe-read.c (EINTR): Define.
1160         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
1161         (INT_MAX): Provide fallback.
1162         (safe_read): Rewrite to iterate IFF the read fails with EINTR.
1163
1164         * safe-read.h (SAFE_READ_ERROR): Define.
1165
1166 2002-12-01  Jim Meyering  <jim@meyering.net>
1167
1168         * safe-read.c: (safe_read): Also exit the loop when read returns zero.
1169         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
1170
1171 2002-11-27  Paul Eggert  <eggert@twinsun.com>
1172
1173         * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
1174         hash_rehash): Replace `if (limit <= value) abort ();' with
1175         `if (! (value < limit)) abort ();', for readability.
1176
1177 2002-11-26    <karl@gnu.org>
1178
1179         * strdup.c: copy from libc again, with jim's ok.
1180         * .cppi-disable: re-add strdup.c
1181
1182 2002-11-25    <karl@gnu.org>
1183
1184         * strtoll.c: copy from libc, meaning we now #include <strtol.c>
1185         instead of "strtol.c".
1186
1187 2002-11-25  Jim Meyering  <jim@meyering.net>
1188
1189         * mktime.c: Sync from libc, now that it has the latest fix.
1190
1191 2002-11-24    <karl@gnu.org>
1192
1193         * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
1194         regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
1195
1196 2002-11-24  Jim Meyering  <jim@meyering.net>
1197
1198         Update from coreutils:
1199
1200         * mktime.c: Merge in changes from libc.
1201
1202         Avoid a link-time failure on some Linux systems.
1203         * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
1204         (__mon_yday): Declare with the STATIC attribute.
1205         (__mktime_internal): Likewise.
1206         Based on a report from Greg Schafer.
1207
1208 2002-11-23  Jim Meyering  <jim@meyering.net>
1209
1210         * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
1211         Use `unsigned', not `int', as type of index.
1212
1213         * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
1214
1215         * fsusage.c: Remove unneeded parentheses around operands of `defined'.
1216
1217 2002-11-22  Paul Eggert  <eggert@twinsun.com>
1218
1219         * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
1220         hint that one should use `if (! x) abort ();' rather than `assert
1221         (x);', and anyway it's one less thing to worry about configuring.
1222         (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
1223         hash_rehash, hash_insert): Use abort rather than assert.
1224
1225 2002-11-22  Paul Eggert  <eggert@twinsun.com>
1226
1227         * quotearg.h: Allow multiple inclusion by surrounding with
1228         "#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
1229         so that we can be included first.
1230         (PARAMS): Remove; we now assume C89 or later.  All uses removed.
1231         * quotearg.c: Include quotearg.h immediately after config.h.
1232         No need to include stddef.h or sys/types.h any more.
1233         Surround local include files with "", not "<>".
1234         Assume HAVE_LIMITS_H unconditionally, as we assume C89.
1235         Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
1236         HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
1237         (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
1238         (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
1239         (ISPRINT): Remove; no longer needed now that we assume C89.
1240
1241         (clone_quoting_options, quotearg_buffer, quotearg_n_options):
1242         Preserve errno.
1243
1244         (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
1245         quotearg_char): Use SIZE_MAX rather than
1246         (size_t) -1 when we are talking about "infinity".
1247
1248         (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
1249
1250 2002-11-22  Bruno Haible  <bruno@clisp.org>
1251
1252         * safe-read.h: Assume C89. Add comments.
1253         (safe_read): Change return type to size_t.
1254         * safe-read.c (safe_read): Change return type to size_t. Handle byte
1255         counts > SSIZE_MAX correctly.
1256         * safe-write.h: New file.
1257         * safe-write.c: New file.
1258         * full-read.h: New file.
1259         * full-read.c: New file.
1260         * full-write.h: Assume C89. Add comments.
1261         * full-write.c: Include safe-write.h.
1262         (full_write): Rewritten to use safe_write.
1263         Suggested by Jim Meyering and Paul Eggert.
1264
1265 2002-11-21  Bruno Haible  <bruno@clisp.org>
1266
1267         Remove case insensitive option matching.
1268         * argmatch.h (argcasematch): Remove declaration.
1269         (ARGCASEMATCH): Remove macro.
1270         (__xargmatch_internal): Remove case_sensitive argument.
1271         (XARGMATCH): Update.
1272         (XARGCASEMATCH): Remove macro.
1273         * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
1274         case_sensitive argument.
1275         (argcasematch): Remove function.
1276         (__xargmatch_internal): Remove case_sensitive argument.
1277         (main): Use XARGMATCH instead of XARGCASEMATCH.
1278
1279         * xmalloc.c: Change compile-time error message. Add comment about
1280         required autoconf version.
1281
1282 2002-11-21  Jim Meyering  <jim@meyering.net>
1283
1284         * strdup.c (strdup): Tweak comment and initial #if/#include.
1285
1286         Merge in changes from the coreutils.
1287
1288         2002-09-25  Paul Eggert  <eggert@twinsun.com>
1289         * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
1290         (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
1291         (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
1292         int.  Work more efficiently if X is the same width as uintmax_t.
1293         Do not compare X to -1, to avoid bogus compiler warning.
1294         (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
1295         Don't assume that f_frsize and f_bsize are the same type.
1296
1297         * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
1298         on FreeBSD.
1299
1300         * makepath.c (make_path): Restore umask *before* creating the final
1301         component.
1302         (make_path): Minor reformatting.
1303
1304         * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
1305         and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
1306
1307         * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
1308         ones.  At least on GNU/Linux systems, `auto' means something else.
1309         From Michael Stone.
1310
1311 2002-11-20  Paul Eggert  <eggert@twinsun.com>
1312
1313         Merge argmatch cleanups from Bison.  Assume C89.
1314
1315         * argmatch.c: Include config.h here, not in argmatch.h.
1316         Include stdlib.h, for EXIT_FAILURE.
1317         Always include <string.h>, since we assume C89.
1318         (EXIT_FAILURE): Remove pre-C89 bug workaround.
1319         * argmatch.h: Do not include <config.h> or <sys/types.h>.
1320         Include <stddef.h> instead, since it's all we need for size_t.
1321         (PARAMS): Remove.  All uses removed.
1322         (ARRAY_CARDINALITY): Do not bother to #undef.
1323         (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
1324         ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
1325         Remove unnecessary parentheses.
1326         (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
1327         Insert necessary parentheses.
1328         (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
1329         (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
1330
1331 2002-11-19  Bruno Haible  <bruno@clisp.org>
1332
1333         * mbswidth.c: Include mbswidth.h right at the beginning.
1334         * mbswidth.h: Include <stddef.h>, for size_t.
1335
1336         * mbswidth.h (PARAMS): Remove macro.
1337         (mbswidth, mbsnwidth): Use ANSI C function declarations.
1338         * mbswidth.c (mbswidth, mbsnwidth): Likewise.
1339
1340         * gcd.h (PARAMS): Remove macro.
1341         (gcd): Use ANSI C function declarations.
1342         * gcd.c (gcd): Likewise.
1343
1344 2002-11-15  Bruno Haible  <bruno@clisp.org>
1345
1346         * strcspn.c: Include <stddef.h>.
1347         (strcspn): Use ANSI C function declaration. Change return type to
1348         size_t. Use NULL.
1349         * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
1350         (strpbrk): Use NULL.
1351         * strpbrk.h (PARAMS): Remove macro.
1352         (strpbrk): Use ANSI C function declaration.
1353         * strstr.c: Don't include <sys/types.h>.
1354         * strstr.h (PARAMS): Remove macro.
1355         (strstr): Use ANSI C function declarations.
1356
1357 2002-11-06  Bruno Haible  <bruno@clisp.org>
1358
1359         * gcd.h (gcd): Change argument type to 'unsigned long'.
1360         * gcd.c (gcd): Likewise.
1361
1362 2002-11-05  Bruno Haible  <bruno@clisp.org>
1363
1364         * gcd.h: New file, from gettext-0.11.5.
1365         * gcd.c: New file, from gettext-0.11.5.
1366
1367 2002-11-05  Bruno Haible  <bruno@clisp.org>
1368
1369         * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
1370         * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
1371         * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
1372         * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
1373
1374         * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
1375         * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
1376
1377         * closeout.c: Include gettext.h instead of <libintl.h>.
1378         * human.c: Include gettext.h instead of <libintl.h>.
1379         * quotearg.c: Include gettext.h instead of <libintl.h>.
1380         * rpmatch.c: Include gettext.h instead of <libintl.h>.
1381         * unicodeio.c: Include gettext.h instead of <libintl.h>.
1382         * userspec.c: Include gettext.h instead of <libintl.h>.
1383         * version-etc.c: Include gettext.h instead of <libintl.h>.
1384         * xmalloc.c: Include gettext.h instead of <libintl.h>.
1385         (textdomain): Remove definition.
1386         * xmemcoll.c: Include gettext.h instead of <libintl.h>.
1387
1388         * long-options.c: Remove include of <libintl.h> and definition of _.
1389         * same.c: Remove include of <libintl.h> and definition of _.
1390
1391 2002-11-04  Bruno Haible  <bruno@clisp.org>
1392
1393         * stpcpy.h: New file, from GNU gettext-0.11.5.
1394         * strcase.h: New file, from GNU gettext-0.11.5.
1395         * strpbrk.h: New file, from GNU gettext-0.11.5.
1396         * strstr.h: New file, from GNU gettext-0.11.5.
1397         * xgetcwd.h: New file, from GNU gettext-0.11.5.
1398
1399 2002-05-09  Bruno Haible  <bruno@clisp.org>
1400
1401         * config.charset: Update for newest glibc. Add canonical names
1402         ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
1403
1404 2002-05-09  Bruno Haible  <bruno@clisp.org>
1405
1406         * localcharset.c (get_charset_aliases): Add more Windows specific
1407         aliases.
1408
1409 2002-05-08  Owen Taylor  <otaylor@redhat.com>
1410
1411         * config.charset: A few additions for Solaris.
1412
1413 2001-12-05  Bruno Haible  <bruno@clisp.org>
1414
1415         * localcharset.c (locale_charset): Don't return an empty string.
1416
1417 2001-10-23  Bruno Haible  <haible@clisp.cons.org>
1418
1419         * config.charset: msdos in uk_UA uses CP1125.
1420
1421 2001-08-05  Bruno Haible  <haible@clisp.cons.org>
1422
1423         Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
1424         * localcharset.c (locale_charset): Declare as extern "C".
1425
1426 2002-02-15  Bruno Haible  <bruno@clisp.org>
1427
1428         * config.charset [msdosdjgpp]: For Russian, use CP866.
1429
1430 2002-02-11  Bruno Haible  <bruno@clisp.org>
1431
1432         * config.charset: Add support for NetBSD.
1433
1434 2002-09-25    <karl@gnu.org>
1435
1436         * strdup.c: copy from libc/string (via ../config/srclist*).
1437         * getopt*: copy from libc/posix.
1438         * gettext.h: copy from gettext.
1439         * .cppi-disable: add strdup.c, gettext.h.
1440
1441 2002-07-01  Jim Meyering  <meyering@lucent.com>
1442
1443         * c-stack.c: Include sys/time.h.
1444         From Volker Borchert.
1445
1446 2002-06-11  Paul Eggert  <eggert@twinsun.com>
1447
1448         * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
1449         New macro.  Use it uniformly instead of
1450         (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
1451         It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
1452         reported by Vin Shelton.
1453
1454 2002-06-22  Jim Meyering  <meyering@lucent.com>
1455
1456         * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
1457         redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
1458
1459 2002-06-22  Paul Eggert  <eggert@twinsun.com>
1460
1461         * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
1462         Do not assume SA_SIGINFO behavior.
1463         Bug reported by Jim Meyering on NetBSD 1.5.2.
1464
1465 2002-06-22  Jim Meyering  <meyering@lucent.com>
1466
1467         * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
1468
1469         * exitfail.c, exitfail.h: Likewise.
1470         * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
1471
1472         * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
1473         of fnmatch.h.
1474         (EXTRA_DIST): Add fnmatch_loop.c.
1475         (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
1476
1477         * fnmatch_loop.c: New file, from diffutils-2.8.2.
1478         * fnmatch.c: Update from diffutils-2.8.2.
1479         * fnmatch_.h: New file.  From diffutils-2.8.2.
1480         * fnmatch.h: Remove file.
1481
1482 2002-06-18  Paul Eggert  <eggert@twinsun.com>
1483
1484         * file-type.h: Report an error if neither S_ISREG nor
1485         S_IFREG is defined, instead of using a test specific to glibc
1486         2.2.  This should be safe, since POSIX requires S_ISREG and
1487         Unix Version 7 had S_IFREG.  We don't need to check for
1488         <sys/types.h> since we don't use any symbols that it defines.
1489
1490 2002-06-15  Jim Meyering  <meyering@lucent.com>
1491
1492         * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
1493         For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
1494         have been included before this file.
1495
1496 2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
1497
1498         * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
1499         so that each temporary file name is unique and valid in the first
1500         8 characters, for operation under DOS.
1501
1502 2002-06-15  Jim Meyering  <meyering@lucent.com>
1503
1504         Work even with DJGPP 2.03, which lacks support for symlinks.
1505         From Richard Dawe.
1506         * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
1507         is defined.
1508         * lchown.c (S_ISLNK): Likewise.
1509
1510 2002-06-14  Jim Meyering  <meyering@lucent.com>
1511
1512         * file-type.h: Use the version from diffutils-2.8.2.
1513         * file-type.c: Likewise.
1514
1515 2002-05-27  Jim Meyering  <meyering@lucent.com>
1516
1517         Fix a problem seen only on nonconforming systems whereby ls.c's
1518         use of localtime, and then of gettimeofday would cause trouble:
1519         the localtime call used to initialize rpl_gettimeofday's save
1520         mechanism would clobber ls's current local time information so
1521         that in any long listing the first file would always be listed
1522         with date 1970-01-01.  Analysis by Volker Borchert.
1523
1524         * gettimeofday.c (localtime): Undefine.
1525         (rpl_localtime): New function.
1526
1527 2002-05-22  Jim Meyering  <meyering@lucent.com>
1528
1529         * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
1530         * file-type.h: New file.
1531         * file-type.c (file_type): New file/function.  Extracted from diffutils.
1532
1533 2002-04-29  Paul Eggert  <eggert@twinsun.com>
1534
1535         * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
1536
1537 2002-04-28  Paul Eggert  <eggert@twinsun.com>
1538
1539         * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
1540         depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
1541         of 127, since 64 is the largest conceivable number for ancient
1542         nonstandard hosts.
1543         * sig2str.c: Do not include <sys/wait.h>; no longer needed.
1544
1545 2002-04-28  Jim Meyering  <meyering@lucent.com>
1546
1547         * sig2str.c (WTERMSIG): Remove definition (unused).
1548
1549 2002-04-28  Paul Eggert  <eggert@twinsun.com>
1550
1551         * sig2str.h, sig2str.c: New files.
1552         * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
1553
1554 2002-04-24  Jim Meyering  <meyering@lucent.com>
1555
1556         * gettext.h: New file, from Gettext.
1557         * Makefile.am (INCLUDES): Remove -I../intl.
1558         (libfetish_a_SOURCES): Add gettext.h.
1559
1560 2002-04-16  Jim Meyering  <meyering@lucent.com>
1561
1562         * readutmp.h (UT_TYPE): Remove definition (now in who.c).
1563         (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
1564         (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
1565
1566 2002-04-12  Jim Meyering  <meyering@lucent.com>
1567
1568         * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
1569
1570 2002-03-10  Jim Meyering  <meyering@lucent.com>
1571
1572         * makepath.c (make_path): Remove a comma from a diagnostic.
1573         Suggestion from Santiago Vila.
1574
1575 2002-03-08  Jim Meyering  <meyering@lucent.com>
1576
1577         * rename.c: Mention that this wrapper is needed also on
1578         mips-dec-ultrix4.4 systems.
1579
1580 2002-03-02  Jim Meyering  <meyering@lucent.com>
1581
1582         * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
1583         not HAVE_CLOCK_SETTIME.
1584
1585 2002-02-27  Paul Eggert  <eggert@twinsun.com>
1586
1587         * nanosleep.h: Rename to....
1588         * timespec.h: New name for nanosleep.h.  All uses changed.
1589
1590         * gettime.c: New file.
1591         * settime.c: New file.
1592         * stime.c: Remove.
1593
1594         * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
1595         timespec.h.  Remove nanosleep.h.
1596
1597 2002-02-25  Paul Eggert  <eggert@twinsun.com>
1598
1599         * acl.c, acl.h: New files.
1600         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
1601
1602 2002-02-24  Jim Meyering  <meyering@lucent.com>
1603
1604         * strnlen.c (strnlen): Define-away/undef so that an inconsistent
1605         prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
1606         cause trouble.  Reported by Nelson Beebe.
1607
1608 2002-02-23  Paul Eggert  <eggert@twinsun.com>
1609
1610         * path-concat.c (xpath_concat): Reorder code to pacify
1611         compilers that don't know that xalloc_die never returns.
1612
1613 2002-02-20  Jim Meyering  <meyering@lucent.com>
1614
1615         * getdate.c: Regenerate using bison-1.33.
1616
1617 2002-02-15  Paul Eggert  <eggert@twinsun.com>
1618
1619         * posixver.c, posixver.h: New files.
1620         * Makefile.am (libfetish_a_SOURCES): Add them.
1621
1622 2002-02-02  Paul Eggert  <eggert@twinsun.com>
1623             Bruno Haible  <bruno@clisp.org>
1624
1625         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
1626         (fwrite_success_callback): New declaration.
1627         * unicodeio.c (unicode_to_mb): New function, extracted from
1628         print_unicode_char. Call failure callback instead of error.
1629         (fwrite_success_callback): New function.
1630         (exit_failure_callback): New function.
1631         (fallback_failure_callback): New function.
1632         (print_unicode_char): Call unicode_to_mb.
1633
1634 2002-01-26  Jim Meyering  <meyering@lucent.com>
1635
1636         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
1637
1638 2002-01-22  Jim Meyering  <meyering@lucent.com>
1639
1640         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
1641         Otherwise, some versions of automake would omit the rule that makes
1642         Makefile from Makefile.in.
1643
1644 2001-01-21  Paul Eggert  <eggert@twinsun.com>
1645
1646         * xmemcoll.h, xmemcoll.c: New files.
1647         * Makefile.am (libfetish_a_SOURCES): Add them.
1648         * memcoll.c: Include errno.h, and declare errno if not defined.
1649         (memcoll): Set errno to zero if there is no error.
1650
1651         * quotearg.c (quotearg_buffer_restyled):
1652         Fix bug with quoting buffers containing NUL when backslashing escapes.
1653         This bug was exposed by the other changes in this patch.
1654         (quotearg_n_options): New arg ARGSIZE.
1655         All callers changed.
1656         (quoting_options_from_style): New function.
1657         (quotearg_n_style): Use it.
1658         (quotearg_n_style_mem): New function.
1659
1660         * quotearg.h (quotearg_n_style_mem): New function.
1661
1662 2002-01-16  Jim Meyering  <meyering@lucent.com>
1663
1664         * getdate.y: Add three semicolons, each just before a closing brace.
1665         Bison (as of version 1.31) no longer papers over that mistake.
1666
1667 2002-02-14  Paul Eggert  <eggert@twinsun.com>
1668
1669         * backupfile.c (ISDIGIT): Comment fix.
1670         * getdate.y (ISDIGIT): Likewise.
1671         * posixtm.c (ISDIGIT, year): Likewise.
1672         * strverscmp.c (ISDIGIT): Likewise.
1673         * userspec.c (ISDIGIT): Likewise.
1674
1675 2002-01-05  Jim Meyering  <meyering@lucent.com>
1676
1677         * version-etc.c (version_etc_copyright): Update copyright year.
1678
1679 2001-01-19  Paul Eggert  <eggert@twinsun.com>
1680
1681         * closeout.c (close_stdout_status): If ferror (stdout), do
1682         not silently exit merely because the output buffer happens to
1683         have nothing pending.
1684
1685 2001-12-18  Paul Eggert  <eggert@twinsun.com>
1686
1687         See the big note in ../ChangeLog.
1688         * human.c (suffixes): Prefer K to k for 1024.
1689         (generate_suffix_backwards): New function.
1690         (human_readable_inexact): Use it.
1691         * xstrtol.c (__xstrtol): If there is no number but there
1692         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
1693         Accept 'K' as well as 'k'.
1694
1695 2001-12-15  Jim Meyering  <meyering@lucent.com>
1696
1697         * regex.h (__restrict_arr): Update from libc.
1698
1699         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
1700         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
1701         (STREQ): Define.
1702
1703 2001-12-10  Jim Meyering  <meyering@lucent.com>
1704
1705         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
1706         Instead, include "xalloc.h".
1707         (initbuffer): Don't cast xmalloc return value to char*.
1708         (readline): Reword comment.
1709         Don't cast xrealloc return value to char*
1710         Return NULL, not 0.
1711
1712 2001-12-09  Jim Meyering  <meyering@lucent.com>
1713
1714         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
1715         `signed and unsigned type in conditional expression'.
1716         * posixtm.c (posix_time_parse): Likewise.
1717
1718         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
1719
1720         * readtokens.c (readtoken): Declare an index to be of type unsigned
1721         to avoid a pedantic warning.
1722
1723         * getstr.c: Don't include assert.h.
1724         (getstr): Remove warning-evoking assertions.
1725         Return -1 if offset parameter is out of bounds.
1726         Change the type of a local from int to size_t.
1727
1728         * strftime.c (my_strftime_localtime_r): Include this function
1729         definition in the `#if ! HAVE_TM_GMTOFF' block.
1730
1731         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
1732         Include xalloc.h instead.
1733
1734 2001-12-02  Jim Meyering  <meyering@lucent.com>
1735
1736         * tempname.c: Don't declare getenv, thus reverting the change of
1737         2001-11-18.  It's no longer necessary, now that stdlib.h is always
1738         included.
1739
1740         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
1741         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
1742
1743 2001-11-30  Akim Demaille  <akim@epita.fr>
1744
1745         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
1746         before being defined.
1747
1748 2001-11-27  Paul Eggert  <eggert@twinsun.com>
1749
1750         * quotearg.h (quotearg_n, quotearg_n_style):
1751         First arg is int, not unsigned.
1752         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
1753         (SIZE_MAX, UINT_MAX): New macros.
1754         (quotearg_n_options): Abort if N is negative.
1755         Avoid overflow check on hosts where size_t is 64 bits and int
1756         is 32 bits, as overflow is impossible there.
1757         Fix off-by-one typo that caused unnecessary reallocation.
1758
1759 2001-11-27  Jim Meyering  <meyering@lucent.com>
1760
1761         * tempname.c: Merge with version from libc.
1762         * regex.c: Likewise.
1763
1764         * tempname.c: Include stdlib.h unconditionally.  On some old systems
1765         for which STDC_HEADERS is 0, it was not included, resulting in a
1766         warning about an integer-to-pointer conversion problem with getenv.
1767         Reported by Volker Borchert.
1768
1769 2001-11-26  Jim Meyering  <meyering@lucent.com>
1770
1771         * gtod.h: Remove file.
1772         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
1773         * gettimeofday.c: Don't include gtod.h.
1774         (GTOD_init): Remove function.
1775         (rpl_gettimeofday): Do its job here instead, rather than aborting.
1776         Suggestion from Volker Borchert.
1777
1778 2001-11-23  Jim Meyering  <meyering@lucent.com>
1779
1780         * hash.h (struct hash_table): Don't define here.  Merely declare it.
1781         * hash.c (struct hash_table): Define it here instead.
1782
1783 2001-11-22  Jim Meyering  <meyering@lucent.com>
1784
1785         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
1786
1787 2001-11-18  Paul Eggert  <eggert@twinsun.com>
1788
1789         * tempname.c (TMP_MAX): Remove; no longer needed.
1790         (TEMPORARIES): New macro.
1791         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
1792         removes an artificial limitation (e.g. HP-UX 10.20, where
1793         TMP_MAX is 17576).
1794
1795 2001-11-18  Jim Meyering  <meyering@lucent.com>
1796
1797         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
1798         on SunOS 4.
1799
1800         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
1801         files will be created before anything else.
1802
1803 2001-11-17  Jim Meyering  <meyering@lucent.com>
1804
1805         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
1806         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
1807         rather than group writable.  Patch by Juan F. Codagnone.
1808
1809         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
1810         Instead, include "xalloc.h".
1811
1812         * mountlist.c: Include unlocked-io.h after all system headers.
1813         Remove explicit declarations of xmalloc, xrealloc,
1814         and xstrdup.  Instead, include "xalloc.h".
1815
1816         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
1817         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
1818         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
1819
1820         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
1821         Reported by Padraig Brady.
1822
1823         * mkstemp.c: #undef mkstemp.
1824         Include config.h.
1825         (rpl_mkstemp): Rename from mkstemp.
1826         Protoize.
1827
1828 2001-11-16  Jim Meyering  <meyering@lucent.com>
1829
1830         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
1831         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
1832         determine the amount of total physical memory, use pstat_getstatic.
1833         HPUX-11 doesn't define _SC_PHYS_PAGES.
1834         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
1835         If sysconf couldn't be used to determine the amount of available
1836         physical memory, use both pstat_getstatic and pstat_getdynamic.
1837         Based on a patch from Bob Proulx.
1838
1839 2001-11-05  Jim Meyering  <meyering@lucent.com>
1840
1841         * xstat.in (slash_aware_lstat): Correct a misleading comment.
1842
1843 2001-11-03  Jim Meyering  <meyering@lucent.com>
1844
1845         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
1846         in argmatch_to_argument call.
1847
1848         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
1849         argument.
1850
1851         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
1852         e.g., a fault due to an attempt to free a NULL pointer.
1853
1854 2001-11-01  Jim Meyering  <meyering@lucent.com>
1855
1856         * dirfd.c, dirfd.h: New files.
1857         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
1858
1859         * hash.c (hash_print) [TESTING]: Clean up.
1860
1861 2001-10-22  Paul Eggert  <eggert@twinsun.com>
1862
1863         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
1864         to avoid a warning if -Wall.
1865
1866 2001-10-21  Paul Eggert  <eggert@twinsun.com>
1867
1868         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
1869
1870 2001-10-21  Jim Meyering  <meyering@lucent.com>
1871
1872         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
1873         this code would end up calling gettext even in packages built
1874         with --disable-nls.
1875         * getopt.c (_): Likewise.
1876         * regex.c (_): Likewise.
1877
1878 2001-10-20  Paul Eggert  <eggert@twinsun.com>
1879
1880         * error.c (strerror_r): Do not declare unless !_LIBC.
1881         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
1882         Use strerror_r that is only a macro, even if it is not a function.
1883         (strerror): Check for HAVE_DECL_STRERROR before declaring.
1884         (private_strerror): Use prototypes, not old-style function definition.
1885         (print_errno_message): New function.
1886         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
1887         char*-flavored one.
1888         (error_tail, error, error_at_line): Use it.
1889
1890 2001-10-11  Jim Meyering  <meyering@lucent.com>
1891
1892         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
1893         and quote_n (1, ... to avoid clobbering a buffer.
1894
1895 2001-10-05  Jim Meyering  <meyering@lucent.com>
1896
1897         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
1898         * hash-pjw.c: New file (factored out of fileutils' remove.c).
1899         * hash-pjw.h: New file.
1900
1901 2001-09-30  Jim Meyering  <meyering@lucent.com>
1902
1903         * mountlist.c [MOUNTED_GETFSSTAT]:
1904         Include <sys/ucred.h>, for Apple Darwin.
1905         Include sys/mount.h and sys/fs_types.h only if available.
1906         (FS_TYPE): Define.
1907         (read_filesystem_list): Use FS_TYPE.
1908
1909 2001-09-29  Paul Eggert  <eggert@twinsun.com>
1910
1911         * exclude.c (excluded_filename): 0 -> false, since it's
1912         a boolean context.
1913
1914 2001-09-28  Paul Eggert  <eggert@twinsun.com>
1915
1916         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
1917         #defines strtoimax.  Also treat the other strto* functions
1918         like strtoimax.
1919
1920         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
1921         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
1922         (strtoimax, strtoumax): Do not declare if already defined as a macro.
1923
1924 2001-09-26  Jim Meyering  <meyering@lucent.com>
1925
1926         Most macros in unlocked-io.h had the wrong number of arguments.
1927         * gen-uio: New script.
1928         (USE_UNLOCKED_IO): Define to 1 if not already defined.
1929         * unlocked-io.hin: Remove file.
1930         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
1931         rather than trying to embed it here.
1932         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
1933         Reported by Padraig Brady.
1934
1935 2001-09-25  Volker Borchert  <bt@teknon.de>
1936
1937         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
1938
1939 2001-09-23  Jim Meyering  <meyering@lucent.com>
1940
1941         * mountlist.c: Remove useless parentheses in #if directives.
1942         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
1943         the deprecated MOUNTED symbol is no longer defined in mntent.h.
1944
1945 2001-09-22  Jim Meyering  <meyering@lucent.com>
1946
1947         * localcharset.c: Update from latest gettext.
1948         * config.charset: Likewise.
1949
1950 2001-09-20  Jim Meyering  <meyering@lucent.com>
1951
1952         * xstrtol.c (strtoimax): Guard declaration with
1953         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
1954         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
1955         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
1956         (strtoumax): Likewise, for completeness (it wasn't necessary).
1957
1958 2001-09-06  Paul Eggert  <eggert@twinsun.com>
1959
1960         * strtoimax.c (HAVE_LONG_LONG):
1961         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
1962         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
1963         to work around bug in IBM C compiler.
1964
1965 2001-09-16  Jim Meyering  <meyering@lucent.com>
1966
1967         * mkdir.c: New file.
1968
1969 2001-09-04  Paul Eggert  <eggert@twinsun.com>
1970
1971         * xgetcwd.c: Revert some of the previous change; intead,
1972         fix the HAVE_GETCWD_NULL code to behave more like the
1973         !HAVE_GETCWD_NULL code used to.
1974
1975         Include "xalloc.h".
1976         (xgetcwd): Do not return NULL when memory is exhausted; instead,
1977         invoke xalloc_die.
1978
1979 2001-09-04  Paul Eggert  <eggert@twinsun.com>
1980
1981         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
1982         Use ssize_t, not int, to store result of readlink.
1983         Check for ssize_t overflow as well as size_t overflow,
1984         as POSIX says the result of readlink is implementation-defined
1985         when ssize_t overflows.
1986         Remove unnecessary cast to char*.
1987         Use free+malloc instead of realloc, as the storage doesn't need
1988         to be preserved and it's clearer and can be more efficient that way.
1989         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
1990         * xreadlink.h (xreadlink): Update prototype.
1991
1992 2001-09-03  Paul Eggert  <eggert@twinsun.com>
1993
1994         * exclude.c (fnmatch_no_wildcards): Fix confusion between
1995         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
1996         spotted by Jim Meyering.
1997
1998 2001-09-03  Jim Meyering  <meyering@lucent.com>
1999
2000         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
2001
2002 2001-09-03  Paul Eggert  <eggert@twinsun.com>
2003
2004         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
2005         like the HAVE_GETCWD_NULL code.
2006         Include pathmax.h if not HAVE_GETCWD.
2007         Do not include xalloc.h.
2008         (INITIAL_BUFFER_SIZE): New symbol.
2009         Do not use xmalloc / xrealloc, since the caller is responsible for
2010         handling errors.  Preserve errno around `free' during failure.
2011         Do not overrun buffer when using getwd.
2012
2013 2001-09-03  Paul Eggert  <eggert@twinsun.com>
2014
2015         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
2016         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
2017
2018 2001-09-02  Jim Meyering  <meyering@lucent.com>
2019
2020         * error.c: Update from GNU libc.
2021
2022 2001-09-01  Jim Meyering  <meyering@lucent.com>
2023
2024         * xreadlink.c: New file.
2025         * xreadlink.h: New file.
2026         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
2027
2028         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
2029         doesn't conflict with sparc Solaris 7's definition in
2030         /usr/include/sys/int_types.h.
2031
2032         * exclude.c: Use `""', not `<>' to #include non-system header files.
2033         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
2034         and strncasecmp as r-values.  Unixware didn't have declarations.
2035
2036 2001-08-31  Jim Meyering  <meyering@lucent.com>
2037
2038         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
2039         Use an initial, malloc'd, buffer of length 128 rather than
2040         a statically allocated one of length 1024.
2041
2042 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2043
2044         * xgetcwd.c: Don't include pathmax.h.
2045         Include stdlib.h and unistd.h if available.
2046         Include xalloc.h.
2047         (xmalloc, xstrdup, free): Remove decls.
2048         (xgetcwd): Don't assume sizes fit in unsigned.
2049         Check for overflow when computing sizes.
2050         Simplify reallocation code.
2051
2052 2001-08-28  Paul Eggert  <eggert@twinsun.com>
2053
2054         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
2055
2056         * strtoimax.c: Renamed from strtoxmax.c, removing the
2057         old strtoimax.c.
2058
2059         Also, make the following further changes to make this file's
2060         configuration more similar to that of strtol.c:
2061         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
2062         (strtoumax, uintmax_t, strtoull, strtol): Remove.
2063         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
2064         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
2065         changed to signed values.
2066
2067         And make the following changes as well:
2068         Fix copyright notice, as 1999 was missing.
2069         (verify): New macro.
2070         (strtoimax): Check sizes at compile-time, not run-time.
2071         Prefer strtol to strtoll if both work.
2072         (main): Remove; it was not that useful and was a pain to maintain.
2073
2074         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
2075
2076 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2077
2078         * savedir.c (savedir): Remove size parameter, as POSIX says that
2079         a directory's st_size can have an arbitrary value, so the old
2080         usage could waste an arbitrary amount of memory.  All uses
2081         changed.
2082         * savedir.h: Update prototype.
2083
2084 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2085
2086         * xstrtol.c (strtoimax): New decl.
2087
2088 2001-08-28  Paul Eggert  <eggert@twinsun.com>
2089
2090         * xstrtol.h: Add copyright notice.
2091         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
2092         LONGINT_INVALID_SUFFIX_CHAR.
2093
2094 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2095
2096         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
2097         tm to be declared.
2098
2099 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2100
2101         * hash.c: Remove '2001' from copyright notice.
2102
2103 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2104
2105         * full-write.h: New file.
2106         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
2107         * full-write.c: Correct credits, as cccp.c no longer
2108         exists and anyway it was so heavily changed from the old cccp
2109         code as to be unrecognizable.  Include full-write.h.
2110         (full_write) Return size_t, with short writes meaning failure.
2111         All callers changed.  This fixes a bug with large buffers
2112         on 64-bit hosts.
2113         * utime.c: Include full-write.h.
2114
2115 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2116
2117         Merge 'exclude' changes from tar 1.13.22.
2118         This fixes one or two unlikely storage allocation overflow bugs,
2119         but doesn't change user-visible behavior otherwise.
2120
2121 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2122
2123         * exclude.c (bool): Declare, perhaps by including stdbool.h.
2124         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
2125         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
2126         Include if available.
2127         (<xalloc.h>): Include
2128         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
2129         (verify): New macro.  Use it to verify that EXCLUDE macros do not
2130         collide with FNM macros.
2131         (struct patopts): New struct.
2132         (struct exclude): Use it, as exclude patterns now come with options.
2133         (new_exclude): Support above changes.
2134         (new_exclude, add_exclude_file):
2135         Initial size must now be a power of two to simplify overflow checking.
2136         (free_exclude, fnmatch_no_wildcards): New function.
2137         (excluded_filename): No longer requires options arg, as the options
2138         are determined by add_exclude.  Now returns bool, not int.
2139         (excluded_filename, add_exclude):
2140         Add support for the fancy new exclusion options.
2141         (add_exclude, add_exclude_file): Now takes int options arg.
2142         Check for arithmetic overflow when computing sizes.
2143         (add_exclude_file): xrealloc might modify errno, so don't
2144         realloc until after errno might be used.
2145
2146         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
2147         New macros.
2148         (free_exclude): New decl.
2149         (add_exclude, add_exclude_file): Now takes int options arg.
2150         (excluded_filename): No longer requires options arg, as the options
2151         are determined by add_exclude.  Now returns bool, not int.
2152
2153 2001-08-30  Paul Eggert  <eggert@twinsun.com>
2154
2155         * alloca.c (alloca): Arg is of type size_t, not unsigned.
2156
2157 2001-08-27  Jim Meyering  <meyering@lucent.com>
2158
2159         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
2160
2161         * version-etc.c (N_): Remove definition.
2162         Revert most of last change.
2163         Instead, simply don't mark the `Copyright...' string for translation.
2164         Based on advice from Paul Eggert.
2165
2166         * strtoxmax.c: Tweak comment.
2167
2168 2001-08-26  Jim Meyering  <meyering@lucent.com>
2169
2170         * version-etc.c (version_etc_copyright_fmt): Replace literal year
2171         of copyright with `%s' so translators don't get an untranslated
2172         message in 2002.
2173         (COPYRIGHT_YEAR): Define.
2174         (version_etc): Use fprintf rather than fputs.
2175         Suggestion from Ulrich Drepper.
2176
2177         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
2178
2179         * strtoll.c: New file, from GNU libc.
2180         * xstrtoimax.c: New file.
2181
2182         * xstrtol.h: Add xstrtoimax.
2183         * strtoumax.c: New file.  Simply include "strtoumax.c".
2184         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
2185
2186         * strtoumax.c: Factor to work both for unsigned and signed types, ...
2187         * strtoxmax.c: ... then renamed to this.
2188
2189 2001-08-13  Paul Eggert  <eggert@twinsun.com>
2190
2191         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
2192         Port to Solaris 8, where 'sed' requires a space after the 'r'
2193         command, and where sh dislikes "$/".  Clean up the spacing a bit.
2194         Redirect output to $tmp just once.
2195
2196 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
2197
2198         * addext.c (<errno.h>): Include.
2199         (errno): Declare if not defined.
2200         (addext): Work correctly when pathconf returns -1 and leaves
2201         errno alone because there is no limit.  Also, work even if
2202         pathconf returns a value greater than SIZE_MAX.
2203
2204 2001-08-12  Jim Meyering  <meyering@lucent.com>
2205
2206         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
2207         Simply `return getcwd (NULL, 0);'.
2208         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
2209         Use 1300 as initial value for length, not PATH_MAX.
2210
2211         * pathmax.h: Clean up cpp syntax.
2212
2213 2001-08-12  Jim Meyering  <meyering@lucent.com>
2214
2215         * gettimeofday.c: New file.
2216         * gtod.h: New file.
2217         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
2218
2219 2001-08-04  Jim Meyering  <meyering@lucent.com>
2220
2221         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
2222         to get in sync with glibc.
2223
2224 2001-08-03  Paul Eggert  <eggert@twinsun.com>
2225
2226         The following changes are from gettext 0.10.39 as maintained by
2227         Bruno Haible.
2228
2229         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
2230         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
2231         with inverted sense.  All uses changed.
2232
2233         * mbswidth.c: Don't include <limits.h>.
2234         Include <stdlib.h> and <string.h> unconditionally.
2235         (iswcntrl, mbsinit, ISCNTRL): New macros.
2236         (mbsnwidth): Use K&R style function declarations.
2237         Don't bother checking for MB_LEN_MAX == 1, since the compiler
2238         can optimize it when MB_CUR_MAX == 1.
2239         The width of control characters is zero, not 1.
2240
2241 2001-07-15  Jim Meyering  <meyering@lucent.com>
2242
2243         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
2244         (BUILT_SOURCES): Add unlocked-io.h.
2245         (io_functions): Define.
2246         (unlocked-io.h): New rule.
2247         (DISTCLEANFILES): Add unlocked-io.h.
2248         (all-local): Depend on unlocked-io.h, to ensure it is created.
2249
2250         * unlocked-io.hin: New file
2251
2252         * regex.c: Update from glibc.
2253
2254 2001-07-05  Jim Meyering  <meyering@lucent.com>
2255
2256         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
2257         recommendation.
2258         (libfetish_a_SOURCES): Put all .h files here instead.
2259         Remove a thus-exposed (better checks in automake) duplicate and
2260         two unnecessary .h files.
2261
2262 2001-06-11  Jim Meyering  <meyering@lucent.com>
2263
2264         * regex.c: Update from GNU libc.
2265
2266 2001-05-27  Jim Meyering  <meyering@lucent.com>
2267
2268         * readutmp.h (UT_TYPE): Define.
2269
2270 2001-05-24  Jim Meyering  <meyering@lucent.com>
2271
2272         * argmatch.c: Include "quote.h".
2273         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
2274         quote function.  Reported by Göran Uddeborg.
2275
2276 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
2277
2278         * dirname.c (dir_name): Compute append_dot using path, not newpath
2279         which is not yet declared.
2280
2281 2001-05-11  Paul Eggert  <eggert@twinsun.com>
2282
2283         * Makefile.am (libfetish_a_SOURCES):
2284         Add strftime.c, since we now compile it on all hosts.
2285
2286         * strftime.c (my_strftime):
2287         Define to nstrftime if emacs, but only if my_strftime is not defined.
2288         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
2289         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
2290         Add one more extra argument: a nanoseconds value.
2291         All uses changed.
2292         (ns): New macro.
2293         (my_strftime function): Add %N format.
2294         (emacs_strftimeu): Renamed from emacs_strftime,
2295         with extra ut argument.
2296
2297 2001-05-11  Paul Eggert  <eggert@twinsun.com>
2298
2299         dirname code cleanup.  base_name now behaves more compatibly
2300         with POSIX basename when given file names that have trailing
2301         slashes, and similarly for dir_name.  Add new primitives
2302         base_len and dir_len.  Put the directory-name-related decls
2303         into dirname.h.
2304
2305         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
2306         * backupfile.c (base_name): Likewise.
2307         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
2308         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
2309         * makepath.c (strip_trailing_slashes): Likewise.
2310         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
2311         Likewise.
2312         * rename.c (strip_trailing_slashes): Likewise.
2313         * same.c (base_name): Likewise.
2314         * stripslash.c (ISSLASH): Likewise.
2315
2316         * addext.c: Include <dirname.h> after size_t is defined.
2317         * backupfile.c: Likewise.
2318
2319         * addext.c (addext): Use base_len to trim redundant
2320         trailing slashes instead of doing it ourselves.
2321         But do not trim the last slash if it is not redundant.
2322
2323         * backupfile.c (find_backup_file_name,
2324         max_backup_version): Use base_len instead of rolling it ourselves.
2325         Handle the case of "" and (on DOS) "C:" correctly.
2326
2327         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
2328         Include <string.h>, <dirname.h>.
2329         (base_name): Allow file names ending in slashes, other than names
2330         that are all slashes.  In this case, return the basename followed
2331         by the slashes.  This is more general, and can be used in places
2332         where the original base_name purposely had an assertion failure.
2333         (base_len): New function.
2334
2335         * dirname.c: Include <string.h> instead of <stdlib.h>.
2336         Do not include <assert.h>; no longer needed.
2337         Include xalloc.h.
2338         (memrchr): Remove decl.
2339         (dir_name_r): Remove.
2340         (dir_len): Renamed from dirlen.  All callers changed.
2341         Rewrite in terms of base_name, for simplicity and consistency.
2342         (dir_name): Never return NULL.  All callers changed.
2343         Do not include <stdlib.h> in test program; no longer needed.
2344         return 0; is fine for test program.
2345
2346         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
2347         New macros.
2348         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
2349
2350         * path-concat.c (path_concat): Use base_len to compute
2351         base length, not strlen; this means we cannot rely on memcpy
2352         to null-terminate.
2353
2354         * same.c (STREQ): Remove.
2355         (same_name): Handle the case where the basename ends in trailing '/'.
2356
2357         * stripslash.c (strip_trailing_slashes): Return nonzero if
2358         a slash was stripped.  Do not strip the last slash after a
2359         file system prefix.
2360
2361 2001-04-08  Jim Meyering  <meyering@lucent.com>
2362
2363         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
2364         recomputed; that's necessary when the offset spans a DST transition.
2365         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
2366
2367 2001-04-02  Jim Meyering  <meyering@lucent.com>
2368
2369         * regex.h, regex.c: Update from GNU libc.
2370
2371 2001-03-19  Paul Eggert  <eggert@twinsun.com>
2372
2373         * version-etc.c (version_etc_copyright): Update to 2001.
2374
2375 2001-03-16  Paul Eggert  <eggert@twinsun.com>
2376
2377         * tempname.c (uint64_t): Define to uintmax_t if
2378         not defined, and if UINT64_MAX is not defined.
2379         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
2380         Reported by John David Anglin.
2381
2382 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
2383
2384         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
2385         alias if codeset is empty.
2386         * config.charset (BeOS): Use wildcard syntax.
2387
2388 2001-03-13  Jim Meyering  <meyering@lucent.com>
2389
2390         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
2391         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
2392         From Bruno Haible.
2393
2394 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
2395
2396         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
2397         Don't return NULL.
2398         * unicodeio.c (print_unicode_char): Simplify accordingly.
2399
2400 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
2401
2402         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
2403         support for DOS/DJGPP.
2404
2405 2001-02-28  Paul Eggert  <eggert@twinsun.com>
2406
2407         * Makefile.am (libfetish_a_SOURCES):
2408         Add dup-safer.c, fopen-safer.c.
2409         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
2410
2411         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
2412
2413 2001-02-25  Paul Eggert  <eggert@twinsun.com>
2414
2415         The mkstemp replacement is taken from glibc 2.2.2, with some
2416         portability fixes for use outside glibc, as follows:
2417
2418         * tempname.c (struct_stat64): New macro.
2419         (direxists, __gen_tempname): Use it.
2420         This avoids a portability problem with Solaris 8.
2421
2422         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
2423         (<stddef.h>, <stdint.h>, <string.h>):
2424         Include only if STDC_HEADERS || _LIBC.
2425         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
2426         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
2427         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
2428         (__set_errno): Define this macro if <errno.h> doesn't.
2429         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
2430         Define these macros if <stdio.h> doesn't.
2431         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
2432         Define these macros if <sys/stat.h>
2433         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
2434         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
2435         __xstat64): Define if not _LIBC.
2436         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
2437         (__gen_tempname): Invoke gettimeofday only if
2438         HAVE_GETTIMEOFDAY || _LIBC;
2439         otherwise, fall back on plain "time".
2440         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
2441
2442         * mkstemp.c (__GT_FILE): Define to zero if not defined.
2443
2444         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
2445
2446 2001-02-17  Jim Meyering  <meyering@lucent.com>
2447
2448         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
2449         around included file name.
2450
2451         * strnlen.c (__strnlen): Merge in a change from GNU libc.
2452
2453         * strftime.c: Update from GNU libc (the only changes were to comments).
2454
2455 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
2456
2457         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
2458
2459 2001-02-17  Paul Eggert  <eggert@twinsun.com>
2460
2461         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
2462         Remove workaround macros for hosts that have mbrtowc but not
2463         mbstate_t, as we now insist on proper declarations for both
2464         before using mbrtowc.
2465
2466 2001-02-17  Jim Meyering  <meyering@lucent.com>
2467
2468         * regex.c: Update from libc.
2469
2470 2001-02-16  Paul Eggert  <eggert@twinsun.com>
2471
2472         * alloca.c (malloc): Undef before defining, since stdlib.h
2473         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
2474         Reported by Mark Hounschell via Paul Eggert.
2475
2476 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
2477
2478         * config.charset: Update for FreeBSD 4.2.
2479
2480 2001-01-26  Jim Meyering  <meyering@lucent.com>
2481
2482         * quotearg.c: Include stddef.h.
2483         * quote.c: Include stddef.h.
2484         Reported by Axel Kittenberger.
2485
2486         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
2487         line in double quotes so that it evokes a better diagnostic.
2488         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
2489         Reported by Axel Kittenberger.
2490
2491 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
2492
2493         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
2494         to avoid a warning.  Add back 'const' to inptr.
2495
2496 2001-01-16  Jim Meyering  <meyering@lucent.com>
2497
2498         * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
2499         From Bruno Haible.
2500
2501 2001-01-14  Jim Meyering  <meyering@lucent.com>
2502
2503         * rename.c: New file.  From Volker Borchert.
2504         Include stdlib.h, string.h or strings.h, and xalloc.h.
2505         Use strip_trailing_slashes rather than open-coding it.
2506
2507 2001-01-03  Paul Eggert  <eggert@twinsun.com>
2508
2509         * strftime.c: Sync with glibc time/strftime.c 1.81.
2510
2511 2001-01-03  Jim Meyering  <meyering@lucent.com>
2512
2513         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
2514         local `inptr' to avoid warning with some system declarations of iconv.
2515
2516 2000-12-29  Paul Eggert  <eggert@twinsun.com>
2517
2518         * modechange.c: Do not assume that mode_t uses the
2519         traditional octal encoding.  E.g. "chmod 1 FOO" should set
2520         the other-execute bit of FOO even if S_IXOTH != 1.
2521
2522         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
2523         WOTH, XOTH, ALLM): New macros.
2524         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
2525          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
2526         Use them.
2527         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
2528         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
2529         (mode_compile):
2530         No need to use uintmax_t; unsigned long is long enough.
2531         Don't bother to get suffix since we don't use it.
2532
2533 2000-12-24  Jim Meyering  <meyering@lucent.com>
2534
2535         * hash.c (is_prime): Return explicit boolean values.
2536         (hash_get_first): Return NULL to appease Irix5.6's 89.
2537         Reported by Nelson Beebe.
2538
2539 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
2540
2541         * localcharset.c (locale_charset): Add support for Win32.
2542
2543 2000-12-18  Paul Eggert  <eggert@twinsun.com>
2544
2545         * physmem.h, physmem.c: New files.
2546
2547         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
2548         (noinst_HEADERS): Add physmem.h.
2549
2550         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
2551         't' for compatibility with Solaris 8 sort.
2552
2553 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
2554
2555         * config.charset: Add support for BeOS.
2556
2557 2000-12-16  Jim Meyering  <meyering@lucent.com>
2558
2559         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
2560         SHELLS_FILE to a file name that's useful on djgpp systems.
2561         Include stdlib.h.
2562         (ADDITIONAL_DEFAULT_SHELLS): Define.
2563         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
2564         Based mostly on a patch from Prashant TR.
2565
2566 2000-12-16  Jim Meyering  <meyering@lucent.com>
2567
2568         This bug had a serious impact on chown: `chown N:M FILE' (for integer
2569         N and M) would have treated it like `chown N:N FILE'.
2570
2571         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
2572
2573 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
2574
2575         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
2576         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
2577         to the list of canonical encodings. Rename EUC-CN to GB2312.
2578
2579 2000-12-08  Andreas Schwab  <schwab@suse.de>
2580
2581         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
2582         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
2583
2584 2000-12-07  Jim Meyering  <meyering@lucent.com>
2585
2586         * stripslash.c (ISSLASH): Define.
2587         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
2588         From Prashant TR.
2589
2590         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
2591         (dir_name_r): Declare this function as static.
2592         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
2593         manifest itself on a name containing a mix of slashes and
2594         backslashes.
2595         Make this function work with names starting with a DOS-style
2596         drive letter and colon prefix.
2597         (dir_name): Append `.' if necessary.
2598         Based mostly on patches from Prashant TR and Eli Zaretskii.
2599
2600         * dirname.h (dir_name_r): Remove prototype.
2601
2602 2000-12-05  Jim Meyering  <meyering@lucent.com>
2603
2604         * dirname.c (dir_name_r): Add `const' in a few local declarations.
2605
2606 2000-12-04  Jim Meyering  <meyering@lucent.com>
2607
2608         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
2609         Also include memory.h, stdlib.h, unistd.h if appropriate.
2610         Reported by Andreas Jaeger (conflicting declaration of malloc).
2611
2612 2000-12-02  Jim Meyering  <meyering@lucent.com>
2613
2614         * closeout.h: Make idempotent, to avoid some obscure warnings.
2615
2616 2000-12-01  Paul Eggert  <eggert@twinsun.com>
2617
2618         * memrchr.c: Include <config.h> before any system include file.
2619
2620 2000-11-29  Paul Eggert  <eggert@twinsun.com>
2621
2622         * dirname.c (dir_name_r): Fix typo: int -> size_t.
2623
2624 2000-11-26  Jim Meyering  <meyering@lucent.com>
2625
2626         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
2627
2628 2000-11-22  Paul Eggert  <eggert@twinsun.com>
2629
2630         * strftime.c (my_strftime): Do not invoke mbrlen with a
2631         size of (size_t) -1; it's not portable.
2632
2633 2000-11-17  Akim Demaille  <akim@epita.fr>
2634
2635         * obstack.h: Formatting changes.
2636         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
2637         prevent type checking.
2638         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
2639         cast the value to (void *): assigning a `foo *' to a `void *'
2640         variable is valid.
2641         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
2642
2643 2000-11-17  Jim Meyering  <meyering@lucent.com>
2644
2645         * strstr.c: Update from GNU libc.
2646
2647 2000-11-16  Jim Meyering  <meyering@lucent.com>
2648
2649         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
2650
2651 2000-11-11  Jim Meyering  <meyering@lucent.com>
2652
2653         * error.c: Add a couple #includes, merging from GNU libc version.
2654
2655 2000-11-10  Jim Meyering  <meyering@lucent.com>
2656
2657         * obstack.h: Update from GNU libc.
2658         * obstack.c: Likewise.
2659
2660 2000-11-06  Paul Eggert  <eggert@twinsun.com>
2661
2662         * getusershell.c (setusershell): Use rewind rather than
2663         fseek/fseeko, to avoid configuration hassles with fseeko.
2664         Don't bother opening SHELLS_FILE if shellstream is NULL;
2665         it's not necessary.
2666
2667 2000-11-05  Jim Meyering  <meyering@lucent.com>
2668
2669         * makepath.h (make_dir): Declare.
2670         * makepath.c (make_dir): Remove `static' attribute.
2671         Tweak a comment.
2672
2673 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
2674
2675         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
2676         last one in a bucket, advance to the next bucket.
2677
2678 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
2679
2680         * fnmatch.c: Do not comment out all the code if we are using
2681         the GNU C library, because in some cases we are replacing buggy
2682         code in the GNU C library itself.
2683
2684 2000-10-30  Paul Eggert  <eggert@twinsun.com>
2685
2686         * error.h, getline.h, modechange.h:
2687         Remove "2000" from Copyright line, as the file hasn't been
2688         changed this year other than in the copyright notice.
2689
2690         * xalloc.h: Add "2000" to Copyright line, as this file
2691         was changed this year.
2692
2693 2000-10-30  Paul Eggert  <eggert@twinsun.com>
2694
2695         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
2696         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
2697         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
2698
2699 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
2700
2701         * regex.h (__restrict_arr): Move definition out of #ifndef block.
2702         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
2703         doesn't define __restrict_arr.
2704
2705 2000-10-29  Jim Meyering  <meyering@lucent.com>
2706
2707         * xstat.in: Fix grammar in comment.
2708
2709 2000-10-28  Jim Meyering  <meyering@lucent.com>
2710
2711         * memchr.c: Update from libc.
2712         Adjust for portability:
2713         [HAVE_STDLIB_H]: Include stdlib.h.
2714         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
2715         Undef __memchr, too.
2716         [!weak_alias]: Define __memchr to memchr.
2717
2718         * regex.c: Update from libc.
2719         * regex.h: Likewise.
2720         * getopt1.c: Likewise.
2721         * memcmp.c: Likewise.
2722
2723         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
2724         Avoid using fseek, when possible -- it's broken by design.
2725         Patch by Ulrich Drepper.
2726
2727 2000-10-26  Jim Meyering  <meyering@lucent.com>
2728
2729         * strftime.c: Update from libc.
2730
2731 2000-10-25  Jim Meyering  <meyering@lucent.com>
2732
2733         * obstack.c: Update from libc.
2734
2735 2000-10-23  Jim Meyering  <meyering@lucent.com>
2736
2737         * hard-locale.c (hard_locale): Revert last change -- it was simply
2738         wrong.  That set_locale call must not have any side effects.
2739         From Paul Eggert.
2740
2741 2000-10-22  Jim Meyering  <meyering@lucent.com>
2742
2743         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
2744         [CYCLIC]: Remove now-unused definition.
2745
2746         * save-cwd.c (O_DIRECTORY): Define, if needed.
2747         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
2748         Suggestion from Ulrich Drepper.
2749
2750 2000-10-21  Jim Meyering  <meyering@lucent.com>
2751
2752         * dirname.c (dir_name_r): New function, factored out of dir_name.
2753         (dir_name): Use dir_name_r.
2754         * dirname.h (dir_name_r): Declare it.
2755
2756 2000-10-21  Jim Meyering  <meyering@lucent.com>
2757
2758         * dirname.c (memrchr): Declare if necessary.
2759         (dir_name): Remove the restriction that there be no
2760         trailing slashes.  Now, this code skips past them, effectively
2761         ignoring them.
2762         [TEST_DIRNAME] (main): New unit tests.
2763
2764         * memrchr.c: New file from GNU libc.
2765         Undef __memrchr, too.
2766         [!weak_alias]: Define __memrchr to memrchr.
2767         Guard weak_alias use with `#ifdef weak_alias'.
2768
2769 2000-10-17  Jim Meyering  <meyering@lucent.com>
2770
2771         * quote.h (PARAMS): Define and use.
2772         Reported by Akim Demaille.
2773
2774         * getopt.c: Update from libc.
2775
2776 2000-10-16  Jim Meyering  <meyering@lucent.com>
2777
2778         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
2779         From Jan Fedak.
2780
2781 2000-09-25  Jim Meyering  <meyering@lucent.com>
2782
2783         * md5.h (rol): Define (from GnuPG).
2784
2785         * sha.c: Give credit (GnuPG) where due.
2786         (M): Use rol rather than open-coding it.
2787         Add a FIXME comment.
2788
2789 2000-09-21  Jim Meyering  <meyering@lucent.com>
2790
2791         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
2792         Reported by Michael Stone.
2793
2794 2000-09-20  Jim Meyering  <meyering@lucent.com>
2795
2796         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
2797         (noinst_HEADERS): Add sha.h.
2798         Based on code from Scott G. Miller and from GnuPG.
2799
2800 2000-09-15  Jim Meyering  <meyering@lucent.com>
2801
2802         * regex.c: Update from libc.
2803
2804 2000-09-10  Jim Meyering  <meyering@lucent.com>
2805
2806         * getopt.c (_getopt_internal): Update from glibc.
2807
2808 2000-09-09  Jim Meyering  <meyering@lucent.com>
2809
2810         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
2811         think it should be used as a general replacement for isascii.
2812         * fnmatch.c: Likewise.
2813         * mbswidth.c: Likewise
2814         * regex.c: Likewise.
2815
2816         Don't use atoi.
2817         * userspec.c: Include sys/param.h and limits.h.
2818         Include xstrtol.h.
2819         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
2820         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
2821         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
2822         UID, GID.  Check range.
2823
2824 2000-09-06  Jim Meyering  <meyering@lucent.com>
2825
2826         * getopt.c (_getopt_internal): Update from glibc.
2827
2828 2000-08-30  Jim Meyering  <meyering@lucent.com>
2829
2830         * strftime.c: Merge in changes from GNU libc.
2831
2832 2000-08-26  Jim Meyering  <meyering@lucent.com>
2833
2834         * closeout.c: Include "__fpending.h".
2835         (close_stdout_status): Return right away if there's nothing to flush.
2836
2837         * Makefile.am (noinst_HEADERS): Add __fpending.h.
2838         * __fpending.c: New file.
2839         * __fpending.h: New file.
2840
2841 2000-08-07  Paul Eggert  <eggert@twinsun.com>
2842
2843         Standardize on "memory exhausted" instead of "Memory exhausted"
2844         or "virtual memory exhausted".
2845         * obstack.c (print_and_abort): Use "memory exhausted", not
2846         "virtual memory exhausted".
2847         * same.c (same_name): Invoke xalloc_die instead of printing
2848         our own message.
2849         * userspec.c (parse_user_spec): Likewise.
2850         * bumpalloc.h: comment fix
2851         * same.c, userspec.c: Include xalloc.h.
2852
2853         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
2854         not char *const and pointing to a constant array.
2855         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
2856         (xrealloc): Comment fix.
2857
2858         * userspec.c (parse_user_spec):
2859         Don't translate a message until just before returning,
2860         to avoid unnecessary translation.
2861
2862 2000-08-07  Jim Meyering  <meyering@lucent.com>
2863
2864         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
2865         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
2866         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
2867         getgroups.c, gethostname.c, getopt.h, group-member.c,
2868         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
2869         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
2870         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
2871         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
2872         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
2873         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
2874         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
2875         yesno.c: Back out Copyright date changes for each file with no change
2876         this year.  This eases coordination with other programs using the same
2877         source code modules.  From Paul Eggert.
2878
2879 2000-08-03  Greg McGary  <greg@mcgary.org>
2880
2881         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
2882         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
2883         (EXTEND_BUFFER): Use them.
2884
2885 2000-08-01  Jim Meyering  <meyering@lucent.com>
2886
2887         * dirname.c (ISSLASH): Define.
2888         (BACKSLASH_IS_PATH_SEPARATOR): Define.
2889         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
2890         both `\' and `/' may be use as path separators.
2891         Based on a patch from Prashant TR.
2892
2893 2000-07-31  Paul Eggert  <eggert@twinsun.com>
2894
2895         * quotearg.c (quotearg_n_options): Don't make the initial
2896         slot vector a constant, since it might get modified.
2897
2898 2000-07-31  Jim Meyering  <meyering@lucent.com>
2899
2900         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
2901         * obstack.c (print_and_abort): Likewise.
2902
2903 2000-07-30  Paul Eggert  <eggert@twinsun.com>
2904
2905         * quotearg.c (quotearg_n_options): Preallocate a slot 0
2906         buffer, so that the caller can always quote one small
2907         component of a "memory exhausted" message in slot 0.
2908         From a suggestion by Jim Meyering.
2909
2910 2000-07-30  Jim Meyering  <meyering@lucent.com>
2911
2912         * makepath.c (make_path): Quote the other instance, too.
2913
2914         * quotearg.c (N_STATIC_SLOTVECS): Define.
2915         (STATIC_BUF_SIZE): Define.
2916         (quotearg_n_options): Use only statically allocated storage when
2917         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
2918         than STATIC_BUF_SIZE.
2919
2920 2000-07-29  Jim Meyering  <meyering@lucent.com>
2921
2922         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
2923         * dirname.c (dir_name): Likewise.
2924
2925         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
2926
2927         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
2928         (dir_name): Assert that there are no trailing slashes.
2929
2930 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
2931
2932         * mbswidth.h (mbswidth): Add a flags argument.
2933         (mbswidth): New declaration.
2934         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
2935         * mbswidth.c (mbswidth): Add a flags argument.
2936         (mbsnwidth): New function.
2937
2938 2000-07-24  Jim Meyering  <meyering@lucent.com>
2939
2940         * mbswidth.c: Remove useless #else.  From Bruno Haible.
2941
2942 2000-07-23  Paul Eggert  <eggert@twinsun.com>
2943
2944         * mbswidth.c (_XOPEN_SOURCE):
2945         Don't define; this causes problems on Solaris 7.
2946         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
2947
2948 2000-07-23  Paul Eggert  <eggert@twinsun.com>
2949
2950         * quotearg.c:
2951         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
2952         so that mbstate_t is always defined.
2953
2954         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
2955         be 1 in at least one GCC installation, and this configuration
2956         error is likely to be common.  Ignoring MB_LEN_MAX hurts
2957         performance on hosts that have mbrtowc but have only unibyte
2958         locales, but I assume these hosts are rare.
2959
2960 2000-07-23  Paul Eggert  <eggert@twinsun.com>
2961
2962         * quotearg.c: Streamline by invoking multibyte code only if needed.
2963         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
2964         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
2965         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
2966         invoke multibyte primitives.
2967
2968 2000-07-23  Jim Meyering  <meyering@lucent.com>
2969
2970         * basename.c (base_name): Add an assertion.
2971
2972 2000-07-15  Bruno Haible  <clisp.cons.org>
2973
2974         * quotearg.c: When the system forces us to redefine mbstate_t,
2975         shadow its mbsinit function.
2976
2977 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
2978
2979         * mbswidth.h: New file.
2980         * mbswidth.c: New file.
2981         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
2982         (noinst_HEADERS): Add mbswidth.h.
2983
2984 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
2985
2986         * config.charset: Add support for FreeBSD. Improve support for HP-UX
2987         and IRIX 6.
2988
2989 2000-07-15  Jim Meyering  <meyering@lucent.com>
2990
2991         * makepath.c: Include quote.h.
2992         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
2993         corresponding argument in a `quote (...)' call.
2994         Give better diagnostics.
2995
2996         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
2997         (noinst_HEADERS): Add quote.h.
2998
2999         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
3000         from tar's src/misc.c.
3001         * quote.h: New file.  Prototypes for same.
3002
3003 2000-07-10  Paul Eggert  <eggert@twinsun.com>
3004
3005         From a suggestion by Bruno Haible.
3006         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
3007         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
3008         to decide whether to define the BeOS workaround macro;
3009         this adjusts to the change to AC_MBSTATE_T.
3010
3011 2000-07-13  Paul Eggert  <eggert@twinsun.com>
3012
3013         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
3014
3015         * quotearg.c (quoting_style_args, quoting_style_vals,
3016         quotearg_buffer_restyled): Add support for
3017         clocale_quoting_style.  Undo previous change to
3018         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
3019         and "{RIGHT QUOTATION MARK}" msgids.
3020
3021 2000-07-05  Paul Eggert  <eggert@twinsun.com>
3022
3023         The old behavior of quoting `like this' doesn't look good with
3024         newer, ISO-style fonts.  See:
3025         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
3026
3027         Instead, quote "like this" by default.  Let the translator
3028         tailor the locale-specific quoting behavior by providing
3029         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
3030
3031         * quotearg.c (N_): New macro.
3032         (gettext_default): New function.
3033         (quotearg_buffer_restyled): Use
3034         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
3035         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
3036
3037 2000-07-09  Jim Meyering  <meyering@lucent.com>
3038
3039         * Most files: Update copyright dates to include 2000.
3040
3041 2000-07-08  Jim Meyering  <meyering@lucent.com>
3042
3043         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
3044         if not defined.
3045         (xgethostname): Remove now-unnecessary #ifdef.
3046         Move declaration of `err' into loop where it's used.
3047
3048 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
3049
3050         * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
3051         by allocating a larger buffer. Test the gethostname return value for
3052         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
3053         returns an error and ENAMETOOLONG isn't defined.
3054
3055 2000-07-05  Paul Eggert  <eggert@twinsun.com>
3056         and Bruno Haible  <haible@clisp.cons.org>
3057
3058         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
3059
3060 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
3061
3062         * quotearg.c (struct quoting_options): Simplify quote_these_too
3063         dimension.
3064
3065 2000-07-03  Jim Meyering  <meyering@lucent.com>
3066
3067         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
3068         Reported by Bruno Haible.
3069
3070 2000-07-04  Jim Meyering  <meyering@lucent.com>
3071
3072         * quotearg.c: Make inclusion of <wchar.h> independent of whether
3073         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
3074         lacks mbrtowc.
3075
3076 2000-07-03  Paul Eggert  <eggert@twinsun.com>
3077         and Bruno Haible  <haible@clisp.cons.org>
3078
3079         * quotearg.c (mbrtowc):
3080         Assign to *pwc, and return 1 only if result is nonzero.
3081         (iswprint): Use ISPRINT when substituting our own mbrtowc.
3082
3083 2000-07-03  Jim Meyering  <meyering@lucent.com>
3084
3085         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
3086         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
3087         From Bob Proulx.
3088
3089 2000-07-02  Jim Meyering  <meyering@lucent.com>
3090
3091         * quotearg.c (mbstate_t): Don't define here.
3092
3093 2000-07-02  Jim Meyering  <meyering@lucent.com>
3094
3095         * nanosleep.c (SIGCONT): Define if not already defined.
3096
3097 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3098
3099         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
3100         per change in ../m4/ls-mntd-fs.m4.
3101         (read_filesystem_list): Ignore symbolic links.
3102
3103 2000-06-29  Jim Meyering  <meyering@lucent.com>
3104
3105         * same.c: Include <string.h> or <strings.h>, as appropriate,
3106         for declaration of strcmp.
3107
3108         * long-options.c: Include <stdlib.h>, for declaration of exit.
3109
3110         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
3111         Avoid warning by casting result to `char *' to remove `const'.
3112
3113 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3114
3115         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
3116
3117 2000-06-26  Paul Eggert  <eggert@twinsun.com>
3118
3119         savedir now sets errno on failure and invokes xmalloc to get memory.
3120         Fix a couple of other minor bugs while we're at it.
3121
3122         * savedir.c (<unistd.h>): Do not include; there's no need.
3123         (NAMLEN): Remove macro.
3124         (malloc, realloc): Remove decls.
3125         (stpcpy): Likewise.
3126         ("xalloc.h"): Include.
3127         (NAME_SIZE_DEFAULT): New macro.
3128         (savedir): Use xmalloc / xrealloc to allocate memory.
3129         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
3130         Skip "" directory entries.
3131         Use strlen to calculate directory entry length, since the old method
3132         is rarely used these days and isn't worth supporting.
3133         Don't use a pointer after freeing it.
3134         Check for integer overflow when calculating allocation size.
3135         Use memcpy to copy entries, instead of stpcpy.
3136         Set errno properly when returning NULL.
3137         Check for readdir error.
3138
3139 2000-06-26  Jim Meyering  <meyering@lucent.com>
3140
3141         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
3142
3143 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3144
3145         * getusershell.c (xmalloc, xrealloc): Remove functions.
3146         Include xalloc.h.
3147         Don't include <stdlib.h>.  Don't declare malloc, realloc.
3148
3149 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
3150
3151         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
3152
3153 2000-06-24  Jim Meyering  <meyering@lucent.com>
3154
3155         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
3156
3157 2000-06-21  Jim Meyering  <meyering@lucent.com>
3158
3159         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
3160
3161 2000-06-19  Paul Eggert  <eggert@twinsun.com>
3162
3163         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
3164         (mbrtowc, mbstate_t): Define substitutes if
3165         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
3166         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
3167         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
3168
3169 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3170
3171         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
3172         than 1024, return a memory chunk of least possible size, instead
3173         of size PATH_MAX + 2. In the loop, increment the size proportionally.
3174         Use free/xmalloc instead of xrealloc to avoid copying for very long
3175         paths.
3176
3177 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3178
3179         * canon-host.c (canon_host): Use malloc and memcpy to copy an
3180         address, not strdup.  Include <stdlib.h> and don't declare free().
3181
3182 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
3183
3184         * path-concat.c (path_concat): Don't access dir[-1] if dir is
3185         the empty string.
3186
3187 2000-06-21  Jim Meyering  <meyering@lucent.com>
3188
3189         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
3190         (noinst_HEADERS): Add getstr.h.
3191
3192         * getline.c (getstr): Move into a separate file.
3193         * getstr.c (getstr): New file, extracted from getline.c, with
3194         the following changes: new parameter, delim2; both delim[12]
3195         parameters have type `int', not `char'.  The latter would lose
3196         with 8-bit delimiters.
3197         * getstr.h: New file.
3198
3199 2000-06-19  Jim Meyering  <meyering@lucent.com>
3200
3201         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
3202
3203 2000-06-18  Jim Meyering  <meyering@lucent.com>
3204
3205         * mkdir.c: Remove file, due mainly to copyright incompatibility.
3206         Besides, these days every porting target provides a mkdir function.
3207
3208         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
3209         (this snippet comes from src/system.h).
3210
3211 2000-06-15  Paul Eggert  <eggert@twinsun.com>
3212
3213         * human.c (adjust_value): New function.
3214         (human_readable_inexact): Apply rounding style even when
3215         printing approximate values.
3216
3217 2000-06-14  Paul Eggert  <eggert@twinsun.com>
3218
3219         * human.c (human_readable_inexact): Allow an input block
3220         size that is not a multiple of the output block size, and vice versa.
3221         Reported by Piergiorgio Sartor.
3222
3223 2000-06-14  Paul Eggert  <eggert@twinsun.com>
3224
3225         * getdate.y (get_date): Apply relative times after time
3226         zone indicator, not before.  Reported by Todd A. Jacobs.
3227
3228 2000-06-13  Jim Meyering  <meyering@lucent.com>
3229
3230         * Makefile.am (all-local): Depend on lstat.c and stat.c.
3231
3232         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
3233
3234 2000-06-12  Paul Eggert  <eggert@twinsun.com>
3235
3236         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
3237
3238 2000-06-04  Paul Eggert  <eggert@twinsun.com>
3239
3240         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
3241
3242 2000-06-04  Jim Meyering  <meyering@lucent.com>
3243
3244         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
3245         SunOS 4.1.4 for which gid_t is an unsigned type.
3246
3247 2000-06-03  Jim Meyering  <meyering@lucent.com>
3248
3249         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
3250
3251 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
3252
3253         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
3254         newer, don't install charset.alias.
3255         * config.charset: Change the Linux/glibc rules so they become empty
3256         on glibc-2.1 or newer.
3257
3258 2000-06-02  Jim Meyering  <meyering@lucent.com>
3259
3260         * mountlist.c: Back out last change.  Instead, do this...
3261         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
3262         member using the same `ignore'-testing code.
3263         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
3264         fs_type strings.
3265         From Mark D. Roth.
3266
3267 2000-05-29  Jim Meyering  <meyering@lucent.com>
3268
3269         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
3270         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
3271
3272 2000-05-22  Jim Meyering  <meyering@lucent.com>
3273
3274         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
3275
3276 2000-05-18  Jim Meyering  <meyering@lucent.com>
3277
3278         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
3279         back, too, since it may have been modified by allocate_entry.
3280         (hash_delete): Rewrite to use neither the assignment operator
3281         nor the comma operator in an if-expression.
3282
3283 2000-05-15  Paul Eggert  <eggert@twinsun.com>
3284
3285         * closeout.c:
3286         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
3287         Remove; no longer needed.
3288         "quotearg.h": Add include.
3289         (file_name): Do not bother to explicitly initialize to NULL; it's less
3290         efficient on some hosts.
3291         (close_stdout_status): Remove test as to whether stdout was already
3292         closed; it breaks for the case "echo x | sort >&-".
3293         Quote file name colons.
3294         Do not assume that _("write error") lacks format strings.
3295
3296 2000-05-15  Jim Meyering  <meyering@lucent.com>
3297
3298         * version-etc.c (version_etc_copyright): Update the copyright string
3299         used in all --version output.
3300
3301 2000-05-14  Jim Meyering  <meyering@lucent.com>
3302
3303         * closeout.c (close_stdout_set_file_name): New function.
3304         (close_stdout_status): Use new file-scoped global.
3305         Return right away if fstat says the stdout file descriptor is invalid.
3306         * closeout.h (close_stdout_set_file_name): Declare.
3307
3308 2000-05-10  Jim Meyering  <meyering@lucent.com>
3309
3310         * closeout.c [default_exit_status]: New file-scoped variable.
3311         (close_stdout_set_status): New function.
3312         * closeout.h (close_stdout_set_status): Declare.
3313
3314 2000-05-08  Jim Meyering  <meyering@lucent.com>
3315
3316         * long-options.c: Don't include closeout.h.
3317         (parse_long_options): Don't call close_stdout for --version.
3318
3319 2000-05-06  Jim Meyering  <meyering@lucent.com>
3320
3321         * strnlen.c: Undefine __strnlen and strnlen.
3322         [!weak_alias]: Define __strnlen to strnlen.
3323
3324         * atexit.c: New file, from libiberty.
3325
3326 2000-05-06  Jim Meyering  <meyering@lucent.com>
3327
3328         * closeout.c (close_stdout_status): Also check for errors on the
3329         stderr stream.
3330
3331 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
3332
3333         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
3334         instead of xmalloc, xrealloc, path_concat.
3335         (locale_charset): Treat empty environment variables as absent.
3336         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
3337
3338 2000-05-04  Jim Meyering  <meyering@lucent.com>
3339
3340         * getopt.c: Update from glibc.
3341         * obstack.c: Likewise.
3342         * obstack.h: Likewise.
3343         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
3344
3345         * regex.h: Likewise.
3346         * strndup.c: Likewise.
3347         * strnlen.c: New file, from glibc.
3348
3349 2000-05-01  Jim Meyering  <meyering@lucent.com>
3350
3351         * full-write.c (full_write): Remove `FIXME' part of comment.
3352
3353 2000-04-29  Jim Meyering  <meyering@lucent.com>
3354
3355         * path-concat.c: Declare strdup only if it's not defined.
3356         * canon-host.c: Likewise.
3357
3358 2000-04-28  Jim Meyering  <meyering@lucent.com>
3359
3360         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
3361         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
3362         included first, then limits.h is included by locale.h by libintl.h.
3363         From John David Anglin.
3364
3365 2000-04-25  Jim Meyering  <meyering@lucent.com>
3366
3367         * makepath.c (S_IRWXUGO): Define.
3368         (make_path): Always perform explicit chmod if MODE specifies any
3369         of the `special' permission bits.  Prompted by a bug report against
3370         install from Mate Wierdl and Joost van Baal.
3371
3372 2000-04-18  Jim Meyering  <meyering@lucent.com>
3373
3374         * README: New file.
3375
3376         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
3377         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
3378
3379 2000-04-17  Jim Meyering  <meyering@lucent.com>
3380
3381         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
3382         the definition of it to rpl_strftime also defined-away the system's
3383         declaration.
3384
3385 2000-04-15  Jim Meyering  <meyering@lucent.com>
3386
3387         Use `C' to denote so-called `contiguous' files, the same way
3388         that tar does.
3389         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
3390         (ftypelet): Use S_ISCTG.
3391         From Michael Deutschmann.
3392
3393 2000-04-14  Jim Meyering  <meyering@lucent.com>
3394
3395         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
3396
3397 2000-04-08  Jim Meyering  <meyering@lucent.com>
3398
3399         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
3400         names don't conflict.  Reported by Eli Zaretskii.
3401
3402 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
3403
3404         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
3405         bug.  Deal with the different error behavior of Irix iconv.
3406
3407 2000-04-07  Jim Meyering  <meyering@lucent.com>
3408
3409         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
3410         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
3411
3412 2000-04-05  Jim Meyering  <meyering@lucent.com>
3413
3414         Portability tweaks required for ultrix4.3.
3415         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
3416         * readutmp.c: Include sys/types.h before sys/stat.h.
3417         * canon-host.c: Declare strdup.
3418         * path-concat.c: Likewise.
3419         From John David Anglin.
3420
3421 2000-04-04  Jim Meyering  <meyering@lucent.com>
3422
3423         Be more DOS 8.3-friendly.
3424         * ref-add.sin: Renamed from ref-add.sed.in.
3425         * ref-del.sin: Renamed from ref-del.sed.in.
3426         * Makefile.am: Reflect renaming.
3427         Reported by Eli Zaretskii.
3428
3429         Use a temporary file name that won't clash with `charset.alias'
3430         in the DOS 8.3 name space.
3431         * Makefile.am (charset_tmp): Define.
3432         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
3433         (uninstall-local): Likewise.
3434         Reported by Eli Zaretskii.
3435
3436 2000-03-29  Paul Eggert  <eggert@twinsun.com>
3437
3438         * time/strftime.c (my_strftime): Make sure we call the system
3439         strftime, not ourselves, when invoking the underlying strftime.
3440
3441 2000-03-24  Jim Meyering  <meyering@lucent.com>
3442
3443         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
3444         (charset_alias): Define.
3445         (install-exec-local): Factor out common code.
3446         (uninstall-local): Split lines longer than 80.
3447         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
3448         (SUFFIXES): Define.
3449         (.sed.in.sed): New rule.  Don't redirect directly to $@.
3450         (CLEANFILES): Add ref-add.sed and ref-del.sed.
3451
3452 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
3453
3454         * config.charset: Output a line containing "Packages using this file".
3455         * ref-add.sed.in, ref-del.sed.in: New files.
3456         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
3457         ref-del.sed): New rules.
3458
3459 2000-03-17  Jim Meyering  <meyering@lucent.com>
3460
3461         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
3462         Otherwise, include <strings.h>
3463
3464 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
3465
3466         * unicodeio.c (utf8_wctomb): New function.
3467         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
3468         format instead of in UCS-4 with platform dependent endianness.
3469
3470 2000-03-07  Paul Eggert  <eggert@twinsun.com>
3471
3472         * savedir.c (savedir): Work even if directory size is
3473         negative; this can happen with some screwy NFS configurations.
3474
3475 2000-03-06  Jim Meyering  <meyering@lucent.com>
3476
3477         * localcharset.c (get_charset_aliases): Don't try to free file_name
3478         if it's NULL (because we ran out of memory).  From Bruno Haible.
3479
3480 2000-03-05  Jim Meyering  <meyering@lucent.com>
3481
3482         * localcharset.c ("path-concat.h"): Include.
3483         (get_charset_aliases): Use path_concat instead of ANSI string
3484         concatenation.
3485
3486         * unicodeio.h (PARAMS): Define.
3487         Use it to guard prototype.
3488
3489 2000-03-04  Jim Meyering  <meyering@lucent.com>
3490
3491         * Makefile.am (install-exec-local): Create $(libdir) before installing
3492         into it.
3493         (uninstall-local): Uncomment this rule so `make distcheck' works
3494         once again.
3495
3496         * unicodeio.c (<errno.h>): Include it.
3497         (errno): Declare if not defined.
3498
3499         * localcharset.c: Add Bruno's comment justifying use of volatile.
3500
3501         * config.charset: New version, incorporating remarks from a linux
3502         i18n mailing list.  From Bruno Haible.
3503
3504 2000-03-02  Jim Meyering  <meyering@lucent.com>
3505
3506         * Makefile.am (EXTRA_DIST): Add config.charset.
3507
3508 2000-03-01  Jim Meyering  <meyering@lucent.com>
3509
3510         * localcharset.c: Guard some #includes with `#if HAVE_...'.
3511         * unicodeio.c: Likewise.
3512
3513 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
3514
3515         * config.charset: New file.
3516         * localcharset.c: New file.
3517         * unicodeio.h, unicodeio.c: New files.
3518         * Makefile.am (DEFS): Add -DLIBDIR=...
3519         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
3520         (noinst_HEADERS): Add unicodeio.h.
3521         (all-local, install-exec-local, charset.alias): New targets.
3522
3523 2000-02-28  Paul Eggert  <eggert@twinsun.com>
3524
3525         * quotearg.c (ALERT_CHAR): New macro.
3526         (quotearg_buffer_restyled): Use it.
3527
3528 2000-02-27  Jim Meyering  <meyering@lucent.com>
3529
3530         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
3531         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
3532
3533         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
3534         not `#if STDC_HEADERS'.
3535         Declare malloc if needed.
3536
3537         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
3538         now that autoconf always defines the HAVE_DECL_ symbols.
3539         * human.c: Likewise.
3540         * same.c: Likewise.
3541         * strtoumax.c: Likewise.
3542
3543         * backupfile.c: Arrange for cpp to fail if the configure-time
3544         declaration check was not run.
3545         * hash.c: Likewise.
3546         * human.c: Likewise.
3547         * same.c: Likewise.
3548         * strtoumax.c: Likewise.
3549
3550         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
3551         then first look up the entire `.'-containing string as a login name.
3552
3553 2000-02-18  Paul Eggert  <eggert@twinsun.com>
3554
3555         * getdate.y: Handle two-digit years with leading zeros correctly.
3556         (textint): New typedef.
3557         (parser_control): Member year changed from int to textint.
3558         All uses changed.
3559         (YYSTYPE): Removed; replaced by %union with int and textint members.
3560         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
3561         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
3562         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
3563         (tSNUMBER, tUNUMBER): Now of type <textintval>.
3564         (date, number, to_year): Use width of number in digits, not its value,
3565         to determine whether it's a 2-digit year, or a 2-digit time.
3566         (yylex): Store number of digits of numeric tokens.
3567         Reported by John Kendall.
3568
3569         (parser_control): Changed from struct parser_control to typedef (for
3570         consistency).  All uses changed.
3571
3572         (tID): Removed; not used.
3573         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
3574
3575 2000-02-14  Paul Eggert  <eggert@twinsun.com>
3576
3577         * getpagesize.h (getpagesize): Port to VMS for Alpha;
3578         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
3579
3580 2000-02-12  Jim Meyering  <meyering@lucent.com>
3581
3582         * userspec.c (ISDIGIT): Define it.
3583         (isdigit): Remove definition.
3584         (is_number): Use ISDIGIT, not isdigit.
3585         <libintl.h>: Include.
3586         (_ and N_): Define.
3587         (parse_user_spec): Mark translatable strings.
3588
3589 2000-02-10  Jim Meyering  <meyering@lucent.com>
3590
3591         With these changes, nanosleep.[ch] are finally enough like the other
3592         lib/* replacement files to compile on a few more losing systems.
3593
3594         * nanosleep.h: Don't include config.h.
3595         Remove prototype from declaration of nanosleep.
3596         (PARAMS): Remove now-unneeded definition.
3597         * nanosleep.c: #undef nanosleep.
3598         (rpl_nanosleep): Rename from nanosleep.
3599
3600 2000-02-03  Jim Meyering  <meyering@lucent.com>
3601
3602         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
3603         rather than with `#if HAVE_UTMPNAME'.
3604
3605 2000-02-01  Jim Meyering  <meyering@lucent.com>
3606
3607         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
3608
3609 2000-01-31  Jim Meyering  <meyering@lucent.com>
3610
3611         * nanosleep.h (nanosleep): Guard declaration with
3612         `#if ! HAVE_DECL_NANOSLEEP'.
3613         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
3614         the declaration in that vendor's sys/timers.h.
3615         Reported by Christian Krackowizer.
3616
3617         * quotearg.c (ISASCII): Add #undef and move definition to follow
3618         inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
3619         (ISPRINT): Likewise.
3620         Reported by Tom Tromey.
3621
3622 2000-01-30  Jim Meyering  <meyering@lucent.com>
3623
3624         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
3625         uses of ->ut_name.  The latter doesn't work with new Linux header files
3626         where only utmpx.ut_user is declared.
3627
3628         * readutmp.h (UT_USER): Define.
3629
3630 2000-01-23  Jim Meyering  <meyering@lucent.com>
3631
3632         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
3633         obstack.c.
3634
3635 2000-01-22  Jim Meyering  <meyering@lucent.com>
3636
3637         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
3638         [! HAVE_DECL_STRTOULL]: Declare strtoull.
3639         Required for some AIX systems.  Reported by Christian Krackowizer.
3640         [TESTING] (main): New function.
3641
3642         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
3643         * dirname.c (dir_name): Support for DOS-style file names with drive
3644         letters.
3645
3646         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
3647
3648         * strverscmp.c (ISDIGIT): Define.
3649         (strverscmp): Use ISDIGIT, not isdigit.
3650
3651 2000-01-17  Paul Eggert  <eggert@twinsun.com>
3652
3653         * nanosleep.c (nanosleep):
3654         Don't use SA_INTERRUPT to decide whether to call sigaction, as
3655         POSIX.1 doesn't require SA_INTERRUPT and some systems
3656         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
3657         it's been part of POSIX.1 since day 1 (in 1988).
3658
3659 2000-01-17  Jim Meyering  <meyering@lucent.com>
3660
3661         * interlock: Remove unused file.  Reported by François Pinard.
3662
3663 2000-01-16  Paul Eggert  <eggert@twinsun.com>
3664
3665         * quotearg.c (quotearg_buffer_restyled): Do not quote
3666         alert, backslash, formfeed, and vertical tab unnecessarily in
3667         shell quoting style.
3668
3669 Local Variables:
3670 version-control: never
3671 End: