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