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