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