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