2e506691523d4d190947f3820aa43eb6c3ae7b3d
[gnulib.git] / lib / ChangeLog
1 2001-12-15  Jim Meyering  <meyering@lucent.com>
2
3         * regex.h (__restrict_arr): Update from libc.
4
5         * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
6         as `remote' if the name starts with `//'.  Suggested by Michael Stone.
7         (STREQ): Define.
8
9 2001-12-10  Jim Meyering  <meyering@lucent.com>
10
11         * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
12         Instead, include "xalloc.h".
13         (initbuffer): Don't cast xmalloc return value to char*.
14         (readline): Reword comment.
15         Don't cast xrealloc return value to char*
16         Return NULL, not 0.
17
18 2001-12-09  Jim Meyering  <meyering@lucent.com>
19
20         * modechange.c (mode_compile): Add cast to avoid pedantic warning about
21         `signed and unsigned type in conditional expression'.
22         * posixtm.c (posix_time_parse): Likewise.
23
24         * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
25
26         * readtokens.c (readtoken): Declare an index to be of type unsigned
27         to avoid a pedantic warning.
28
29         * getstr.c: Don't include assert.h.
30         (getstr): Remove warning-evoking assertions.
31         Return -1 if offset parameter is out of bounds.
32         Change the type of a local from int to size_t.
33
34         * strftime.c (my_strftime_localtime_r): Include this function
35         definition in the `#if ! HAVE_TM_GMTOFF' block.
36
37         * xgethostname.c: Remove declarations of xmalloc and xrealloc.
38         Include xalloc.h instead.
39
40 2001-12-02  Jim Meyering  <meyering@lucent.com>
41
42         * tempname.c: Don't declare getenv, thus reverting the change of
43         2001-11-18.  It's no longer necessary, now that stdlib.h is always
44         included.
45
46         * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
47         __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
48
49 2001-11-30  Akim Demaille  <akim@epita.fr>
50
51         * xstrdup.c: Include xalloc.h, so that xstrdup is declared
52         before being defined.
53
54 2001-11-27  Paul Eggert  <eggert@twinsun.com>
55
56         * quotearg.h (quotearg_n, quotearg_n_style):
57         First arg is int, not unsigned.
58         * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
59         (SIZE_MAX, UINT_MAX): New macros.
60         (quotearg_n_options): Abort if N is negative.
61         Avoid overflow check on hosts where size_t is 64 bits and int
62         is 32 bits, as overflow is impossible there.
63         Fix off-by-one typo that caused unnecessary reallocation.
64
65 2001-11-27  Jim Meyering  <meyering@lucent.com>
66
67         * tempname.c: Merge with version from libc.
68         * regex.c: Likewise.
69
70         * tempname.c: Include stdlib.h unconditionally.  On some old systems
71         for which STDC_HEADERS is 0, it was not included, resulting in a
72         warning about an integer-to-pointer conversion problem with getenv.
73         Reported by Volker Borchert.
74
75 2001-11-26  Jim Meyering  <meyering@lucent.com>
76
77         * gtod.h: Remove file.
78         * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
79         * gettimeofday.c: Don't include gtod.h.
80         (GTOD_init): Remove function.
81         (rpl_gettimeofday): Do its job here instead, rather than aborting.
82         Suggestion from Volker Borchert.
83
84 2001-11-23  Jim Meyering  <meyering@lucent.com>
85
86         * hash.h (struct hash_table): Don't define here.  Merely declare it.
87         * hash.c (struct hash_table): Define it here instead.
88
89 2001-11-22  Jim Meyering  <meyering@lucent.com>
90
91         * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
92
93 2001-11-18  Paul Eggert  <eggert@twinsun.com>
94
95         * tempname.c (TMP_MAX): Remove; no longer needed.
96         (TEMPORARIES): New macro.
97         (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
98         removes an artificial limitation (e.g. HP-UX 10.20, where
99         TMP_MAX is 17576).
100
101 2001-11-18  Jim Meyering  <meyering@lucent.com>
102
103         * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
104         on SunOS4.
105
106         * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
107         files will be created before anything else.
108
109 2001-11-17  Jim Meyering  <meyering@lucent.com>
110
111         * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
112         that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
113         rather than group writable.  Patch by Juan F. Codagnone.
114
115         * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
116         Instead, include "xalloc.h".
117
118         * mountlist.c: Include unlocked-io.h after all system headers.
119         Remove explicit declarations of xmalloc, xrealloc,
120         and xstrdup.  Instead, include "xalloc.h".
121
122         * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
123         * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
124         * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
125
126         * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
127         Reported by Padraig Brady.
128
129         * mkstemp.c: #undef mkstemp.
130         Include config.h.
131         (rpl_mkstemp): Rename from mkstemp.
132         Protoize.
133
134 2001-11-16  Jim Meyering  <meyering@lucent.com>
135
136         * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
137         (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
138         determine the amount of total physical memory, use pstat_getstatic.
139         HPUX-11 doesn't define _SC_PHYS_PAGES.
140         (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
141         If sysconf couldn't be used to determine the amount of available
142         physical memory, use both pstat_getstatic and pstat_getdynamic.
143         Based on a patch from Bob Proulx.
144
145 2001-11-05  Jim Meyering  <meyering@lucent.com>
146
147         * xstat.in (slash_aware_lstat): Correct a misleading comment.
148
149 2001-11-03  Jim Meyering  <meyering@lucent.com>
150
151         * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
152         in argmatch_to_argument call.
153
154         * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
155         argument.
156
157         * hash.c (hash_clear): Fix a bug that could lead to an infloop or
158         e.g., a fault due to an attempt to free a NULL pointer.
159
160 2001-11-01  Jim Meyering  <meyering@lucent.com>
161
162         * dirfd.c, dirfd.h: New files.
163         * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
164
165         * hash.c (hash_print) [TESTING]: Clean up.
166
167 2001-10-22  Paul Eggert  <eggert@twinsun.com>
168
169         * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
170         to avoid a warning if -Wall.
171
172 2001-10-21  Paul Eggert  <eggert@twinsun.com>
173
174         * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
175
176 2001-10-21  Jim Meyering  <meyering@lucent.com>
177
178         * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
179         this code would end up calling gettext even in packages built
180         with --disable-nls.
181         * getopt.c (_): Likewise.
182         * regex.c (_): Likewise.
183
184 2001-10-20  Paul Eggert  <eggert@twinsun.com>
185
186         * error.c (strerror_r): Do not declare unless !_LIBC.
187         Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
188         Use strerror_r that is only a macro, even if it is not a function.
189         (strerror): Check for HAVE_DECL_STRERROR before declaring.
190         (private_strerror): Use prototypes, not old-style function definition.
191         (print_errno_message): New function.
192         Support the POSIX 'int'-flavored strerror_r, as well as the traditional
193         char*-flavored one.
194         (error_tail, error, error_at_line): Use it.
195
196 2001-10-11  Jim Meyering  <meyering@lucent.com>
197
198         * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
199         and quote_n (1, ... to avoid clobbering a buffer.
200
201 2001-10-05  Jim Meyering  <meyering@lucent.com>
202
203         * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
204         * hash-pjw.c: New file (factored out of fileutils' remove.c).
205         * hash-pjw.h: New file.
206
207 2001-09-30  Jim Meyering  <meyering@lucent.com>
208
209         * mountlist.c [MOUNTED_GETFSSTAT]:
210         Include <sys/ucred.h>, for Apple Darwin.
211         Include sys/mount.h and sys/fs_types.h only if available.
212         (FS_TYPE): Define.
213         (read_filesystem_list): Use FS_TYPE.
214
215 2001-09-29  Paul Eggert  <eggert@twinsun.com>
216
217         * exclude.c (excluded_filename): 0 -> false, since it's
218         a boolean context.
219
220 2001-09-28  Paul Eggert  <eggert@twinsun.com>
221
222         Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
223         #defines strtoimax.  Also treat the other strto* functions
224         like strtoimax.
225
226         * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
227         (strtoul): Do not declare if HAVE_DECL_STRTOUL.
228         (strtoimax, strtoumax): Do not declare if already defined as a macro.
229
230 2001-09-26  Jim Meyering  <meyering@lucent.com>
231
232         Most macros in unlocked-io.h had the wrong number of arguments.
233         * gen-uio: New script.
234         (USE_UNLOCKED_IO): Define to 1 if not already defined.
235         * unlocked-io.hin: Remove file.
236         * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
237         rather than trying to embed it here.
238         (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
239         Reported by Padraig Brady.
240
241 2001-09-25  Volker Borchert  <bt@teknon.de>
242
243         * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
244
245 2001-09-23  Jim Meyering  <meyering@lucent.com>
246
247         * mountlist.c: Remove useless parentheses in #if directives.
248         (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
249         the deprecated MOUNTED symbol is no longer defined in mntent.h.
250
251 2001-09-22  Jim Meyering  <meyering@lucent.com>
252
253         * localcharset.c: Update from latest gettext.
254         * config.charset: Likewise.
255
256 2001-09-20  Jim Meyering  <meyering@lucent.com>
257
258         * xstrtol.c (strtoimax): Guard declaration with
259         `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
260         The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
261         have their own, conflicting declaration of strtoimax in sys/inttypes.h.
262         (strtoumax): Likewise, for completeness (it wasn't necessary).
263
264 2001-09-06  Paul Eggert  <eggert@twinsun.com>
265
266         * strtoimax.c (HAVE_LONG_LONG):
267         Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
268         (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
269         to work around bug in IBM C compiler.
270
271 2001-09-16  Jim Meyering  <meyering@lucent.com>
272
273         * mkdir.c: New file.
274
275 2001-09-04  Paul Eggert  <eggert@twinsun.com>
276
277         * xgetcwd.c: Revert some of the previous change; intead,
278         fix the HAVE_GETCWD_NULL code to behave more like the
279         !HAVE_GETCWD_NULL code used to.
280
281         Include "xalloc.h".
282         (xgetcwd): Do not return NULL when memory is exhausted; instead,
283         invoke xalloc_die.
284
285 2001-09-04  Paul Eggert  <eggert@twinsun.com>
286
287         * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
288         Use ssize_t, not int, to store result of readlink.
289         Check for ssize_t overflow as well as size_t overflow,
290         as POSIX says the result of readlink is implementation-defined
291         when ssize_t overflows.
292         Remove unnecessary cast to char*.
293         Use free+malloc instead of realloc, as the storage doesn't need
294         to be preserved and it's clearer and can be more efficient that way.
295         (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
296         * xreadlink.h (xreadlink): Update prototype.
297
298 2001-09-03  Paul Eggert  <eggert@twinsun.com>
299
300         * exclude.c (fnmatch_no_wildcards): Fix confusion between
301         usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
302         spotted by Jim Meyering.
303
304 2001-09-03  Jim Meyering  <meyering@lucent.com>
305
306         * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
307
308 2001-09-03  Paul Eggert  <eggert@twinsun.com>
309
310         * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
311         like the HAVE_GETCWD_NULL code.
312         Include pathmax.h if not HAVE_GETCWD.
313         Do not include xalloc.h.
314         (INITIAL_BUFFER_SIZE): New symbol.
315         Do not use xmalloc / xrealloc, since the caller is responsible for
316         handling errors.  Preserve errno around `free' during failure.
317         Do not overrun buffer when using getwd.
318
319 2001-09-03  Paul Eggert  <eggert@twinsun.com>
320
321         * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
322         __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
323
324 2001-09-02  Jim Meyering  <meyering@lucent.com>
325
326         * error.c: Update from GNU libc.
327
328 2001-09-01  Jim Meyering  <meyering@lucent.com>
329
330         * xreadlink.c: New file.
331         * xreadlink.h: New file.
332         * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
333
334         * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
335         doesn't conflict with sparc-sun-solaris2.7's definition in
336         /usr/include/sys/int_types.h.
337
338         * exclude.c: Use `""', not `<>' to #include non-system header files.
339         (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
340         and strncasecmp as r-values.  Unixware didn't have declarations.
341
342 2001-08-31  Jim Meyering  <meyering@lucent.com>
343
344         * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
345         Use an initial, malloc'd, buffer of length 128 rather than
346         a statically allocated one of length 1024.
347
348 2001-08-30  Paul Eggert  <eggert@twinsun.com>
349
350         * xgetcwd.c: Don't include pathmax.h.
351         Include stdlib.h and unistd.h if available.
352         Include xalloc.h.
353         (xmalloc, xstrdup, free): Remove decls.
354         (xgetcwd): Don't assume sizes fit in unsigned.
355         Check for overflow when computing sizes.
356         Simplify reallocation code.
357
358 2001-08-28  Paul Eggert  <eggert@twinsun.com>
359
360         * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
361
362         * strtoimax.c: Renamed from strtoxmax.c, removing the
363         old strtoimax.c.
364
365         Also, make the following further changes to make this file's
366         configuration more similar to that of strtol.c:
367         (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
368         (strtoumax, uintmax_t, strtoull, strtol): Remove.
369         (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
370         (strtoimax): Renamed from strtoumax.  All uses of unsigned values
371         changed to signed values.
372
373         And make the following changes as well:
374         Fix copyright notice, as 1999 was missing.
375         (verify): New macro.
376         (strtoimax): Check sizes at compile-time, not run-time.
377         Prefer strtol to strtoll if both work.
378         (main): Remove; it was not that useful and was a pain to maintain.
379
380         * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
381
382 2001-08-30  Paul Eggert  <eggert@twinsun.com>
383
384         * savedir.c (savedir): Remove size parameter, as POSIX says that
385         a directory's st_size can have an arbitrary value, so the old
386         usage could waste an arbitrary amount of memory.  All uses
387         changed.
388         * savedir.h: Update prototype.
389
390 2001-08-30  Paul Eggert  <eggert@twinsun.com>
391
392         * xstrtol.c (strtoimax): New decl.
393
394 2001-08-28  Paul Eggert  <eggert@twinsun.com>
395
396         * xstrtol.h: Add copyright notice.
397         (_DECLARE_XSTRTOL): Improve quality of diagnostic for
398         LONGINT_INVALID_SUFFIX_CHAR.
399
400 2001-08-30  Paul Eggert  <eggert@twinsun.com>
401
402         * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
403         tm to be declared.
404
405 2001-08-30  Paul Eggert  <eggert@twinsun.com>
406
407         * hash.c: Remove '2001' from copyright notice.
408
409 2001-08-30  Paul Eggert  <eggert@twinsun.com>
410
411         * full-write.h: New file.
412         * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
413         * full-write.c: Correct credits, as cccp.c no longer
414         exists and anyway it was so heavily changed from the old cccp
415         code as to be unrecognizable.  Include full-write.h.
416         (full_write) Return size_t, with short writes meaning failure.
417         All callers changed.  This fixes a bug with large buffers
418         on 64-bit hosts.
419         * utime.c: Include full-write.h.
420
421 2001-08-30  Paul Eggert  <eggert@twinsun.com>
422
423         Merge 'exclude' changes from tar 1.13.22.
424         This fixes one or two unlikely storage allocation overflow bugs,
425         but doesn't change user-visible behavior otherwise.
426
427 2001-08-30  Paul Eggert  <eggert@twinsun.com>
428
429         * exclude.c (bool): Declare, perhaps by including stdbool.h.
430         (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
431         (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
432         Include if available.
433         (<xalloc.h>): Include
434         (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
435         (verify): New macro.  Use it to verify that EXCLUDE macros do not
436         collide with FNM macros.
437         (struct patopts): New struct.
438         (struct exclude): Use it, as exclude patterns now come with options.
439         (new_exclude): Support above changes.
440         (new_exclude, add_exclude_file):
441         Initial size must now be a power of two to simplify overflow checking.
442         (free_exclude, fnmatch_no_wildcards): New function.
443         (excluded_filename): No longer requires options arg, as the options
444         are determined by add_exclude.  Now returns bool, not int.
445         (excluded_filename, add_exclude):
446         Add support for the fancy new exclusion options.
447         (add_exclude, add_exclude_file): Now takes int options arg.
448         Check for arithmetic overflow when computing sizes.
449         (add_exclude_file): xrealloc might modify errno, so don't
450         realloc until after errno might be used.
451
452         * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
453         New macros.
454         (free_exclude): New decl.
455         (add_exclude, add_exclude_file): Now takes int options arg.
456         (excluded_filename): No longer requires options arg, as the options
457         are determined by add_exclude.  Now returns bool, not int.
458
459 2001-08-30  Paul Eggert  <eggert@twinsun.com>
460
461         * alloca.c (alloca): Arg is of type size_t, not unsigned.
462
463 2001-08-27  Jim Meyering  <meyering@lucent.com>
464
465         * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
466
467         * version-etc.c (N_): Remove definition.
468         Revert most of last change.
469         Instead, simply don't mark the `Copyright...' string for translation.
470         Based on advice from Paul Eggert.
471
472         * strtoxmax.c: Tweak comment.
473
474 2001-08-26  Jim Meyering  <meyering@lucent.com>
475
476         * version-etc.c (version_etc_copyright_fmt): Replace literal year
477         of copyright with `%s' so translators don't get an untranslated
478         message in 2002.
479         (COPYRIGHT_YEAR): Define.
480         (version_etc): Use fprintf rather than fputs.
481         Suggestion from Ulrich Drepper.
482
483         * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
484
485         * strtoll.c: New file, from GNU libc.
486         * xstrtoimax.c: New file.
487
488         * xstrtol.h: Add xstrtoimax.
489         * strtoumax.c: New file.  Simply include "strtoumax.c".
490         * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
491
492         * strtoumax.c: Factor to work both for unsigned and signed types, ...
493         * strtoxmax.c: ... then renamed to this.
494
495 2001-08-13  Paul Eggert  <eggert@twinsun.com>
496
497         * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
498         Port to Solaris 8, where 'sed' requires a space after the 'r'
499         command, and where sh dislikes "$/".  Clean up the spacing a bit.
500         Redirect output to $tmp just once.
501
502 2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
503
504         * addext.c (<errno.h>): Include.
505         (errno): Declare if not defined.
506         (addext): Work correctly when pathconf returns -1 and leaves
507         errno alone because there is no limit.  Also, work even if
508         pathconf returns a value greater than SIZE_MAX.
509
510 2001-08-12  Jim Meyering  <meyering@lucent.com>
511
512         * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
513         Simply `return getcwd (NULL, 0);'.
514         [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
515         Use 1300 as initial value for length, not PATH_MAX.
516
517         * pathmax.h: Clean up cpp syntax.
518
519 2001-08-12  Jim Meyering  <meyering@lucent.com>
520
521         * gettimeofday.c: New file.
522         * gtod.h: New file.
523         * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
524
525 2001-08-04  Jim Meyering  <meyering@lucent.com>
526
527         * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
528         to get in sync with glibc.
529
530 2001-08-03  Paul Eggert  <eggert@twinsun.com>
531
532         The following changes are from gettext 0.10.39 as maintained by
533         Bruno Haible.
534
535         * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
536         Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
537         with inverted sense.  All uses changed.
538
539         * mbswidth.c: Don't include <limits.h>.
540         Include <stdlib.h> and <string.h> unconditionally.
541         (iswcntrl, mbsinit, ISCNTRL): New macros.
542         (mbsnwidth): Use K&R style function declarations.
543         Don't bother checking for MB_LEN_MAX == 1, since the compiler
544         can optimize it when MB_CUR_MAX == 1.
545         The width of control characters is zero, not 1.
546
547 2001-07-15  Jim Meyering  <meyering@lucent.com>
548
549         * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
550         (BUILT_SOURCES): Add unlocked-io.h.
551         (io_functions): Define.
552         (unlocked-io.h): New rule.
553         (DISTCLEANFILES): Add unlocked-io.h.
554         (all-local): Depend on unlocked-io.h, to ensure it is created.
555
556         * unlocked-io.hin: New file
557
558         * regex.c: Update from glibc.
559
560 2001-07-05  Jim Meyering  <meyering@lucent.com>
561
562         * Makefile.am (noinst_HEADERS): Remove definition, per new automake
563         recommendation.
564         (libfetish_a_SOURCES): Put all .h files here instead.
565         Remove a thus-exposed (better checks in automake) duplicate and
566         two unnecessary .h files.
567
568 2001-06-11  Jim Meyering  <meyering@lucent.com>
569
570         * regex.c: Update from GNU libc.
571
572 2001-05-27  Jim Meyering  <meyering@lucent.com>
573
574         * readutmp.h (UT_TYPE): Define.
575
576 2001-05-24  Jim Meyering  <meyering@lucent.com>
577
578         * argmatch.c: Include "quote.h".
579         (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
580         quote function.  Reported by Göran Uddeborg.
581
582 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
583
584         * dirname.c (dir_name): Compute append_dot using path, not newpath
585         which is not yet declared.
586
587 2001-05-11  Paul Eggert  <eggert@twinsun.com>
588
589         * Makefile.am (libfetish_a_SOURCES):
590         Add strftime.c, since we now compile it on all hosts.
591
592         * strftime.c (my_strftime):
593         Define to nstrftime if emacs, but only if my_strftime is not defined.
594         (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
595         ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
596         Add one more extra argument: a nanoseconds value.
597         All uses changed.
598         (ns): New macro.
599         (my_strftime function): Add %N format.
600         (emacs_strftimeu): Renamed from emacs_strftime,
601         with extra ut argument.
602
603 2001-05-11  Paul Eggert  <eggert@twinsun.com>
604
605         dirname code cleanup.  base_name now behaves more compatibly
606         with POSIX basename when given file names that have trailing
607         slashes, and similarly for dir_name.  Add new primitives
608         base_len and dir_len.  Put the directory-name-related decls
609         into dirname.h.
610
611         * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
612         * backupfile.c (base_name): Likewise.
613         * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
614         * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
615         * makepath.c (strip_trailing_slashes): Likewise.
616         * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
617         Likewise.
618         * rename.c (strip_trailing_slashes): Likewise.
619         * same.c (base_name): Likewise.
620         * stripslash.c (ISSLASH): Likewise.
621
622         * addext.c: Include <dirname.h> after size_t is defined.
623         * backupfile.c: Likewise.
624
625         * addext.c (addext): Use base_len to trim redundant
626         trailing slashes instead of doing it ourselves.
627         But do not trim the last slash if it is not redundant.
628
629         * backupfile.c (find_backup_file_name,
630         max_backup_version): Use base_len instead of rolling it ourselves.
631         Handle the case of "" and (on DOS) "C:" correctly.
632
633         * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
634         Include <string.h>, <dirname.h>.
635         (base_name): Allow file names ending in slashes, other than names
636         that are all slashes.  In this case, return the basename followed
637         by the slashes.  This is more general, and can be used in places
638         where the original base_name purposely had an assertion failure.
639         (base_len): New function.
640
641         * dirname.c: Include <string.h> instead of <stdlib.h>.
642         Do not include <assert.h>; no longer needed.
643         Include xalloc.h.
644         (memrchr): Remove decl.
645         (dir_name_r): Remove.
646         (dir_len): Renamed from dirlen.  All callers changed.
647         Rewrite in terms of base_name, for simplicity and consistency.
648         (dir_name): Never return NULL.  All callers changed.
649         Do not include <stdlib.h> in test program; no longer needed.
650         return 0; is fine for test program.
651
652         * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
653         New macros.
654         (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
655
656         * path-concat.c (path_concat): Use base_len to compute
657         base length, not strlen; this means we cannot rely on memcpy
658         to null-terminate.
659
660         * same.c (STREQ): Remove.
661         (same_name): Handle the case where the basename ends in trailing '/'.
662
663         * stripslash.c (strip_trailing_slashes): Return nonzero if
664         a slash was stripped.  Do not strip the last slash after a
665         file system prefix.
666
667 2001-04-08  Jim Meyering  <meyering@lucent.com>
668
669         * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
670         recomputed; that's necessary when the offset spans a DST transition.
671         Patch by David J. MacKenzie.  Reported by Hon-Yin Kok.
672
673 2001-04-02  Jim Meyering  <meyering@lucent.com>
674
675         * regex.h, regex.c: Update from GNU libc.
676
677 2001-03-19  Paul Eggert  <eggert@twinsun.com>
678
679         * version-etc.c (version_etc_copyright): Update to 2001.
680
681 2001-03-16  Paul Eggert  <eggert@twinsun.com>
682
683         * tempname.c (uint64_t): Define to uintmax_t if
684         not defined, and if UINT64_MAX is not defined.
685         Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
686         Reported by John David Anglin.
687
688 2001-03-10  Bruno Haible  <haible@clisp.cons.org>
689
690         * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
691         alias if codeset is empty.
692         * config.charset (BeOS): Use wildcard syntax.
693
694 2001-03-13  Jim Meyering  <meyering@lucent.com>
695
696         * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
697         Don't insert a backslash when concatenating e.g., `C:' and `foo'.
698         From Bruno Haible.
699
700 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
701
702         * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
703         Don't return NULL.
704         * unicodeio.c (print_unicode_char): Simplify accordingly.
705
706 2001-03-06  Bruno Haible  <haible@clisp.cons.org>
707
708         * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
709         support for DOS/DJGPP.
710
711 2001-02-28  Paul Eggert  <eggert@twinsun.com>
712
713         * Makefile.am (libfetish_a_SOURCES):
714         Add dup-safer.c, fopen-safer.c.
715         (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
716
717         * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
718
719 2001-02-25  Paul Eggert  <eggert@twinsun.com>
720
721         The mkstemp replacement is taken from glibc 2.2.2, with some
722         portability fixes for use outside glibc, as follows:
723
724         * tempname.c (struct_stat64): New macro.
725         (direxists, __gen_tempname): Use it.
726         This avoids a portability problem with Solaris 8.
727
728         * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
729         (<stddef.h>, <stdint.h>, <string.h>):
730         Include only if STDC_HEADERS || _LIBC.
731         (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
732         (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
733         (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
734         (__set_errno): Define this macro if <errno.h> doesn't.
735         (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
736         Define these macros if <stdio.h> doesn't.
737         (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
738         Define these macros if <sys/stat.h>
739         doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
740         (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
741         __xstat64): Define if not _LIBC.
742         (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
743         (__gen_tempname): Invoke gettimeofday only if
744         HAVE_GETTIMEOFDAY || _LIBC;
745         otherwise, fall back on plain "time".
746         Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
747
748         * mkstemp.c (__GT_FILE): Define to zero if not defined.
749
750         * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
751
752 2001-02-17  Jim Meyering  <meyering@lucent.com>
753
754         * strtoul.c: Sync from GNU libc.  Use double quotes, not <...>
755         around included file name.
756
757         * strnlen.c (__strnlen): Merge in a change from GNU libc.
758
759         * strftime.c: Update from GNU libc (the only changes were to comments).
760
761 2001-02-13  Bruno Haible  <haible@clisp.cons.org>
762
763         * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
764
765 2001-02-17  Paul Eggert  <eggert@twinsun.com>
766
767         * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
768         Remove workaround macros for hosts that have mbrtowc but not
769         mbstate_t, as we now insist on proper declarations for both
770         before using mbrtowc.
771
772 2001-02-17  Jim Meyering  <meyering@lucent.com>
773
774         * regex.c: Update from libc.
775
776 2001-02-16  Paul Eggert  <eggert@twinsun.com>
777
778         * alloca.c (malloc): Undef before defining, since stdlib.h
779         may have defined it.  Needed for Encore Umax-3.0.9.16b systems.
780         Reported by Mark Hounschell via Paul Eggert.
781
782 2001-01-30  Bruno Haible  <haible@clisp.cons.org>
783
784         * config.charset: Update for FreeBSD 4.2.
785
786 2001-01-26  Jim Meyering  <meyering@lucent.com>
787
788         * quotearg.c: Include stddef.h.
789         * quote.c: Include stddef.h.
790         Reported by Axel Kittenberger.
791
792         * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
793         line in double quotes so that it evokes a better diagnostic.
794         [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
795         Reported by Axel Kittenberger.
796
797 2001-01-15  Bruno Haible  <haible@clisp.cons.org>
798
799         * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
800         to avoid a warning.  Add back 'const' to inptr.
801
802 2001-01-16  Jim Meyering  <meyering@lucent.com>
803
804         * basename.c: Include <stdio.h>, needed by assert on SunOS4.
805         From Bruno Haible.
806
807 2001-01-14  Jim Meyering  <meyering@lucent.com>
808
809         * rename.c: New file.  From Volker Borchert.
810         Include stdlib.h, string.h or strings.h, and xalloc.h.
811         Use strip_trailing_slashes rather than open-coding it.
812
813 2001-01-03  Paul Eggert  <eggert@twinsun.com>
814
815         * strftime.c: Sync with glibc time/strftime.c 1.81.
816
817 2001-01-03  Jim Meyering  <meyering@lucent.com>
818
819         * unicodeio.c (print_unicode_char): Remove `const' from declaration of
820         local `inptr' to avoid warning with some system declarations of iconv.
821
822 2000-12-29  Paul Eggert  <eggert@twinsun.com>
823
824         * modechange.c: Do not assume that mode_t uses the
825         traditional octal encoding.  E.g. "chmod 1 FOO" should set
826         the other-execute bit of FOO even if S_IXOTH != 1.
827
828         (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
829         WOTH, XOTH, ALLM): New macros.
830         (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
831          S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
832         Use them.
833         (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
834         (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
835         (mode_compile):
836         No need to use uintmax_t; unsigned long is long enough.
837         Don't bother to get suffix since we don't use it.
838
839 2000-12-24  Jim Meyering  <meyering@lucent.com>
840
841         * hash.c (is_prime): Return explicit boolean values.
842         (hash_get_first): Return NULL to appease Irix5.6's 89.
843         Reported by Nelson Beebe.
844
845 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
846
847         * localcharset.c (locale_charset): Add support for Win32.
848
849 2000-12-18  Paul Eggert  <eggert@twinsun.com>
850
851         * physmem.h, physmem.c: New files.
852
853         * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
854         (noinst_HEADERS): Add physmem.h.
855
856         * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
857         't' for compatibility with Solaris 8 sort.
858
859 2000-12-18  Bruno Haible  <haible@clisp.cons.org>
860
861         * config.charset: Add support for BeOS.
862
863 2000-12-16  Jim Meyering  <meyering@lucent.com>
864
865         * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
866         SHELLS_FILE to a file name that's useful on djgpp systems.
867         Include stdlib.h.
868         (ADDITIONAL_DEFAULT_SHELLS): Define.
869         (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
870         Based mostly on a patch from Prashant TR.
871
872 2000-12-16  Jim Meyering  <meyering@lucent.com>
873
874         This bug had a serious impact on chown: `chown N:M FILE' (for integer
875         N and M) would have treated it like `chown N:N FILE'.
876
877         * userspec.c (parse_user_spec): Fix typo: s/u/g/.
878
879 2000-10-31  Bruno Haible  <haible@clisp.cons.org>
880
881         * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
882         CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
883         to the list of canonical encodings. Rename EUC-CN to GB2312.
884
885 2000-12-08  Andreas Schwab  <schwab@suse.de>
886
887         * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
888         invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
889
890 2000-12-07  Jim Meyering  <meyering@lucent.com>
891
892         * stripslash.c (ISSLASH): Define.
893         (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
894         From Prashant TR.
895
896         * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
897         (dir_name_r): Declare this function as static.
898         [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
899         manifest itself on a name containing a mix of slashes and
900         backslashes.
901         Make this function work with names starting with a DOS-style
902         drive letter and colon prefix.
903         (dir_name): Append `.' if necessary.
904         Based mostly on patches from Prashant TR and Eli Zaretskii.
905
906         * dirname.h (dir_name_r): Remove prototype.
907
908 2000-12-05  Jim Meyering  <meyering@lucent.com>
909
910         * dirname.c (dir_name_r): Add `const' in a few local declarations.
911
912 2000-12-04  Jim Meyering  <meyering@lucent.com>
913
914         * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
915         Also include memory.h, stdlib.h, unistd.h if appropriate.
916         Reported by Andreas Jaeger (conflicting declaration of malloc).
917
918 2000-12-02  Jim Meyering  <meyering@lucent.com>
919
920         * closeout.h: Make idempotent, to avoid some obscure warnings.
921
922 2000-12-01  Paul Eggert  <eggert@twinsun.com>
923
924         * memrchr.c: Include <config.h> before any system include file.
925
926 2000-11-29  Paul Eggert  <eggert@twinsun.com>
927
928         * dirname.c (dir_name_r): Fix typo: int -> size_t.
929
930 2000-11-26  Jim Meyering  <meyering@lucent.com>
931
932         * memcoll.c: Include sys/types.h.  From Werner Almesberger.
933
934 2000-11-22  Paul Eggert  <eggert@twinsun.com>
935
936         * strftime.c (my_strftime): Do not invoke mbrlen with a
937         size of (size_t) -1; it's not portable.
938
939 2000-11-17  Akim Demaille  <akim@epita.fr>
940
941         * obstack.h: Formatting changes.
942         (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
943         prevent type checking.
944         (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
945         cast the value to (void *): assigning a `foo *' to a `void *'
946         variable is valid.
947         (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
948
949 2000-11-17  Jim Meyering  <meyering@lucent.com>
950
951         * strstr.c: Update from GNU libc.
952
953 2000-11-16  Jim Meyering  <meyering@lucent.com>
954
955         * strverscmp.c: Incorporate weak-alias-related changes from glibc.
956
957 2000-11-11  Jim Meyering  <meyering@lucent.com>
958
959         * error.c: Add a couple #includes, merging from GNU libc version.
960
961 2000-11-10  Jim Meyering  <meyering@lucent.com>
962
963         * obstack.h: Update from GNU libc.
964         * obstack.c: Likewise.
965
966 2000-11-06  Paul Eggert  <eggert@twinsun.com>
967
968         * getusershell.c (setusershell): Use rewind rather than
969         fseek/fseeko, to avoid configuration hassles with fseeko.
970         Don't bother opening SHELLS_FILE if shellstream is NULL;
971         it's not necessary.
972
973 2000-11-05  Jim Meyering  <meyering@lucent.com>
974
975         * makepath.h (make_dir): Declare.
976         * makepath.c (make_dir): Remove `static' attribute.
977         Tweak a comment.
978
979 2000-11-04  Alexandre Duret-Lutz  <duret_g@epita.fr>
980
981         * hash.c (hash_get_next): Fix a thinko:  when ENTRY is the
982         last one in a bucket, advance to the next bucket.
983
984 2000-11-02  Vesselin Atanasov  <vesselin@bgnet.bg>
985
986         * fnmatch.c: Do not comment out all the code if we are using
987         the GNU C library, because in some cases we are replacing buggy
988         code in the GNU C library itself.
989
990 2000-10-30  Paul Eggert  <eggert@twinsun.com>
991
992         * error.h, getline.h, modechange.h:
993         Remove "2000" from Copyright line, as the file hasn't been
994         changed this year other than in the copyright notice.
995
996         * xalloc.h: Add "2000" to Copyright line, as this file
997         was changed this year.
998
999 2000-10-30  Paul Eggert  <eggert@twinsun.com>
1000
1001         * fnmatch.c (FOLD): Do not assume that characters are unsigned.
1002         (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
1003         e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
1004
1005 2000-10-29  Greg Louis  <glouis@dynamicro.on.ca>
1006
1007         * regex.h (__restrict_arr): Move definition out of #ifndef block.
1008         Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
1009         doesn't define __restrict_arr.
1010
1011 2000-10-29  Jim Meyering  <meyering@lucent.com>
1012
1013         * xstat.in: Fix grammar in comment.
1014
1015 2000-10-28  Jim Meyering  <meyering@lucent.com>
1016
1017         * memchr.c: Update from libc.
1018         Adjust for portability:
1019         [HAVE_STDLIB_H]: Include stdlib.h.
1020         [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
1021         Undef __memchr, too.
1022         [!weak_alias]: Define __memchr to memchr.
1023
1024         * regex.c: Update from libc.
1025         * regex.h: Likewise.
1026         * getopt1.c: Likewise.
1027         * memcmp.c: Likewise.
1028
1029         * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
1030         Avoid using fseek, when possible -- it's broken by design.
1031         Patch by Ulrich Drepper.
1032
1033 2000-10-26  Jim Meyering  <meyering@lucent.com>
1034
1035         * strftime.c: Update from libc.
1036
1037 2000-10-25  Jim Meyering  <meyering@lucent.com>
1038
1039         * obstack.c: Update from libc.
1040
1041 2000-10-23  Jim Meyering  <meyering@lucent.com>
1042
1043         * hard-locale.c (hard_locale): Revert last change -- it was simply
1044         wrong.  That set_locale call must not have any side effects.
1045         From Paul Eggert.
1046
1047 2000-10-22  Jim Meyering  <meyering@lucent.com>
1048
1049         * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
1050         [CYCLIC]: Remove now-unused definition.
1051
1052         * save-cwd.c (O_DIRECTORY): Define, if needed.
1053         (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
1054         Suggestion from Ulrich Drepper.
1055
1056 2000-10-21  Jim Meyering  <meyering@lucent.com>
1057
1058         * dirname.c (dir_name_r): New function, factored out of dir_name.
1059         (dir_name): Use dir_name_r.
1060         * dirname.h (dir_name_r): Declare it.
1061
1062 2000-10-21  Jim Meyering  <meyering@lucent.com>
1063
1064         * dirname.c (memrchr): Declare if necessary.
1065         (dir_name): Remove the restriction that there be no
1066         trailing slashes.  Now, this code skips past them, effectively
1067         ignoring them.
1068         [TEST_DIRNAME] (main): New unit tests.
1069
1070         * memrchr.c: New file from GNU libc.
1071         Undef __memrchr, too.
1072         [!weak_alias]: Define __memrchr to memrchr.
1073         Guard weak_alias use with `#ifdef weak_alias'.
1074
1075 2000-10-17  Jim Meyering  <meyering@lucent.com>
1076
1077         * quote.h (PARAMS): Define and use.
1078         Reported by Akim Demaille.
1079
1080         * getopt.c: Update from libc.
1081
1082 2000-10-16  Jim Meyering  <meyering@lucent.com>
1083
1084         * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
1085         From Jan Fedak.
1086
1087 2000-09-25  Jim Meyering  <meyering@lucent.com>
1088
1089         * md5.h (rol): Define (from GnuPG).
1090
1091         * sha.c: Give credit (GnuPG) where due.
1092         (M): Use rol rather than open-coding it.
1093         Add a FIXME comment.
1094
1095 2000-09-21  Jim Meyering  <meyering@lucent.com>
1096
1097         * userspec.c (parse_user_spec): Remove debugging printf I'd added.
1098         Reported by Michael Stone.
1099
1100 2000-09-20  Jim Meyering  <meyering@lucent.com>
1101
1102         * Makefile.am (libfetish_a_SOURCES): Add sha.c.
1103         (noinst_HEADERS): Add sha.h.
1104         Based on code from Scott G. Miller and from GnuPG.
1105
1106 2000-09-15  Jim Meyering  <meyering@lucent.com>
1107
1108         * regex.c: Update from libc.
1109
1110 2000-09-10  Jim Meyering  <meyering@lucent.com>
1111
1112         * getopt.c (_getopt_internal): Update from glibc.
1113
1114 2000-09-09  Jim Meyering  <meyering@lucent.com>
1115
1116         * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
1117         think it should be used as a general replacement for isascii.
1118         * fnmatch.c: Likewise.
1119         * mbswidth.c: Likewise
1120         * regex.c: Likewise.
1121
1122         Don't use atoi.
1123         * userspec.c: Include sys/param.h and limits.h.
1124         Include xstrtol.h.
1125         (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
1126         (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
1127         (parse_user_spec): Use xstrtoul, not atoi when converting numeric
1128         UID, GID.  Check range.
1129
1130 2000-09-06  Jim Meyering  <meyering@lucent.com>
1131
1132         * getopt.c (_getopt_internal): Update from glibc.
1133
1134 2000-08-30  Jim Meyering  <meyering@lucent.com>
1135
1136         * strftime.c: Merge in changes from GNU libc.
1137
1138 2000-08-26  Jim Meyering  <meyering@lucent.com>
1139
1140         * closeout.c: Include "__fpending.h".
1141         (close_stdout_status): Return right away if there's nothing to flush.
1142
1143         * Makefile.am (noinst_HEADERS): Add __fpending.h.
1144         * __fpending.c: New file.
1145         * __fpending.h: New file.
1146
1147 2000-08-07  Paul Eggert  <eggert@twinsun.com>
1148
1149         Standardize on "memory exhausted" instead of "Memory exhausted"
1150         or "virtual memory exhausted".
1151         * obstack.c (print_and_abort): Use "memory exhausted", not
1152         "virtual memory exhausted".
1153         * same.c (same_name): Invoke xalloc_die instead of printing
1154         our own message.
1155         * userspec.c (parse_user_spec): Likewise.
1156         * bumpalloc.h: comment fix
1157         * same.c, userspec.c: Include xalloc.h.
1158
1159         * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
1160         not char *const and pointing to a constant array.
1161         * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
1162         (xrealloc): Comment fix.
1163
1164         * userspec.c (parse_user_spec):
1165         Don't translate a message until just before returning,
1166         to avoid unnecessary translation.
1167
1168 2000-08-07  Jim Meyering  <meyering@lucent.com>
1169
1170         * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
1171         chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
1172         fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
1173         getgroups.c, gethostname.c, getopt.h, group-member.c,
1174         hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
1175         linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
1176         memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
1177         pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
1178         stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
1179         strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
1180         utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
1181         yesno.c: Back out Copyright date changes for each file with no change
1182         this year.  This eases coordination with other programs using the same
1183         source code modules.  From Paul Eggert.
1184
1185 2000-08-03  Greg McGary  <greg@mcgary.org>
1186
1187         * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
1188         ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
1189         (EXTEND_BUFFER): Use them.
1190
1191 2000-08-01  Jim Meyering  <meyering@lucent.com>
1192
1193         * dirname.c (ISSLASH): Define.
1194         (BACKSLASH_IS_PATH_SEPARATOR): Define.
1195         (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
1196         both `\' and `/' may be use as path separators.
1197         Based on a patch from Prashant TR.
1198
1199 2000-07-31  Paul Eggert  <eggert@twinsun.com>
1200
1201         * quotearg.c (quotearg_n_options): Don't make the initial
1202         slot vector a constant, since it might get modified.
1203
1204 2000-07-31  Jim Meyering  <meyering@lucent.com>
1205
1206         * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
1207         * obstack.c (print_and_abort): Likewise.
1208
1209 2000-07-30  Paul Eggert  <eggert@twinsun.com>
1210
1211         * quotearg.c (quotearg_n_options): Preallocate a slot 0
1212         buffer, so that the caller can always quote one small
1213         component of a "memory exhausted" message in slot 0.
1214         From a suggestion by Jim Meyering.
1215
1216 2000-07-30  Jim Meyering  <meyering@lucent.com>
1217
1218         * makepath.c (make_path): Quote the other instance, too.
1219
1220         * quotearg.c (N_STATIC_SLOTVECS): Define.
1221         (STATIC_BUF_SIZE): Define.
1222         (quotearg_n_options): Use only statically allocated storage when
1223         N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
1224         than STATIC_BUF_SIZE.
1225
1226 2000-07-29  Jim Meyering  <meyering@lucent.com>
1227
1228         * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
1229         * dirname.c (dir_name): Likewise.
1230
1231         * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
1232
1233         * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
1234         (dir_name): Assert that there are no trailing slashes.
1235
1236 2000-07-18  Bruno Haible  <haible@clisp.cons.org>
1237
1238         * mbswidth.h (mbswidth): Add a flags argument.
1239         (mbswidth): New declaration.
1240         (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
1241         * mbswidth.c (mbswidth): Add a flags argument.
1242         (mbsnwidth): New function.
1243
1244 2000-07-24  Jim Meyering  <meyering@lucent.com>
1245
1246         * mbswidth.c: Remove useless #else.  From Bruno Haible.
1247
1248 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1249
1250         * mbswidth.c (_XOPEN_SOURCE):
1251         Don't define; this causes problems on Solaris 7.
1252         (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
1253
1254 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1255
1256         * quotearg.c:
1257         Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
1258         so that mbstate_t is always defined.
1259
1260         Do not inspect MB_LEN_MAX, since it's incorrectly defined to
1261         be 1 in at least one GCC installation, and this configuration
1262         error is likely to be common.  Ignoring MB_LEN_MAX hurts
1263         performance on hosts that have mbrtowc but have only unibyte
1264         locales, but I assume these hosts are rare.
1265
1266 2000-07-23  Paul Eggert  <eggert@twinsun.com>
1267
1268         * quotearg.c: Streamline by invoking multibyte code only if needed.
1269         <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
1270         (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
1271         (quotearg_buffer_restyled): If a unibyte locale, don't bother to
1272         invoke multibyte primitives.
1273
1274 2000-07-23  Jim Meyering  <meyering@lucent.com>
1275
1276         * basename.c (base_name): Add an assertion.
1277
1278 2000-07-15  Bruno Haible  <clisp.cons.org>
1279
1280         * quotearg.c: When the system forces us to redefine mbstate_t,
1281         shadow its mbsinit function.
1282
1283 2000-07-16  Bruno Haible  <haible@clisp.cons.org>
1284
1285         * mbswidth.h: New file.
1286         * mbswidth.c: New file.
1287         * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
1288         (noinst_HEADERS): Add mbswidth.h.
1289
1290 2000-07-17  Bruno Haible  <haible@clisp.cons.org>
1291
1292         * config.charset: Add support for FreeBSD. Improve support for HP-UX
1293         and IRIX 6.
1294
1295 2000-07-15  Jim Meyering  <meyering@lucent.com>
1296
1297         * makepath.c: Include quote.h.
1298         (make_path): Convert "`%s'" in format strings to "%s", and wrap each
1299         corresponding argument in a `quote (...)' call.
1300         Give better diagnostics.
1301
1302         * Makefile.am (libfetish_a_SOURCES): Add quote.c.
1303         (noinst_HEADERS): Add quote.h.
1304
1305         * quote.c (quote, quote_n): New file.  Two functions taken verbatim
1306         from tar's src/misc.c.
1307         * quote.h: New file.  Prototypes for same.
1308
1309 2000-07-10  Paul Eggert  <eggert@twinsun.com>
1310
1311         From a suggestion by Bruno Haible.
1312         * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
1313         Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
1314         to decide whether to define the BeOS workaround macro;
1315         this adjusts to the change to AC_MBSTATE_T.
1316
1317 2000-07-13  Paul Eggert  <eggert@twinsun.com>
1318
1319         * quotearg.h (enum quoting style): New enum clocale_quoting_style.
1320
1321         * quotearg.c (quoting_style_args, quoting_style_vals,
1322         quotearg_buffer_restyled): Add support for
1323         clocale_quoting_style.  Undo previous change to
1324         locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
1325         and "{RIGHT QUOTATION MARK}" msgids.
1326
1327 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1328
1329         The old behavior of quoting `like this' doesn't look good with
1330         newer, ISO-style fonts.  See:
1331         http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
1332
1333         Instead, quote "like this" by default.  Let the translator
1334         tailor the locale-specific quoting behavior by providing
1335         translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
1336
1337         * quotearg.c (N_): New macro.
1338         (gettext_default): New function.
1339         (quotearg_buffer_restyled): Use
1340         gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
1341         gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
1342
1343 2000-07-09  Jim Meyering  <meyering@lucent.com>
1344
1345         * Most files: Update copyright dates to include 2000.
1346
1347 2000-07-08  Jim Meyering  <meyering@lucent.com>
1348
1349         * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
1350         if not defined.
1351         (xgethostname): Remove now-unnecessary #ifdef.
1352         Move declaration of `err' into loop where it's used.
1353
1354 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1355
1356         * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
1357         by allocating a larger buffer. Test the gethostname return value for
1358         being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
1359         returns an error and ENAMETOOLONG isn't defined.
1360
1361 2000-07-05  Paul Eggert  <eggert@twinsun.com>
1362         and Bruno Haible  <haible@clisp.cons.org>
1363
1364         * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
1365
1366 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
1367
1368         * quotearg.c (struct quoting_options): Simplify quote_these_too
1369         dimension.
1370
1371 2000-07-03  Jim Meyering  <meyering@lucent.com>
1372
1373         * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
1374         Reported by Bruno Haible.
1375
1376 2000-07-04  Jim Meyering  <meyering@lucent.com>
1377
1378         * quotearg.c: Make inclusion of <wchar.h> independent of whether
1379         HAVE_MBRTOWC is set.  Required at least for irix-5.6, which
1380         lacks mbrtowc.
1381
1382 2000-07-03  Paul Eggert  <eggert@twinsun.com>
1383         and Bruno Haible  <haible@clisp.cons.org>
1384
1385         * quotearg.c (mbrtowc):
1386         Assign to *pwc, and return 1 only if result is nonzero.
1387         (iswprint): Use ISPRINT when substituting our own mbrtowc.
1388
1389 2000-07-03  Jim Meyering  <meyering@lucent.com>
1390
1391         * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
1392         This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
1393         From Bob Proulx.
1394
1395 2000-07-02  Jim Meyering  <meyering@lucent.com>
1396
1397         * quotearg.c (mbstate_t): Don't define here.
1398
1399 2000-07-02  Jim Meyering  <meyering@lucent.com>
1400
1401         * nanosleep.c (SIGCONT): Define if not already defined.
1402
1403 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1404
1405         * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
1406         per change in ../m4/ls-mntd-fs.m4.
1407         (read_filesystem_list): Ignore symbolic links.
1408
1409 2000-06-29  Jim Meyering  <meyering@lucent.com>
1410
1411         * same.c: Include <string.h> or <strings.h>, as appropriate,
1412         for declaration of strcmp.
1413
1414         * long-options.c: Include <stdlib.h>, for declaration of exit.
1415
1416         * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
1417         Avoid warning by casting result to `char *' to remove `const'.
1418
1419 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1420
1421         * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
1422
1423 2000-06-26  Paul Eggert  <eggert@twinsun.com>
1424
1425         savedir now sets errno on failure and invokes xmalloc to get memory.
1426         Fix a couple of other minor bugs while we're at it.
1427
1428         * savedir.c (<unistd.h>): Do not include; there's no need.
1429         (NAMLEN): Remove macro.
1430         (malloc, realloc): Remove decls.
1431         (stpcpy): Likewise.
1432         ("xalloc.h"): Include.
1433         (NAME_SIZE_DEFAULT): New macro.
1434         (savedir): Use xmalloc / xrealloc to allocate memory.
1435         Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
1436         Skip "" directory entries.
1437         Use strlen to calculate directory entry length, since the old method
1438         is rarely used these days and isn't worth supporting.
1439         Don't use a pointer after freeing it.
1440         Check for integer overflow when calculating allocation size.
1441         Use memcpy to copy entries, instead of stpcpy.
1442         Set errno properly when returning NULL.
1443         Check for readdir error.
1444
1445 2000-06-26  Jim Meyering  <meyering@lucent.com>
1446
1447         * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
1448
1449 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1450
1451         * getusershell.c (xmalloc, xrealloc): Remove functions.
1452         Include xalloc.h.
1453         Don't include <stdlib.h>.  Don't declare malloc, realloc.
1454
1455 2000-06-23  Bruno Haible  <haible@clisp.cons.org>
1456
1457         * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
1458
1459 2000-06-24  Jim Meyering  <meyering@lucent.com>
1460
1461         * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
1462
1463 2000-06-21  Jim Meyering  <meyering@lucent.com>
1464
1465         * getpass.c: New file, from Bruno Haible.  Required for BeOS.
1466
1467 2000-06-19  Paul Eggert  <eggert@twinsun.com>
1468
1469         * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
1470         (mbrtowc, mbstate_t): Define substitutes if
1471         HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
1472         (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
1473         not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
1474
1475 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1476
1477         * xgetcwd.c (xgetcwd): If the required pathname length is smaller
1478         than 1024, return a memory chunk of least possible size, instead
1479         of size PATH_MAX + 2. In the loop, increment the size proportionally.
1480         Use free/xmalloc instead of xrealloc to avoid copying for very long
1481         paths.
1482
1483 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1484
1485         * canon-host.c (canon_host): Use malloc and memcpy to copy an
1486         address, not strdup.  Include <stdlib.h> and don't declare free().
1487
1488 2000-06-17  Bruno Haible  <haible@clisp.cons.org>
1489
1490         * path-concat.c (path_concat): Don't access dir[-1] if dir is
1491         the empty string.
1492
1493 2000-06-21  Jim Meyering  <meyering@lucent.com>
1494
1495         * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
1496         (noinst_HEADERS): Add getstr.h.
1497
1498         * getline.c (getstr): Move into a separate file.
1499         * getstr.c (getstr): New file, extracted from getline.c, with
1500         the following changes: new parameter, delim2; both delim[12]
1501         parameters have type `int', not `char'.  The latter would lose
1502         with 8-bit delimiters.
1503         * getstr.h: New file.
1504
1505 2000-06-19  Jim Meyering  <meyering@lucent.com>
1506
1507         * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
1508
1509 2000-06-18  Jim Meyering  <meyering@lucent.com>
1510
1511         * mkdir.c: Remove file, due mainly to copyright incompatibility.
1512         Besides, these days every porting target provides a mkdir function.
1513
1514         * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
1515         (this snippet comes from src/system.h).
1516
1517 2000-06-15  Paul Eggert  <eggert@twinsun.com>
1518
1519         * human.c (adjust_value): New function.
1520         (human_readable_inexact): Apply rounding style even when
1521         printing approximate values.
1522
1523 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1524
1525         * human.c (human_readable_inexact): Allow an input block
1526         size that is not a multiple of the output block size, and vice versa.
1527         Reported by Piergiorgio Sartor.
1528
1529 2000-06-14  Paul Eggert  <eggert@twinsun.com>
1530
1531         * getdate.y (get_date): Apply relative times after time
1532         zone indicator, not before.  Reported by Todd A. Jacobs.
1533
1534 2000-06-13  Jim Meyering  <meyering@lucent.com>
1535
1536         * Makefile.am (all-local): Depend on lstat.c and stat.c.
1537
1538         * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
1539
1540 2000-06-12  Paul Eggert  <eggert@twinsun.com>
1541
1542         * xstat.in: Include <stdlib.h> in lstat, to declare "free".
1543
1544 2000-06-04  Paul Eggert  <eggert@twinsun.com>
1545
1546         * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
1547
1548 2000-06-04  Jim Meyering  <meyering@lucent.com>
1549
1550         * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
1551         SunOS4.1.4 for which gid_t is an unsigned type.
1552
1553 2000-06-03  Jim Meyering  <meyering@lucent.com>
1554
1555         * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
1556
1557 2000-05-26  Bruno Haible  <haible@clisp.cons.org>
1558
1559         * Makefile.am (install-exec-local): On systems with glibc-2.1 or
1560         newer, don't install charset.alias.
1561         * config.charset: Change the Linux/glibc rules so they become empty
1562         on glibc-2.1 or newer.
1563
1564 2000-06-02  Jim Meyering  <meyering@lucent.com>
1565
1566         * mountlist.c: Back out last change.  Instead, do this...
1567         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
1568         member using the same `ignore'-testing code.
1569         * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
1570         fs_type strings.
1571         From Mark D. Roth.
1572
1573 2000-05-29  Jim Meyering  <meyering@lucent.com>
1574
1575         * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
1576         with the `ignore' attribute.  Based on a patch from Mark D. Roth.
1577
1578 2000-05-22  Jim Meyering  <meyering@lucent.com>
1579
1580         * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
1581
1582 2000-05-18  Jim Meyering  <meyering@lucent.com>
1583
1584         * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
1585         back, too, since it may have been modified by allocate_entry.
1586         (hash_delete): Rewrite to use neither the assignment operator
1587         nor the comma operator in an if-expression.
1588
1589 2000-05-15  Paul Eggert  <eggert@twinsun.com>
1590
1591         * closeout.c:
1592         <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
1593         Remove; no longer needed.
1594         "quotearg.h": Add include.
1595         (file_name): Do not bother to explicitly initialize to NULL; it's less
1596         efficient on some hosts.
1597         (close_stdout_status): Remove test as to whether stdout was already
1598         closed; it breaks for the case "echo x | sort >&-".
1599         Quote file name colons.
1600         Do not assume that _("write error") lacks format strings.
1601
1602 2000-05-15  Jim Meyering  <meyering@lucent.com>
1603
1604         * version-etc.c (version_etc_copyright): Update the copyright string
1605         used in all --version output.
1606
1607 2000-05-14  Jim Meyering  <meyering@lucent.com>
1608
1609         * closeout.c (close_stdout_set_file_name): New function.
1610         (close_stdout_status): Use new file-scoped global.
1611         Return right away if fstat says the stdout file descriptor is invalid.
1612         * closeout.h (close_stdout_set_file_name): Declare.
1613
1614 2000-05-10  Jim Meyering  <meyering@lucent.com>
1615
1616         * closeout.c [default_exit_status]: New file-scoped variable.
1617         (close_stdout_set_status): New function.
1618         * closeout.h (close_stdout_set_status): Declare.
1619
1620 2000-05-08  Jim Meyering  <meyering@lucent.com>
1621
1622         * long-options.c: Don't include closeout.h.
1623         (parse_long_options): Don't call close_stdout for --version.
1624
1625 2000-05-06  Jim Meyering  <meyering@lucent.com>
1626
1627         * strnlen.c: Undefine __strnlen and strnlen.
1628         [!weak_alias]: Define __strnlen to strnlen.
1629
1630         * atexit.c: New file, from libiberty.
1631
1632 2000-05-06  Jim Meyering  <meyering@lucent.com>
1633
1634         * closeout.c (close_stdout_status): Also check for errors on the
1635         stderr stream.
1636
1637 2000-05-05  Bruno Haible  <haible@clisp.cons.org>
1638
1639         * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
1640         instead of xmalloc, xrealloc, path_concat.
1641         (locale_charset): Treat empty environment variables as absent.
1642         (DIRECTORY_SEPARATOR, ISSLASH): New macros.
1643
1644 2000-05-04  Jim Meyering  <meyering@lucent.com>
1645
1646         * getopt.c: Update from glibc.
1647         * obstack.c: Likewise.
1648         * obstack.h: Likewise.
1649         * regex.c: Likewise.  NB: K&R compiler support is dropped for this file
1650
1651         * regex.h: Likewise.
1652         * strndup.c: Likewise.
1653         * strnlen.c: New file, from glibc.
1654
1655 2000-05-01  Jim Meyering  <meyering@lucent.com>
1656
1657         * full-write.c (full_write): Remove `FIXME' part of comment.
1658
1659 2000-04-29  Jim Meyering  <meyering@lucent.com>
1660
1661         * path-concat.c: Declare strdup only if it's not defined.
1662         * canon-host.c: Likewise.
1663
1664 2000-04-28  Jim Meyering  <meyering@lucent.com>
1665
1666         * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
1667         redefinition warning on some systems (HPUX).  Otherwise, regex.h is
1668         included first, then limits.h is included by locale.h by libintl.h.
1669         From John David Anglin.
1670
1671 2000-04-25  Jim Meyering  <meyering@lucent.com>
1672
1673         * makepath.c (S_IRWXUGO): Define.
1674         (make_path): Always perform explicit chmod if MODE specifies any
1675         of the `special' permission bits.  Prompted by a bug report against
1676         install from Mate Wierdl and Joost van Baal.
1677
1678 2000-04-18  Jim Meyering  <meyering@lucent.com>
1679
1680         * README: New file.
1681
1682         * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
1683         getpagesize.  For BeOS.  Based on a patch from Bruno Haible.
1684
1685 2000-04-17  Jim Meyering  <meyering@lucent.com>
1686
1687         * strftime.c (my_strftime) [strftime]: Declare strftime here, since
1688         the definition of it to rpl_strftime also defined-away the system's
1689         declaration.
1690
1691 2000-04-15  Jim Meyering  <meyering@lucent.com>
1692
1693         Use `C' to denote so-called `contiguous' files, the same way
1694         that tar does.
1695         * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
1696         (ftypelet): Use S_ISCTG.
1697         From Michael Deutschmann.
1698
1699 2000-04-14  Jim Meyering  <meyering@lucent.com>
1700
1701         * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
1702
1703 2000-04-08  Jim Meyering  <meyering@lucent.com>
1704
1705         * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
1706         names don't conflict.  Reported by Eli Zaretskii.
1707
1708 2000-03-28  Bruno Haible  <haible@clisp.cons.org>
1709
1710         * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
1711         bug.  Deal with the different error behavior of Irix iconv.
1712
1713 2000-04-07  Jim Meyering  <meyering@lucent.com>
1714
1715         * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
1716         to work around system header problems on AIX 3.2.5.  From Bruno Haible.
1717
1718 2000-04-05  Jim Meyering  <meyering@lucent.com>
1719
1720         Portability tweaks required for ultrix4.3.
1721         * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
1722         * readutmp.c: Include sys/types.h before sys/stat.h.
1723         * canon-host.c: Declare strdup.
1724         * path-concat.c: Likewise.
1725         From John David Anglin.
1726
1727 2000-04-04  Jim Meyering  <meyering@lucent.com>
1728
1729         Be more DOS 8.3-friendly.
1730         * ref-add.sin: Renamed from ref-add.sed.in.
1731         * ref-del.sin: Renamed from ref-del.sed.in.
1732         * Makefile.am: Reflect renaming.
1733         Reported by Eli Zaretskii.
1734
1735         Use a temporary file name that won't clash with `charset.alias'
1736         in the DOS 8.3 name space.
1737         * Makefile.am (charset_tmp): Define.
1738         (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
1739         (uninstall-local): Likewise.
1740         Reported by Eli Zaretskii.
1741
1742 2000-03-29  Paul Eggert  <eggert@twinsun.com>
1743
1744         * time/strftime.c (my_strftime): Make sure we call the system
1745         strftime, not ourselves, when invoking the underlying strftime.
1746
1747 2000-03-24  Jim Meyering  <meyering@lucent.com>
1748
1749         * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
1750         (charset_alias): Define.
1751         (install-exec-local): Factor out common code.
1752         (uninstall-local): Split lines longer than 80.
1753         (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
1754         (SUFFIXES): Define.
1755         (.sed.in.sed): New rule.  Don't redirect directly to $@.
1756         (CLEANFILES): Add ref-add.sed and ref-del.sed.
1757
1758 2000-03-19  Bruno Haible  <haible@clisp.cons.org>
1759
1760         * config.charset: Output a line containing "Packages using this file".
1761         * ref-add.sed.in, ref-del.sed.in: New files.
1762         * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
1763         ref-del.sed): New rules.
1764
1765 2000-03-17  Jim Meyering  <meyering@lucent.com>
1766
1767         * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
1768         Otherwise, include <strings.h>
1769
1770 2000-03-17  Bruno Haible  <haible@clisp.cons.org>
1771
1772         * unicodeio.c (utf8_wctomb): New function.
1773         (print_unicode_char): Pass the Unicode character to iconv in UTF-8
1774         format instead of in UCS-4 with platform dependent endianness.
1775
1776 2000-03-07  Paul Eggert  <eggert@twinsun.com>
1777
1778         * savedir.c (savedir): Work even if directory size is
1779         negative; this can happen with some screwy NFS configurations.
1780
1781 2000-03-06  Jim Meyering  <meyering@lucent.com>
1782
1783         * localcharset.c (get_charset_aliases): Don't try to free file_name
1784         if it's NULL (because we ran out of memory).  From Bruno Haible.
1785
1786 2000-03-05  Jim Meyering  <meyering@lucent.com>
1787
1788         * localcharset.c ("path-concat.h"): Include.
1789         (get_charset_aliases): Use path_concat instead of ANSI string
1790         concatenation.
1791
1792         * unicodeio.h (PARAMS): Define.
1793         Use it to guard prototype.
1794
1795 2000-03-04  Jim Meyering  <meyering@lucent.com>
1796
1797         * Makefile.am (install-exec-local): Create $(libdir) before installing
1798         into it.
1799         (uninstall-local): Uncomment this rule so `make distcheck' works
1800         once again.
1801
1802         * unicodeio.c (<errno.h>): Include it.
1803         (errno): Declare if not defined.
1804
1805         * localcharset.c: Add Bruno's comment justifying use of volatile.
1806
1807         * config.charset: New version, incorporating remarks from a linux
1808         i18n mailing list.  From Bruno Haible.
1809
1810 2000-03-02  Jim Meyering  <meyering@lucent.com>
1811
1812         * Makefile.am (EXTRA_DIST): Add config.charset.
1813
1814 2000-03-01  Jim Meyering  <meyering@lucent.com>
1815
1816         * localcharset.c: Guard some #includes with `#if HAVE_...'.
1817         * unicodeio.c: Likewise.
1818
1819 2000-02-02  Bruno Haible  <haible@clisp.cons.org>
1820
1821         * config.charset: New file.
1822         * localcharset.c: New file.
1823         * unicodeio.h, unicodeio.c: New files.
1824         * Makefile.am (DEFS): Add -DLIBDIR=...
1825         (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
1826         (noinst_HEADERS): Add unicodeio.h.
1827         (all-local, install-exec-local, charset.alias): New targets.
1828
1829 2000-02-28  Paul Eggert  <eggert@twinsun.com>
1830
1831         * quotearg.c (ALERT_CHAR): New macro.
1832         (quotearg_buffer_restyled): Use it.
1833
1834 2000-02-27  Jim Meyering  <meyering@lucent.com>
1835
1836         * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
1837         Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
1838
1839         * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
1840         not `#if STDC_HEADERS'.
1841         Declare malloc if needed.
1842
1843         * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
1844         now that autoconf always defines the HAVE_DECL_ symbols.
1845         * human.c: Likewise.
1846         * same.c: Likewise.
1847         * strtoumax.c: Likewise.
1848
1849         * backupfile.c: Arrange for cpp to fail if the configure-time
1850         declaration check was not run.
1851         * hash.c: Likewise.
1852         * human.c: Likewise.
1853         * same.c: Likewise.
1854         * strtoumax.c: Likewise.
1855
1856         * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
1857         then first look up the entire `.'-containing string as a login name.
1858
1859 2000-02-18  Paul Eggert  <eggert@twinsun.com>
1860
1861         * getdate.y: Handle two-digit years with leading zeros correctly.
1862         (textint): New typedef.
1863         (parser_control): Member year changed from int to textint.
1864         All uses changed.
1865         (YYSTYPE): Removed; replaced by %union with int and textint members.
1866         (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
1867         tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
1868         tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
1869         (tSNUMBER, tUNUMBER): Now of type <textintval>.
1870         (date, number, to_year): Use width of number in digits, not its value,
1871         to determine whether it's a 2-digit year, or a 2-digit time.
1872         (yylex): Store number of digits of numeric tokens.
1873         Reported by John Kendall.
1874
1875         (parser_control): Changed from struct parser_control to typedef (for
1876         consistency).  All uses changed.
1877
1878         (tID): Removed; not used.
1879         (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
1880
1881 2000-02-14  Paul Eggert  <eggert@twinsun.com>
1882
1883         * getpagesize.h (getpagesize): Port to VMS for Alpha;
1884         adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
1885
1886 2000-02-12  Jim Meyering  <meyering@lucent.com>
1887
1888         * userspec.c (ISDIGIT): Define it.
1889         (isdigit): Remove definition.
1890         (is_number): Use ISDIGIT, not isdigit.
1891         <libintl.h>: Include.
1892         (_ and N_): Define.
1893         (parse_user_spec): Mark translatable strings.
1894
1895 2000-02-10  Jim Meyering  <meyering@lucent.com>
1896
1897         With these changes, nanosleep.[ch] are finally enough like the other
1898         lib/* replacement files to compile on a few more losing systems.
1899
1900         * nanosleep.h: Don't include config.h.
1901         Remove prototype from declaration of nanosleep.
1902         (PARAMS): Remove now-unneeded definition.
1903         * nanosleep.c: #undef nanosleep.
1904         (rpl_nanosleep): Rename from nanosleep.
1905
1906 2000-02-03  Jim Meyering  <meyering@lucent.com>
1907
1908         * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
1909         rather than with `#if HAVE_UTMPNAME'.
1910
1911 2000-02-01  Jim Meyering  <meyering@lucent.com>
1912
1913         * readutmp.h (UT_USER): Add parens.  From Andreas Schwab.
1914
1915 2000-01-31  Jim Meyering  <meyering@lucent.com>
1916
1917         * nanosleep.h (nanosleep): Guard declaration with
1918         `#if ! HAVE_DECL_NANOSLEEP'.
1919         Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
1920         the declaration in that vendor's sys/timers.h.
1921         Reported by Christian Krackowizer.
1922
1923         * quotearg.c (ISASCII): Add #undef and move definition to follow
1924         inclusion of wctype.h to work around solaris2.6 namespace pollution.
1925         (ISPRINT): Likewise.
1926         Reported by Tom Tromey.
1927
1928 2000-01-30  Jim Meyering  <meyering@lucent.com>
1929
1930         * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
1931         uses of ->ut_name.  The latter doesn't work with new Linux header files
1932         where only utmpx.ut_user is declared.
1933
1934         * readutmp.h (UT_USER): Define.
1935
1936 2000-01-23  Jim Meyering  <meyering@lucent.com>
1937
1938         * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
1939         obstack.c.
1940
1941 2000-01-22  Jim Meyering  <meyering@lucent.com>
1942
1943         * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
1944         [! HAVE_DECL_STRTOULL]: Declare strtoull.
1945         Required for some AIX systems.  Reported by Christian Krackowizer.
1946         [TESTING] (main): New function.
1947
1948         1997-10-17  Eli Zaretskii  <eliz@is.elta.co.il>
1949         * dirname.c (dir_name): Support for DOS-style file names with drive
1950         letters.
1951
1952         * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
1953
1954         * strverscmp.c (ISDIGIT): Define.
1955         (strverscmp): Use ISDIGIT, not isdigit.
1956
1957 2000-01-17  Paul Eggert  <eggert@twinsun.com>
1958
1959         * nanosleep.c (nanosleep):
1960         Don't use SA_INTERRUPT to decide whether to call sigaction, as
1961         POSIX.1 doesn't require SA_INTERRUPT and some systems
1962         (e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
1963         it's been part of POSIX.1 since day 1 (in 1988).
1964
1965 2000-01-17  Jim Meyering  <meyering@lucent.com>
1966
1967         * interlock: Remove unused file.  Reported by François Pinard.
1968
1969 2000-01-16  Paul Eggert  <eggert@twinsun.com>
1970
1971         * quotearg.c (quotearg_buffer_restyled): Do not quote
1972         alert, backslash, formfeed, and vertical tab unnecessarily in
1973         shell quoting style.
1974
1975 Local Variables:
1976 version-control: never
1977 End: