f97a41653cae65fda690f5db88e0ad42ce51fa93
[gnulib.git] / lib / ChangeLog
1 2002-02-25  Paul Eggert  <eggert@twinsun.com>
2
3         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
4
5 2002-02-24  Jim Meyering  <meyering@lucent.com>
6
7         * strnlen.c: Define-away/undef strnlen so that an inconsistent prototype
8         in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't cause trouble.
9         Reported by Nelson Beebe.
10
11 2002-02-23  Paul Eggert  <eggert@twinsun.com>
12
13         * path-concat.c (xpath_concat): Reorder code to pacify
14         compilers that don't know that xalloc_die never returns.
15
16 2002-02-20  Jim Meyering  <meyering@lucent.com>
17
18         * getdate.c: Regenerate using bison-1.33.
19
20 2002-02-15  Paul Eggert  <eggert@twinsun.com>
21
22         * posixver.c, posixver.h: New files.
23         * Makefile.am (libfetish_a_SOURCES): Add them.
24
25 2002-02-02  Paul Eggert  <eggert@twinsun.com>
26             Bruno Haible  <bruno@clisp.org>
27
28         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
29         (fwrite_success_callback): New declaration.
30         * unicodeio.c (unicode_to_mb): New function, extracted from
31         print_unicode_char. Call failure callback instead of error.
32         (fwrite_success_callback): New function.
33         (exit_failure_callback): New function.
34         (fallback_failure_callback): New function.
35         (print_unicode_char): Call unicode_to_mb.
36
37 2002-01-26  Jim Meyering  <meyering@lucent.com>
38
39         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
40
41 2002-01-22  Jim Meyering  <meyering@lucent.com>
42
43         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
44         Otherwise, some versions of automake would omit the rule that makes
45         Makefile from Makefile.in.
46
47 2001-01-21  Paul Eggert  <eggert@twinsun.com>
48
49         * xmemcoll.h, xmemcoll.c: New files.
50         * Makefile.am (libfetish_a_SOURCES): Add them.
51         * memcoll.c: Include errno.h, and declare errno if not defined.
52         (memcoll): Set errno to zero if there is no error.
53
54         * quotearg.c (quotearg_buffer_restyled):
55         Fix bug with quoting buffers containing NUL when backslashing escapes.
56         This bug was exposed by the other changes in this patch.
57         (quotearg_n_options): New arg ARGSIZE.
58         All callers changed.
59         (quoting_options_from_style): New function.
60         (quotearg_n_style): Use it.
61         (quotearg_n_style_mem): New function.
62
63         * quotearg.h (quotearg_n_style_mem): New function.
64
65 2002-01-16  Jim Meyering  <meyering@lucent.com>
66
67         * getdate.y: Add three semicolons, each just before a closing brace.
68         Bison (as of version 1.31) no longer papers over that mistake.
69
70 2002-02-14  Paul Eggert  <eggert@twinsun.com>
71
72         * backupfile.c (ISDIGIT): Comment fix.
73         * getdate.y (ISDIGIT): Likewise.
74         * posixtm.c (ISDIGIT, year): Likewise.
75         * strverscmp.c (ISDIGIT): Likewise.
76         * userspec.c (ISDIGIT): Likewise.
77
78 2002-01-05  Jim Meyering  <meyering@lucent.com>
79
80         * version-etc.c (version_etc_copyright): Update copyright year.
81
82 2001-01-19  Paul Eggert  <eggert@twinsun.com>
83
84         * closeout.c (close_stdout_status): If ferror (stdout), do
85         not silently exit merely because the output buffer happens to
86         have nothing pending.
87
88 2001-12-18  Paul Eggert  <eggert@twinsun.com>
89
90         See the big note in ../ChangeLog.
91         * human.c (suffixes): Prefer K to k for 1024.
92         (generate_suffix_backwards): New function.
93         (human_readable_inexact): Use it.
94         * xstrtol.c (__xstrtol): If there is no number but there
95         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
96         Accept 'K' as well as 'k'.
97
98 2001-12-15  Jim Meyering  <meyering@lucent.com>
99
100         * regex.h (__restrict_arr): Update from libc.
101
102         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
103         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
104         (STREQ): Define.
105
106 2001-12-10  Jim Meyering  <meyering@lucent.com>
107
108         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
109         Instead, include "xalloc.h".
110         (initbuffer): Don't cast xmalloc return value to char*.
111         (readline): Reword comment.
112         Don't cast xrealloc return value to char*
113         Return NULL, not 0.
114
115 2001-12-09  Jim Meyering  <meyering@lucent.com>
116
117         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
118         `signed and unsigned type in conditional expression'.
119         * posixtm.c (posix_time_parse): Likewise.
120
121         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
122
123         * readtokens.c (readtoken): Declare an index to be of type unsigned
124         to avoid a pedantic warning.
125
126         * getstr.c: Don't include assert.h.
127         (getstr): Remove warning-evoking assertions.
128         Return -1 if offset parameter is out of bounds.
129         Change the type of a local from int to size_t.
130
131         * strftime.c (my_strftime_localtime_r): Include this function
132         definition in the `#if ! HAVE_TM_GMTOFF' block.
133
134         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
135         Include xalloc.h instead.
136
137 2001-12-02  Jim Meyering  <meyering@lucent.com>
138
139         * tempname.c: Don't declare getenv, thus reverting the change of
140         2001-11-18.  It's no longer necessary, now that stdlib.h is always
141         included.
142
143         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
144         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
145
146 2001-11-30  Akim Demaille  <akim@epita.fr>
147
148         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
149         before being defined.
150
151 2001-11-27  Paul Eggert  <eggert@twinsun.com>
152
153         * quotearg.h (quotearg_n, quotearg_n_style):
154         First arg is int, not unsigned.
155         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
156         (SIZE_MAX, UINT_MAX): New macros.
157         (quotearg_n_options): Abort if N is negative.
158         Avoid overflow check on hosts where size_t is 64 bits and int
159         is 32 bits, as overflow is impossible there.
160         Fix off-by-one typo that caused unnecessary reallocation.
161
162 2001-11-27  Jim Meyering  <meyering@lucent.com>
163
164         * tempname.c: Merge with version from libc.
165         * regex.c: Likewise.
166
167         * tempname.c: Include stdlib.h unconditionally.  On some old systems
168         for which STDC_HEADERS is 0, it was not included, resulting in a
169         warning about an integer-to-pointer conversion problem with getenv.
170         Reported by Volker Borchert.
171
172 2001-11-26  Jim Meyering  <meyering@lucent.com>
173
174         * gtod.h: Remove file.
175         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
176         * gettimeofday.c: Don't include gtod.h.
177         (GTOD_init): Remove function.
178         (rpl_gettimeofday): Do its job here instead, rather than aborting.
179         Suggestion from Volker Borchert.
180
181 2001-11-23  Jim Meyering  <meyering@lucent.com>
182
183         * hash.h (struct hash_table): Don't define here.  Merely declare it.
184         * hash.c (struct hash_table): Define it here instead.
185
186 2001-11-22  Jim Meyering  <meyering@lucent.com>
187
188         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
189
190 2001-11-18  Paul Eggert  <eggert@twinsun.com>
191
192         * tempname.c (TMP_MAX): Remove; no longer needed.
193         (TEMPORARIES): New macro.
194         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
195         removes an artificial limitation (e.g. HP-UX 10.20, where
196         TMP_MAX is 17576).
197
198 2001-11-18  Jim Meyering  <meyering@lucent.com>
199
200         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
201         on SunOS4.
202
203         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
204         files will be created before anything else.
205
206 2001-11-17  Jim Meyering  <meyering@lucent.com>
207
208         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
209         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
210         rather than group writable.  Patch by Juan F. Codagnone.
211
212         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
213         Instead, include "xalloc.h".
214
215         * mountlist.c: Include unlocked-io.h after all system headers.
216         Remove explicit declarations of xmalloc, xrealloc,
217         and xstrdup.  Instead, include "xalloc.h".
218
219         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
220         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
221         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
222
223         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
224         Reported by Padraig Brady.
225
226         * mkstemp.c: #undef mkstemp.
227         Include config.h.
228         (rpl_mkstemp): Rename from mkstemp.
229         Protoize.
230
231 2001-11-16  Jim Meyering  <meyering@lucent.com>
232
233         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
234         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
235         determine the amount of total physical memory, use pstat_getstatic.
236         HPUX-11 doesn't define _SC_PHYS_PAGES.
237         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
238         If sysconf couldn't be used to determine the amount of available
239         physical memory, use both pstat_getstatic and pstat_getdynamic.
240         Based on a patch from Bob Proulx.
241
242 2001-11-05  Jim Meyering  <meyering@lucent.com>
243
244         * xstat.in (slash_aware_lstat): Correct a misleading comment.
245
246 2001-11-03  Jim Meyering  <meyering@lucent.com>
247
248         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
249         in argmatch_to_argument call.
250
251         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
252         argument.
253
254         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
255         e.g., a fault due to an attempt to free a NULL pointer.
256
257 2001-11-01  Jim Meyering  <meyering@lucent.com>
258
259         * dirfd.c, dirfd.h: New files.
260         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
261
262         * hash.c (hash_print) [TESTING]: Clean up.
263
264 2001-10-22  Paul Eggert  <eggert@twinsun.com>
265
266         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
267         to avoid a warning if -Wall.
268
269 2001-10-21  Paul Eggert  <eggert@twinsun.com>
270
271         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
272
273 2001-10-21  Jim Meyering  <meyering@lucent.com>
274
275         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
276         this code would end up calling gettext even in packages built
277         with --disable-nls.
278         * getopt.c (_): Likewise.
279         * regex.c (_): Likewise.
280
281 2001-10-20  Paul Eggert  <eggert@twinsun.com>
282
283         * error.c (strerror_r): Do not declare unless !_LIBC.
284         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
285         Use strerror_r that is only a macro, even if it is not a function.
286         (strerror): Check for HAVE_DECL_STRERROR before declaring.
287         (private_strerror): Use prototypes, not old-style function definition.
288         (print_errno_message): New function.
289         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
290         char*-flavored one.
291         (error_tail, error, error_at_line): Use it.
292
293 2001-10-11  Jim Meyering  <meyering@lucent.com>
294
295         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
296         and quote_n (1, ... to avoid clobbering a buffer.
297
298 2001-10-05  Jim Meyering  <meyering@lucent.com>
299
300         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
301         * hash-pjw.c: New file (factored out of fileutils' remove.c).
302         * hash-pjw.h: New file.
303
304 2001-09-30  Jim Meyering  <meyering@lucent.com>
305
306         * mountlist.c [MOUNTED_GETFSSTAT]:
307         Include <sys/ucred.h>, for Apple Darwin.
308         Include sys/mount.h and sys/fs_types.h only if available.
309         (FS_TYPE): Define.
310         (read_filesystem_list): Use FS_TYPE.
311
312 2001-09-29  Paul Eggert  <eggert@twinsun.com>
313
314         * exclude.c (excluded_filename): 0 -> false, since it's
315         a boolean context.
316
317 2001-09-28  Paul Eggert  <eggert@twinsun.com>
318
319         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
320         #defines strtoimax.  Also treat the other strto* functions
321         like strtoimax.
322
323         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
324         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
325         (strtoimax, strtoumax): Do not declare if already defined as a macro.
326
327 2001-09-26  Jim Meyering  <meyering@lucent.com>
328
329         Most macros in unlocked-io.h had the wrong number of arguments.
330         * gen-uio: New script.
331         (USE_UNLOCKED_IO): Define to 1 if not already defined.
332         * unlocked-io.hin: Remove file.
333         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
334         rather than trying to embed it here.
335         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
336         Reported by Padraig Brady.
337
338 2001-09-25  Volker Borchert  <bt@teknon.de>
339
340         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
341
342 2001-09-23  Jim Meyering  <meyering@lucent.com>
343
344         * mountlist.c: Remove useless parentheses in #if directives.
345         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
346         the deprecated MOUNTED symbol is no longer defined in mntent.h.
347
348 2001-09-22  Jim Meyering  <meyering@lucent.com>
349
350         * localcharset.c: Update from latest gettext.
351         * config.charset: Likewise.
352
353 2001-09-20  Jim Meyering  <meyering@lucent.com>
354
355         * xstrtol.c (strtoimax): Guard declaration with
356         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
357         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
358         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
359         (strtoumax): Likewise, for completeness (it wasn't necessary).
360
361 2001-09-06  Paul Eggert  <eggert@twinsun.com>
362
363         * strtoimax.c (HAVE_LONG_LONG):
364         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
365         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
366         to work around bug in IBM C compiler.
367
368 2001-09-16  Jim Meyering  <meyering@lucent.com>
369
370         * mkdir.c: New file.
371
372 2001-09-04  Paul Eggert  <eggert@twinsun.com>
373
374         * xgetcwd.c: Revert some of the previous change; intead,
375         fix the HAVE_GETCWD_NULL code to behave more like the
376         !HAVE_GETCWD_NULL code used to.
377
378         Include "xalloc.h".
379         (xgetcwd): Do not return NULL when memory is exhausted; instead,
380         invoke xalloc_die.
381
382 2001-09-04  Paul Eggert  <eggert@twinsun.com>
383
384         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
385         Use ssize_t, not int, to store result of readlink.
386         Check for ssize_t overflow as well as size_t overflow,
387         as POSIX says the result of readlink is implementation-defined
388         when ssize_t overflows.
389         Remove unnecessary cast to char*.
390         Use free+malloc instead of realloc, as the storage doesn't need
391         to be preserved and it's clearer and can be more efficient that way.
392         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
393         * xreadlink.h (xreadlink): Update prototype.
394
395 2001-09-03  Paul Eggert  <eggert@twinsun.com>
396
397         * exclude.c (fnmatch_no_wildcards): Fix confusion between
398         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
399         spotted by Jim Meyering.
400
401 2001-09-03  Jim Meyering  <meyering@lucent.com>
402
403         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
404
405 2001-09-03  Paul Eggert  <eggert@twinsun.com>
406
407         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
408         like the HAVE_GETCWD_NULL code.
409         Include pathmax.h if not HAVE_GETCWD.
410         Do not include xalloc.h.
411         (INITIAL_BUFFER_SIZE): New symbol.
412         Do not use xmalloc / xrealloc, since the caller is responsible for
413         handling errors.  Preserve errno around `free' during failure.
414         Do not overrun buffer when using getwd.
415
416 2001-09-03  Paul Eggert  <eggert@twinsun.com>
417
418         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
419         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
420
421 2001-09-02  Jim Meyering  <meyering@lucent.com>
422
423         * error.c: Update from GNU libc.
424
425 2001-09-01  Jim Meyering  <meyering@lucent.com>
426
427         * xreadlink.c: New file.
428         * xreadlink.h: New file.
429         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
430
431         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
432         doesn't conflict with sparc-sun-solaris2.7's definition in
433         /usr/include/sys/int_types.h.
434
435         * exclude.c: Use `""', not `<>' to #include non-system header files.
436         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
437         and strncasecmp as r-values.  Unixware didn't have declarations.
438
439 2001-08-31  Jim Meyering  <meyering@lucent.com>
440
441         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
442         Use an initial, malloc'd, buffer of length 128 rather than
443         a statically allocated one of length 1024.
444
445 2001-08-30  Paul Eggert  <eggert@twinsun.com>
446
447         * xgetcwd.c: Don't include pathmax.h.
448         Include stdlib.h and unistd.h if available.
449         Include xalloc.h.
450         (xmalloc, xstrdup, free): Remove decls.
451         (xgetcwd): Don't assume sizes fit in unsigned.
452         Check for overflow when computing sizes.
453         Simplify reallocation code.
454
455 2001-08-28  Paul Eggert  <eggert@twinsun.com>
456
457         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
458
459         * strtoimax.c: Renamed from strtoxmax.c, removing the
460         old strtoimax.c.
461
462         Also, make the following further changes to make this file's
463         configuration more similar to that of strtol.c:
464         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
465         (strtoumax, uintmax_t, strtoull, strtol): Remove.
466         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
467         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
468         changed to signed values.
469
470         And make the following changes as well:
471         Fix copyright notice, as 1999 was missing.
472         (verify): New macro.
473         (strtoimax): Check sizes at compile-time, not run-time.
474         Prefer strtol to strtoll if both work.
475         (main): Remove; it was not that useful and was a pain to maintain.
476
477         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
478
479 2001-08-30  Paul Eggert  <eggert@twinsun.com>
480
481         * savedir.c (savedir): Remove size parameter, as POSIX says that
482         a directory's st_size can have an arbitrary value, so the old
483         usage could waste an arbitrary amount of memory.  All uses
484         changed.
485         * savedir.h: Update prototype.
486
487 2001-08-30  Paul Eggert  <eggert@twinsun.com>
488
489         * xstrtol.c (strtoimax): New decl.
490
491 2001-08-28  Paul Eggert  <eggert@twinsun.com>
492
493         * xstrtol.h: Add copyright notice.
494         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
495         LONGINT_INVALID_SUFFIX_CHAR.
496
497 2001-08-30  Paul Eggert  <eggert@twinsun.com>
498
499         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
500         tm to be declared.
501
502 2001-08-30  Paul Eggert  <eggert@twinsun.com>
503
504         * hash.c: Remove '2001' from copyright notice.
505
506 2001-08-30  Paul Eggert  <eggert@twinsun.com>
507
508         * full-write.h: New file.
509         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
510         * full-write.c: Correct credits, as cccp.c no longer
511         exists and anyway it was so heavily changed from the old cccp
512         code as to be unrecognizable.  Include full-write.h.
513         (full_write) Return size_t, with short writes meaning failure.
514         All callers changed.  This fixes a bug with large buffers
515         on 64-bit hosts.
516         * utime.c: Include full-write.h.
517
518 2001-08-30  Paul Eggert  <eggert@twinsun.com>
519
520         Merge 'exclude' changes from tar 1.13.22.
521         This fixes one or two unlikely storage allocation overflow bugs,
522         but doesn't change user-visible behavior otherwise.
523
524 2001-08-30  Paul Eggert  <eggert@twinsun.com>
525
526         * exclude.c (bool): Declare, perhaps by including stdbool.h.
527         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
528         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
529         Include if available.
530         (<xalloc.h>): Include
531         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
532         (verify): New macro.  Use it to verify that EXCLUDE macros do not
533         collide with FNM macros.
534         (struct patopts): New struct.
535         (struct exclude): Use it, as exclude patterns now come with options.
536         (new_exclude): Support above changes.
537         (new_exclude, add_exclude_file):
538         Initial size must now be a power of two to simplify overflow checking.
539         (free_exclude, fnmatch_no_wildcards): New function.
540         (excluded_filename): No longer requires options arg, as the options
541         are determined by add_exclude.  Now returns bool, not int.
542         (excluded_filename, add_exclude):
543         Add support for the fancy new exclusion options.
544         (add_exclude, add_exclude_file): Now takes int options arg.
545         Check for arithmetic overflow when computing sizes.
546         (add_exclude_file): xrealloc might modify errno, so don't
547         realloc until after errno might be used.
548
549         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
550         New macros.
551         (free_exclude): New decl.
552         (add_exclude, add_exclude_file): Now takes int options arg.
553         (excluded_filename): No longer requires options arg, as the options
554         are determined by add_exclude.  Now returns bool, not int.
555
556 2001-08-30  Paul Eggert  <eggert@twinsun.com>
557
558         * alloca.c (alloca): Arg is of type size_t, not unsigned.
559
560 2001-08-27  Jim Meyering  <meyering@lucent.com>
561
562         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
563
564         * version-etc.c (N_): Remove definition.
565         Revert most of last change.
566         Instead, simply don't mark the `Copyright...' string for translation.
567         Based on advice from Paul Eggert.
568
569         * strtoxmax.c: Tweak comment.
570
571 2001-08-26  Jim Meyering  <meyering@lucent.com>
572
573         * version-etc.c (version_etc_copyright_fmt): Replace literal year
574         of copyright with `%s' so translators don't get an untranslated
575         message in 2002.
576         (COPYRIGHT_YEAR): Define.
577         (version_etc): Use fprintf rather than fputs.
578         Suggestion from Ulrich Drepper.
579
580         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
581
582         * strtoll.c: New file, from GNU libc.
583         * xstrtoimax.c: New file.
584
585         * xstrtol.h: Add xstrtoimax.
586         * strtoumax.c: New file.  Simply include "strtoumax.c".
587         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
588
589         * strtoumax.c: Factor to work both for unsigned and signed types, ...
590         * strtoxmax.c: ... then renamed to this.
591
592 2001-08-13  Paul Eggert  <eggert@twinsun.com>
593
594         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
595         Port to Solaris 8, where 'sed' requires a space after the 'r'
596         command, and where sh dislikes "$/".  Clean up the spacing a bit.
597         Redirect output to $tmp just once.
598
599 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
600
601         * addext.c (<errno.h>): Include.
602         (errno): Declare if not defined.
603         (addext): Work correctly when pathconf returns -1 and leaves
604         errno alone because there is no limit.  Also, work even if
605         pathconf returns a value greater than SIZE_MAX.
606
607 2001-08-12  Jim Meyering  <meyering@lucent.com>
608
609         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
610         Simply `return getcwd (NULL, 0);'.
611         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
612         Use 1300 as initial value for length, not PATH_MAX.
613
614         * pathmax.h: Clean up cpp syntax.
615
616 2001-08-12  Jim Meyering  <meyering@lucent.com>
617
618         * gettimeofday.c: New file.
619         * gtod.h: New file.
620         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
621
622 2001-08-04  Jim Meyering  <meyering@lucent.com>
623
624         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
625         to get in sync with glibc.
626
627 2001-08-03  Paul Eggert  <eggert@twinsun.com>
628
629         The following changes are from gettext 0.10.39 as maintained by
630         Bruno Haible.
631
632         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
633         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
634         with inverted sense.  All uses changed.
635
636         * mbswidth.c: Don't include <limits.h>.
637         Include <stdlib.h> and <string.h> unconditionally.
638         (iswcntrl, mbsinit, ISCNTRL): New macros.
639         (mbsnwidth): Use K&R style function declarations.
640         Don't bother checking for MB_LEN_MAX == 1, since the compiler
641         can optimize it when MB_CUR_MAX == 1.
642         The width of control characters is zero, not 1.
643
644 2001-07-15  Jim Meyering  <meyering@lucent.com>
645
646         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
647         (BUILT_SOURCES): Add unlocked-io.h.
648         (io_functions): Define.
649         (unlocked-io.h): New rule.
650         (DISTCLEANFILES): Add unlocked-io.h.
651         (all-local): Depend on unlocked-io.h, to ensure it is created.
652
653         * unlocked-io.hin: New file
654
655         * regex.c: Update from glibc.
656
657 2001-07-05  Jim Meyering  <meyering@lucent.com>
658
659         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
660         recommendation.
661         (libfetish_a_SOURCES): Put all .h files here instead.
662         Remove a thus-exposed (better checks in automake) duplicate and
663         two unnecessary .h files.
664
665 2001-06-11  Jim Meyering  <meyering@lucent.com>
666
667         * regex.c: Update from GNU libc.
668
669 2001-05-27  Jim Meyering  <meyering@lucent.com>
670
671         * readutmp.h (UT_TYPE): Define.
672
673 2001-05-24  Jim Meyering  <meyering@lucent.com>
674
675         * argmatch.c: Include "quote.h".
676         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
677         quote function.  Reported by Göran Uddeborg.
678
679 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
680
681         * dirname.c (dir_name): Compute append_dot using path, not newpath
682         which is not yet declared.
683
684 2001-05-11  Paul Eggert  <eggert@twinsun.com>
685
686         * Makefile.am (libfetish_a_SOURCES):
687         Add strftime.c, since we now compile it on all hosts.
688
689         * strftime.c (my_strftime):
690         Define to nstrftime if emacs, but only if my_strftime is not defined.
691         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
692         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
693         Add one more extra argument: a nanoseconds value.
694         All uses changed.
695         (ns): New macro.
696         (my_strftime function): Add %N format.
697         (emacs_strftimeu): Renamed from emacs_strftime,
698         with extra ut argument.
699
700 2001-05-11  Paul Eggert  <eggert@twinsun.com>
701
702         dirname code cleanup.  base_name now behaves more compatibly
703         with POSIX basename when given file names that have trailing
704         slashes, and similarly for dir_name.  Add new primitives
705         base_len and dir_len.  Put the directory-name-related decls
706         into dirname.h.
707
708         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
709         * backupfile.c (base_name): Likewise.
710         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
711         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
712         * makepath.c (strip_trailing_slashes): Likewise.
713         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
714         Likewise.
715         * rename.c (strip_trailing_slashes): Likewise.
716         * same.c (base_name): Likewise.
717         * stripslash.c (ISSLASH): Likewise.
718
719         * addext.c: Include <dirname.h> after size_t is defined.
720         * backupfile.c: Likewise.
721
722         * addext.c (addext): Use base_len to trim redundant
723         trailing slashes instead of doing it ourselves.
724         But do not trim the last slash if it is not redundant.
725
726         * backupfile.c (find_backup_file_name,
727         max_backup_version): Use base_len instead of rolling it ourselves.
728         Handle the case of "" and (on DOS) "C:" correctly.
729
730         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
731         Include <string.h>, <dirname.h>.
732         (base_name): Allow file names ending in slashes, other than names
733         that are all slashes.  In this case, return the basename followed
734         by the slashes.  This is more general, and can be used in places
735         where the original base_name purposely had an assertion failure.
736         (base_len): New function.
737
738         * dirname.c: Include <string.h> instead of <stdlib.h>.
739         Do not include <assert.h>; no longer needed.
740         Include xalloc.h.
741         (memrchr): Remove decl.
742         (dir_name_r): Remove.
743         (dir_len): Renamed from dirlen.  All callers changed.
744         Rewrite in terms of base_name, for simplicity and consistency.
745         (dir_name): Never return NULL.  All callers changed.
746         Do not include <stdlib.h> in test program; no longer needed.
747         return 0; is fine for test program.
748
749         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
750         New macros.
751         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
752
753         * path-concat.c (path_concat): Use base_len to compute
754         base length, not strlen; this means we cannot rely on memcpy
755         to null-terminate.
756
757         * same.c (STREQ): Remove.
758         (same_name): Handle the case where the basename ends in trailing '/'.
759
760         * stripslash.c (strip_trailing_slashes): Return nonzero if
761         a slash was stripped.  Do not strip the last slash after a
762         file system prefix.
763
764 2001-04-08  Jim Meyering  <meyering@lucent.com>
765
766         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
767         recomputed; that's necessary when the offset spans a DST transition.
768         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
769
770 2001-04-02  Jim Meyering  <meyering@lucent.com>
771
772         * regex.h, regex.c: Update from GNU libc.
773
774 2001-03-19  Paul Eggert  <eggert@twinsun.com>
775
776         * version-etc.c (version_etc_copyright): Update to 2001.
777
778 2001-03-16  Paul Eggert  <eggert@twinsun.com>
779
780         * tempname.c (uint64_t): Define to uintmax_t if
781         not defined, and if UINT64_MAX is not defined.
782         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
783         Reported by John David Anglin.
784
785 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
786
787         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
788         alias if codeset is empty.
789         * config.charset (BeOS): Use wildcard syntax.
790
791 2001-03-13  Jim Meyering  <meyering@lucent.com>
792
793         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
794         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
795         From Bruno Haible.
796
797 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
798
799         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
800         Don't return NULL.
801         * unicodeio.c (print_unicode_char): Simplify accordingly.
802
803 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
804
805         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
806         support for DOS/DJGPP.
807
808 2001-02-28  Paul Eggert  <eggert@twinsun.com>
809
810         * Makefile.am (libfetish_a_SOURCES):
811         Add dup-safer.c, fopen-safer.c.
812         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
813
814         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
815
816 2001-02-25  Paul Eggert  <eggert@twinsun.com>
817
818         The mkstemp replacement is taken from glibc 2.2.2, with some
819         portability fixes for use outside glibc, as follows:
820
821         * tempname.c (struct_stat64): New macro.
822         (direxists, __gen_tempname): Use it.
823         This avoids a portability problem with Solaris 8.
824
825         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
826         (<stddef.h>, <stdint.h>, <string.h>):
827         Include only if STDC_HEADERS || _LIBC.
828         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
829         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
830         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
831         (__set_errno): Define this macro if <errno.h> doesn't.
832         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
833         Define these macros if <stdio.h> doesn't.
834         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
835         Define these macros if <sys/stat.h>
836         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
837         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
838         __xstat64): Define if not _LIBC.
839         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
840         (__gen_tempname): Invoke gettimeofday only if
841         HAVE_GETTIMEOFDAY || _LIBC;
842         otherwise, fall back on plain "time".
843         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
844
845         * mkstemp.c (__GT_FILE): Define to zero if not defined.
846
847         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
848
849 2001-02-17  Jim Meyering  <meyering@lucent.com>
850
851         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
852         around included file name.
853
854         * strnlen.c (__strnlen): Merge in a change from GNU libc.
855
856         * strftime.c: Update from GNU libc (the only changes were to comments).
857
858 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
859
860         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
861
862 2001-02-17  Paul Eggert  <eggert@twinsun.com>
863
864         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
865         Remove workaround macros for hosts that have mbrtowc but not
866         mbstate_t, as we now insist on proper declarations for both
867         before using mbrtowc.
868
869 2001-02-17  Jim Meyering  <meyering@lucent.com>
870
871         * regex.c: Update from libc.
872
873 2001-02-16  Paul Eggert  <eggert@twinsun.com>
874
875         * alloca.c (malloc): Undef before defining, since stdlib.h
876         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
877         Reported by Mark Hounschell via Paul Eggert.
878
879 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
880
881         * config.charset: Update for FreeBSD 4.2.
882
883 2001-01-26  Jim Meyering  <meyering@lucent.com>
884
885         * quotearg.c: Include stddef.h.
886         * quote.c: Include stddef.h.
887         Reported by Axel Kittenberger.
888
889         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
890         line in double quotes so that it evokes a better diagnostic.
891         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
892         Reported by Axel Kittenberger.
893
894 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
895
896         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
897         to avoid a warning.  Add back 'const' to inptr.
898
899 2001-01-16  Jim Meyering  <meyering@lucent.com>
900
901         * basename.c: Include <stdio.h>, needed by assert on SunOS4.
902         From Bruno Haible.
903
904 2001-01-14  Jim Meyering  <meyering@lucent.com>
905
906         * rename.c: New file.  From Volker Borchert.
907         Include stdlib.h, string.h or strings.h, and xalloc.h.
908         Use strip_trailing_slashes rather than open-coding it.
909
910 2001-01-03  Paul Eggert  <eggert@twinsun.com>
911
912         * strftime.c: Sync with glibc time/strftime.c 1.81.
913
914 2001-01-03  Jim Meyering  <meyering@lucent.com>
915
916         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
917         local `inptr' to avoid warning with some system declarations of iconv.
918
919 2000-12-29  Paul Eggert  <eggert@twinsun.com>
920
921         * modechange.c: Do not assume that mode_t uses the
922         traditional octal encoding.  E.g. "chmod 1 FOO" should set
923         the other-execute bit of FOO even if S_IXOTH != 1.
924
925         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
926         WOTH, XOTH, ALLM): New macros.
927         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
928          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
929         Use them.
930         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
931         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
932         (mode_compile):
933         No need to use uintmax_t; unsigned long is long enough.
934         Don't bother to get suffix since we don't use it.
935
936 2000-12-24  Jim Meyering  <meyering@lucent.com>
937
938         * hash.c (is_prime): Return explicit boolean values.
939         (hash_get_first): Return NULL to appease Irix5.6's 89.
940         Reported by Nelson Beebe.
941
942 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
943
944         * localcharset.c (locale_charset): Add support for Win32.
945
946 2000-12-18  Paul Eggert  <eggert@twinsun.com>
947
948         * physmem.h, physmem.c: New files.
949
950         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
951         (noinst_HEADERS): Add physmem.h.
952
953         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
954         't' for compatibility with Solaris 8 sort.
955
956 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
957
958         * config.charset: Add support for BeOS.
959
960 2000-12-16  Jim Meyering  <meyering@lucent.com>
961
962         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
963         SHELLS_FILE to a file name that's useful on djgpp systems.
964         Include stdlib.h.
965         (ADDITIONAL_DEFAULT_SHELLS): Define.
966         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
967         Based mostly on a patch from Prashant TR.
968
969 2000-12-16  Jim Meyering  <meyering@lucent.com>
970
971         This bug had a serious impact on chown: `chown N:M FILE' (for integer
972         N and M) would have treated it like `chown N:N FILE'.
973
974         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
975
976 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
977
978         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
979         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
980         to the list of canonical encodings. Rename EUC-CN to GB2312.
981
982 2000-12-08  Andreas Schwab  <schwab@suse.de>
983
984         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
985         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
986
987 2000-12-07  Jim Meyering  <meyering@lucent.com>
988
989         * stripslash.c (ISSLASH): Define.
990         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
991         From Prashant TR.
992
993         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
994         (dir_name_r): Declare this function as static.
995         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
996         manifest itself on a name containing a mix of slashes and
997         backslashes.
998         Make this function work with names starting with a DOS-style
999         drive letter and colon prefix.
1000         (dir_name): Append `.' if necessary.
1001         Based mostly on patches from Prashant TR and Eli Zaretskii.
1002
1003         * dirname.h (dir_name_r): Remove prototype.
1004
1005 2000-12-05  Jim Meyering  <meyering@lucent.com>
1006
1007         * dirname.c (dir_name_r): Add `const' in a few local declarations.
1008
1009 2000-12-04  Jim Meyering  <meyering@lucent.com>
1010
1011         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
1012         Also include memory.h, stdlib.h, unistd.h if appropriate.
1013         Reported by Andreas Jaeger (conflicting declaration of malloc).
1014
1015 2000-12-02  Jim Meyering  <meyering@lucent.com>
1016
1017         * closeout.h: Make idempotent, to avoid some obscure warnings.
1018
1019 2000-12-01  Paul Eggert  <eggert@twinsun.com>
1020
1021         * memrchr.c: Include <config.h> before any system include file.
1022
1023 2000-11-29  Paul Eggert  <eggert@twinsun.com>
1024
1025         * dirname.c (dir_name_r): Fix typo: int -> size_t.
1026
1027 2000-11-26  Jim Meyering  <meyering@lucent.com>
1028
1029         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
1030
1031 2000-11-22  Paul Eggert  <eggert@twinsun.com>
1032
1033         * strftime.c (my_strftime): Do not invoke mbrlen with a
1034         size of (size_t) -1; it's not portable.
1035
1036 2000-11-17  Akim Demaille  <akim@epita.fr>
1037
1038         * obstack.h: Formatting changes.
1039         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
1040         prevent type checking.
1041         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
1042         cast the value to (void *): assigning a `foo *' to a `void *'
1043         variable is valid.
1044         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
1045
1046 2000-11-17  Jim Meyering  <meyering@lucent.com>
1047
1048         * strstr.c: Update from GNU libc.
1049
1050 2000-11-16  Jim Meyering  <meyering@lucent.com>
1051
1052         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
1053
1054 2000-11-11  Jim Meyering  <meyering@lucent.com>
1055
1056         * error.c: Add a couple #includes, merging from GNU libc version.
1057
1058 2000-11-10  Jim Meyering  <meyering@lucent.com>
1059
1060         * obstack.h: Update from GNU libc.
1061         * obstack.c: Likewise.
1062
1063 2000-11-06  Paul Eggert  <eggert@twinsun.com>
1064
1065         * getusershell.c (setusershell): Use rewind rather than
1066         fseek/fseeko, to avoid configuration hassles with fseeko.
1067         Don't bother opening SHELLS_FILE if shellstream is NULL;
1068         it's not necessary.
1069
1070 2000-11-05  Jim Meyering  <meyering@lucent.com>
1071
1072         * makepath.h (make_dir): Declare.
1073         * makepath.c (make_dir): Remove `static' attribute.
1074         Tweak a comment.
1075
1076 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
1077
1078         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
1079         last one in a bucket, advance to the next bucket.
1080
1081 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
1082
1083         * fnmatch.c: Do not comment out all the code if we are using
1084         the GNU C library, because in some cases we are replacing buggy
1085         code in the GNU C library itself.
1086
1087 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1088
1089         * error.h, getline.h, modechange.h:
1090         Remove "2000" from Copyright line, as the file hasn't been
1091         changed this year other than in the copyright notice.
1092
1093         * xalloc.h: Add "2000" to Copyright line, as this file
1094         was changed this year.
1095
1096 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1097
1098         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
1099         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
1100         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
1101
1102 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
1103
1104         * regex.h (__restrict_arr): Move definition out of #ifndef block.
1105         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
1106         doesn't define __restrict_arr.
1107
1108 2000-10-29  Jim Meyering  <meyering@lucent.com>
1109
1110         * xstat.in: Fix grammar in comment.
1111
1112 2000-10-28  Jim Meyering  <meyering@lucent.com>
1113
1114         * memchr.c: Update from libc.
1115         Adjust for portability:
1116         [HAVE_STDLIB_H]: Include stdlib.h.
1117         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
1118         Undef __memchr, too.
1119         [!weak_alias]: Define __memchr to memchr.
1120
1121         * regex.c: Update from libc.
1122         * regex.h: Likewise.
1123         * getopt1.c: Likewise.
1124         * memcmp.c: Likewise.
1125
1126         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
1127         Avoid using fseek, when possible -- it's broken by design.
1128         Patch by Ulrich Drepper.
1129
1130 2000-10-26  Jim Meyering  <meyering@lucent.com>
1131
1132         * strftime.c: Update from libc.
1133
1134 2000-10-25  Jim Meyering  <meyering@lucent.com>
1135
1136         * obstack.c: Update from libc.
1137
1138 2000-10-23  Jim Meyering  <meyering@lucent.com>
1139
1140         * hard-locale.c (hard_locale): Revert last change -- it was simply
1141         wrong.  That set_locale call must not have any side effects.
1142         From Paul Eggert.
1143
1144 2000-10-22  Jim Meyering  <meyering@lucent.com>
1145
1146         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
1147         [CYCLIC]: Remove now-unused definition.
1148
1149         * save-cwd.c (O_DIRECTORY): Define, if needed.
1150         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
1151         Suggestion from Ulrich Drepper.
1152
1153 2000-10-21  Jim Meyering  <meyering@lucent.com>
1154
1155         * dirname.c (dir_name_r): New function, factored out of dir_name.
1156         (dir_name): Use dir_name_r.
1157         * dirname.h (dir_name_r): Declare it.
1158
1159 2000-10-21  Jim Meyering  <meyering@lucent.com>
1160
1161         * dirname.c (memrchr): Declare if necessary.
1162         (dir_name): Remove the restriction that there be no
1163         trailing slashes.  Now, this code skips past them, effectively
1164         ignoring them.
1165         [TEST_DIRNAME] (main): New unit tests.
1166
1167         * memrchr.c: New file from GNU libc.
1168         Undef __memrchr, too.
1169         [!weak_alias]: Define __memrchr to memrchr.
1170         Guard weak_alias use with `#ifdef weak_alias'.
1171
1172 2000-10-17  Jim Meyering  <meyering@lucent.com>
1173
1174         * quote.h (PARAMS): Define and use.
1175         Reported by Akim Demaille.
1176
1177         * getopt.c: Update from libc.
1178
1179 2000-10-16  Jim Meyering  <meyering@lucent.com>
1180
1181         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
1182         From Jan Fedak.
1183
1184 2000-09-25  Jim Meyering  <meyering@lucent.com>
1185
1186         * md5.h (rol): Define (from GnuPG).
1187
1188         * sha.c: Give credit (GnuPG) where due.
1189         (M): Use rol rather than open-coding it.
1190         Add a FIXME comment.
1191
1192 2000-09-21  Jim Meyering  <meyering@lucent.com>
1193
1194         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
1195         Reported by Michael Stone.
1196
1197 2000-09-20  Jim Meyering  <meyering@lucent.com>
1198
1199         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
1200         (noinst_HEADERS): Add sha.h.
1201         Based on code from Scott G. Miller and from GnuPG.
1202
1203 2000-09-15  Jim Meyering  <meyering@lucent.com>
1204
1205         * regex.c: Update from libc.
1206
1207 2000-09-10  Jim Meyering  <meyering@lucent.com>
1208
1209         * getopt.c (_getopt_internal): Update from glibc.
1210
1211 2000-09-09  Jim Meyering  <meyering@lucent.com>
1212
1213         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
1214         think it should be used as a general replacement for isascii.
1215         * fnmatch.c: Likewise.
1216         * mbswidth.c: Likewise
1217         * regex.c: Likewise.
1218
1219         Don't use atoi.
1220         * userspec.c: Include sys/param.h and limits.h.
1221         Include xstrtol.h.
1222         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
1223         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
1224         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
1225         UID, GID.  Check range.
1226
1227 2000-09-06  Jim Meyering  <meyering@lucent.com>
1228
1229         * getopt.c (_getopt_internal): Update from glibc.
1230
1231 2000-08-30  Jim Meyering  <meyering@lucent.com>
1232
1233         * strftime.c: Merge in changes from GNU libc.
1234
1235 2000-08-26  Jim Meyering  <meyering@lucent.com>
1236
1237         * closeout.c: Include "__fpending.h".
1238         (close_stdout_status): Return right away if there's nothing to flush.
1239
1240         * Makefile.am (noinst_HEADERS): Add __fpending.h.
1241         * __fpending.c: New file.
1242         * __fpending.h: New file.
1243
1244 2000-08-07  Paul Eggert  <eggert@twinsun.com>
1245
1246         Standardize on "memory exhausted" instead of "Memory exhausted"
1247         or "virtual memory exhausted".
1248         * obstack.c (print_and_abort): Use "memory exhausted", not
1249         "virtual memory exhausted".
1250         * same.c (same_name): Invoke xalloc_die instead of printing
1251         our own message.
1252         * userspec.c (parse_user_spec): Likewise.
1253         * bumpalloc.h: comment fix
1254         * same.c, userspec.c: Include xalloc.h.
1255
1256         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
1257         not char *const and pointing to a constant array.
1258         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
1259         (xrealloc): Comment fix.
1260
1261         * userspec.c (parse_user_spec):
1262         Don't translate a message until just before returning,
1263         to avoid unnecessary translation.
1264
1265 2000-08-07  Jim Meyering  <meyering@lucent.com>
1266
1267         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
1268         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
1269         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
1270         getgroups.c, gethostname.c, getopt.h, group-member.c,
1271         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
1272         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
1273         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
1274         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
1275         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
1276         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
1277         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
1278         yesno.c: Back out Copyright date changes for each file with no change
1279         this year.  This eases coordination with other programs using the same
1280         source code modules.  From Paul Eggert.
1281
1282 2000-08-03  Greg McGary  <greg@mcgary.org>
1283
1284         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
1285         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
1286         (EXTEND_BUFFER): Use them.
1287
1288 2000-08-01  Jim Meyering  <meyering@lucent.com>
1289
1290         * dirname.c (ISSLASH): Define.
1291         (BACKSLASH_IS_PATH_SEPARATOR): Define.
1292         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
1293         both `\' and `/' may be use as path separators.
1294         Based on a patch from Prashant TR.
1295
1296 2000-07-31  Paul Eggert  <eggert@twinsun.com>
1297
1298         * quotearg.c (quotearg_n_options): Don't make the initial
1299         slot vector a constant, since it might get modified.
1300
1301 2000-07-31  Jim Meyering  <meyering@lucent.com>
1302
1303         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
1304         * obstack.c (print_and_abort): Likewise.
1305
1306 2000-07-30  Paul Eggert  <eggert@twinsun.com>
1307
1308         * quotearg.c (quotearg_n_options): Preallocate a slot 0
1309         buffer, so that the caller can always quote one small
1310         component of a "memory exhausted" message in slot 0.
1311         From a suggestion by Jim Meyering.
1312
1313 2000-07-30  Jim Meyering  <meyering@lucent.com>
1314
1315         * makepath.c (make_path): Quote the other instance, too.
1316
1317         * quotearg.c (N_STATIC_SLOTVECS): Define.
1318         (STATIC_BUF_SIZE): Define.
1319         (quotearg_n_options): Use only statically allocated storage when
1320         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
1321         than STATIC_BUF_SIZE.
1322
1323 2000-07-29  Jim Meyering  <meyering@lucent.com>
1324
1325         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
1326         * dirname.c (dir_name): Likewise.
1327
1328         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
1329
1330         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
1331         (dir_name): Assert that there are no trailing slashes.
1332
1333 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
1334
1335         * mbswidth.h (mbswidth): Add a flags argument.
1336         (mbswidth): New declaration.
1337         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
1338         * mbswidth.c (mbswidth): Add a flags argument.
1339         (mbsnwidth): New function.
1340
1341 2000-07-24  Jim Meyering  <meyering@lucent.com>
1342
1343         * mbswidth.c: Remove useless #else.  From Bruno Haible.
1344
1345 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1346
1347         * mbswidth.c (_XOPEN_SOURCE):
1348         Don't define; this causes problems on Solaris 7.
1349         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
1350
1351 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1352
1353         * quotearg.c:
1354         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
1355         so that mbstate_t is always defined.
1356
1357         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
1358         be 1 in at least one GCC installation, and this configuration
1359         error is likely to be common.  Ignoring MB_LEN_MAX hurts
1360         performance on hosts that have mbrtowc but have only unibyte
1361         locales, but I assume these hosts are rare.
1362
1363 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1364
1365         * quotearg.c: Streamline by invoking multibyte code only if needed.
1366         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
1367         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
1368         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
1369         invoke multibyte primitives.
1370
1371 2000-07-23  Jim Meyering  <meyering@lucent.com>
1372
1373         * basename.c (base_name): Add an assertion.
1374
1375 2000-07-15  Bruno Haible  <clisp.cons.org>
1376
1377         * quotearg.c: When the system forces us to redefine mbstate_t,
1378         shadow its mbsinit function.
1379
1380 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
1381
1382         * mbswidth.h: New file.
1383         * mbswidth.c: New file.
1384         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
1385         (noinst_HEADERS): Add mbswidth.h.
1386
1387 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
1388
1389         * config.charset: Add support for FreeBSD. Improve support for HP-UX
1390         and IRIX 6.
1391
1392 2000-07-15  Jim Meyering  <meyering@lucent.com>
1393
1394         * makepath.c: Include quote.h.
1395         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
1396         corresponding argument in a `quote (...)' call.
1397         Give better diagnostics.
1398
1399         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
1400         (noinst_HEADERS): Add quote.h.
1401
1402         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
1403         from tar's src/misc.c.
1404         * quote.h: New file.  Prototypes for same.
1405
1406 2000-07-10  Paul Eggert  <eggert@twinsun.com>
1407
1408         From a suggestion by Bruno Haible.
1409         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
1410         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
1411         to decide whether to define the BeOS workaround macro;
1412         this adjusts to the change to AC_MBSTATE_T.
1413
1414 2000-07-13  Paul Eggert  <eggert@twinsun.com>
1415
1416         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
1417
1418         * quotearg.c (quoting_style_args, quoting_style_vals,
1419         quotearg_buffer_restyled): Add support for
1420         clocale_quoting_style.  Undo previous change to
1421         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
1422         and "{RIGHT QUOTATION MARK}" msgids.
1423
1424 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1425
1426         The old behavior of quoting `like this' doesn't look good with
1427         newer, ISO-style fonts.  See:
1428         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
1429
1430         Instead, quote "like this" by default.  Let the translator
1431         tailor the locale-specific quoting behavior by providing
1432         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
1433
1434         * quotearg.c (N_): New macro.
1435         (gettext_default): New function.
1436         (quotearg_buffer_restyled): Use
1437         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
1438         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
1439
1440 2000-07-09  Jim Meyering  <meyering@lucent.com>
1441
1442         * Most files: Update copyright dates to include 2000.
1443
1444 2000-07-08  Jim Meyering  <meyering@lucent.com>
1445
1446         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
1447         if not defined.
1448         (xgethostname): Remove now-unnecessary #ifdef.
1449         Move declaration of `err' into loop where it's used.
1450
1451 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1452
1453         * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
1454         by allocating a larger buffer. Test the gethostname return value for
1455         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
1456         returns an error and ENAMETOOLONG isn't defined.
1457
1458 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1459         and Bruno Haible  <haible@clisp.cons.org>
1460
1461         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
1462
1463 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1464
1465         * quotearg.c (struct quoting_options): Simplify quote_these_too
1466         dimension.
1467
1468 2000-07-03  Jim Meyering  <meyering@lucent.com>
1469
1470         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
1471         Reported by Bruno Haible.
1472
1473 2000-07-04  Jim Meyering  <meyering@lucent.com>
1474
1475         * quotearg.c: Make inclusion of <wchar.h> independent of whether
1476         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
1477         lacks mbrtowc.
1478
1479 2000-07-03  Paul Eggert  <eggert@twinsun.com>
1480         and Bruno Haible  <haible@clisp.cons.org>
1481
1482         * quotearg.c (mbrtowc):
1483         Assign to *pwc, and return 1 only if result is nonzero.
1484         (iswprint): Use ISPRINT when substituting our own mbrtowc.
1485
1486 2000-07-03  Jim Meyering  <meyering@lucent.com>
1487
1488         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
1489         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
1490         From Bob Proulx.
1491
1492 2000-07-02  Jim Meyering  <meyering@lucent.com>
1493
1494         * quotearg.c (mbstate_t): Don't define here.
1495
1496 2000-07-02  Jim Meyering  <meyering@lucent.com>
1497
1498         * nanosleep.c (SIGCONT): Define if not already defined.
1499
1500 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1501
1502         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
1503         per change in ../m4/ls-mntd-fs.m4.
1504         (read_filesystem_list): Ignore symbolic links.
1505
1506 2000-06-29  Jim Meyering  <meyering@lucent.com>
1507
1508         * same.c: Include <string.h> or <strings.h>, as appropriate,
1509         for declaration of strcmp.
1510
1511         * long-options.c: Include <stdlib.h>, for declaration of exit.
1512
1513         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
1514         Avoid warning by casting result to `char *' to remove `const'.
1515
1516 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1517
1518         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
1519
1520 2000-06-26  Paul Eggert  <eggert@twinsun.com>
1521
1522         savedir now sets errno on failure and invokes xmalloc to get memory.
1523         Fix a couple of other minor bugs while we're at it.
1524
1525         * savedir.c (<unistd.h>): Do not include; there's no need.
1526         (NAMLEN): Remove macro.
1527         (malloc, realloc): Remove decls.
1528         (stpcpy): Likewise.
1529         ("xalloc.h"): Include.
1530         (NAME_SIZE_DEFAULT): New macro.
1531         (savedir): Use xmalloc / xrealloc to allocate memory.
1532         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
1533         Skip "" directory entries.
1534         Use strlen to calculate directory entry length, since the old method
1535         is rarely used these days and isn't worth supporting.
1536         Don't use a pointer after freeing it.
1537         Check for integer overflow when calculating allocation size.
1538         Use memcpy to copy entries, instead of stpcpy.
1539         Set errno properly when returning NULL.
1540         Check for readdir error.
1541
1542 2000-06-26  Jim Meyering  <meyering@lucent.com>
1543
1544         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
1545
1546 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1547
1548         * getusershell.c (xmalloc, xrealloc): Remove functions.
1549         Include xalloc.h.
1550         Don't include <stdlib.h>.  Don't declare malloc, realloc.
1551
1552 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
1553
1554         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
1555
1556 2000-06-24  Jim Meyering  <meyering@lucent.com>
1557
1558         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
1559
1560 2000-06-21  Jim Meyering  <meyering@lucent.com>
1561
1562         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
1563
1564 2000-06-19  Paul Eggert  <eggert@twinsun.com>
1565
1566         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
1567         (mbrtowc, mbstate_t): Define substitutes if
1568         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
1569         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
1570         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
1571
1572 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1573
1574         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
1575         than 1024, return a memory chunk of least possible size, instead
1576         of size PATH_MAX + 2. In the loop, increment the size proportionally.
1577         Use free/xmalloc instead of xrealloc to avoid copying for very long
1578         paths.
1579
1580 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1581
1582         * canon-host.c (canon_host): Use malloc and memcpy to copy an
1583         address, not strdup.  Include <stdlib.h> and don't declare free().
1584
1585 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1586
1587         * path-concat.c (path_concat): Don't access dir[-1] if dir is
1588         the empty string.
1589
1590 2000-06-21  Jim Meyering  <meyering@lucent.com>
1591
1592         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
1593         (noinst_HEADERS): Add getstr.h.
1594
1595         * getline.c (getstr): Move into a separate file.
1596         * getstr.c (getstr): New file, extracted from getline.c, with
1597         the following changes: new parameter, delim2; both delim[12]
1598         parameters have type `int', not `char'.  The latter would lose
1599         with 8-bit delimiters.
1600         * getstr.h: New file.
1601
1602 2000-06-19  Jim Meyering  <meyering@lucent.com>
1603
1604         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
1605
1606 2000-06-18  Jim Meyering  <meyering@lucent.com>
1607
1608         * mkdir.c: Remove file, due mainly to copyright incompatibility.
1609         Besides, these days every porting target provides a mkdir function.
1610
1611         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
1612         (this snippet comes from src/system.h).
1613
1614 2000-06-15  Paul Eggert  <eggert@twinsun.com>
1615
1616         * human.c (adjust_value): New function.
1617         (human_readable_inexact): Apply rounding style even when
1618         printing approximate values.
1619
1620 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1621
1622         * human.c (human_readable_inexact): Allow an input block
1623         size that is not a multiple of the output block size, and vice versa.
1624         Reported by Piergiorgio Sartor.
1625
1626 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1627
1628         * getdate.y (get_date): Apply relative times after time
1629         zone indicator, not before.  Reported by Todd A. Jacobs.
1630
1631 2000-06-13  Jim Meyering  <meyering@lucent.com>
1632
1633         * Makefile.am (all-local): Depend on lstat.c and stat.c.
1634
1635         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
1636
1637 2000-06-12  Paul Eggert  <eggert@twinsun.com>
1638
1639         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
1640
1641 2000-06-04  Paul Eggert  <eggert@twinsun.com>
1642
1643         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
1644
1645 2000-06-04  Jim Meyering  <meyering@lucent.com>
1646
1647         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
1648         SunOS4.1.4 for which gid_t is an unsigned type.
1649
1650 2000-06-03  Jim Meyering  <meyering@lucent.com>
1651
1652         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
1653
1654 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
1655
1656         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
1657         newer, don't install charset.alias.
1658         * config.charset: Change the Linux/glibc rules so they become empty
1659         on glibc-2.1 or newer.
1660
1661 2000-06-02  Jim Meyering  <meyering@lucent.com>
1662
1663         * mountlist.c: Back out last change.  Instead, do this...
1664         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
1665         member using the same `ignore'-testing code.
1666         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
1667         fs_type strings.
1668         From Mark D. Roth.
1669
1670 2000-05-29  Jim Meyering  <meyering@lucent.com>
1671
1672         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
1673         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
1674
1675 2000-05-22  Jim Meyering  <meyering@lucent.com>
1676
1677         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
1678
1679 2000-05-18  Jim Meyering  <meyering@lucent.com>
1680
1681         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
1682         back, too, since it may have been modified by allocate_entry.
1683         (hash_delete): Rewrite to use neither the assignment operator
1684         nor the comma operator in an if-expression.
1685
1686 2000-05-15  Paul Eggert  <eggert@twinsun.com>
1687
1688         * closeout.c:
1689         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
1690         Remove; no longer needed.
1691         "quotearg.h": Add include.
1692         (file_name): Do not bother to explicitly initialize to NULL; it's less
1693         efficient on some hosts.
1694         (close_stdout_status): Remove test as to whether stdout was already
1695         closed; it breaks for the case "echo x | sort >&-".
1696         Quote file name colons.
1697         Do not assume that _("write error") lacks format strings.
1698
1699 2000-05-15  Jim Meyering  <meyering@lucent.com>
1700
1701         * version-etc.c (version_etc_copyright): Update the copyright string
1702         used in all --version output.
1703
1704 2000-05-14  Jim Meyering  <meyering@lucent.com>
1705
1706         * closeout.c (close_stdout_set_file_name): New function.
1707         (close_stdout_status): Use new file-scoped global.
1708         Return right away if fstat says the stdout file descriptor is invalid.
1709         * closeout.h (close_stdout_set_file_name): Declare.
1710
1711 2000-05-10  Jim Meyering  <meyering@lucent.com>
1712
1713         * closeout.c [default_exit_status]: New file-scoped variable.
1714         (close_stdout_set_status): New function.
1715         * closeout.h (close_stdout_set_status): Declare.
1716
1717 2000-05-08  Jim Meyering  <meyering@lucent.com>
1718
1719         * long-options.c: Don't include closeout.h.
1720         (parse_long_options): Don't call close_stdout for --version.
1721
1722 2000-05-06  Jim Meyering  <meyering@lucent.com>
1723
1724         * strnlen.c: Undefine __strnlen and strnlen.
1725         [!weak_alias]: Define __strnlen to strnlen.
1726
1727         * atexit.c: New file, from libiberty.
1728
1729 2000-05-06  Jim Meyering  <meyering@lucent.com>
1730
1731         * closeout.c (close_stdout_status): Also check for errors on the
1732         stderr stream.
1733
1734 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
1735
1736         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
1737         instead of xmalloc, xrealloc, path_concat.
1738         (locale_charset): Treat empty environment variables as absent.
1739         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
1740
1741 2000-05-04  Jim Meyering  <meyering@lucent.com>
1742
1743         * getopt.c: Update from glibc.
1744         * obstack.c: Likewise.
1745         * obstack.h: Likewise.
1746         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
1747
1748         * regex.h: Likewise.
1749         * strndup.c: Likewise.
1750         * strnlen.c: New file, from glibc.
1751
1752 2000-05-01  Jim Meyering  <meyering@lucent.com>
1753
1754         * full-write.c (full_write): Remove `FIXME' part of comment.
1755
1756 2000-04-29  Jim Meyering  <meyering@lucent.com>
1757
1758         * path-concat.c: Declare strdup only if it's not defined.
1759         * canon-host.c: Likewise.
1760
1761 2000-04-28  Jim Meyering  <meyering@lucent.com>
1762
1763         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
1764         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
1765         included first, then limits.h is included by locale.h by libintl.h.
1766         From John David Anglin.
1767
1768 2000-04-25  Jim Meyering  <meyering@lucent.com>
1769
1770         * makepath.c (S_IRWXUGO): Define.
1771         (make_path): Always perform explicit chmod if MODE specifies any
1772         of the `special' permission bits.  Prompted by a bug report against
1773         install from Mate Wierdl and Joost van Baal.
1774
1775 2000-04-18  Jim Meyering  <meyering@lucent.com>
1776
1777         * README: New file.
1778
1779         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
1780         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
1781
1782 2000-04-17  Jim Meyering  <meyering@lucent.com>
1783
1784         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
1785         the definition of it to rpl_strftime also defined-away the system's
1786         declaration.
1787
1788 2000-04-15  Jim Meyering  <meyering@lucent.com>
1789
1790         Use `C' to denote so-called `contiguous' files, the same way
1791         that tar does.
1792         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
1793         (ftypelet): Use S_ISCTG.
1794         From Michael Deutschmann.
1795
1796 2000-04-14  Jim Meyering  <meyering@lucent.com>
1797
1798         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
1799
1800 2000-04-08  Jim Meyering  <meyering@lucent.com>
1801
1802         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
1803         names don't conflict.  Reported by Eli Zaretskii.
1804
1805 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
1806
1807         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
1808         bug.  Deal with the different error behavior of Irix iconv.
1809
1810 2000-04-07  Jim Meyering  <meyering@lucent.com>
1811
1812         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
1813         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
1814
1815 2000-04-05  Jim Meyering  <meyering@lucent.com>
1816
1817         Portability tweaks required for ultrix4.3.
1818         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
1819         * readutmp.c: Include sys/types.h before sys/stat.h.
1820         * canon-host.c: Declare strdup.
1821         * path-concat.c: Likewise.
1822         From John David Anglin.
1823
1824 2000-04-04  Jim Meyering  <meyering@lucent.com>
1825
1826         Be more DOS 8.3-friendly.
1827         * ref-add.sin: Renamed from ref-add.sed.in.
1828         * ref-del.sin: Renamed from ref-del.sed.in.
1829         * Makefile.am: Reflect renaming.
1830         Reported by Eli Zaretskii.
1831
1832         Use a temporary file name that won't clash with `charset.alias'
1833         in the DOS 8.3 name space.
1834         * Makefile.am (charset_tmp): Define.
1835         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
1836         (uninstall-local): Likewise.
1837         Reported by Eli Zaretskii.
1838
1839 2000-03-29  Paul Eggert  <eggert@twinsun.com>
1840
1841         * time/strftime.c (my_strftime): Make sure we call the system
1842         strftime, not ourselves, when invoking the underlying strftime.
1843
1844 2000-03-24  Jim Meyering  <meyering@lucent.com>
1845
1846         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
1847         (charset_alias): Define.
1848         (install-exec-local): Factor out common code.
1849         (uninstall-local): Split lines longer than 80.
1850         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
1851         (SUFFIXES): Define.
1852         (.sed.in.sed): New rule.  Don't redirect directly to $@.
1853         (CLEANFILES): Add ref-add.sed and ref-del.sed.
1854
1855 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
1856
1857         * config.charset: Output a line containing "Packages using this file".
1858         * ref-add.sed.in, ref-del.sed.in: New files.
1859         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
1860         ref-del.sed): New rules.
1861
1862 2000-03-17  Jim Meyering  <meyering@lucent.com>
1863
1864         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
1865         Otherwise, include <strings.h>
1866
1867 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
1868
1869         * unicodeio.c (utf8_wctomb): New function.
1870         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
1871         format instead of in UCS-4 with platform dependent endianness.
1872
1873 2000-03-07  Paul Eggert  <eggert@twinsun.com>
1874
1875         * savedir.c (savedir): Work even if directory size is
1876         negative; this can happen with some screwy NFS configurations.
1877
1878 2000-03-06  Jim Meyering  <meyering@lucent.com>
1879
1880         * localcharset.c (get_charset_aliases): Don't try to free file_name
1881         if it's NULL (because we ran out of memory).  From Bruno Haible.
1882
1883 2000-03-05  Jim Meyering  <meyering@lucent.com>
1884
1885         * localcharset.c ("path-concat.h"): Include.
1886         (get_charset_aliases): Use path_concat instead of ANSI string
1887         concatenation.
1888
1889         * unicodeio.h (PARAMS): Define.
1890         Use it to guard prototype.
1891
1892 2000-03-04  Jim Meyering  <meyering@lucent.com>
1893
1894         * Makefile.am (install-exec-local): Create $(libdir) before installing
1895         into it.
1896         (uninstall-local): Uncomment this rule so `make distcheck' works
1897         once again.
1898
1899         * unicodeio.c (<errno.h>): Include it.
1900         (errno): Declare if not defined.
1901
1902         * localcharset.c: Add Bruno's comment justifying use of volatile.
1903
1904         * config.charset: New version, incorporating remarks from a linux
1905         i18n mailing list.  From Bruno Haible.
1906
1907 2000-03-02  Jim Meyering  <meyering@lucent.com>
1908
1909         * Makefile.am (EXTRA_DIST): Add config.charset.
1910
1911 2000-03-01  Jim Meyering  <meyering@lucent.com>
1912
1913         * localcharset.c: Guard some #includes with `#if HAVE_...'.
1914         * unicodeio.c: Likewise.
1915
1916 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
1917
1918         * config.charset: New file.
1919         * localcharset.c: New file.
1920         * unicodeio.h, unicodeio.c: New files.
1921         * Makefile.am (DEFS): Add -DLIBDIR=...
1922         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
1923         (noinst_HEADERS): Add unicodeio.h.
1924         (all-local, install-exec-local, charset.alias): New targets.
1925
1926 2000-02-28  Paul Eggert  <eggert@twinsun.com>
1927
1928         * quotearg.c (ALERT_CHAR): New macro.
1929         (quotearg_buffer_restyled): Use it.
1930
1931 2000-02-27  Jim Meyering  <meyering@lucent.com>
1932
1933         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
1934         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
1935
1936         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
1937         not `#if STDC_HEADERS'.
1938         Declare malloc if needed.
1939
1940         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
1941         now that autoconf always defines the HAVE_DECL_ symbols.
1942         * human.c: Likewise.
1943         * same.c: Likewise.
1944         * strtoumax.c: Likewise.
1945
1946         * backupfile.c: Arrange for cpp to fail if the configure-time
1947         declaration check was not run.
1948         * hash.c: Likewise.
1949         * human.c: Likewise.
1950         * same.c: Likewise.
1951         * strtoumax.c: Likewise.
1952
1953         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
1954         then first look up the entire `.'-containing string as a login name.
1955
1956 2000-02-18  Paul Eggert  <eggert@twinsun.com>
1957
1958         * getdate.y: Handle two-digit years with leading zeros correctly.
1959         (textint): New typedef.
1960         (parser_control): Member year changed from int to textint.
1961         All uses changed.
1962         (YYSTYPE): Removed; replaced by %union with int and textint members.
1963         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
1964         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
1965         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
1966         (tSNUMBER, tUNUMBER): Now of type <textintval>.
1967         (date, number, to_year): Use width of number in digits, not its value,
1968         to determine whether it's a 2-digit year, or a 2-digit time.
1969         (yylex): Store number of digits of numeric tokens.
1970         Reported by John Kendall.
1971
1972         (parser_control): Changed from struct parser_control to typedef (for
1973         consistency).  All uses changed.
1974
1975         (tID): Removed; not used.
1976         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
1977
1978 2000-02-14  Paul Eggert  <eggert@twinsun.com>
1979
1980         * getpagesize.h (getpagesize): Port to VMS for Alpha;
1981         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
1982
1983 2000-02-12  Jim Meyering  <meyering@lucent.com>
1984
1985         * userspec.c (ISDIGIT): Define it.
1986         (isdigit): Remove definition.
1987         (is_number): Use ISDIGIT, not isdigit.
1988         <libintl.h>: Include.
1989         (_ and N_): Define.
1990         (parse_user_spec): Mark translatable strings.
1991
1992 2000-02-10  Jim Meyering  <meyering@lucent.com>
1993
1994         With these changes, nanosleep.[ch] are finally enough like the other
1995         lib/* replacement files to compile on a few more losing systems.
1996
1997         * nanosleep.h: Don't include config.h.
1998         Remove prototype from declaration of nanosleep.
1999         (PARAMS): Remove now-unneeded definition.
2000         * nanosleep.c: #undef nanosleep.
2001         (rpl_nanosleep): Rename from nanosleep.
2002
2003 2000-02-03  Jim Meyering  <meyering@lucent.com>
2004
2005         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
2006         rather than with `#if HAVE_UTMPNAME'.
2007
2008 2000-02-01  Jim Meyering  <meyering@lucent.com>
2009
2010         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
2011
2012 2000-01-31  Jim Meyering  <meyering@lucent.com>
2013
2014         * nanosleep.h (nanosleep): Guard declaration with
2015         `#if ! HAVE_DECL_NANOSLEEP'.
2016         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
2017         the declaration in that vendor's sys/timers.h.
2018         Reported by Christian Krackowizer.
2019
2020         * quotearg.c (ISASCII): Add #undef and move definition to follow
2021         inclusion of wctype.h to work around solaris2.6 namespace pollution.
2022         (ISPRINT): Likewise.
2023         Reported by Tom Tromey.
2024
2025 2000-01-30  Jim Meyering  <meyering@lucent.com>
2026
2027         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
2028         uses of ->ut_name.  The latter doesn't work with new Linux header files
2029         where only utmpx.ut_user is declared.
2030
2031         * readutmp.h (UT_USER): Define.
2032
2033 2000-01-23  Jim Meyering  <meyering@lucent.com>
2034
2035         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
2036         obstack.c.
2037
2038 2000-01-22  Jim Meyering  <meyering@lucent.com>
2039
2040         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
2041         [! HAVE_DECL_STRTOULL]: Declare strtoull.
2042         Required for some AIX systems.  Reported by Christian Krackowizer.
2043         [TESTING] (main): New function.
2044
2045         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
2046         * dirname.c (dir_name): Support for DOS-style file names with drive
2047         letters.
2048
2049         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
2050
2051         * strverscmp.c (ISDIGIT): Define.
2052         (strverscmp): Use ISDIGIT, not isdigit.
2053
2054 2000-01-17  Paul Eggert  <eggert@twinsun.com>
2055
2056         * nanosleep.c (nanosleep):
2057         Don't use SA_INTERRUPT to decide whether to call sigaction, as
2058         POSIX.1 doesn't require SA_INTERRUPT and some systems
2059         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
2060         it's been part of POSIX.1 since day 1 (in 1988).
2061
2062 2000-01-17  Jim Meyering  <meyering@lucent.com>
2063
2064         * interlock: Remove unused file.  Reported by François Pinard.
2065
2066 2000-01-16  Paul Eggert  <eggert@twinsun.com>
2067
2068         * quotearg.c (quotearg_buffer_restyled): Do not quote
2069         alert, backslash, formfeed, and vertical tab unnecessarily in
2070         shell quoting style.
2071
2072 Local Variables:
2073 version-control: never
2074 End: