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