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