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