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