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