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