c2cc56a5ff750898f9d4eaabb0cdb1f1822d00da
[gnulib.git] / lib / ChangeLog
1 2002-11-21  Jim Meyering  <jim@meyering.net>
2
3         Merge in changes from the coreutils.
4
5         * makepath.c (make_path): Restore umask *before* creating the final
6         component.
7         (make_path): Minor reformatting.
8
9         * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
10         and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
11
12         * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
13         ones.  At least on GNU/Linux systems, `auto' means something else.
14         From Michael Stone.
15
16 2002-11-20  Paul Eggert  <eggert@twinsun.com>
17
18         Merge argmatch cleanups from Bison.  Assume C89.
19
20         * argmatch.c: Include config.h here, not in argmatch.h.
21         Include stdlib.h, for EXIT_FAILURE.
22         Always include <string.h>, since we assume C89.
23         (EXIT_FAILURE): Remove pre-C89 bug workaround.
24         * argmatch.h: Do not include <config.h> or <sys/types.h>.
25         Include <stddef.h> instead, since it's all we need for size_t.
26         (PARAMS): Remove.  All uses removed.
27         (ARRAY_CARDINALITY): Do not bother to #undef.
28         (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
29         ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
30         Remove unnecessary parentheses.
31         (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
32         Insert necessary parentheses.
33         (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
34         (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
35
36 2002-11-19  Bruno Haible  <bruno@clisp.org>
37
38         * mbswidth.c: Include mbswidth.h right at the beginning.
39         * mbswidth.h: Include <stddef.h>, for size_t.
40
41         * mbswidth.h (PARAMS): Remove macro.
42         (mbswidth, mbsnwidth): Use ANSI C function declarations.
43         * mbswidth.c (mbswidth, mbsnwidth): Likewise.
44
45         * gcd.h (PARAMS): Remove macro.
46         (gcd): Use ANSI C function declarations.
47         * gcd.c (gcd): Likewise.
48
49 2002-11-15  Bruno Haible  <bruno@clisp.org>
50
51         * strcspn.c: Include <stddef.h>.
52         (strcspn): Use ANSI C function declaration. Change return type to
53         size_t. Use NULL.
54         * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
55         (strpbrk): Use NULL.
56         * strpbrk.h (PARAMS): Remove macro.
57         (strpbrk): Use ANSI C function declaration.
58         * strstr.c: Don't include <sys/types.h>.
59         * strstr.h (PARAMS): Remove macro.
60         (strstr): Use ANSI C function declarations.
61
62 2002-11-06  Bruno Haible  <bruno@clisp.org>
63
64         * gcd.h (gcd): Change argument type to 'unsigned long'.
65         * gcd.c (gcd): Likewise.
66
67 2002-11-05  Bruno Haible  <bruno@clisp.org>
68
69         * gcd.h: New file, from gettext-0.11.5.
70         * gcd.c: New file, from gettext-0.11.5.
71
72 2002-11-05  Bruno Haible  <bruno@clisp.org>
73
74         * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
75         * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
76         * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
77         * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
78
79         * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
80         * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
81
82         * closeout.c: Include gettext.h instead of <libintl.h>.
83         * human.c: Include gettext.h instead of <libintl.h>.
84         * quotearg.c: Include gettext.h instead of <libintl.h>.
85         * rpmatch.c: Include gettext.h instead of <libintl.h>.
86         * unicodeio.c: Include gettext.h instead of <libintl.h>.
87         * userspec.c: Include gettext.h instead of <libintl.h>.
88         * version-etc.c: Include gettext.h instead of <libintl.h>.
89         * xmalloc.c: Include gettext.h instead of <libintl.h>.
90         (textdomain): Remove definition.
91         * xmemcoll.c: Include gettext.h instead of <libintl.h>.
92
93         * long-options.c: Remove include of <libintl.h> and definition of _.
94         * same.c: Remove include of <libintl.h> and definition of _.
95
96 2002-11-04  Bruno Haible  <bruno@clisp.org>
97
98         * stpcpy.h: New file, from GNU gettext-0.11.5.
99         * strcase.h: New file, from GNU gettext-0.11.5.
100         * strpbrk.h: New file, from GNU gettext-0.11.5.
101         * strstr.h: New file, from GNU gettext-0.11.5.
102         * xgetcwd.h: New file, from GNU gettext-0.11.5.
103
104 2002-05-09  Bruno Haible  <bruno@clisp.org>
105
106         * config.charset: Update for newest glibc. Add canonical names
107         ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
108
109 2002-05-09  Bruno Haible  <bruno@clisp.org>
110
111         * localcharset.c (get_charset_aliases): Add more Windows specific
112         aliases.
113
114 2002-05-08  Owen Taylor  <otaylor@redhat.com>
115
116         * config.charset: A few additions for Solaris.
117
118 2001-12-05  Bruno Haible  <bruno@clisp.org>
119
120         * localcharset.c (locale_charset): Don't return an empty string.
121
122 2001-10-23  Bruno Haible  <haible@clisp.cons.org>
123
124         * config.charset: msdos in uk_UA uses CP1125.
125
126 2001-08-05  Bruno Haible  <haible@clisp.cons.org>
127
128         Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
129         * localcharset.c (locale_charset): Declare as extern "C".
130
131 2002-02-15  Bruno Haible  <bruno@clisp.org>
132
133         * config.charset [msdosdjgpp]: For Russian, use CP866.
134
135 2002-02-11  Bruno Haible  <bruno@clisp.org>
136
137         * config.charset: Add support for NetBSD.
138
139 2002-09-25    <karl@gnu.org>
140
141         * strdup.c: copy from libc/string (via ../config/srclist*).
142         * getopt*: copy from libc/posix.
143         * gettext.h: copy from gettext.
144         * .cppi-disable: add strdup.c, gettext.h.
145
146 2002-07-01  Jim Meyering  <meyering@lucent.com>
147
148         * c-stack.c: Include sys/time.h.
149         From Volker Borchert.
150
151 2002-06-11  Paul Eggert  <eggert@twinsun.com>
152
153         * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
154         New macro.  Use it uniformly instead of
155         (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
156         It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
157         reported by Vin Shelton.
158
159 2002-06-22  Jim Meyering  <meyering@lucent.com>
160
161         * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
162         redefinition due to Solaris5.6's definition in /usr/include/sys/euc.h.
163
164 2002-06-22  Paul Eggert  <eggert@twinsun.com>
165
166         * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
167         Do not assume SA_SIGINFO behavior.
168         Bug reported by Jim Meyering on NetBSD 1.5.2.
169
170 2002-06-22  Jim Meyering  <meyering@lucent.com>
171
172         * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
173
174         * exitfail.c, exitfail.h: Likewise.
175         * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
176
177         * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
178         of fnmatch.h.
179         (EXTRA_DIST): Add fnmatch_loop.c.
180         (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
181
182         * fnmatch_loop.c: New file, from diffutils-2.8.2.
183         * fnmatch.c: Update from diffutils-2.8.2.
184         * fnmatch_.h: New file.  From diffutils-2.8.2.
185         * fnmatch.h: Remove file.
186
187 2002-06-18  Paul Eggert  <eggert@twinsun.com>
188
189         * file-type.h: Report an error if neither S_ISREG nor
190         S_IFREG is defined, instead of using a test specific to glibc
191         2.2.  This should be safe, since POSIX requires S_ISREG and
192         Unix Version 7 had S_IFREG.  We don't need to check for
193         <sys/types.h> since we don't use any symbols that it defines.
194
195 2002-06-15  Jim Meyering  <meyering@lucent.com>
196
197         * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
198         For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
199         have been included before this file.
200
201 2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
202
203         * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
204         so that each temporary file name is unique and valid in the first
205         8 characters, for operation under DOS.
206
207 2002-06-15  Jim Meyering  <meyering@lucent.com>
208
209         Work even with DJGPP 2.03, which lacks support for symlinks.
210         From Richard Dawe.
211         * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
212         is defined.
213         * lchown.c (S_ISLNK): Likewise.
214
215 2002-06-14  Jim Meyering  <meyering@lucent.com>
216
217         * file-type.h: Use the version from diffutils-2.8.2.
218         * file-type.c: Likewise.
219
220 2002-05-27  Jim Meyering  <meyering@lucent.com>
221
222         Fix a problem seen only on nonconforming systems whereby ls.c's
223         use of localtime, and then of gettimeofday would cause trouble:
224         the localtime call used to initialize rpl_gettimeofday's save
225         mechanism would clobber ls's current local time information so
226         that in any long listing the first file would always be listed
227         with date 1970-01-01.  Analysis by Volker Borchert.
228
229         * gettimeofday.c (localtime): Undefine.
230         (rpl_localtime): New function.
231
232 2002-05-22  Jim Meyering  <meyering@lucent.com>
233
234         * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
235         * file-type.h: New file.
236         * file-type.c (file_type): New file/function.  Extracted from diffutils.
237
238 2002-04-29  Paul Eggert  <eggert@twinsun.com>
239
240         * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
241
242 2002-04-28  Paul Eggert  <eggert@twinsun.com>
243
244         * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
245         depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
246         of 127, since 64 is the largest conceivable number for ancient
247         nonstandard hosts.
248         * sig2str.c: Do not include <sys/wait.h>; no longer needed.
249
250 2002-04-28  Jim Meyering  <meyering@lucent.com>
251
252         * sig2str.c (WTERMSIG): Remove definition (unused).
253
254 2002-04-28  Paul Eggert  <eggert@twinsun.com>
255
256         * sig2str.h, sig2str.c: New files.
257         * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
258
259 2002-04-24  Jim Meyering  <meyering@lucent.com>
260
261         * gettext.h: New file, from Gettext.
262         * Makefile.am (INCLUDES): Remove -I../intl.
263         (libfetish_a_SOURCES): Add gettext.h.
264
265 2002-04-16  Jim Meyering  <meyering@lucent.com>
266
267         * readutmp.h (UT_TYPE): Remove definition (now in who.c).
268         (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
269         (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
270
271 2002-04-12  Jim Meyering  <meyering@lucent.com>
272
273         * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
274
275 2002-03-10  Jim Meyering  <meyering@lucent.com>
276
277         * makepath.c (make_path): Remove a comma from a diagnostic.
278         Suggestion from Santiago Vila.
279
280 2002-03-08  Jim Meyering  <meyering@lucent.com>
281
282         * rename.c: Mention that this wrapper is needed also on
283         mips-dec-ultrix4.4 systems.
284
285 2002-03-02  Jim Meyering  <meyering@lucent.com>
286
287         * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
288         not HAVE_CLOCK_SETTIME.
289
290 2002-02-27  Paul Eggert  <eggert@twinsun.com>
291
292         * nanosleep.h: Rename to....
293         * timespec.h: New name for nanosleep.h.  All uses changed.
294
295         * gettime.c: New file.
296         * settime.c: New file.
297         * stime.c: Remove.
298
299         * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
300         timespec.h.  Remove nanosleep.h.
301
302 2002-02-25  Paul Eggert  <eggert@twinsun.com>
303
304         * acl.c, acl.h: New files.
305         * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
306
307 2002-02-24  Jim Meyering  <meyering@lucent.com>
308
309         * strnlen.c (strnlen): Define-away/undef so that an inconsistent
310         prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
311         cause trouble.  Reported by Nelson Beebe.
312
313 2002-02-23  Paul Eggert  <eggert@twinsun.com>
314
315         * path-concat.c (xpath_concat): Reorder code to pacify
316         compilers that don't know that xalloc_die never returns.
317
318 2002-02-20  Jim Meyering  <meyering@lucent.com>
319
320         * getdate.c: Regenerate using bison-1.33.
321
322 2002-02-15  Paul Eggert  <eggert@twinsun.com>
323
324         * posixver.c, posixver.h: New files.
325         * Makefile.am (libfetish_a_SOURCES): Add them.
326
327 2002-02-02  Paul Eggert  <eggert@twinsun.com>
328             Bruno Haible  <bruno@clisp.org>
329
330         * unicodeio.h (print_unicode_char): Add exit_on_error argument.
331         (fwrite_success_callback): New declaration.
332         * unicodeio.c (unicode_to_mb): New function, extracted from
333         print_unicode_char. Call failure callback instead of error.
334         (fwrite_success_callback): New function.
335         (exit_failure_callback): New function.
336         (fallback_failure_callback): New function.
337         (print_unicode_char): Call unicode_to_mb.
338
339 2002-01-26  Jim Meyering  <meyering@lucent.com>
340
341         * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
342
343 2002-01-22  Jim Meyering  <meyering@lucent.com>
344
345         * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
346         Otherwise, some versions of automake would omit the rule that makes
347         Makefile from Makefile.in.
348
349 2001-01-21  Paul Eggert  <eggert@twinsun.com>
350
351         * xmemcoll.h, xmemcoll.c: New files.
352         * Makefile.am (libfetish_a_SOURCES): Add them.
353         * memcoll.c: Include errno.h, and declare errno if not defined.
354         (memcoll): Set errno to zero if there is no error.
355
356         * quotearg.c (quotearg_buffer_restyled):
357         Fix bug with quoting buffers containing NUL when backslashing escapes.
358         This bug was exposed by the other changes in this patch.
359         (quotearg_n_options): New arg ARGSIZE.
360         All callers changed.
361         (quoting_options_from_style): New function.
362         (quotearg_n_style): Use it.
363         (quotearg_n_style_mem): New function.
364
365         * quotearg.h (quotearg_n_style_mem): New function.
366
367 2002-01-16  Jim Meyering  <meyering@lucent.com>
368
369         * getdate.y: Add three semicolons, each just before a closing brace.
370         Bison (as of version 1.31) no longer papers over that mistake.
371
372 2002-02-14  Paul Eggert  <eggert@twinsun.com>
373
374         * backupfile.c (ISDIGIT): Comment fix.
375         * getdate.y (ISDIGIT): Likewise.
376         * posixtm.c (ISDIGIT, year): Likewise.
377         * strverscmp.c (ISDIGIT): Likewise.
378         * userspec.c (ISDIGIT): Likewise.
379
380 2002-01-05  Jim Meyering  <meyering@lucent.com>
381
382         * version-etc.c (version_etc_copyright): Update copyright year.
383
384 2001-01-19  Paul Eggert  <eggert@twinsun.com>
385
386         * closeout.c (close_stdout_status): If ferror (stdout), do
387         not silently exit merely because the output buffer happens to
388         have nothing pending.
389
390 2001-12-18  Paul Eggert  <eggert@twinsun.com>
391
392         See the big note in ../ChangeLog.
393         * human.c (suffixes): Prefer K to k for 1024.
394         (generate_suffix_backwards): New function.
395         (human_readable_inexact): Use it.
396         * xstrtol.c (__xstrtol): If there is no number but there
397         is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
398         Accept 'K' as well as 'k'.
399
400 2001-12-15  Jim Meyering  <meyering@lucent.com>
401
402         * regex.h (__restrict_arr): Update from libc.
403
404         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
405         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
406         (STREQ): Define.
407
408 2001-12-10  Jim Meyering  <meyering@lucent.com>
409
410         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
411         Instead, include "xalloc.h".
412         (initbuffer): Don't cast xmalloc return value to char*.
413         (readline): Reword comment.
414         Don't cast xrealloc return value to char*
415         Return NULL, not 0.
416
417 2001-12-09  Jim Meyering  <meyering@lucent.com>
418
419         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
420         `signed and unsigned type in conditional expression'.
421         * posixtm.c (posix_time_parse): Likewise.
422
423         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
424
425         * readtokens.c (readtoken): Declare an index to be of type unsigned
426         to avoid a pedantic warning.
427
428         * getstr.c: Don't include assert.h.
429         (getstr): Remove warning-evoking assertions.
430         Return -1 if offset parameter is out of bounds.
431         Change the type of a local from int to size_t.
432
433         * strftime.c (my_strftime_localtime_r): Include this function
434         definition in the `#if ! HAVE_TM_GMTOFF' block.
435
436         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
437         Include xalloc.h instead.
438
439 2001-12-02  Jim Meyering  <meyering@lucent.com>
440
441         * tempname.c: Don't declare getenv, thus reverting the change of
442         2001-11-18.  It's no longer necessary, now that stdlib.h is always
443         included.
444
445         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
446         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
447
448 2001-11-30  Akim Demaille  <akim@epita.fr>
449
450         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
451         before being defined.
452
453 2001-11-27  Paul Eggert  <eggert@twinsun.com>
454
455         * quotearg.h (quotearg_n, quotearg_n_style):
456         First arg is int, not unsigned.
457         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
458         (SIZE_MAX, UINT_MAX): New macros.
459         (quotearg_n_options): Abort if N is negative.
460         Avoid overflow check on hosts where size_t is 64 bits and int
461         is 32 bits, as overflow is impossible there.
462         Fix off-by-one typo that caused unnecessary reallocation.
463
464 2001-11-27  Jim Meyering  <meyering@lucent.com>
465
466         * tempname.c: Merge with version from libc.
467         * regex.c: Likewise.
468
469         * tempname.c: Include stdlib.h unconditionally.  On some old systems
470         for which STDC_HEADERS is 0, it was not included, resulting in a
471         warning about an integer-to-pointer conversion problem with getenv.
472         Reported by Volker Borchert.
473
474 2001-11-26  Jim Meyering  <meyering@lucent.com>
475
476         * gtod.h: Remove file.
477         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
478         * gettimeofday.c: Don't include gtod.h.
479         (GTOD_init): Remove function.
480         (rpl_gettimeofday): Do its job here instead, rather than aborting.
481         Suggestion from Volker Borchert.
482
483 2001-11-23  Jim Meyering  <meyering@lucent.com>
484
485         * hash.h (struct hash_table): Don't define here.  Merely declare it.
486         * hash.c (struct hash_table): Define it here instead.
487
488 2001-11-22  Jim Meyering  <meyering@lucent.com>
489
490         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
491
492 2001-11-18  Paul Eggert  <eggert@twinsun.com>
493
494         * tempname.c (TMP_MAX): Remove; no longer needed.
495         (TEMPORARIES): New macro.
496         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
497         removes an artificial limitation (e.g. HP-UX 10.20, where
498         TMP_MAX is 17576).
499
500 2001-11-18  Jim Meyering  <meyering@lucent.com>
501
502         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
503         on SunOS4.
504
505         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
506         files will be created before anything else.
507
508 2001-11-17  Jim Meyering  <meyering@lucent.com>
509
510         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
511         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
512         rather than group writable.  Patch by Juan F. Codagnone.
513
514         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
515         Instead, include "xalloc.h".
516
517         * mountlist.c: Include unlocked-io.h after all system headers.
518         Remove explicit declarations of xmalloc, xrealloc,
519         and xstrdup.  Instead, include "xalloc.h".
520
521         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
522         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
523         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
524
525         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
526         Reported by Padraig Brady.
527
528         * mkstemp.c: #undef mkstemp.
529         Include config.h.
530         (rpl_mkstemp): Rename from mkstemp.
531         Protoize.
532
533 2001-11-16  Jim Meyering  <meyering@lucent.com>
534
535         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
536         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
537         determine the amount of total physical memory, use pstat_getstatic.
538         HPUX-11 doesn't define _SC_PHYS_PAGES.
539         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
540         If sysconf couldn't be used to determine the amount of available
541         physical memory, use both pstat_getstatic and pstat_getdynamic.
542         Based on a patch from Bob Proulx.
543
544 2001-11-05  Jim Meyering  <meyering@lucent.com>
545
546         * xstat.in (slash_aware_lstat): Correct a misleading comment.
547
548 2001-11-03  Jim Meyering  <meyering@lucent.com>
549
550         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
551         in argmatch_to_argument call.
552
553         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
554         argument.
555
556         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
557         e.g., a fault due to an attempt to free a NULL pointer.
558
559 2001-11-01  Jim Meyering  <meyering@lucent.com>
560
561         * dirfd.c, dirfd.h: New files.
562         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
563
564         * hash.c (hash_print) [TESTING]: Clean up.
565
566 2001-10-22  Paul Eggert  <eggert@twinsun.com>
567
568         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
569         to avoid a warning if -Wall.
570
571 2001-10-21  Paul Eggert  <eggert@twinsun.com>
572
573         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
574
575 2001-10-21  Jim Meyering  <meyering@lucent.com>
576
577         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
578         this code would end up calling gettext even in packages built
579         with --disable-nls.
580         * getopt.c (_): Likewise.
581         * regex.c (_): Likewise.
582
583 2001-10-20  Paul Eggert  <eggert@twinsun.com>
584
585         * error.c (strerror_r): Do not declare unless !_LIBC.
586         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
587         Use strerror_r that is only a macro, even if it is not a function.
588         (strerror): Check for HAVE_DECL_STRERROR before declaring.
589         (private_strerror): Use prototypes, not old-style function definition.
590         (print_errno_message): New function.
591         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
592         char*-flavored one.
593         (error_tail, error, error_at_line): Use it.
594
595 2001-10-11  Jim Meyering  <meyering@lucent.com>
596
597         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
598         and quote_n (1, ... to avoid clobbering a buffer.
599
600 2001-10-05  Jim Meyering  <meyering@lucent.com>
601
602         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
603         * hash-pjw.c: New file (factored out of fileutils' remove.c).
604         * hash-pjw.h: New file.
605
606 2001-09-30  Jim Meyering  <meyering@lucent.com>
607
608         * mountlist.c [MOUNTED_GETFSSTAT]:
609         Include <sys/ucred.h>, for Apple Darwin.
610         Include sys/mount.h and sys/fs_types.h only if available.
611         (FS_TYPE): Define.
612         (read_filesystem_list): Use FS_TYPE.
613
614 2001-09-29  Paul Eggert  <eggert@twinsun.com>
615
616         * exclude.c (excluded_filename): 0 -> false, since it's
617         a boolean context.
618
619 2001-09-28  Paul Eggert  <eggert@twinsun.com>
620
621         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
622         #defines strtoimax.  Also treat the other strto* functions
623         like strtoimax.
624
625         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
626         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
627         (strtoimax, strtoumax): Do not declare if already defined as a macro.
628
629 2001-09-26  Jim Meyering  <meyering@lucent.com>
630
631         Most macros in unlocked-io.h had the wrong number of arguments.
632         * gen-uio: New script.
633         (USE_UNLOCKED_IO): Define to 1 if not already defined.
634         * unlocked-io.hin: Remove file.
635         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
636         rather than trying to embed it here.
637         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
638         Reported by Padraig Brady.
639
640 2001-09-25  Volker Borchert  <bt@teknon.de>
641
642         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
643
644 2001-09-23  Jim Meyering  <meyering@lucent.com>
645
646         * mountlist.c: Remove useless parentheses in #if directives.
647         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
648         the deprecated MOUNTED symbol is no longer defined in mntent.h.
649
650 2001-09-22  Jim Meyering  <meyering@lucent.com>
651
652         * localcharset.c: Update from latest gettext.
653         * config.charset: Likewise.
654
655 2001-09-20  Jim Meyering  <meyering@lucent.com>
656
657         * xstrtol.c (strtoimax): Guard declaration with
658         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
659         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
660         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
661         (strtoumax): Likewise, for completeness (it wasn't necessary).
662
663 2001-09-06  Paul Eggert  <eggert@twinsun.com>
664
665         * strtoimax.c (HAVE_LONG_LONG):
666         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
667         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
668         to work around bug in IBM C compiler.
669
670 2001-09-16  Jim Meyering  <meyering@lucent.com>
671
672         * mkdir.c: New file.
673
674 2001-09-04  Paul Eggert  <eggert@twinsun.com>
675
676         * xgetcwd.c: Revert some of the previous change; intead,
677         fix the HAVE_GETCWD_NULL code to behave more like the
678         !HAVE_GETCWD_NULL code used to.
679
680         Include "xalloc.h".
681         (xgetcwd): Do not return NULL when memory is exhausted; instead,
682         invoke xalloc_die.
683
684 2001-09-04  Paul Eggert  <eggert@twinsun.com>
685
686         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
687         Use ssize_t, not int, to store result of readlink.
688         Check for ssize_t overflow as well as size_t overflow,
689         as POSIX says the result of readlink is implementation-defined
690         when ssize_t overflows.
691         Remove unnecessary cast to char*.
692         Use free+malloc instead of realloc, as the storage doesn't need
693         to be preserved and it's clearer and can be more efficient that way.
694         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
695         * xreadlink.h (xreadlink): Update prototype.
696
697 2001-09-03  Paul Eggert  <eggert@twinsun.com>
698
699         * exclude.c (fnmatch_no_wildcards): Fix confusion between
700         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
701         spotted by Jim Meyering.
702
703 2001-09-03  Jim Meyering  <meyering@lucent.com>
704
705         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
706
707 2001-09-03  Paul Eggert  <eggert@twinsun.com>
708
709         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
710         like the HAVE_GETCWD_NULL code.
711         Include pathmax.h if not HAVE_GETCWD.
712         Do not include xalloc.h.
713         (INITIAL_BUFFER_SIZE): New symbol.
714         Do not use xmalloc / xrealloc, since the caller is responsible for
715         handling errors.  Preserve errno around `free' during failure.
716         Do not overrun buffer when using getwd.
717
718 2001-09-03  Paul Eggert  <eggert@twinsun.com>
719
720         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
721         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
722
723 2001-09-02  Jim Meyering  <meyering@lucent.com>
724
725         * error.c: Update from GNU libc.
726
727 2001-09-01  Jim Meyering  <meyering@lucent.com>
728
729         * xreadlink.c: New file.
730         * xreadlink.h: New file.
731         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
732
733         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
734         doesn't conflict with sparc-sun-solaris2.7's definition in
735         /usr/include/sys/int_types.h.
736
737         * exclude.c: Use `""', not `<>' to #include non-system header files.
738         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
739         and strncasecmp as r-values.  Unixware didn't have declarations.
740
741 2001-08-31  Jim Meyering  <meyering@lucent.com>
742
743         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
744         Use an initial, malloc'd, buffer of length 128 rather than
745         a statically allocated one of length 1024.
746
747 2001-08-30  Paul Eggert  <eggert@twinsun.com>
748
749         * xgetcwd.c: Don't include pathmax.h.
750         Include stdlib.h and unistd.h if available.
751         Include xalloc.h.
752         (xmalloc, xstrdup, free): Remove decls.
753         (xgetcwd): Don't assume sizes fit in unsigned.
754         Check for overflow when computing sizes.
755         Simplify reallocation code.
756
757 2001-08-28  Paul Eggert  <eggert@twinsun.com>
758
759         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
760
761         * strtoimax.c: Renamed from strtoxmax.c, removing the
762         old strtoimax.c.
763
764         Also, make the following further changes to make this file's
765         configuration more similar to that of strtol.c:
766         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
767         (strtoumax, uintmax_t, strtoull, strtol): Remove.
768         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
769         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
770         changed to signed values.
771
772         And make the following changes as well:
773         Fix copyright notice, as 1999 was missing.
774         (verify): New macro.
775         (strtoimax): Check sizes at compile-time, not run-time.
776         Prefer strtol to strtoll if both work.
777         (main): Remove; it was not that useful and was a pain to maintain.
778
779         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
780
781 2001-08-30  Paul Eggert  <eggert@twinsun.com>
782
783         * savedir.c (savedir): Remove size parameter, as POSIX says that
784         a directory's st_size can have an arbitrary value, so the old
785         usage could waste an arbitrary amount of memory.  All uses
786         changed.
787         * savedir.h: Update prototype.
788
789 2001-08-30  Paul Eggert  <eggert@twinsun.com>
790
791         * xstrtol.c (strtoimax): New decl.
792
793 2001-08-28  Paul Eggert  <eggert@twinsun.com>
794
795         * xstrtol.h: Add copyright notice.
796         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
797         LONGINT_INVALID_SUFFIX_CHAR.
798
799 2001-08-30  Paul Eggert  <eggert@twinsun.com>
800
801         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
802         tm to be declared.
803
804 2001-08-30  Paul Eggert  <eggert@twinsun.com>
805
806         * hash.c: Remove '2001' from copyright notice.
807
808 2001-08-30  Paul Eggert  <eggert@twinsun.com>
809
810         * full-write.h: New file.
811         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
812         * full-write.c: Correct credits, as cccp.c no longer
813         exists and anyway it was so heavily changed from the old cccp
814         code as to be unrecognizable.  Include full-write.h.
815         (full_write) Return size_t, with short writes meaning failure.
816         All callers changed.  This fixes a bug with large buffers
817         on 64-bit hosts.
818         * utime.c: Include full-write.h.
819
820 2001-08-30  Paul Eggert  <eggert@twinsun.com>
821
822         Merge 'exclude' changes from tar 1.13.22.
823         This fixes one or two unlikely storage allocation overflow bugs,
824         but doesn't change user-visible behavior otherwise.
825
826 2001-08-30  Paul Eggert  <eggert@twinsun.com>
827
828         * exclude.c (bool): Declare, perhaps by including stdbool.h.
829         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
830         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
831         Include if available.
832         (<xalloc.h>): Include
833         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
834         (verify): New macro.  Use it to verify that EXCLUDE macros do not
835         collide with FNM macros.
836         (struct patopts): New struct.
837         (struct exclude): Use it, as exclude patterns now come with options.
838         (new_exclude): Support above changes.
839         (new_exclude, add_exclude_file):
840         Initial size must now be a power of two to simplify overflow checking.
841         (free_exclude, fnmatch_no_wildcards): New function.
842         (excluded_filename): No longer requires options arg, as the options
843         are determined by add_exclude.  Now returns bool, not int.
844         (excluded_filename, add_exclude):
845         Add support for the fancy new exclusion options.
846         (add_exclude, add_exclude_file): Now takes int options arg.
847         Check for arithmetic overflow when computing sizes.
848         (add_exclude_file): xrealloc might modify errno, so don't
849         realloc until after errno might be used.
850
851         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
852         New macros.
853         (free_exclude): New decl.
854         (add_exclude, add_exclude_file): Now takes int options arg.
855         (excluded_filename): No longer requires options arg, as the options
856         are determined by add_exclude.  Now returns bool, not int.
857
858 2001-08-30  Paul Eggert  <eggert@twinsun.com>
859
860         * alloca.c (alloca): Arg is of type size_t, not unsigned.
861
862 2001-08-27  Jim Meyering  <meyering@lucent.com>
863
864         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
865
866         * version-etc.c (N_): Remove definition.
867         Revert most of last change.
868         Instead, simply don't mark the `Copyright...' string for translation.
869         Based on advice from Paul Eggert.
870
871         * strtoxmax.c: Tweak comment.
872
873 2001-08-26  Jim Meyering  <meyering@lucent.com>
874
875         * version-etc.c (version_etc_copyright_fmt): Replace literal year
876         of copyright with `%s' so translators don't get an untranslated
877         message in 2002.
878         (COPYRIGHT_YEAR): Define.
879         (version_etc): Use fprintf rather than fputs.
880         Suggestion from Ulrich Drepper.
881
882         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
883
884         * strtoll.c: New file, from GNU libc.
885         * xstrtoimax.c: New file.
886
887         * xstrtol.h: Add xstrtoimax.
888         * strtoumax.c: New file.  Simply include "strtoumax.c".
889         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
890
891         * strtoumax.c: Factor to work both for unsigned and signed types, ...
892         * strtoxmax.c: ... then renamed to this.
893
894 2001-08-13  Paul Eggert  <eggert@twinsun.com>
895
896         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
897         Port to Solaris 8, where 'sed' requires a space after the 'r'
898         command, and where sh dislikes "$/".  Clean up the spacing a bit.
899         Redirect output to $tmp just once.
900
901 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
902
903         * addext.c (<errno.h>): Include.
904         (errno): Declare if not defined.
905         (addext): Work correctly when pathconf returns -1 and leaves
906         errno alone because there is no limit.  Also, work even if
907         pathconf returns a value greater than SIZE_MAX.
908
909 2001-08-12  Jim Meyering  <meyering@lucent.com>
910
911         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
912         Simply `return getcwd (NULL, 0);'.
913         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
914         Use 1300 as initial value for length, not PATH_MAX.
915
916         * pathmax.h: Clean up cpp syntax.
917
918 2001-08-12  Jim Meyering  <meyering@lucent.com>
919
920         * gettimeofday.c: New file.
921         * gtod.h: New file.
922         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
923
924 2001-08-04  Jim Meyering  <meyering@lucent.com>
925
926         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
927         to get in sync with glibc.
928
929 2001-08-03  Paul Eggert  <eggert@twinsun.com>
930
931         The following changes are from gettext 0.10.39 as maintained by
932         Bruno Haible.
933
934         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
935         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
936         with inverted sense.  All uses changed.
937
938         * mbswidth.c: Don't include <limits.h>.
939         Include <stdlib.h> and <string.h> unconditionally.
940         (iswcntrl, mbsinit, ISCNTRL): New macros.
941         (mbsnwidth): Use K&R style function declarations.
942         Don't bother checking for MB_LEN_MAX == 1, since the compiler
943         can optimize it when MB_CUR_MAX == 1.
944         The width of control characters is zero, not 1.
945
946 2001-07-15  Jim Meyering  <meyering@lucent.com>
947
948         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
949         (BUILT_SOURCES): Add unlocked-io.h.
950         (io_functions): Define.
951         (unlocked-io.h): New rule.
952         (DISTCLEANFILES): Add unlocked-io.h.
953         (all-local): Depend on unlocked-io.h, to ensure it is created.
954
955         * unlocked-io.hin: New file
956
957         * regex.c: Update from glibc.
958
959 2001-07-05  Jim Meyering  <meyering@lucent.com>
960
961         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
962         recommendation.
963         (libfetish_a_SOURCES): Put all .h files here instead.
964         Remove a thus-exposed (better checks in automake) duplicate and
965         two unnecessary .h files.
966
967 2001-06-11  Jim Meyering  <meyering@lucent.com>
968
969         * regex.c: Update from GNU libc.
970
971 2001-05-27  Jim Meyering  <meyering@lucent.com>
972
973         * readutmp.h (UT_TYPE): Define.
974
975 2001-05-24  Jim Meyering  <meyering@lucent.com>
976
977         * argmatch.c: Include "quote.h".
978         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
979         quote function.  Reported by Göran Uddeborg.
980
981 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
982
983         * dirname.c (dir_name): Compute append_dot using path, not newpath
984         which is not yet declared.
985
986 2001-05-11  Paul Eggert  <eggert@twinsun.com>
987
988         * Makefile.am (libfetish_a_SOURCES):
989         Add strftime.c, since we now compile it on all hosts.
990
991         * strftime.c (my_strftime):
992         Define to nstrftime if emacs, but only if my_strftime is not defined.
993         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
994         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
995         Add one more extra argument: a nanoseconds value.
996         All uses changed.
997         (ns): New macro.
998         (my_strftime function): Add %N format.
999         (emacs_strftimeu): Renamed from emacs_strftime,
1000         with extra ut argument.
1001
1002 2001-05-11  Paul Eggert  <eggert@twinsun.com>
1003
1004         dirname code cleanup.  base_name now behaves more compatibly
1005         with POSIX basename when given file names that have trailing
1006         slashes, and similarly for dir_name.  Add new primitives
1007         base_len and dir_len.  Put the directory-name-related decls
1008         into dirname.h.
1009
1010         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
1011         * backupfile.c (base_name): Likewise.
1012         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
1013         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
1014         * makepath.c (strip_trailing_slashes): Likewise.
1015         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
1016         Likewise.
1017         * rename.c (strip_trailing_slashes): Likewise.
1018         * same.c (base_name): Likewise.
1019         * stripslash.c (ISSLASH): Likewise.
1020
1021         * addext.c: Include <dirname.h> after size_t is defined.
1022         * backupfile.c: Likewise.
1023
1024         * addext.c (addext): Use base_len to trim redundant
1025         trailing slashes instead of doing it ourselves.
1026         But do not trim the last slash if it is not redundant.
1027
1028         * backupfile.c (find_backup_file_name,
1029         max_backup_version): Use base_len instead of rolling it ourselves.
1030         Handle the case of "" and (on DOS) "C:" correctly.
1031
1032         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
1033         Include <string.h>, <dirname.h>.
1034         (base_name): Allow file names ending in slashes, other than names
1035         that are all slashes.  In this case, return the basename followed
1036         by the slashes.  This is more general, and can be used in places
1037         where the original base_name purposely had an assertion failure.
1038         (base_len): New function.
1039
1040         * dirname.c: Include <string.h> instead of <stdlib.h>.
1041         Do not include <assert.h>; no longer needed.
1042         Include xalloc.h.
1043         (memrchr): Remove decl.
1044         (dir_name_r): Remove.
1045         (dir_len): Renamed from dirlen.  All callers changed.
1046         Rewrite in terms of base_name, for simplicity and consistency.
1047         (dir_name): Never return NULL.  All callers changed.
1048         Do not include <stdlib.h> in test program; no longer needed.
1049         return 0; is fine for test program.
1050
1051         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
1052         New macros.
1053         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
1054
1055         * path-concat.c (path_concat): Use base_len to compute
1056         base length, not strlen; this means we cannot rely on memcpy
1057         to null-terminate.
1058
1059         * same.c (STREQ): Remove.
1060         (same_name): Handle the case where the basename ends in trailing '/'.
1061
1062         * stripslash.c (strip_trailing_slashes): Return nonzero if
1063         a slash was stripped.  Do not strip the last slash after a
1064         file system prefix.
1065
1066 2001-04-08  Jim Meyering  <meyering@lucent.com>
1067
1068         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
1069         recomputed; that's necessary when the offset spans a DST transition.
1070         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
1071
1072 2001-04-02  Jim Meyering  <meyering@lucent.com>
1073
1074         * regex.h, regex.c: Update from GNU libc.
1075
1076 2001-03-19  Paul Eggert  <eggert@twinsun.com>
1077
1078         * version-etc.c (version_etc_copyright): Update to 2001.
1079
1080 2001-03-16  Paul Eggert  <eggert@twinsun.com>
1081
1082         * tempname.c (uint64_t): Define to uintmax_t if
1083         not defined, and if UINT64_MAX is not defined.
1084         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
1085         Reported by John David Anglin.
1086
1087 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
1088
1089         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
1090         alias if codeset is empty.
1091         * config.charset (BeOS): Use wildcard syntax.
1092
1093 2001-03-13  Jim Meyering  <meyering@lucent.com>
1094
1095         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
1096         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
1097         From Bruno Haible.
1098
1099 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
1100
1101         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
1102         Don't return NULL.
1103         * unicodeio.c (print_unicode_char): Simplify accordingly.
1104
1105 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
1106
1107         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
1108         support for DOS/DJGPP.
1109
1110 2001-02-28  Paul Eggert  <eggert@twinsun.com>
1111
1112         * Makefile.am (libfetish_a_SOURCES):
1113         Add dup-safer.c, fopen-safer.c.
1114         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
1115
1116         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
1117
1118 2001-02-25  Paul Eggert  <eggert@twinsun.com>
1119
1120         The mkstemp replacement is taken from glibc 2.2.2, with some
1121         portability fixes for use outside glibc, as follows:
1122
1123         * tempname.c (struct_stat64): New macro.
1124         (direxists, __gen_tempname): Use it.
1125         This avoids a portability problem with Solaris 8.
1126
1127         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
1128         (<stddef.h>, <stdint.h>, <string.h>):
1129         Include only if STDC_HEADERS || _LIBC.
1130         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
1131         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
1132         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
1133         (__set_errno): Define this macro if <errno.h> doesn't.
1134         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
1135         Define these macros if <stdio.h> doesn't.
1136         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
1137         Define these macros if <sys/stat.h>
1138         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
1139         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
1140         __xstat64): Define if not _LIBC.
1141         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
1142         (__gen_tempname): Invoke gettimeofday only if
1143         HAVE_GETTIMEOFDAY || _LIBC;
1144         otherwise, fall back on plain "time".
1145         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
1146
1147         * mkstemp.c (__GT_FILE): Define to zero if not defined.
1148
1149         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
1150
1151 2001-02-17  Jim Meyering  <meyering@lucent.com>
1152
1153         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
1154         around included file name.
1155
1156         * strnlen.c (__strnlen): Merge in a change from GNU libc.
1157
1158         * strftime.c: Update from GNU libc (the only changes were to comments).
1159
1160 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
1161
1162         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
1163
1164 2001-02-17  Paul Eggert  <eggert@twinsun.com>
1165
1166         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
1167         Remove workaround macros for hosts that have mbrtowc but not
1168         mbstate_t, as we now insist on proper declarations for both
1169         before using mbrtowc.
1170
1171 2001-02-17  Jim Meyering  <meyering@lucent.com>
1172
1173         * regex.c: Update from libc.
1174
1175 2001-02-16  Paul Eggert  <eggert@twinsun.com>
1176
1177         * alloca.c (malloc): Undef before defining, since stdlib.h
1178         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
1179         Reported by Mark Hounschell via Paul Eggert.
1180
1181 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
1182
1183         * config.charset: Update for FreeBSD 4.2.
1184
1185 2001-01-26  Jim Meyering  <meyering@lucent.com>
1186
1187         * quotearg.c: Include stddef.h.
1188         * quote.c: Include stddef.h.
1189         Reported by Axel Kittenberger.
1190
1191         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
1192         line in double quotes so that it evokes a better diagnostic.
1193         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
1194         Reported by Axel Kittenberger.
1195
1196 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
1197
1198         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
1199         to avoid a warning.  Add back 'const' to inptr.
1200
1201 2001-01-16  Jim Meyering  <meyering@lucent.com>
1202
1203         * basename.c: Include <stdio.h>, needed by assert on SunOS4.
1204         From Bruno Haible.
1205
1206 2001-01-14  Jim Meyering  <meyering@lucent.com>
1207
1208         * rename.c: New file.  From Volker Borchert.
1209         Include stdlib.h, string.h or strings.h, and xalloc.h.
1210         Use strip_trailing_slashes rather than open-coding it.
1211
1212 2001-01-03  Paul Eggert  <eggert@twinsun.com>
1213
1214         * strftime.c: Sync with glibc time/strftime.c 1.81.
1215
1216 2001-01-03  Jim Meyering  <meyering@lucent.com>
1217
1218         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
1219         local `inptr' to avoid warning with some system declarations of iconv.
1220
1221 2000-12-29  Paul Eggert  <eggert@twinsun.com>
1222
1223         * modechange.c: Do not assume that mode_t uses the
1224         traditional octal encoding.  E.g. "chmod 1 FOO" should set
1225         the other-execute bit of FOO even if S_IXOTH != 1.
1226
1227         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
1228         WOTH, XOTH, ALLM): New macros.
1229         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
1230          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
1231         Use them.
1232         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
1233         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
1234         (mode_compile):
1235         No need to use uintmax_t; unsigned long is long enough.
1236         Don't bother to get suffix since we don't use it.
1237
1238 2000-12-24  Jim Meyering  <meyering@lucent.com>
1239
1240         * hash.c (is_prime): Return explicit boolean values.
1241         (hash_get_first): Return NULL to appease Irix5.6's 89.
1242         Reported by Nelson Beebe.
1243
1244 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
1245
1246         * localcharset.c (locale_charset): Add support for Win32.
1247
1248 2000-12-18  Paul Eggert  <eggert@twinsun.com>
1249
1250         * physmem.h, physmem.c: New files.
1251
1252         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
1253         (noinst_HEADERS): Add physmem.h.
1254
1255         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
1256         't' for compatibility with Solaris 8 sort.
1257
1258 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
1259
1260         * config.charset: Add support for BeOS.
1261
1262 2000-12-16  Jim Meyering  <meyering@lucent.com>
1263
1264         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
1265         SHELLS_FILE to a file name that's useful on djgpp systems.
1266         Include stdlib.h.
1267         (ADDITIONAL_DEFAULT_SHELLS): Define.
1268         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
1269         Based mostly on a patch from Prashant TR.
1270
1271 2000-12-16  Jim Meyering  <meyering@lucent.com>
1272
1273         This bug had a serious impact on chown: `chown N:M FILE' (for integer
1274         N and M) would have treated it like `chown N:N FILE'.
1275
1276         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
1277
1278 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
1279
1280         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
1281         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
1282         to the list of canonical encodings. Rename EUC-CN to GB2312.
1283
1284 2000-12-08  Andreas Schwab  <schwab@suse.de>
1285
1286         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
1287         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
1288
1289 2000-12-07  Jim Meyering  <meyering@lucent.com>
1290
1291         * stripslash.c (ISSLASH): Define.
1292         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
1293         From Prashant TR.
1294
1295         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
1296         (dir_name_r): Declare this function as static.
1297         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
1298         manifest itself on a name containing a mix of slashes and
1299         backslashes.
1300         Make this function work with names starting with a DOS-style
1301         drive letter and colon prefix.
1302         (dir_name): Append `.' if necessary.
1303         Based mostly on patches from Prashant TR and Eli Zaretskii.
1304
1305         * dirname.h (dir_name_r): Remove prototype.
1306
1307 2000-12-05  Jim Meyering  <meyering@lucent.com>
1308
1309         * dirname.c (dir_name_r): Add `const' in a few local declarations.
1310
1311 2000-12-04  Jim Meyering  <meyering@lucent.com>
1312
1313         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
1314         Also include memory.h, stdlib.h, unistd.h if appropriate.
1315         Reported by Andreas Jaeger (conflicting declaration of malloc).
1316
1317 2000-12-02  Jim Meyering  <meyering@lucent.com>
1318
1319         * closeout.h: Make idempotent, to avoid some obscure warnings.
1320
1321 2000-12-01  Paul Eggert  <eggert@twinsun.com>
1322
1323         * memrchr.c: Include <config.h> before any system include file.
1324
1325 2000-11-29  Paul Eggert  <eggert@twinsun.com>
1326
1327         * dirname.c (dir_name_r): Fix typo: int -> size_t.
1328
1329 2000-11-26  Jim Meyering  <meyering@lucent.com>
1330
1331         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
1332
1333 2000-11-22  Paul Eggert  <eggert@twinsun.com>
1334
1335         * strftime.c (my_strftime): Do not invoke mbrlen with a
1336         size of (size_t) -1; it's not portable.
1337
1338 2000-11-17  Akim Demaille  <akim@epita.fr>
1339
1340         * obstack.h: Formatting changes.
1341         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
1342         prevent type checking.
1343         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
1344         cast the value to (void *): assigning a `foo *' to a `void *'
1345         variable is valid.
1346         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
1347
1348 2000-11-17  Jim Meyering  <meyering@lucent.com>
1349
1350         * strstr.c: Update from GNU libc.
1351
1352 2000-11-16  Jim Meyering  <meyering@lucent.com>
1353
1354         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
1355
1356 2000-11-11  Jim Meyering  <meyering@lucent.com>
1357
1358         * error.c: Add a couple #includes, merging from GNU libc version.
1359
1360 2000-11-10  Jim Meyering  <meyering@lucent.com>
1361
1362         * obstack.h: Update from GNU libc.
1363         * obstack.c: Likewise.
1364
1365 2000-11-06  Paul Eggert  <eggert@twinsun.com>
1366
1367         * getusershell.c (setusershell): Use rewind rather than
1368         fseek/fseeko, to avoid configuration hassles with fseeko.
1369         Don't bother opening SHELLS_FILE if shellstream is NULL;
1370         it's not necessary.
1371
1372 2000-11-05  Jim Meyering  <meyering@lucent.com>
1373
1374         * makepath.h (make_dir): Declare.
1375         * makepath.c (make_dir): Remove `static' attribute.
1376         Tweak a comment.
1377
1378 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
1379
1380         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
1381         last one in a bucket, advance to the next bucket.
1382
1383 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
1384
1385         * fnmatch.c: Do not comment out all the code if we are using
1386         the GNU C library, because in some cases we are replacing buggy
1387         code in the GNU C library itself.
1388
1389 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1390
1391         * error.h, getline.h, modechange.h:
1392         Remove "2000" from Copyright line, as the file hasn't been
1393         changed this year other than in the copyright notice.
1394
1395         * xalloc.h: Add "2000" to Copyright line, as this file
1396         was changed this year.
1397
1398 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1399
1400         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
1401         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
1402         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
1403
1404 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
1405
1406         * regex.h (__restrict_arr): Move definition out of #ifndef block.
1407         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
1408         doesn't define __restrict_arr.
1409
1410 2000-10-29  Jim Meyering  <meyering@lucent.com>
1411
1412         * xstat.in: Fix grammar in comment.
1413
1414 2000-10-28  Jim Meyering  <meyering@lucent.com>
1415
1416         * memchr.c: Update from libc.
1417         Adjust for portability:
1418         [HAVE_STDLIB_H]: Include stdlib.h.
1419         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
1420         Undef __memchr, too.
1421         [!weak_alias]: Define __memchr to memchr.
1422
1423         * regex.c: Update from libc.
1424         * regex.h: Likewise.
1425         * getopt1.c: Likewise.
1426         * memcmp.c: Likewise.
1427
1428         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
1429         Avoid using fseek, when possible -- it's broken by design.
1430         Patch by Ulrich Drepper.
1431
1432 2000-10-26  Jim Meyering  <meyering@lucent.com>
1433
1434         * strftime.c: Update from libc.
1435
1436 2000-10-25  Jim Meyering  <meyering@lucent.com>
1437
1438         * obstack.c: Update from libc.
1439
1440 2000-10-23  Jim Meyering  <meyering@lucent.com>
1441
1442         * hard-locale.c (hard_locale): Revert last change -- it was simply
1443         wrong.  That set_locale call must not have any side effects.
1444         From Paul Eggert.
1445
1446 2000-10-22  Jim Meyering  <meyering@lucent.com>
1447
1448         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
1449         [CYCLIC]: Remove now-unused definition.
1450
1451         * save-cwd.c (O_DIRECTORY): Define, if needed.
1452         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
1453         Suggestion from Ulrich Drepper.
1454
1455 2000-10-21  Jim Meyering  <meyering@lucent.com>
1456
1457         * dirname.c (dir_name_r): New function, factored out of dir_name.
1458         (dir_name): Use dir_name_r.
1459         * dirname.h (dir_name_r): Declare it.
1460
1461 2000-10-21  Jim Meyering  <meyering@lucent.com>
1462
1463         * dirname.c (memrchr): Declare if necessary.
1464         (dir_name): Remove the restriction that there be no
1465         trailing slashes.  Now, this code skips past them, effectively
1466         ignoring them.
1467         [TEST_DIRNAME] (main): New unit tests.
1468
1469         * memrchr.c: New file from GNU libc.
1470         Undef __memrchr, too.
1471         [!weak_alias]: Define __memrchr to memrchr.
1472         Guard weak_alias use with `#ifdef weak_alias'.
1473
1474 2000-10-17  Jim Meyering  <meyering@lucent.com>
1475
1476         * quote.h (PARAMS): Define and use.
1477         Reported by Akim Demaille.
1478
1479         * getopt.c: Update from libc.
1480
1481 2000-10-16  Jim Meyering  <meyering@lucent.com>
1482
1483         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
1484         From Jan Fedak.
1485
1486 2000-09-25  Jim Meyering  <meyering@lucent.com>
1487
1488         * md5.h (rol): Define (from GnuPG).
1489
1490         * sha.c: Give credit (GnuPG) where due.
1491         (M): Use rol rather than open-coding it.
1492         Add a FIXME comment.
1493
1494 2000-09-21  Jim Meyering  <meyering@lucent.com>
1495
1496         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
1497         Reported by Michael Stone.
1498
1499 2000-09-20  Jim Meyering  <meyering@lucent.com>
1500
1501         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
1502         (noinst_HEADERS): Add sha.h.
1503         Based on code from Scott G. Miller and from GnuPG.
1504
1505 2000-09-15  Jim Meyering  <meyering@lucent.com>
1506
1507         * regex.c: Update from libc.
1508
1509 2000-09-10  Jim Meyering  <meyering@lucent.com>
1510
1511         * getopt.c (_getopt_internal): Update from glibc.
1512
1513 2000-09-09  Jim Meyering  <meyering@lucent.com>
1514
1515         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
1516         think it should be used as a general replacement for isascii.
1517         * fnmatch.c: Likewise.
1518         * mbswidth.c: Likewise
1519         * regex.c: Likewise.
1520
1521         Don't use atoi.
1522         * userspec.c: Include sys/param.h and limits.h.
1523         Include xstrtol.h.
1524         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
1525         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
1526         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
1527         UID, GID.  Check range.
1528
1529 2000-09-06  Jim Meyering  <meyering@lucent.com>
1530
1531         * getopt.c (_getopt_internal): Update from glibc.
1532
1533 2000-08-30  Jim Meyering  <meyering@lucent.com>
1534
1535         * strftime.c: Merge in changes from GNU libc.
1536
1537 2000-08-26  Jim Meyering  <meyering@lucent.com>
1538
1539         * closeout.c: Include "__fpending.h".
1540         (close_stdout_status): Return right away if there's nothing to flush.
1541
1542         * Makefile.am (noinst_HEADERS): Add __fpending.h.
1543         * __fpending.c: New file.
1544         * __fpending.h: New file.
1545
1546 2000-08-07  Paul Eggert  <eggert@twinsun.com>
1547
1548         Standardize on "memory exhausted" instead of "Memory exhausted"
1549         or "virtual memory exhausted".
1550         * obstack.c (print_and_abort): Use "memory exhausted", not
1551         "virtual memory exhausted".
1552         * same.c (same_name): Invoke xalloc_die instead of printing
1553         our own message.
1554         * userspec.c (parse_user_spec): Likewise.
1555         * bumpalloc.h: comment fix
1556         * same.c, userspec.c: Include xalloc.h.
1557
1558         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
1559         not char *const and pointing to a constant array.
1560         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
1561         (xrealloc): Comment fix.
1562
1563         * userspec.c (parse_user_spec):
1564         Don't translate a message until just before returning,
1565         to avoid unnecessary translation.
1566
1567 2000-08-07  Jim Meyering  <meyering@lucent.com>
1568
1569         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
1570         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
1571         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
1572         getgroups.c, gethostname.c, getopt.h, group-member.c,
1573         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
1574         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
1575         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
1576         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
1577         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
1578         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
1579         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
1580         yesno.c: Back out Copyright date changes for each file with no change
1581         this year.  This eases coordination with other programs using the same
1582         source code modules.  From Paul Eggert.
1583
1584 2000-08-03  Greg McGary  <greg@mcgary.org>
1585
1586         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
1587         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
1588         (EXTEND_BUFFER): Use them.
1589
1590 2000-08-01  Jim Meyering  <meyering@lucent.com>
1591
1592         * dirname.c (ISSLASH): Define.
1593         (BACKSLASH_IS_PATH_SEPARATOR): Define.
1594         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
1595         both `\' and `/' may be use as path separators.
1596         Based on a patch from Prashant TR.
1597
1598 2000-07-31  Paul Eggert  <eggert@twinsun.com>
1599
1600         * quotearg.c (quotearg_n_options): Don't make the initial
1601         slot vector a constant, since it might get modified.
1602
1603 2000-07-31  Jim Meyering  <meyering@lucent.com>
1604
1605         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
1606         * obstack.c (print_and_abort): Likewise.
1607
1608 2000-07-30  Paul Eggert  <eggert@twinsun.com>
1609
1610         * quotearg.c (quotearg_n_options): Preallocate a slot 0
1611         buffer, so that the caller can always quote one small
1612         component of a "memory exhausted" message in slot 0.
1613         From a suggestion by Jim Meyering.
1614
1615 2000-07-30  Jim Meyering  <meyering@lucent.com>
1616
1617         * makepath.c (make_path): Quote the other instance, too.
1618
1619         * quotearg.c (N_STATIC_SLOTVECS): Define.
1620         (STATIC_BUF_SIZE): Define.
1621         (quotearg_n_options): Use only statically allocated storage when
1622         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
1623         than STATIC_BUF_SIZE.
1624
1625 2000-07-29  Jim Meyering  <meyering@lucent.com>
1626
1627         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
1628         * dirname.c (dir_name): Likewise.
1629
1630         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
1631
1632         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
1633         (dir_name): Assert that there are no trailing slashes.
1634
1635 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
1636
1637         * mbswidth.h (mbswidth): Add a flags argument.
1638         (mbswidth): New declaration.
1639         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
1640         * mbswidth.c (mbswidth): Add a flags argument.
1641         (mbsnwidth): New function.
1642
1643 2000-07-24  Jim Meyering  <meyering@lucent.com>
1644
1645         * mbswidth.c: Remove useless #else.  From Bruno Haible.
1646
1647 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1648
1649         * mbswidth.c (_XOPEN_SOURCE):
1650         Don't define; this causes problems on Solaris 7.
1651         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
1652
1653 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1654
1655         * quotearg.c:
1656         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
1657         so that mbstate_t is always defined.
1658
1659         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
1660         be 1 in at least one GCC installation, and this configuration
1661         error is likely to be common.  Ignoring MB_LEN_MAX hurts
1662         performance on hosts that have mbrtowc but have only unibyte
1663         locales, but I assume these hosts are rare.
1664
1665 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1666
1667         * quotearg.c: Streamline by invoking multibyte code only if needed.
1668         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
1669         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
1670         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
1671         invoke multibyte primitives.
1672
1673 2000-07-23  Jim Meyering  <meyering@lucent.com>
1674
1675         * basename.c (base_name): Add an assertion.
1676
1677 2000-07-15  Bruno Haible  <clisp.cons.org>
1678
1679         * quotearg.c: When the system forces us to redefine mbstate_t,
1680         shadow its mbsinit function.
1681
1682 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
1683
1684         * mbswidth.h: New file.
1685         * mbswidth.c: New file.
1686         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
1687         (noinst_HEADERS): Add mbswidth.h.
1688
1689 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
1690
1691         * config.charset: Add support for FreeBSD. Improve support for HP-UX
1692         and IRIX 6.
1693
1694 2000-07-15  Jim Meyering  <meyering@lucent.com>
1695
1696         * makepath.c: Include quote.h.
1697         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
1698         corresponding argument in a `quote (...)' call.
1699         Give better diagnostics.
1700
1701         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
1702         (noinst_HEADERS): Add quote.h.
1703
1704         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
1705         from tar's src/misc.c.
1706         * quote.h: New file.  Prototypes for same.
1707
1708 2000-07-10  Paul Eggert  <eggert@twinsun.com>
1709
1710         From a suggestion by Bruno Haible.
1711         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
1712         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
1713         to decide whether to define the BeOS workaround macro;
1714         this adjusts to the change to AC_MBSTATE_T.
1715
1716 2000-07-13  Paul Eggert  <eggert@twinsun.com>
1717
1718         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
1719
1720         * quotearg.c (quoting_style_args, quoting_style_vals,
1721         quotearg_buffer_restyled): Add support for
1722         clocale_quoting_style.  Undo previous change to
1723         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
1724         and "{RIGHT QUOTATION MARK}" msgids.
1725
1726 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1727
1728         The old behavior of quoting `like this' doesn't look good with
1729         newer, ISO-style fonts.  See:
1730         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
1731
1732         Instead, quote "like this" by default.  Let the translator
1733         tailor the locale-specific quoting behavior by providing
1734         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
1735
1736         * quotearg.c (N_): New macro.
1737         (gettext_default): New function.
1738         (quotearg_buffer_restyled): Use
1739         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
1740         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
1741
1742 2000-07-09  Jim Meyering  <meyering@lucent.com>
1743
1744         * Most files: Update copyright dates to include 2000.
1745
1746 2000-07-08  Jim Meyering  <meyering@lucent.com>
1747
1748         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
1749         if not defined.
1750         (xgethostname): Remove now-unnecessary #ifdef.
1751         Move declaration of `err' into loop where it's used.
1752
1753 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1754
1755         * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
1756         by allocating a larger buffer. Test the gethostname return value for
1757         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
1758         returns an error and ENAMETOOLONG isn't defined.
1759
1760 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1761         and Bruno Haible  <haible@clisp.cons.org>
1762
1763         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
1764
1765 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1766
1767         * quotearg.c (struct quoting_options): Simplify quote_these_too
1768         dimension.
1769
1770 2000-07-03  Jim Meyering  <meyering@lucent.com>
1771
1772         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
1773         Reported by Bruno Haible.
1774
1775 2000-07-04  Jim Meyering  <meyering@lucent.com>
1776
1777         * quotearg.c: Make inclusion of <wchar.h> independent of whether
1778         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
1779         lacks mbrtowc.
1780
1781 2000-07-03  Paul Eggert  <eggert@twinsun.com>
1782         and Bruno Haible  <haible@clisp.cons.org>
1783
1784         * quotearg.c (mbrtowc):
1785         Assign to *pwc, and return 1 only if result is nonzero.
1786         (iswprint): Use ISPRINT when substituting our own mbrtowc.
1787
1788 2000-07-03  Jim Meyering  <meyering@lucent.com>
1789
1790         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
1791         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
1792         From Bob Proulx.
1793
1794 2000-07-02  Jim Meyering  <meyering@lucent.com>
1795
1796         * quotearg.c (mbstate_t): Don't define here.
1797
1798 2000-07-02  Jim Meyering  <meyering@lucent.com>
1799
1800         * nanosleep.c (SIGCONT): Define if not already defined.
1801
1802 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1803
1804         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
1805         per change in ../m4/ls-mntd-fs.m4.
1806         (read_filesystem_list): Ignore symbolic links.
1807
1808 2000-06-29  Jim Meyering  <meyering@lucent.com>
1809
1810         * same.c: Include <string.h> or <strings.h>, as appropriate,
1811         for declaration of strcmp.
1812
1813         * long-options.c: Include <stdlib.h>, for declaration of exit.
1814
1815         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
1816         Avoid warning by casting result to `char *' to remove `const'.
1817
1818 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1819
1820         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
1821
1822 2000-06-26  Paul Eggert  <eggert@twinsun.com>
1823
1824         savedir now sets errno on failure and invokes xmalloc to get memory.
1825         Fix a couple of other minor bugs while we're at it.
1826
1827         * savedir.c (<unistd.h>): Do not include; there's no need.
1828         (NAMLEN): Remove macro.
1829         (malloc, realloc): Remove decls.
1830         (stpcpy): Likewise.
1831         ("xalloc.h"): Include.
1832         (NAME_SIZE_DEFAULT): New macro.
1833         (savedir): Use xmalloc / xrealloc to allocate memory.
1834         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
1835         Skip "" directory entries.
1836         Use strlen to calculate directory entry length, since the old method
1837         is rarely used these days and isn't worth supporting.
1838         Don't use a pointer after freeing it.
1839         Check for integer overflow when calculating allocation size.
1840         Use memcpy to copy entries, instead of stpcpy.
1841         Set errno properly when returning NULL.
1842         Check for readdir error.
1843
1844 2000-06-26  Jim Meyering  <meyering@lucent.com>
1845
1846         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
1847
1848 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1849
1850         * getusershell.c (xmalloc, xrealloc): Remove functions.
1851         Include xalloc.h.
1852         Don't include <stdlib.h>.  Don't declare malloc, realloc.
1853
1854 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
1855
1856         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
1857
1858 2000-06-24  Jim Meyering  <meyering@lucent.com>
1859
1860         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
1861
1862 2000-06-21  Jim Meyering  <meyering@lucent.com>
1863
1864         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
1865
1866 2000-06-19  Paul Eggert  <eggert@twinsun.com>
1867
1868         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
1869         (mbrtowc, mbstate_t): Define substitutes if
1870         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
1871         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
1872         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
1873
1874 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1875
1876         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
1877         than 1024, return a memory chunk of least possible size, instead
1878         of size PATH_MAX + 2. In the loop, increment the size proportionally.
1879         Use free/xmalloc instead of xrealloc to avoid copying for very long
1880         paths.
1881
1882 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1883
1884         * canon-host.c (canon_host): Use malloc and memcpy to copy an
1885         address, not strdup.  Include <stdlib.h> and don't declare free().
1886
1887 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1888
1889         * path-concat.c (path_concat): Don't access dir[-1] if dir is
1890         the empty string.
1891
1892 2000-06-21  Jim Meyering  <meyering@lucent.com>
1893
1894         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
1895         (noinst_HEADERS): Add getstr.h.
1896
1897         * getline.c (getstr): Move into a separate file.
1898         * getstr.c (getstr): New file, extracted from getline.c, with
1899         the following changes: new parameter, delim2; both delim[12]
1900         parameters have type `int', not `char'.  The latter would lose
1901         with 8-bit delimiters.
1902         * getstr.h: New file.
1903
1904 2000-06-19  Jim Meyering  <meyering@lucent.com>
1905
1906         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
1907
1908 2000-06-18  Jim Meyering  <meyering@lucent.com>
1909
1910         * mkdir.c: Remove file, due mainly to copyright incompatibility.
1911         Besides, these days every porting target provides a mkdir function.
1912
1913         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
1914         (this snippet comes from src/system.h).
1915
1916 2000-06-15  Paul Eggert  <eggert@twinsun.com>
1917
1918         * human.c (adjust_value): New function.
1919         (human_readable_inexact): Apply rounding style even when
1920         printing approximate values.
1921
1922 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1923
1924         * human.c (human_readable_inexact): Allow an input block
1925         size that is not a multiple of the output block size, and vice versa.
1926         Reported by Piergiorgio Sartor.
1927
1928 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1929
1930         * getdate.y (get_date): Apply relative times after time
1931         zone indicator, not before.  Reported by Todd A. Jacobs.
1932
1933 2000-06-13  Jim Meyering  <meyering@lucent.com>
1934
1935         * Makefile.am (all-local): Depend on lstat.c and stat.c.
1936
1937         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
1938
1939 2000-06-12  Paul Eggert  <eggert@twinsun.com>
1940
1941         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
1942
1943 2000-06-04  Paul Eggert  <eggert@twinsun.com>
1944
1945         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
1946
1947 2000-06-04  Jim Meyering  <meyering@lucent.com>
1948
1949         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
1950         SunOS4.1.4 for which gid_t is an unsigned type.
1951
1952 2000-06-03  Jim Meyering  <meyering@lucent.com>
1953
1954         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
1955
1956 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
1957
1958         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
1959         newer, don't install charset.alias.
1960         * config.charset: Change the Linux/glibc rules so they become empty
1961         on glibc-2.1 or newer.
1962
1963 2000-06-02  Jim Meyering  <meyering@lucent.com>
1964
1965         * mountlist.c: Back out last change.  Instead, do this...
1966         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
1967         member using the same `ignore'-testing code.
1968         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
1969         fs_type strings.
1970         From Mark D. Roth.
1971
1972 2000-05-29  Jim Meyering  <meyering@lucent.com>
1973
1974         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
1975         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
1976
1977 2000-05-22  Jim Meyering  <meyering@lucent.com>
1978
1979         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
1980
1981 2000-05-18  Jim Meyering  <meyering@lucent.com>
1982
1983         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
1984         back, too, since it may have been modified by allocate_entry.
1985         (hash_delete): Rewrite to use neither the assignment operator
1986         nor the comma operator in an if-expression.
1987
1988 2000-05-15  Paul Eggert  <eggert@twinsun.com>
1989
1990         * closeout.c:
1991         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
1992         Remove; no longer needed.
1993         "quotearg.h": Add include.
1994         (file_name): Do not bother to explicitly initialize to NULL; it's less
1995         efficient on some hosts.
1996         (close_stdout_status): Remove test as to whether stdout was already
1997         closed; it breaks for the case "echo x | sort >&-".
1998         Quote file name colons.
1999         Do not assume that _("write error") lacks format strings.
2000
2001 2000-05-15  Jim Meyering  <meyering@lucent.com>
2002
2003         * version-etc.c (version_etc_copyright): Update the copyright string
2004         used in all --version output.
2005
2006 2000-05-14  Jim Meyering  <meyering@lucent.com>
2007
2008         * closeout.c (close_stdout_set_file_name): New function.
2009         (close_stdout_status): Use new file-scoped global.
2010         Return right away if fstat says the stdout file descriptor is invalid.
2011         * closeout.h (close_stdout_set_file_name): Declare.
2012
2013 2000-05-10  Jim Meyering  <meyering@lucent.com>
2014
2015         * closeout.c [default_exit_status]: New file-scoped variable.
2016         (close_stdout_set_status): New function.
2017         * closeout.h (close_stdout_set_status): Declare.
2018
2019 2000-05-08  Jim Meyering  <meyering@lucent.com>
2020
2021         * long-options.c: Don't include closeout.h.
2022         (parse_long_options): Don't call close_stdout for --version.
2023
2024 2000-05-06  Jim Meyering  <meyering@lucent.com>
2025
2026         * strnlen.c: Undefine __strnlen and strnlen.
2027         [!weak_alias]: Define __strnlen to strnlen.
2028
2029         * atexit.c: New file, from libiberty.
2030
2031 2000-05-06  Jim Meyering  <meyering@lucent.com>
2032
2033         * closeout.c (close_stdout_status): Also check for errors on the
2034         stderr stream.
2035
2036 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
2037
2038         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
2039         instead of xmalloc, xrealloc, path_concat.
2040         (locale_charset): Treat empty environment variables as absent.
2041         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
2042
2043 2000-05-04  Jim Meyering  <meyering@lucent.com>
2044
2045         * getopt.c: Update from glibc.
2046         * obstack.c: Likewise.
2047         * obstack.h: Likewise.
2048         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
2049
2050         * regex.h: Likewise.
2051         * strndup.c: Likewise.
2052         * strnlen.c: New file, from glibc.
2053
2054 2000-05-01  Jim Meyering  <meyering@lucent.com>
2055
2056         * full-write.c (full_write): Remove `FIXME' part of comment.
2057
2058 2000-04-29  Jim Meyering  <meyering@lucent.com>
2059
2060         * path-concat.c: Declare strdup only if it's not defined.
2061         * canon-host.c: Likewise.
2062
2063 2000-04-28  Jim Meyering  <meyering@lucent.com>
2064
2065         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
2066         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
2067         included first, then limits.h is included by locale.h by libintl.h.
2068         From John David Anglin.
2069
2070 2000-04-25  Jim Meyering  <meyering@lucent.com>
2071
2072         * makepath.c (S_IRWXUGO): Define.
2073         (make_path): Always perform explicit chmod if MODE specifies any
2074         of the `special' permission bits.  Prompted by a bug report against
2075         install from Mate Wierdl and Joost van Baal.
2076
2077 2000-04-18  Jim Meyering  <meyering@lucent.com>
2078
2079         * README: New file.
2080
2081         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
2082         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
2083
2084 2000-04-17  Jim Meyering  <meyering@lucent.com>
2085
2086         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
2087         the definition of it to rpl_strftime also defined-away the system's
2088         declaration.
2089
2090 2000-04-15  Jim Meyering  <meyering@lucent.com>
2091
2092         Use `C' to denote so-called `contiguous' files, the same way
2093         that tar does.
2094         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
2095         (ftypelet): Use S_ISCTG.
2096         From Michael Deutschmann.
2097
2098 2000-04-14  Jim Meyering  <meyering@lucent.com>
2099
2100         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
2101
2102 2000-04-08  Jim Meyering  <meyering@lucent.com>
2103
2104         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
2105         names don't conflict.  Reported by Eli Zaretskii.
2106
2107 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
2108
2109         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
2110         bug.  Deal with the different error behavior of Irix iconv.
2111
2112 2000-04-07  Jim Meyering  <meyering@lucent.com>
2113
2114         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
2115         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
2116
2117 2000-04-05  Jim Meyering  <meyering@lucent.com>
2118
2119         Portability tweaks required for ultrix4.3.
2120         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
2121         * readutmp.c: Include sys/types.h before sys/stat.h.
2122         * canon-host.c: Declare strdup.
2123         * path-concat.c: Likewise.
2124         From John David Anglin.
2125
2126 2000-04-04  Jim Meyering  <meyering@lucent.com>
2127
2128         Be more DOS 8.3-friendly.
2129         * ref-add.sin: Renamed from ref-add.sed.in.
2130         * ref-del.sin: Renamed from ref-del.sed.in.
2131         * Makefile.am: Reflect renaming.
2132         Reported by Eli Zaretskii.
2133
2134         Use a temporary file name that won't clash with `charset.alias'
2135         in the DOS 8.3 name space.
2136         * Makefile.am (charset_tmp): Define.
2137         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
2138         (uninstall-local): Likewise.
2139         Reported by Eli Zaretskii.
2140
2141 2000-03-29  Paul Eggert  <eggert@twinsun.com>
2142
2143         * time/strftime.c (my_strftime): Make sure we call the system
2144         strftime, not ourselves, when invoking the underlying strftime.
2145
2146 2000-03-24  Jim Meyering  <meyering@lucent.com>
2147
2148         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
2149         (charset_alias): Define.
2150         (install-exec-local): Factor out common code.
2151         (uninstall-local): Split lines longer than 80.
2152         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
2153         (SUFFIXES): Define.
2154         (.sed.in.sed): New rule.  Don't redirect directly to $@.
2155         (CLEANFILES): Add ref-add.sed and ref-del.sed.
2156
2157 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
2158
2159         * config.charset: Output a line containing "Packages using this file".
2160         * ref-add.sed.in, ref-del.sed.in: New files.
2161         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
2162         ref-del.sed): New rules.
2163
2164 2000-03-17  Jim Meyering  <meyering@lucent.com>
2165
2166         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
2167         Otherwise, include <strings.h>
2168
2169 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
2170
2171         * unicodeio.c (utf8_wctomb): New function.
2172         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
2173         format instead of in UCS-4 with platform dependent endianness.
2174
2175 2000-03-07  Paul Eggert  <eggert@twinsun.com>
2176
2177         * savedir.c (savedir): Work even if directory size is
2178         negative; this can happen with some screwy NFS configurations.
2179
2180 2000-03-06  Jim Meyering  <meyering@lucent.com>
2181
2182         * localcharset.c (get_charset_aliases): Don't try to free file_name
2183         if it's NULL (because we ran out of memory).  From Bruno Haible.
2184
2185 2000-03-05  Jim Meyering  <meyering@lucent.com>
2186
2187         * localcharset.c ("path-concat.h"): Include.
2188         (get_charset_aliases): Use path_concat instead of ANSI string
2189         concatenation.
2190
2191         * unicodeio.h (PARAMS): Define.
2192         Use it to guard prototype.
2193
2194 2000-03-04  Jim Meyering  <meyering@lucent.com>
2195
2196         * Makefile.am (install-exec-local): Create $(libdir) before installing
2197         into it.
2198         (uninstall-local): Uncomment this rule so `make distcheck' works
2199         once again.
2200
2201         * unicodeio.c (<errno.h>): Include it.
2202         (errno): Declare if not defined.
2203
2204         * localcharset.c: Add Bruno's comment justifying use of volatile.
2205
2206         * config.charset: New version, incorporating remarks from a linux
2207         i18n mailing list.  From Bruno Haible.
2208
2209 2000-03-02  Jim Meyering  <meyering@lucent.com>
2210
2211         * Makefile.am (EXTRA_DIST): Add config.charset.
2212
2213 2000-03-01  Jim Meyering  <meyering@lucent.com>
2214
2215         * localcharset.c: Guard some #includes with `#if HAVE_...'.
2216         * unicodeio.c: Likewise.
2217
2218 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
2219
2220         * config.charset: New file.
2221         * localcharset.c: New file.
2222         * unicodeio.h, unicodeio.c: New files.
2223         * Makefile.am (DEFS): Add -DLIBDIR=...
2224         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
2225         (noinst_HEADERS): Add unicodeio.h.
2226         (all-local, install-exec-local, charset.alias): New targets.
2227
2228 2000-02-28  Paul Eggert  <eggert@twinsun.com>
2229
2230         * quotearg.c (ALERT_CHAR): New macro.
2231         (quotearg_buffer_restyled): Use it.
2232
2233 2000-02-27  Jim Meyering  <meyering@lucent.com>
2234
2235         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
2236         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
2237
2238         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
2239         not `#if STDC_HEADERS'.
2240         Declare malloc if needed.
2241
2242         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
2243         now that autoconf always defines the HAVE_DECL_ symbols.
2244         * human.c: Likewise.
2245         * same.c: Likewise.
2246         * strtoumax.c: Likewise.
2247
2248         * backupfile.c: Arrange for cpp to fail if the configure-time
2249         declaration check was not run.
2250         * hash.c: Likewise.
2251         * human.c: Likewise.
2252         * same.c: Likewise.
2253         * strtoumax.c: Likewise.
2254
2255         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
2256         then first look up the entire `.'-containing string as a login name.
2257
2258 2000-02-18  Paul Eggert  <eggert@twinsun.com>
2259
2260         * getdate.y: Handle two-digit years with leading zeros correctly.
2261         (textint): New typedef.
2262         (parser_control): Member year changed from int to textint.
2263         All uses changed.
2264         (YYSTYPE): Removed; replaced by %union with int and textint members.
2265         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
2266         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
2267         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
2268         (tSNUMBER, tUNUMBER): Now of type <textintval>.
2269         (date, number, to_year): Use width of number in digits, not its value,
2270         to determine whether it's a 2-digit year, or a 2-digit time.
2271         (yylex): Store number of digits of numeric tokens.
2272         Reported by John Kendall.
2273
2274         (parser_control): Changed from struct parser_control to typedef (for
2275         consistency).  All uses changed.
2276
2277         (tID): Removed; not used.
2278         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
2279
2280 2000-02-14  Paul Eggert  <eggert@twinsun.com>
2281
2282         * getpagesize.h (getpagesize): Port to VMS for Alpha;
2283         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
2284
2285 2000-02-12  Jim Meyering  <meyering@lucent.com>
2286
2287         * userspec.c (ISDIGIT): Define it.
2288         (isdigit): Remove definition.
2289         (is_number): Use ISDIGIT, not isdigit.
2290         <libintl.h>: Include.
2291         (_ and N_): Define.
2292         (parse_user_spec): Mark translatable strings.
2293
2294 2000-02-10  Jim Meyering  <meyering@lucent.com>
2295
2296         With these changes, nanosleep.[ch] are finally enough like the other
2297         lib/* replacement files to compile on a few more losing systems.
2298
2299         * nanosleep.h: Don't include config.h.
2300         Remove prototype from declaration of nanosleep.
2301         (PARAMS): Remove now-unneeded definition.
2302         * nanosleep.c: #undef nanosleep.
2303         (rpl_nanosleep): Rename from nanosleep.
2304
2305 2000-02-03  Jim Meyering  <meyering@lucent.com>
2306
2307         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
2308         rather than with `#if HAVE_UTMPNAME'.
2309
2310 2000-02-01  Jim Meyering  <meyering@lucent.com>
2311
2312         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
2313
2314 2000-01-31  Jim Meyering  <meyering@lucent.com>
2315
2316         * nanosleep.h (nanosleep): Guard declaration with
2317         `#if ! HAVE_DECL_NANOSLEEP'.
2318         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
2319         the declaration in that vendor's sys/timers.h.
2320         Reported by Christian Krackowizer.
2321
2322         * quotearg.c (ISASCII): Add #undef and move definition to follow
2323         inclusion of wctype.h to work around solaris2.6 namespace pollution.
2324         (ISPRINT): Likewise.
2325         Reported by Tom Tromey.
2326
2327 2000-01-30  Jim Meyering  <meyering@lucent.com>
2328
2329         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
2330         uses of ->ut_name.  The latter doesn't work with new Linux header files
2331         where only utmpx.ut_user is declared.
2332
2333         * readutmp.h (UT_USER): Define.
2334
2335 2000-01-23  Jim Meyering  <meyering@lucent.com>
2336
2337         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
2338         obstack.c.
2339
2340 2000-01-22  Jim Meyering  <meyering@lucent.com>
2341
2342         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
2343         [! HAVE_DECL_STRTOULL]: Declare strtoull.
2344         Required for some AIX systems.  Reported by Christian Krackowizer.
2345         [TESTING] (main): New function.
2346
2347         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
2348         * dirname.c (dir_name): Support for DOS-style file names with drive
2349         letters.
2350
2351         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
2352
2353         * strverscmp.c (ISDIGIT): Define.
2354         (strverscmp): Use ISDIGIT, not isdigit.
2355
2356 2000-01-17  Paul Eggert  <eggert@twinsun.com>
2357
2358         * nanosleep.c (nanosleep):
2359         Don't use SA_INTERRUPT to decide whether to call sigaction, as
2360         POSIX.1 doesn't require SA_INTERRUPT and some systems
2361         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
2362         it's been part of POSIX.1 since day 1 (in 1988).
2363
2364 2000-01-17  Jim Meyering  <meyering@lucent.com>
2365
2366         * interlock: Remove unused file.  Reported by François Pinard.
2367
2368 2000-01-16  Paul Eggert  <eggert@twinsun.com>
2369
2370         * quotearg.c (quotearg_buffer_restyled): Do not quote
2371         alert, backslash, formfeed, and vertical tab unnecessarily in
2372         shell quoting style.
2373
2374 Local Variables:
2375 version-control: never
2376 End: