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