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