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