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