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