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