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