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