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