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