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