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