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