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