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