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