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