50abfee06c09d7d7c98f41594a99d6f2177176e0
[gnulib.git] / lib / ChangeLog
1 2000-12-02  Jim Meyering  <meyering@lucent.com>
2
3         * closeout.h: Make idempotent, to avoid some obscure warnings.
4
5 2000-12-01  Paul Eggert  <eggert@twinsun.com>
6
7         * lib/memrchr.c: Include <config.h> before any system include file.
8
9 2000-11-29  Paul Eggert  <eggert@twinsun.com>
10
11         * lib/dirname.c (dir_name_r): Fix typo: int -> size_t.
12
13 2000-11-26  Jim Meyering  <meyering@lucent.com>
14
15         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
16
17 2000-11-22  Paul Eggert  <eggert@twinsun.com>
18
19         * lib/strftime.c (my_strftime): Do not invoke mbrlen with a
20         size of (size_t) -1; it's not portable.
21
22 2000-11-17  Akim Demaille  <akim@epita.fr>
23
24         * lib/obstack.h: Formatting changes.
25         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
26         prevent type checking.
27         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
28         cast the value to (void *): assigning a `foo *' to a `void *'
29         variable is valid.
30         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
31
32 2000-11-17  Jim Meyering  <meyering@lucent.com>
33
34         * strstr.c: Update from GNU libc.
35
36 2000-11-16  Jim Meyering  <meyering@lucent.com>
37
38         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
39
40 2000-11-11  Jim Meyering  <meyering@lucent.com>
41
42         * error.c: Add a couple #includes, merging from GNU libc version.
43
44 2000-11-10  Jim Meyering  <meyering@lucent.com>
45
46         * obstack.h: Update from GNU libc.
47         * obstack.c: Likewise.
48
49 2000-11-06  Paul Eggert  <eggert@twinsun.com>
50
51         * getusershell.c (setusershell): Use rewind rather than
52         fseek/fseeko, to avoid configuration hassles with fseeko.
53         Don't bother opening SHELLS_FILE if shellstream is NULL;
54         it's not necessary.
55
56 2000-11-05  Jim Meyering  <meyering@lucent.com>
57
58         * makepath.h (make_dir): Declare.
59         * makepath.c (make_dir): Remove `static' attribute.
60         Tweak a comment.
61
62 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
63
64         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
65         last one in a bucket, advance to the next bucket.
66
67 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
68
69         * fnmatch.c: Do not comment out all the code if we are using
70         the GNU C library, because in some cases we are replacing buggy
71         code in the GNU C library itself.
72
73 2000-10-30  Paul Eggert  <eggert@twinsun.com>
74
75         * error.h, getline.h, modechange.h:
76         Remove "2000" from Copyright line, as the file hasn't been
77         changed this year other than in the copyright notice.
78
79         * xalloc.h: Add "2000" to Copyright line, as this file
80         was changed this year.
81
82 2000-10-30  Paul Eggert  <eggert@twinsun.com>
83
84         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
85         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
86         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
87
88 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
89
90         * regex.h (__restrict_arr): Move definition out of #ifndef block.
91         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
92         doesn't define __restrict_arr.
93
94 2000-10-29  Jim Meyering  <meyering@lucent.com>
95
96         * xstat.in: Fix grammar in comment.
97
98 2000-10-28  Jim Meyering  <meyering@lucent.com>
99
100         * memchr.c: Update from libc.
101         Adjust for portability:
102         [HAVE_STDLIB_H]: Include stdlib.h.
103         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
104         Undef __memchr, too.
105         [!weak_alias]: Define __memchr to memchr.
106
107         * regex.c: Update from libc.
108         * regex.h: Likewise.
109         * getopt1.c: Likewise.
110         * memcmp.c: Likewise.
111
112         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
113         Avoid using fseek, when possible -- it's broken by design.
114         Patch by Ulrich Drepper.
115
116 2000-10-26  Jim Meyering  <meyering@lucent.com>
117
118         * strftime.c: Update from libc.
119
120 2000-10-25  Jim Meyering  <meyering@lucent.com>
121
122         * obstack.c: Update from libc.
123
124 2000-10-23  Jim Meyering  <meyering@lucent.com>
125
126         * hard-locale.c (hard_locale): Revert last change -- it was simply
127         wrong.  That set_locale call must not have any side effects.
128         From Paul Eggert.
129
130 2000-10-22  Jim Meyering  <meyering@lucent.com>
131
132         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
133         [CYCLIC]: Remove now-unused definition.
134
135         * save-cwd.c (O_DIRECTORY): Define, if needed.
136         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
137         Suggestion from Ulrich Drepper.
138
139 2000-10-21  Jim Meyering  <meyering@lucent.com>
140
141         * dirname.c (dir_name_r): New function, factored out of dir_name.
142         (dir_name): Use dir_name_r.
143         * dirname.h (dir_name_r): Declare it.
144
145 2000-10-21  Jim Meyering  <meyering@lucent.com>
146
147         * dirname.c (memrchr): Declare if necessary.
148         (dir_name): Remove the restriction that there be no
149         trailing slashes.  Now, this code skips past them, effectively
150         ignoring them.
151         [TEST_DIRNAME] (main): New unit tests.
152
153         * memrchr.c: New file from GNU libc.
154         Undef __memrchr, too.
155         [!weak_alias]: Define __memrchr to memrchr.
156         Guard weak_alias use with `#ifdef weak_alias'.
157
158 2000-10-17  Jim Meyering  <meyering@lucent.com>
159
160         * quote.h (PARAMS): Define and use.
161         Reported by Akim Demaille.
162
163         * getopt.c: Update from libc.
164
165 2000-10-16  Jim Meyering  <meyering@lucent.com>
166
167         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
168         From Jan Fedak.
169
170 2000-09-25  Jim Meyering  <meyering@lucent.com>
171
172         * md5.h (rol): Define (from GnuPG).
173
174         * sha.c: Give credit (GnuPG) where due.
175         (M): Use rol rather than open-coding it.
176         Add a FIXME comment.
177
178 2000-09-21  Jim Meyering  <meyering@lucent.com>
179
180         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
181         Reported by Michael Stone.
182
183 2000-09-20  Jim Meyering  <meyering@lucent.com>
184
185         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
186         (noinst_HEADERS): Add sha.h.
187         Based on code from Scott G. Miller and from GnuPG.
188
189 2000-09-15  Jim Meyering  <meyering@lucent.com>
190
191         * regex.c: Update from libc.
192
193 2000-09-10  Jim Meyering  <meyering@lucent.com>
194
195         * getopt.c (_getopt_internal): Update from glibc.
196
197 2000-09-09  Jim Meyering  <meyering@lucent.com>
198
199         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
200         think it should be used as a general replacement for isascii.
201         * fnmatch.c: Likewise.
202         * mbswidth.c: Likewise
203         * regex.c: Likewise.
204
205         Don't use atoi.
206         * userspec.c: Include sys/param.h and limits.h.
207         Include xstrtol.h.
208         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
209         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
210         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
211         UID, GID.  Check range.
212
213 2000-09-06  Jim Meyering  <meyering@lucent.com>
214
215         * getopt.c (_getopt_internal): Update from glibc.
216
217 2000-08-30  Jim Meyering  <meyering@lucent.com>
218
219         * strftime.c: Merge in changes from GNU libc.
220
221 2000-08-26  Jim Meyering  <meyering@lucent.com>
222
223         * closeout.c: Include "__fpending.h".
224         (close_stdout_status): Return right away if there's nothing to flush.
225
226         * Makefile.am (noinst_HEADERS): Add __fpending.h.
227         * __fpending.c: New file.
228         * __fpending.h: New file.
229
230 2000-08-07  Paul Eggert  <eggert@twinsun.com>
231
232         Standardize on "memory exhausted" instead of "Memory exhausted"
233         or "virtual memory exhausted".
234         * obstack.c (print_and_abort): Use "memory exhausted", not
235         "virtual memory exhausted".
236         * same.c (same_name): Invoke xalloc_die instead of printing
237         our own message.
238         * userspec.c (parse_user_spec): Likewise.
239         * bumpalloc.h: comment fix
240         * same.c, userspec.c: Include xalloc.h.
241
242         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
243         not char *const and pointing to a constant array.
244         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
245         (xrealloc): Comment fix.
246
247         * userspec.c (parse_user_spec):
248         Don't translate a message until just before returning,
249         to avoid unnecessary translation.
250
251 2000-08-07  Jim Meyering  <meyering@lucent.com>
252
253         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
254         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
255         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
256         getgroups.c, gethostname.c, getopt.h, group-member.c,
257         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
258         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
259         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
260         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
261         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
262         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
263         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
264         yesno.c: Back out Copyright date changes for each file with no change
265         this year.  This eases coordination with other programs using the same
266         source code modules.  From Paul Eggert.
267
268 2000-08-03  Greg McGary  <greg@mcgary.org>
269
270         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
271         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
272         (EXTEND_BUFFER): Use them.
273
274 2000-08-01  Jim Meyering  <meyering@lucent.com>
275
276         * dirname.c (ISSLASH): Define.
277         (BACKSLASH_IS_PATH_SEPARATOR): Define.
278         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
279         both `\' and `/' may be use as path separators.
280         Based on a patch from Prashant TR.
281
282 2000-07-31  Paul Eggert  <eggert@twinsun.com>
283
284         * quotearg.c (quotearg_n_options): Don't make the initial
285         slot vector a constant, since it might get modified.
286
287 2000-07-31  Jim Meyering  <meyering@lucent.com>
288
289         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
290         * obstack.c (print_and_abort): Likewise.
291
292 2000-07-30  Paul Eggert  <eggert@twinsun.com>
293
294         * quotearg.c (quotearg_n_options): Preallocate a slot 0
295         buffer, so that the caller can always quote one small
296         component of a "memory exhausted" message in slot 0.
297         From a suggestion by Jim Meyering.
298
299 2000-07-30  Jim Meyering  <meyering@lucent.com>
300
301         * makepath.c (make_path): Quote the other instance, too.
302
303         * quotearg.c (N_STATIC_SLOTVECS): Define.
304         (STATIC_BUF_SIZE): Define.
305         (quotearg_n_options): Use only statically allocated storage when
306         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
307         than STATIC_BUF_SIZE.
308
309 2000-07-29  Jim Meyering  <meyering@lucent.com>
310
311         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
312         * dirname.c (dir_name): Likewise.
313
314         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
315
316         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
317         (dir_name): Assert that there are no trailing slashes.
318
319 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
320
321         * mbswidth.h (mbswidth): Add a flags argument.
322         (mbswidth): New declaration.
323         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
324         * mbswidth.c (mbswidth): Add a flags argument.
325         (mbsnwidth): New function.
326
327 2000-07-24  Jim Meyering  <meyering@lucent.com>
328
329         * mbswidth.c: Remove useless #else.  From Bruno Haible.
330
331 2000-07-23  Paul Eggert  <eggert@twinsun.com>
332
333         * mbswidth.c (_XOPEN_SOURCE):
334         Don't define; this causes problems on Solaris 7.
335         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
336
337 2000-07-23  Paul Eggert  <eggert@twinsun.com>
338
339         * quotearg.c:
340         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
341         so that mbstate_t is always defined.
342
343         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
344         be 1 in at least one GCC installation, and this configuration
345         error is likely to be common.  Ignoring MB_LEN_MAX hurts
346         performance on hosts that have mbrtowc but have only unibyte
347         locales, but I assume these hosts are rare.
348
349 2000-07-23  Paul Eggert  <eggert@twinsun.com>
350
351         * quotearg.c: Streamline by invoking multibyte code only if needed.
352         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
353         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
354         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
355         invoke multibyte primitives.
356
357 2000-07-23  Jim Meyering  <meyering@lucent.com>
358
359         * basename.c (base_name): Add an assertion.
360
361 2000-07-15  Bruno Haible  <clisp.cons.org>
362
363         * quotearg.c: When the system forces us to redefine mbstate_t,
364         shadow its mbsinit function.
365
366 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
367
368         * mbswidth.h: New file.
369         * mbswidth.c: New file.
370         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
371         (noinst_HEADERS): Add mbswidth.h.
372
373 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
374
375         * config.charset: Add support for FreeBSD. Improve support for HP-UX
376         and IRIX 6.
377
378 2000-07-15  Jim Meyering  <meyering@lucent.com>
379
380         * makepath.c: Include quote.h.
381         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
382         corresponding argument in a `quote (...)' call.
383         Give better diagnostics.
384
385         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
386         (noinst_HEADERS): Add quote.h.
387
388         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
389         from tar's src/misc.c.
390         * quote.h: New file.  Prototypes for same.
391
392 2000-07-10  Paul Eggert  <eggert@twinsun.com>
393
394         From a suggestion by Bruno Haible.
395         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
396         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
397         to decide whether to define the BeOS workaround macro;
398         this adjusts to the change to AC_MBSTATE_T.
399
400 2000-07-13  Paul Eggert  <eggert@twinsun.com>
401
402         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
403
404         * quotearg.c: (quoting_style_args, quoting_style_vals,
405         quotearg_buffer_restyled): Add support for
406         clocale_quoting_style.  Undo previous change to
407         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
408         and "{RIGHT QUOTATION MARK}" msgids.
409
410 2000-07-05  Paul Eggert  <eggert@twinsun.com>
411
412         The old behavior of quoting `like this' doesn't look good with
413         newer, ISO-style fonts.  See:
414         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
415
416         Instead, quote "like this" by default.  Let the translator
417         tailor the locale-specific quoting behavior by providing
418         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
419
420         * quotearg.c (N_): New macro.
421         (gettext_default): New function.
422         (quotearg_buffer_restyled): Use
423         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
424         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
425
426 2000-07-09  Jim Meyering  <meyering@lucent.com>
427
428         * Most files: Update copyright dates to include 2000.
429
430 2000-07-08  Jim Meyering  <meyering@lucent.com>
431
432         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
433         if not defined.
434         (xgethostname): Remove now-unnecessary #ifdef.
435         Move declaration of `err' into loop where it's used.
436
437 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
438
439         * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
440         by allocating a larger buffer. Test the gethostname return value for
441         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
442         returns an error and ENAMETOOLONG isn't defined.
443
444 2000-07-05  Paul Eggert  <eggert@twinsun.com>
445         and Bruno Haible  <haible@clisp.cons.org>
446
447         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
448
449 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
450
451         * quotearg.c (struct quoting_options): Simplify quote_these_too
452         dimension.
453
454 2000-07-03  Jim Meyering  <meyering@lucent.com>
455
456         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
457         Reported by Bruno Haible.
458
459 2000-07-04  Jim Meyering  <meyering@lucent.com>
460
461         * quotearg.c: Make inclusion of <wchar.h> independent of whether
462         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
463         lacks mbrtowc.
464
465 2000-07-03  Paul Eggert  <eggert@twinsun.com>
466         and Bruno Haible  <haible@clisp.cons.org>
467
468         * quotearg.c (mbrtowc):
469         Assign to *pwc, and return 1 only if result is nonzero.
470         (iswprint): Use ISPRINT when substituting our own mbrtowc.
471
472 2000-07-03  Jim Meyering  <meyering@lucent.com>
473
474         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
475         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
476         From Bob Proulx.
477
478 2000-07-02  Jim Meyering  <meyering@lucent.com>
479
480         * quotearg.c (mbstate_t): Don't define here.
481
482 2000-07-02  Jim Meyering  <meyering@lucent.com>
483
484         * nanosleep.c (SIGCONT): Define if not already defined.
485
486 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
487
488         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
489         per change in ../m4/ls-mntd-fs.m4.
490         (read_filesystem_list): Ignore symbolic links.
491
492 2000-06-29  Jim Meyering  <meyering@lucent.com>
493
494         * same.c: Include <string.h> or <strings.h>, as appropriate,
495         for declaration of strcmp.
496
497         * long-options.c: Include <stdlib.h>, for declaration of exit.
498
499         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
500         Avoid warning by casting result to `char *' to remove `const'.
501
502 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
503
504         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
505
506 2000-06-26  Paul Eggert  <eggert@twinsun.com>
507
508         savedir now sets errno on failure and invokes xmalloc to get memory.
509         Fix a couple of other minor bugs while we're at it.
510
511         * savedir.c (<unistd.h>): Do not include; there's no need.
512         (NAMLEN): Remove macro.
513         (malloc, realloc): Remove decls.
514         (stpcpy): Likewise.
515         ("xalloc.h"): Include.
516         (NAME_SIZE_DEFAULT): New macro.
517         (savedir): Use xmalloc / xrealloc to allocate memory.
518         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
519         Skip "" directory entries.
520         Use strlen to calculate directory entry length, since the old method
521         is rarely used these days and isn't worth supporting.
522         Don't use a pointer after freeing it.
523         Check for integer overflow when calculating allocation size.
524         Use memcpy to copy entries, instead of stpcpy.
525         Set errno properly when returning NULL.
526         Check for readdir error.
527
528 2000-06-26  Jim Meyering  <meyering@lucent.com>
529
530         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
531
532 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
533
534         * getusershell.c (xmalloc, xrealloc): Remove functions.
535         Include xalloc.h.
536         Don't include <stdlib.h>.  Don't declare malloc, realloc.
537
538 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
539
540         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
541
542 2000-06-24  Jim Meyering  <meyering@lucent.com>
543
544         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
545
546 2000-06-21  Jim Meyering  <meyering@lucent.com>
547
548         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
549
550 2000-06-19  Paul Eggert  <eggert@twinsun.com>
551
552         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
553         (mbrtowc, mbstate_t): Define substitutes if
554         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
555         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
556         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
557
558 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
559
560         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
561         than 1024, return a memory chunk of least possible size, instead
562         of size PATH_MAX + 2. In the loop, increment the size proportionally.
563         Use free/xmalloc instead of xrealloc to avoid copying for very long
564         paths.
565
566 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
567
568         * canon-host.c (canon_host): Use malloc and memcpy to copy an
569         address, not strdup.  Include <stdlib.h> and don't declare free().
570
571 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
572
573         * path-concat.c (path_concat): Don't access dir[-1] if dir is
574         the empty string.
575
576 2000-06-21  Jim Meyering  <meyering@lucent.com>
577
578         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
579         (noinst_HEADERS): Add getstr.h.
580
581         * getline.c (getstr): Move into a separate file.
582         * getstr.c (getstr): New file, extracted from getline.c, with
583         the following changes: new parameter, delim2; both delim[12]
584         parameters have type `int', not `char'.  The latter would lose
585         with 8-bit delimiters.
586         * getstr.h: New file.
587
588 2000-06-19  Jim Meyering  <meyering@lucent.com>
589
590         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
591
592 2000-06-18  Jim Meyering  <meyering@lucent.com>
593
594         * mkdir.c: Remove file, due mainly to copyright incompatibility.
595         Besides, these days every porting target provides a mkdir function.
596
597         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
598         (this snippet comes from src/system.h).
599
600 2000-06-15  Paul Eggert  <eggert@twinsun.com>
601
602         * human.c (adjust_value): New function.
603         (human_readable_inexact): Apply rounding style even when
604         printing approximate values.
605
606 2000-06-14  Paul Eggert  <eggert@twinsun.com>
607
608         * human.c (human_readable_inexact): Allow an input block
609         size that is not a multiple of the output block size, and vice versa.
610         Reported by Piergiorgio Sartor.
611
612 2000-06-14  Paul Eggert  <eggert@twinsun.com>
613
614         * getdate.y (get_date): Apply relative times after time
615         zone indicator, not before.  Reported by Todd A. Jacobs.
616
617 2000-06-13  Jim Meyering  <meyering@lucent.com>
618
619         * Makefile.am (all-local): Depend on lstat.c and stat.c.
620
621         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
622
623 2000-06-12  Paul Eggert  <eggert@twinsun.com>
624
625         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
626
627 2000-06-04  Paul Eggert  <eggert@twinsun.com>
628
629         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
630
631 2000-06-04  Jim Meyering  <meyering@lucent.com>
632
633         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
634         SunOS4.1.4 for which gid_t is an unsigned type.
635
636 2000-06-03  Jim Meyering  <meyering@lucent.com>
637
638         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
639
640 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
641
642         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
643         newer, don't install charset.alias.
644         * config.charset: Change the Linux/glibc rules so they become empty
645         on glibc-2.1 or newer.
646
647 2000-06-02  Jim Meyering  <meyering@lucent.com>
648
649         * mountlist.c: Back out last change.  Instead, do this...
650         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
651         member using the same `ignore'-testing code.
652         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
653         fs_type strings.
654         From Mark D. Roth.
655
656 2000-05-29  Jim Meyering  <meyering@lucent.com>
657
658         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
659         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
660
661 2000-05-22  Jim Meyering  <meyering@lucent.com>
662
663         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
664
665 2000-05-18  Jim Meyering  <meyering@lucent.com>
666
667         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
668         back, too, since it may have been modified by allocate_entry.
669         (hash_delete): Rewrite to use neither the assignment operator
670         nor the comma operator in an if-expression.
671
672 2000-05-15  Paul Eggert  <eggert@twinsun.com>
673
674         * closeout.c:
675         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
676         Remove; no longer needed.
677         "quotearg.h": Add include.
678         (file_name): Do not bother to explicitly initialize to NULL; it's less
679         efficient on some hosts.
680         (close_stdout_status): Remove test as to whether stdout was already
681         closed; it breaks for the case "echo x | sort >&-".
682         Quote file name colons.
683         Do not assume that _("write error") lacks format strings.
684
685 2000-05-15  Jim Meyering  <meyering@lucent.com>
686
687         * version-etc.c (version_etc_copyright): Update the copyright string
688         used in all --version output.
689
690 2000-05-14  Jim Meyering  <meyering@lucent.com>
691
692         * closeout.c (close_stdout_set_file_name): New function.
693         (close_stdout_status): Use new file-scoped global.
694         Return right away if fstat says the stdout file descriptor is invalid.
695         * closeout.h (close_stdout_set_file_name): Declare.
696
697 2000-05-10  Jim Meyering  <meyering@lucent.com>
698
699         * closeout.c [default_exit_status]: New file-scoped variable.
700         (close_stdout_set_status): New function.
701         * closeout.h (close_stdout_set_status): Declare.
702
703 2000-05-08  Jim Meyering  <meyering@lucent.com>
704
705         * long-options.c: Don't include closeout.h.
706         (parse_long_options): Don't call close_stdout for --version.
707
708 2000-05-06  Jim Meyering  <meyering@lucent.com>
709
710         * strnlen.c: Undefine __strnlen and strnlen.
711         [!weak_alias]: Define __strnlen to strnlen.
712
713         * atexit.c: New file, from libiberty.
714
715 2000-05-06  Jim Meyering  <meyering@lucent.com>
716
717         * closeout.c (close_stdout_status): Also check for errors on the
718         stderr stream.
719
720 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
721
722         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
723         instead of xmalloc, xrealloc, path_concat.
724         (locale_charset): Treat empty environment variables as absent.
725         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
726
727 2000-05-04  Jim Meyering  <meyering@lucent.com>
728
729         * getopt.c: Update from glibc.
730         * obstack.c: Likewise.
731         * obstack.h: Likewise.
732         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
733
734         * regex.h: Likewise.
735         * strndup.c: Likewise.
736         * strnlen.c: New file, from glibc.
737
738 2000-05-01  Jim Meyering  <meyering@lucent.com>
739
740         * full-write.c (full_write): Remove `FIXME' part of comment.
741
742 2000-04-29  Jim Meyering  <meyering@lucent.com>
743
744         * path-concat.c: Declare strdup only if it's not defined.
745         * canon-host.c: Likewise.
746
747 2000-04-28  Jim Meyering  <meyering@lucent.com>
748
749         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
750         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
751         included first, then limits.h is included by locale.h by libintl.h.
752         From John David Anglin.
753
754 2000-04-25  Jim Meyering  <meyering@lucent.com>
755
756         * makepath.c (S_IRWXUGO): Define.
757         (make_path): Always perform explicit chmod if MODE specifies any
758         of the `special' permission bits.  Prompted by a bug report against
759         install from Mate Wierdl and Joost van Baal.
760
761 2000-04-18  Jim Meyering  <meyering@lucent.com>
762
763         * README: New file.
764
765         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
766         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
767
768 2000-04-17  Jim Meyering  <meyering@lucent.com>
769
770         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
771         the definition of it to rpl_strftime also defined-away the system's
772         declaration.
773
774 2000-04-15  Jim Meyering  <meyering@lucent.com>
775
776         Use `C' to denote so-called `contiguous' files, the same way
777         that tar does.
778         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
779         (ftypelet): Use S_ISCTG.
780         From Michael Deutschmann.
781
782 2000-04-14  Jim Meyering  <meyering@lucent.com>
783
784         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
785
786 2000-04-08  Jim Meyering  <meyering@lucent.com>
787
788         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
789         names don't conflict.  Reported by Eli Zaretskii.
790
791 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
792
793         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
794         bug.  Deal with the different error behavior of Irix iconv.
795
796 2000-04-07  Jim Meyering  <meyering@lucent.com>
797
798         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
799         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
800
801 2000-04-05  Jim Meyering  <meyering@lucent.com>
802
803         Portability tweaks required for ultrix4.3.
804         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
805         * readutmp.c: Include sys/types.h before sys/stat.h.
806         * canon-host.c: Declare strdup.
807         * path-concat.c: Likewise.
808         From John David Anglin.
809
810 2000-04-04  Jim Meyering  <meyering@lucent.com>
811
812         Be more DOS 8.3-friendly.
813         * ref-add.sin: Renamed from ref-add.sed.in.
814         * ref-del.sin: Renamed from ref-del.sed.in.
815         * Makefile.am: Reflect renaming.
816         Reported by Eli Zaretskii.
817
818         Use a temporary file name that won't clash with `charset.alias'
819         in the DOS 8.3 name space.
820         * Makefile.am (charset_tmp): Define.
821         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
822         (uninstall-local): Likewise.
823         Reported by Eli Zaretskii.
824
825 2000-03-29  Paul Eggert  <eggert@twinsun.com>
826
827         * time/strftime.c (my_strftime): Make sure we call the system
828         strftime, not ourselves, when invoking the underlying strftime.
829
830 2000-03-24  Jim Meyering  <meyering@lucent.com>
831
832         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
833         (charset_alias): Define.
834         (install-exec-local): Factor out common code.
835         (uninstall-local): Split lines longer than 80.
836         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
837         (SUFFIXES): Define.
838         (.sed.in.sed): New rule.  Don't redirect directly to $@.
839         (CLEANFILES): Add ref-add.sed and ref-del.sed.
840
841 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
842
843         * config.charset: Output a line containing "Packages using this file".
844         * ref-add.sed.in, ref-del.sed.in: New files.
845         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
846         ref-del.sed): New rules.
847
848 2000-03-17  Jim Meyering  <meyering@lucent.com>
849
850         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
851         Otherwise, include <strings.h>
852
853 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
854
855         * unicodeio.c (utf8_wctomb): New function.
856         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
857         format instead of in UCS-4 with platform dependent endianness.
858
859 2000-03-07  Paul Eggert  <eggert@twinsun.com>
860
861         * savedir.c (savedir): Work even if directory size is
862         negative; this can happen with some screwy NFS configurations.
863
864 2000-03-06  Jim Meyering  <meyering@lucent.com>
865
866         * localcharset.c (get_charset_aliases): Don't try to free file_name
867         if it's NULL (because we ran out of memory).  From Bruno Haible.
868
869 2000-03-05  Jim Meyering  <meyering@lucent.com>
870
871         * localcharset.c ("path-concat.h"): Include.
872         (get_charset_aliases): Use path_concat instead of ANSI string
873         concatenation.
874
875         * unicodeio.h (PARAMS): Define.
876         Use it to guard prototype.
877
878 2000-03-04  Jim Meyering  <meyering@lucent.com>
879
880         * Makefile.am (install-exec-local): Create $(libdir) before installing
881         into it.
882         (uninstall-local): Uncomment this rule so `make distcheck' works
883         once again.
884
885         * unicodeio.c (<errno.h>): Include it.
886         (errno): Declare if not defined.
887
888         * localcharset.c: Add Bruno's comment justifying use of volatile.
889
890         * config.charset: New version, incorporating remarks from a linux
891         i18n mailing list.  From Bruno Haible.
892
893 2000-03-02  Jim Meyering  <meyering@lucent.com>
894
895         * Makefile.am (EXTRA_DIST): Add config.charset.
896
897 2000-03-01  Jim Meyering  <meyering@lucent.com>
898
899         * localcharset.c: Guard some #includes with `#if HAVE_...'.
900         * unicodeio.c: Likewise.
901
902 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
903
904         * config.charset: New file.
905         * localcharset.c: New file.
906         * unicodeio.h, unicodeio.c: New files.
907         * Makefile.am (DEFS): Add -DLIBDIR=...
908         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
909         (noinst_HEADERS): Add unicodeio.h.
910         (all-local, install-exec-local, charset.alias): New targets.
911
912 2000-02-28  Paul Eggert  <eggert@twinsun.com>
913
914         * quotearg.c (ALERT_CHAR): New macro.
915         (quotearg_buffer_restyled): Use it.
916
917 2000-02-27  Jim Meyering  <meyering@lucent.com>
918
919         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
920         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
921
922         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
923         not `#if STDC_HEADERS'.
924         Declare malloc if needed.
925
926         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
927         now that autoconf always defines the HAVE_DECL_ symbols.
928         * human.c: Likewise.
929         * same.c: Likewise.
930         * strtoumax.c: Likewise.
931
932         * backupfile.c: Arrange for cpp to fail if the configure-time
933         declaration check was not run.
934         * hash.c: Likewise.
935         * human.c: Likewise.
936         * same.c: Likewise.
937         * strtoumax.c: Likewise.
938
939         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
940         then first look up the entire `.'-containing string as a login name.
941
942 2000-02-18  Paul Eggert  <eggert@twinsun.com>
943
944         * getdate.y: Handle two-digit years with leading zeros correctly.
945         (textint): New typedef.
946         (parser_control): Member year changed from int to textint.
947         All uses changed.
948         (YYSTYPE): Removed; replaced by %union with int and textint members.
949         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
950         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
951         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
952         (tSNUMBER, tUNUMBER): Now of type <textintval>.
953         (date, number, to_year): Use width of number in digits, not its value,
954         to determine whether it's a 2-digit year, or a 2-digit time.
955         (yylex): Store number of digits of numeric tokens.
956         Reported by John Kendall.
957
958         (parser_control): Changed from struct parser_control to typedef (for
959         consistency).  All uses changed.
960
961         (tID): Removed; not used.
962         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
963
964 2000-02-14  Paul Eggert  <eggert@twinsun.com>
965
966         * getpagesize.h (getpagesize): Port to VMS for Alpha;
967         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
968
969 2000-02-12  Jim Meyering  <meyering@lucent.com>
970
971         * userspec.c (ISDIGIT): Define it.
972         (isdigit): Remove definition.
973         (is_number): Use ISDIGIT, not isdigit.
974         <libintl.h>: Include.
975         (_ and N_): Define.
976         (parse_user_spec): Mark translatable strings.
977
978 2000-02-10  Jim Meyering  <meyering@lucent.com>
979
980         With these changes, nanosleep.[ch] are finally enough like the other
981         lib/* replacement files to compile on a few more losing systems.
982
983         * nanosleep.h: Don't include config.h.
984         Remove prototype from declaration of nanosleep.
985         (PARAMS): Remove now-unneeded definition.
986         * nanosleep.c: #undef nanosleep.
987         (rpl_nanosleep): Rename from nanosleep.
988
989 2000-02-03  Jim Meyering  <meyering@lucent.com>
990
991         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
992         rather than with `#if HAVE_UTMPNAME'.
993
994 2000-02-01  Jim Meyering  <meyering@lucent.com>
995
996         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
997
998 2000-01-31  Jim Meyering  <meyering@lucent.com>
999
1000         * nanosleep.h (nanosleep): Guard declaration with
1001         `#if ! HAVE_DECL_NANOSLEEP'.
1002         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
1003         the declaration in that vendor's sys/timers.h.
1004         Reported by Christian Krackowizer.
1005
1006         * quotearg.c (ISASCII): Add #undef and move definition to follow
1007         inclusion of wctype.h to work around solaris2.6 namespace pollution.
1008         (ISPRINT): Likewise.
1009         Reported by Tom Tromey.
1010
1011 2000-01-30  Jim Meyering  <meyering@lucent.com>
1012
1013         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
1014         uses of ->ut_name.  The latter doesn't work with new Linux header files
1015         where only utmpx.ut_user is declared.
1016
1017         * readutmp.h (UT_USER): Define.
1018
1019 2000-01-23  Jim Meyering  <meyering@lucent.com>
1020
1021         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
1022         obstack.c.
1023
1024 2000-01-22  Jim Meyering  <meyering@lucent.com>
1025
1026         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
1027         [! HAVE_DECL_STRTOULL]: Declare strtoull.
1028         Required for some AIX systems.  Reported by Christian Krackowizer.
1029         [TESTING] (main): New function.
1030
1031         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
1032         * dirname.c (dir_name): Support for DOS-style file names with drive
1033         letters.
1034
1035         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
1036
1037         * strverscmp.c (ISDIGIT): Define.
1038         (strverscmp): Use ISDIGIT, not isdigit.
1039
1040 2000-01-17  Paul Eggert  <eggert@twinsun.com>
1041
1042         * nanosleep.c (nanosleep):
1043         Don't use SA_INTERRUPT to decide whether to call sigaction, as
1044         POSIX.1 doesn't require SA_INTERRUPT and some systems
1045         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
1046         it's been part of POSIX.1 since day 1 (in 1988).
1047
1048 2000-01-17  Jim Meyering  <meyering@lucent.com>
1049
1050         * interlock: Remove unused file.  Reported by François Pinard.
1051
1052 2000-01-16  Paul Eggert  <eggert@twinsun.com>
1053
1054         * quotearg.c (quotearg_buffer_restyled): Do not quote
1055         alert, backslash, formfeed, and vertical tab unnecessarily in
1056         shell quoting style.
1057
1058 Local Variables:
1059 version-control: never
1060 End: