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