X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FChangeLog;h=19e6d5f5e44e2adfc1ad4a37c4925b5be97fe264;hb=d427c96ee152df514e6eb0f73dd4f65021961bca;hp=9d637938dc6e607cc5557c7d1a1668d7a62e67cd;hpb=99161421b9a60e044044436ca2e0df0936c9e44f;p=gnulib.git diff --git a/lib/ChangeLog b/lib/ChangeLog index 9d637938d..762ac3c61 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,1651 @@ +2005-02-24 Bruno Haible + + * localcharset.c: Update from GNU gettext 0.14.2. + * config.charset: Update from GNU gettext 0.14.2. + +2005-02-22 Simon Josefsson + + * iconvme.h, iconvme.c: New files, from libc. + +2005-02-20 Neil Conway + + * xgethostname.c (xgethostname): Check for ENOMEM, which is + returned by OSX/Darwin if the specified buffer is not large + enough for the hostname. + +2005-02-03 Paul Eggert + + * memrchr.h: New file. + * chdir-long.c: Include it. + * memrchr.c [!defined _LIBC]: Include it rather than + Don't bother including stddef.h. + +2005-02-03 Sergey Poznyakoff + + * argp-help.c (__argp_help): Create a fake struct argp_state and + pass it to _help, otherwise the latter coredumps trying to + dereference state.root_argp. + +2005-02-01 Paul Eggert + + * mountlist.h (MOUNTLIST_H_): New macro, to protect against double + inclusion. + Include , for dev_t. + (ME_DUMMY, ME_REMOTE): Move from here.... + * mountlist.c (ME_DUMMY, ME_REMOTE): To here. + (ME_DUMMY): Count "subfs" as a dummy. Problem reported by + Dmitry V. Levin. + Include mountlist.h first, to test the interface. + +2005-01-29 Bruno Haible + + * progname.c (program_name): Initialize. + Needed when linking statically on MacOS X. + +2005-01-28 Bruno Haible + + * javacomp.sh.in: New file, from GNU gettext. + * javacomp.h: New file, from GNU gettext. + * javacomp.c: New file, from GNU gettext. + +2005-01-26 Bruno Haible + + * javaexec.sh.in: New file, from GNU gettext. + * javaexec.h: New file, from GNU gettext. + * javaexec.c: New file, from GNU gettext. + +2005-01-26 Simon Josefsson + + * gai_strerror.c: Use GPL in header. + +2005-01-24 Sergey Poznyakoff + + * argp-help.c (hol_entry_help): Avoid using non-constant + initializers for struct pentry_state. + (__argp_error): Check return value of __asprintf + (__argp_failure): Translate error message + + * argp-parse.c: Removed braces around the expansion of N_() + +2005-01-21 Jim Meyering + + * openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the + same value as for Solaris 9. + + * chdir-long.c (chdir_long): Rewrite to remove limitation on + component length. This included changing the parameter to be + of type `char *' rather than `char const *'. + * chdir-long.h (chdir_long): Update prototype. + + * openat.c (fdopendir, fstatat): New functions. + * openat.h: Include headers required for use of DIR and struct stat. + [AT_SYMLINK_NOFOLLOW]: Define. + (fdopendir, fstatat): Add prototypes. + +2005-01-21 Bruno Haible + + * classpath.h: New file, from GNU gettext. + * classpath.c: New file, from GNU gettext. + +2005-01-20 Simon Josefsson + + * version-etc-fsf.c: New file, with version_etc_copyright. + * version-etc.c: Remove version_etc_copyright. + * version-etc.h (version_etc_copyright): Use [] instead of * in + prototype, suggested by Paul Eggert . + +2005-01-20 Paul Eggert + + * save-cwd.c (save_cwd): Remove code to support the case + where fchdir is missing or flaky. + +2005-01-20 Simon Josefsson + + * base64.h (isbase64): Add. + + * base64.c (isb64): Rename to isbase64, use to_uchar instead of + using a unsigned prototype, don't inline. + (base64_decode): Use it. + +2005-01-19 Bruno Haible + + * sh-quote.h: New file, from GNU gettext. + * sh-quote.c: New file, from GNU gettext. + +2005-01-18 Paul Eggert + + Merge changes from coreutils, as described below in several + changelogs dated today. + + * save-cwd.c: Include "save-cwd.h" before other include files. + (O_DIRECTORY): Remove; not needed here, since "." must be + a directory. All uses removed. + (save_cwd): Use __sgi || __sun, not sun || __sun. __sun is + universal on Suns, and we also need to test for IRIX. + Revamp code to use 'if' rather than '#if'. + Avoid unnecessary comparison of cwd->desc to 0. + + * utimens.c (futimens): Robustify the previous patch, by checking + for known valid error numbers rather than observed invalid ones. + +2005-01-18 Jim Meyering + + * version-etc.c (version_etc_copyright): Update copyright date. + + * utimens.c (futimens): Account for the fact that futimes + can also fail with errno == ENOSYS or errno == ENOENT. + Patch from Dmitry V. Levin. + + Change the name of the robust chdir function from chdir to chdir_long. + * save-cwd.c: Include chdir-long.h rather than chdir.h. + (restore_cwd): Use chdir_long, not chdir. + * chdir-long.c: Renamed from chdir.c. + * chdir-long.h: Renamed from chdir.h. + [!defined PATH_MAX]: Define chdir_long to chdir on systems like the + Hurd. + +2005-01-18 Bob Proulx + + * obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to simplify + offsetof() macro construct to avoid compile failure with native HP-UX + 11.0 ANSI C compiler. + +2005-01-06 Bruno Haible + + * stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming, redundant + because stpncpy.m4 takes care of it. + +2004-01-24 Bruno Haible + + * progreloc.c (xstrdup): Define as strdup if no xmalloc should be used. + +2003-10-09 Bruno Haible + + * progreloc.c: Include xalloc.h instead of xmalloc.h. + +2005-01-06 Bruno Haible + + * fwriteerror.h (fwriteerror): Change specification to include fclose. + * fwriteerror.c: Include . + (fwriteerror): At the end, close the file stream. Record whether + stdout was already closed. + +2004-05-27 Bruno Haible + + * execute.c (environ): Declare if needed. + * pipe.c (environ): Likewise. + Reported by Michael Schloh von Bennewitz . + +2005-01-04 Paul Eggert + + * human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional + definitions to be after all include files, to avoid collisions. + Problem reported by Bob Proulx. + +2004-12-28 Paul Eggert + + * error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h"; + not needed. This removes a dependency on the gettext module. + [defined _LIBC]: Do not include ; not needed. + +2004-12-24 Paul Eggert + + * c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not + HAVE_DECL_STRTOLD. + +2004-12-23 Paul Eggert + + * argp-parse.c: Include . + (alignof, alignto): New macros. + (parser_init): Don't assume that void * is aligned sufficiently + for struct option. + + * getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no + need to extend the stack. + (YYINITDEPTH): New macro, so that the initial stack isn't overly + large. + +2004-12-22 Sergey Poznyakoff + + * argp-parse.c (parser_init): Avoid arithmetics on void pointers. + +2004-12-19 Paul Eggert + + * alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H. + Remove now-obsolete comment about AIX. + * getdate.y: Include only if HAVE_ALLOCA. + (YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA. + (YYMAXDEPTH): New macro. + +2004-12-18 Bruno Haible + + * fatal-signal.c (fatal_signals): Make non-const. + (init_fatal_signals): New function. + (uninstall_handlers, install_handlers): Ignore signals that were set to + SIG_IGN. + (at_fatal_signal): Call init_fatal_signals. + (init_fatal_signal_set): Likewise. Ignore signals that were set to + SIG_IGN. + Reported by Paul Eggert. + +2004-12-08 Paul Eggert + + * getdate.y (textint): New member "negative". + (time_zone_hhmm): New function. + Expect 14 shift-reduce conflicts, not 13. + (o_colon_minutes): New rule. + (time, zone): Use it to add support for +HH:MM, UTC+HH:MM. + (yylex): Set the "negative" member of signed numbers. + +2004-12-04 Paul Eggert + + Changes imported from coreutils. + * hard-locale.c: Assume exists. + Include "strdup.h". + (GLIBC_VERSION): New macro. + (hard_locale): Assume setlocale exists. + Rewrite to avoid #ifdef. + Use strdup rather than malloc + strcpy. + * human.c: Assume exists. + (human_readable): Assume localeconv exists. + +2004-12-01 Jakub Jelinek + + * mktime.c (__mktime_internal): If SEC_REQUESTED != SEC, + convert T2, not T. (Imported from libc.) + +2004-11-30 Paul Eggert + + * getcwd.c (is_ENAMETOOLONG): New macro. + (__getcwd.c): Don't restore errno; glibc doesn't. + [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd + first, falling back to our code only if its results look suspicious. + Ensure that the resulting buffer is only as large as necessary. + + * readutmp.c: Include readutmp.h first. + Include , since readutmp.h no longer does that. + * readutmp.h: Don't include , + , ; not needed to establish interface. + (errno): Remove decl. + (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed. + (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME, + UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros. + +2004-11-28 Simon Josefsson + + * base64.h, base64.c: New file. + +2004-11-27 Paul Eggert + + * getcwd.h: New file, which I forgot to check in on 2004-11-25. + +2004-11-25 Paul Eggert + + Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using + HP's ANSI C compiler. + * fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl. + Declaring int functions causes warnings on some modern systems and + shouldn't be needed to compile on ancient ones. + * same.c (MIN) [defined MIN]: Don't define, since it's already + defined. + + * getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but + with the following changes. + (__set_errno): Parenthesize properly. + Include . + (MIN, MAX, MATCHING_INO): New macros. + (__getcwd): Define with prototype, not K&R form. + Use heuristics to allocate default buffer on stack if possible. + If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2) + behavior, and to avoid the PATH_MAX limit when computing + ../../../../... + Use MATCHING_INO to compare inode number to file. + Check for arithmetic overflow in size calculations. + Fix bug in reallocation of dot array that caused getcwd to fail + on directories nested deeper than 75. + Be more careful about saving errno on error. + Do not use realloc; use only free+malloc, as this is a bit + more flexible and avoids a needless copy operation. + Do not inspect st_dev and st_ino for symbolic links; POSIX + doesn't specify the latter. + Check for closedir errors. + Avoid needless casts. + Use "#ifdef weak_alias" around weak_alias, to be like other + glibc code. + The following changes to getcwd.c have effect only when used in + gnulib; they have no effect inside glibc proper. + (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove, + as alloca isn't used. + (alloca, __alloca): Likewise. + [!_LIBC]: Include "getcwd.h", "mempcpy.h". + Include , , , + unconditionally, as gnulib assumes C89 or better. + Do not include . + (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove + no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or + better. + (NULL) [!defined NULL]: Remove; we assume C89 or better. + Include in a way that is compatible with modern Autoconf. + (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN): + New macros, if not already defined. + Include if _LIBC, not if __GNU_LIBRARY__. + Use "_LIBC", not "defined _LIBC", for consistency. + (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has + a mempcpy module. + (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros. + (GETCWD_RETURN_TYPE): Remove. All uses replaced by char *. + * xgetcwd.c: David MacKenzie's old code was removed, so give + credit only to Jim Meyering and adjust the copyright dates. + Do not include , , , + , , "pathmax.h". + Instead, include "xgetcwd.h" (first) and "getcwd.h". + (INITIAL_BUFFER_SIZE): Remove. + (xgetcwd): Rely on getcwd, since we now depend on a reliable one. + +2004-11-23 Jim Meyering + + * getopt_.h: Remove trailing blanks. + +2004-11-23 Paul Eggert + + * utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros. + (futimens): New function, which uses futimes if available. + (futimens, utimens): Support timespec==NULL, with same semantics + as utime and utimens. + * utimens.h (futimens): New decl. + +2004-11-23 Jim Meyering + + * __fpending.c: Add comment. + +2004-11-23 Sergey Poznyakoff + + * getopt_.h: Re-addition of __getopt_argv_const caused + redefinition warnings. To avoid them, include the defines + in `#if !defined __need_getopt ... #endif'. The only place + where __getopt_argv_const is used is in definitions + of getopt_long and getopt_long_only below, which are as well + protected by `#ifndef __need_getopt'. + [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef + __need_getopt after including and These + headers might have defined it. + +2004-11-20 Paul Eggert + + * getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID): + New macros. + (getopt, getopt_long, getopt_long_only, optarg, opterr, optind, + optopt): Use them instead of invoking ## directly; otherwise, the + symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt. + +2004-11-19 Bruno Haible + + * strtok_r.c: Move comments from here... + * strtok_r.h: ... to here. + +2004-11-17 Paul Eggert + + * realloc.c (rpl_realloc): Call 'free' if n==0, since realloc + might fail. Problem reported by Yoann Vandoorselaere. + * calloc.c (rpl_calloc): Defend against buggy calloc implementations + that mishandle size_t overflow. + +2004-11-16 Paul Eggert + + * canon-host.c: Include "strdup.h". + (canon_host): Use getaddrinfo if available, so that IPv6 works. + Use strdup instead of malloc/strcpy to duplicate strings. + + * human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit. + (human_space_before_unit): New constant. + * human.c (human_readable): Support it. + + * xgetcwd.c: Include , for PATH_MAX. + (xgetcwd): Set errno correctly when failing. + Work around Solaris 9 bug: getcwd sets errno==ERANGE even though + the failure is actually due to a PATH_MAX problem. + + Further getopt changes to make it more likely that glibc will + buy the changes back. + * getopt.c (POSIXLY_CORRECT): New constant. + (getopt): Use it, so to preserve glibc semantic + * getopt1.c (getopt_long, getopt_long_only): Arg is char * const * + when compiling for libc. + * getopt_.h (__getopt_argv_const): Bring it back. + (getopt_long, getopt_long_only): Use it. + + * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal): + New arg POSIXLY_CORRECT. All callers changed. + (getopt): Argv is now char * const *, as per standard. + (_getopt_internal_r, _getopt_internal): Argv is now char **, + not char *__getopt_argv_const *. + * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only, + _getopt_long_only_r): Likewise. + * getopt_.h (getopt, getopt_long, geopt_long_only): Likewise. + * getopt_int.h (_getopt_internal, _getopt_internal_r, + _getopt_long_r, _getopt_long_only_r): Likewise. + * getopt_.h (__getopt_argv_const): Remove. + (getopt): Argv is now char * const *, as per standard. + + * getdate.y (tORDINAL): New token. + (day, relunit): Allow it for relative times. + (relative_time_table): Use tORDINAL for ordinals. + +2004-11-15 Jim Meyering + + * closeout.c: Include "__fpending.h" once again. + Include . + (close_stdout): Don't fail just because stdout was closed initially, + since some programs don't write to stdout in the normal course of + operation (other than --version and --help), and we don't want this + function to make e.g. `touch file >&-' fail. + But do fail if it was closed and someone has tried to write to it. + E.g., `printf foo >&-' must fail. + +2004-11-11 Simon Josefsson + + * strtok_r.h, strtok_r.c: New file. + +2004-11-11 Paul Eggert + + * getopt_.h (__getopt_argv_const): New macro, to be used so that + we can stop lying to compilers about the constness of argv when we + are compiled outside glibc. + (getopt, getopt_long, getopt_long_only): Use it. + * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal, + getopt): Likewise. + * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only, + _getopt_long_only_r): Likewise. + * getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r, + _getopt_long_only_r): Likewise. + + * getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]: + Include and , and if available. + Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for + the other external symbols. + (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style + declaration, since the above renaming now works around collisions. + +2004-11-11 Jim Meyering + + * linebreak.c: Remove trailing blanks. + * alloca_.h: Likewise. + * acosl.c: Likewise. + * euidaccess.c: Likewise. + * allocsa.h: Likewise. + +2004-11-10 Paul Eggert + + * mktime.c (SHR): New macro, which is a portable + substitute for >> that should work even on Crays. + (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it. + Problem reported by Mark D. Baushke in + . + * getdate.y (SHR): Likewise. + (tm_diff): Use it. + * strftime.c (SHR): Likewise. + (tm_diff): Use it. + * quotearg.c (struct quoting_options): Use unsigned int for + quote_these_too, so that right shifts are well defined. All uses + changed. + +2004-11-10 Simon Josefsson + + * getaddrinfo.h, getaddrinfo.c: New files. + +2004-11-10 Jim Meyering + + Ensure that no close failure goes unreported. + * closeout.c (close_stdout): Always close stdout. I.e., don't + return early when it seems there's nothing to flush. + Don't include __fpending.h. + +2004-11-09 Paul Eggert + + * strftime.c (DO_MULTIBYTE): Check for wchar.h, too. + +2004-11-05 Bruno Haible + + * readlink.c: Include stddef.h, needed for size_t on Woe32. + Reported by Mark D. Baushke . + +2004-11-04 Bruno Haible + + 2004-09-11 Bruno Haible + * allocsa.valgrind: New file. + 2004-02-06 Bruno Haible + * allocsa.h (sa_alignof): Define differently with HP-UX cc, to + avoid a bug of this cc on HP-UX 10.20 dealing with enums. + Reported by Christopher Seip . + +2004-11-03 Paul Eggert + + * xreadlink.c (xreadlink): AIX and HP-UX readlink return -1 + with errno == ERANGE if the buffer is too small. + Problem reported by Mark D. Baushke. + +2004-11-02 Paul Eggert + + * xreadlink.c (MAXSIZE): New macro. + (xreadlink): Use it instead of SSIZE_MAX. Ensure initial buffer + size does not exceed MAXSIZE. Avoid cast. + As suggested by Mark D. Baushke in + , + if readlink fails with buffer size just under MAXSIZE, try again + with MAXSIZE. + +2004-11-02 Derek R. Price + and Paul Eggert + + * getdate.y [!TEST]: Include , since we use sprintf now. + (get_date): Overparenthesize to avoid GCC warning. + +2004-11-02 Bruno Haible + + * setenv.h (unsetenv): Define as a macro if the system's unsetenv() + function returns void. + +2004-11-01 Paul Eggert + + * getpass.c (fflush_unlocked, flockfile, funlockfile) + (funlockfile, fputs_unlocked, putc_unlocked): Don't define if + already declared. + +2004-10-29 Paul Eggert + + * getdate.y: Add support for TZ="foo" within a date string. + Fix some bugs near time_t boundaries. Reject dates with + out-of-range components, e.g., "Sept 31". + Include , "setenv.h", "xalloc.h". + (ISDIGIT_LOCALE): Remove; unused. + Note that the TZ and time functions used here are not reentrant. + (mktime_ok, get_tz): New functions. + (TZBUFSIZE): New constant. + (get_date): Parse leading TZ="foo". Reject out-of-range components;. + This requires that we sometimes generate our own TZ="XXX..." setting. + +2004-10-27 Derek R. Price + + * mktime.c (not_equal_tm): Remove redundant check. + +2004-10-24 Paul Eggert + + * getdate.y: Use Bison 1.875 features, and some minor + code cleanups. This change does not affect semantics. + Don't include ; no longer needed. + Don't include unlocked-io.h; only the "#if TEST" code uses + stdio, and performance isn't crucial there. + (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by + Bison 1.875 features as described below. + All uses of "PC." replaced by "pc->". + (YYSTYPE): Add a forward declaration. + (yylex, yyerror): Use full prototypes in forward decls. + Use "%pure-parser" rather than obsolescent "%pure_parser". + Use %parse-param and %lex-param instead of obsolescent + YYPARSE_PARAM and YYLEX_PARAM. + (meridian_table, month_and_day_table, time_units_table, + relative_time_table, time_zone_table, military_table, + lookup_zone, lookup_word, get_date): + Use NULL instead of 0 where appropriate. + (to_hour): Avoid abort (), to avoid a dependency on + stdlib.h. + (yyerror, yylex): Now accepts parser_control * arg. + (main) [TEST]: Use '\0' rather than 0 for char. + +2004-10-22 Paul Eggert + + * getpagesize.c (getpagesize): Don't assume exists. + It's now the caller's responsibility to handle the case where + !HAVE_GETPAGESIZE && !defined getpagesize. + + * mktime.c (leapyear): Arg is long int, not int. + +2004-10-18 Paul Eggert + + * argp-fs-xinl.c, argp-xinl.c: Update from glibc. + +2004-10-12 Simon Josefsson + + * getpass.c (fflush_unlocked, flockfile, funlockfile) + (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map + to real functions. + +2004-10-11 Yoann Vandoorselaere + + * vsnprintf.h: New file. + * vsnprintf.c: New file. + +2004-10-07 Bruno Haible + + * snprintf.c (snprintf): Avoid a memory allocation if the result fits + into the provided buffer. + +2004-10-06 Paul Eggert + + * diacrit.c, diacrit.h: Add GPL notice. + + * atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice. + * atanl.c (atanl): Keep the code as similar to glibc as possible. + * logl.c (logl): Keep the code as similar to glibc as possible. + This avoids a potential constant-folding bug. + +2004-10-05 Bruno Haible + + * strsep.h: Don't declare strsep() if HAVE_STRSEP. + +2004-10-04 Paul Eggert + + * xalloc.h (xmemdup): Renamed from xclone. All uses changed. + * xmalloc.c (xmemdup): Likewise. + * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC, + XFREE): Remove these long-obsolescent macros. + * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c + * xstrdup.c: Remove. + + * regex.c (re_comp): Cast gettext return value to char *, + Problem reported by Martin Neitzel via Mark D. Baushke. + +2004-10-04 Simon Josefsson + + * error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of + '#ifdef USE_UNLOCKED_IO'. + +2004-10-04 Paul Eggert + + * argmatch.c, closeout.c, error.c, exclude.c, getdate.y, + getndelim2.c, getpass.c, getusershell.c, linebuffer.c, + md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c, + regex.c, sha1.c, version-etc.c, yesno.c: + Include "unlocked-io.h" only if USE_UNLOCKED_IO. + * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now + the includer's responsibility. + + Sync from coreutils. + + * modechange.c (mode_compile): Don't decrement a pointer that + points to the start of a string, as the C Standard says the + resulting behavior is undefined. + + * backupfile.h (enum backuptype): Rename none -> no_backups, + simple -> simple_backups, numbered_existing -> + numbered_existing_backups, numbered -> numbered_backups + to avoid shadowing problems. All uses changed. + * argmatch.c (enum backuptype) [defined TEST]: Likewise. + * backupfile.c (check_extension, numbered_backup): + Rename locals to avoid shadowing 'basename'. + * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than + once. + + * .cppi-disable: Add getopt_.h, getopt_int.h. + * .cvsignore: Add getopt.h. + +2004-10-04 Simon Josefsson + + * memmem.h: New file. + * memmem.c: New file, taken from glibc. + +2004-10-02 Jim Meyering + + * dirfd.h, getpagesize.h: Add copyright notice. + +2004-10-01 Paul Eggert + + * snprintf.c: Remove comments as to why each header is needed. + +2004-10-01 Yoann Vandoorselaere + + * strsep.h: New file. + * strsep.c: New file. + +2004-10-01 Simon Josefsson + + * snprintf.c (snprintf): Handle size==0. + +2004-10-01 Simon Josefsson + Bruno Haible + + * snprintf.c: Include , , . + (snprintf): Declare 'args'. + +2004-09-30 Simon Josefsson + + * snprintf.h, snprintf.c: New files. + +2004-09-30 Sergey Poznyakoff + + * argp-help.c (canon_doc_option): Fixed coredump if *name==NULL + (hol_entry_help): Never translate an empty string. + Do not translate option tag (opt->name) if OPTION_NO_TRANS is set + * argp.h (OPTION_NO_TRANS): New option. + +2004-09-29 Oskar Liljeblad + + * xvasprintf.c: Include xalloc.h. + (xvasprintf): Use xalloc_die, not xmalloc_die. + +2004-09-28 Paul Eggert + + * dummy.c: Change copyright notice to FSF, and license to GPL. + +2004-09-13 Paul Eggert + + * argp-pvh.c (argp_program_version_hook): Provide initial value. + Problem reported by Bruno Haible in: + http://lists.gnu.org/archive/html/bug-tar/2004-09/msg00023.html + +2004-09-11 Paul Eggert + + * mempcpy.h: Wrap the entire include file inside #ifndef mempcpy, + in case some system header has #define'd it. Problem reported by + Soeren D. Schulze in + . + +2004-09-08 Bruno Haible + + * stdint_.h.in: New file, taken from GNU clisp. + +2004-09-08 Oskar Liljeblad + + * xvasprintf.h: New file. + * xvasprintf.c: New file. + * xasprintf.c: New file. + +2004-09-08 Bruno Haible + + * vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length + is > INT_MAX. + * vasprintf.c (vasprintf): Don't test for length > INT_MAX any more. + +2004-08-19 Paul Eggert + + Import from coreutils. + * userspec.c: Don't use , so that we don't use alloca on + strings on unbounded length. alloca's performance benefits aren't + that important here. + (V_STRDUP): Remove. + (parse_with_separator): New function, with most of the internals + of the old parse_user_spec. Allow user to omit both user and group, + for compatibility with FreeBSD. + Clone only the user name, not the entire spec. + Do not set *uid, *gid unless entirely successful. + Avoid memory leak in some failing cases. + Fix regression for USER.GROUP reported by Dmitry V. Levin in + + (parse_user_spec): Rewrite to use parse_with_separator. + +2004-08-12 Paul Eggert + + * argp-help.c, argp-parse.c: Use "gettext.h" instead of + its complicated substitute. + * argp-help.c: Include , for program_invocation_short_name + and program_invocation_name. + (__argp_basename) [!_LIBC]: Remove; the only use was + replaced by its body. + (__argp_short_program_name): Change condition from + !defined __argp_short_program_name to + ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME), + to match argp-namefrob.h. + (__argp_failure): Don't assume strerror_r returns char *. + * argp-parse.c (N_): Define unconditionally. + (argp_default_options): Fill out initializers with 0 to avoid + gcc warnings. + +2004-08-12 Simon Josefsson + + * getopt.c, getopt1.c: Remove ELIDE_CODE hack. + * getopt_.h: Renamed from getopt.h. + +2004-08-11 Paul Eggert + + Merge from coreutils. + + * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing + wmemchr or wmemcpy. Problem reported by Robert Dahlem + for Reliant Unix 5.43. + + * obstack.c: Include and if available. + (union fooround): Use uintmax_t, not long int. + The rest is a merge from libc: + [defined _LIBC]: Include . + (_obstack) [defined _LIBC]: Remove after 2.3.4. + + * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2. + + * strverscmp.c: Convert to UTF-8. + +2004-08-09 Paul Eggert + + * obstack.h (obstack_empty_p): + Don't assume that chunk->contents is suitably aligned. + * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk): + Likewise. Problem reported by Benno in + . + + * chown.c (rpl_chown): Work even if the file is writeable but not + readable. This could be improved further but it'd take some work. + +2004-08-08 Simon Josefsson + + * xgethostname.c: Don't include error.h (not used). + + * getpass.h: Add. + * getpass.c: Include getpass.h first. + +2004-08-08 Paul Eggert + + * xalloc-die.c: New files. + * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove. + All uses removed. + * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise. + Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c. + (_, N_, xalloc_die): Move to xalloc-die.c. + * userspec.c (parse_user_spaec): Use xstrdup rather than strdup, + so that we needn't mess with xalloc_msg_memory_exhausted. + + * sha1.h: Renamed from sha.h. + (SHA1_H): Renamed from _SHA_H. + (sha1_ctx): Renamed from sha_ctx. + (sha1_init_ctx): Renamed from sha_init_ctx. + (sha1_process_block): Renamed from sha_process_block. + (sha1_process_bytes): Renamed from sha_process_bytes. + (sha1_finish_ctx): Renamed from sha_finish_ctx. + (sha1_read_ctx): Renamed from sha_read_ctx. + (sha1_stream): Renamed from sha_stream. + (sha1_buffer): Renamed from sha_buffer. + * sha1.c: Likewise; renamed from sha.c. + Do not include . + Include rather than . + +2004-08-08 Bruno Haible + + * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from + FILESYSTEM_PREFIX_LEN. + * progreloc.c: Likewise. + * concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN. + +2004-08-06 Paul Eggert + + Merge from tar. + * argp-help.c (make_hol, hol_append): Don't assume that + SIZE_MAX is a valid preprocessor constant. + (__argp_basename): Change from "#ifndef _LIBC" + to "#ifndef __argp_short_program_name", so that + we don't compile these functions for tar. + + More merges from coreutils. + * raise.c, readtokens0.h, readtokens0.c, strftime.h, utimens.h, + utimens.c, utimecmp.h, utimecmp.c, xnanosleep.h, xnanosleep.c, + yesno.h: New files. + * addext.c: Remove; no longer needed. + * yesno.c, argmatch.h, argmatch.c, backupfile.h, backupfile.c, + euidaccess.c, filemode.c, closeout.c, dup2.c, exclude.c, + fileblocks.c, filemode.c, fnmatch.c, fnmtahc_loop.c, + fopen-safer.c, fsusage.c, fsusage.h, ftruncate.c, full-write.c, + getdate.y, getloadavg.c, getugroups.c, hard-locale.c, hard-locale.h, + hash.c, human.c, human.h, lchown.c, lchown.h, makepath.c, makepath.h, + md5.c, md5.h, memchr.c, memcoll.c, memrchr.c, modechange.c, + modechange.h, mountlist.c, mountlist.h, nanosleep.c, posixtm.c, + putenv.c, quotearg.c, quotearg.h, readtokens.c, readutmp.c, + readutmp.h, rmdir.c, safe-read.c, save-cwd.c, savedir.c, setenv.c, + sig2str.c, stat.c, strtoimax.c, strverscmp.c, userspec.c, utime.c, + version-etc.c., xgethostname.c, xmemcoll.c, xreadlink.c, xstrtod.c, + xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c: + Import changes from coreutils. + +2004-08-05 Paul Eggert + + Merge from coreutils. + + * .gdb-history: Remove; this doesn't belong here. + + * c-strtod.c, c-strtod.h, c-strtold.c, cycle-check.c, + cycle-check.h, dev-ino.h, canonicalize.h, canonicalize.c, + fcntl-safer.h, fcntl-safer.c, getcwd.c: New files. + + * dirname.h: Include . + (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN, + for consistency with POSIX terminology. All uses changed. + (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros. + (strip_trailing_slashes): Use bool for booleans. + * stripslash.c (strip_trailing_slashes): Likewise. + + * error.c: Work around bug in OpenBSD 3.4 sterror_r: it + sometimes returns a positive errno value even when it succeeds. + (print_errno_message) [!LIBC]: Fall back on strerror if + __strerror_r fails. + + * path-concat.c (mempcpy): Don't define if a system header defines it. + Don't include stdio.h, stdlib.h, unistd.h, strdup.h. + (longest_relative_suffix): New function. + (path_concat): Use it. Assume first argument is not NULL. + Port to DOS. Omit redundant separators. + Report an error instead of returning NULL. + Use mempcpy instead of memcpy. + (xpath_concat): Remove: not declared or used. + + * same.h: Include + (same_name): Return bool, not int. + * same.c (same_name): Likewise. + (errno): Don't declare; we assume C89 or better now. + + * stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros, + if not already defined. + + * xgetcwd.c (errno): Don't declare; we assume C89 or better now. + * dup-safer.c (errno): Likewise. + +2004-08-03 Paul Eggert + + * fatal.c, fatal.h: Remove as the "fatal" module wasn't used or + working. + +2004-08-03 Simon Josefsson + + * strdup.h: Only use HAVE_DECL_STRDUP if defined. + * progname.h: Don't include stdbool.h. + +2004-08-02 Simon Josefsson + + * getsubopt.h: New file, with comments from Bruno Haible. + * getsubopt.c: New file, from glibc, but slightly modified based on + suggestions from Paul Eggert . + +2004-08-01 Simon Josefsson + + * xgetdomainname.c: Include stdlib.h, for free(). + +2004-07-16 Simon Josefsson + + * dummy.c: New file. + +2004-07-16 Bruno Haible + + * backupfile.h: Add extern "C" for C++. + * closeout.h: Likewise. + * copy-file.h: Likewise. + * findprog.h: Likewise. + * full-write.h: Likewise. + * pathname.h: Likewise. + * progname.h: Likewise. + * stpcpy.h: Likewise. + * stpncpy.h: Likewise. + * strcase.h: Likewise. + * strstr.h: Likewise. + * xalloc.h: Likewise. + + * mbswidth.h: Add extern "C" for C++. + Reported by Albert Chin-A-Young . + +2004-07-09 Simon Josefsson + + * getndelim2.c: Include stddef.h, for ptrdiff_t. (FreeBSD 4.9 + failed without this.) + +2004-07-09 Paul Eggert + + * fchown-stub.c: New file. + +2004-06-24 Jim Meyering + + * obstack.h (obstack_base): Cast to (void *), per documentation. + +2004-06-22 Paul Eggert + + * argz.c, argz_.h: New files, which are autoupdated from libtool. + +2004-06-01 Jim Meyering + + * calloc.c: New file. + +2004-06-06 Paul Eggert + + * getdate.y (yylex): Allow space between sign and number. + Problem reported by Dan Jacobson. + +2004-06-01 Paul Eggert + and Jim Meyering + + Merge from coreutils CVS. + + * stat-macros.h: New file, with contents from file-type.h + and coreutils' system.h. + * file-type.c: Include "stat-macros.h". + * file-type.h (file_type): Move all macro definitions to new file, + stat-macros.h. + + * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]: + Wrap old code with this conditional. + [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown + function that does not dereference symlinks. + * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown. + + * xreadlink.c: Include xreadlink.h first, to catch .h file + dependency problems. + (xreadlink): Accept new arg SIZE, for efficiency. + All decls and uses changed. + * xreadlink.h: Include , for size_t. + + * .cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h, + gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h. + + * .cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h. + +2004-05-30 Paul Eggert + + * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these + macros to be defined. + (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if + the allocator returns NULL because the requested size is zero. + +2004-05-20 Paul Eggert + + * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this + var. Add comment explaining why libc still defines it. This + merges the following patch from glibc: + http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html + +2004-05-19 Paul Eggert + + * obstack.c (_obstack): Remove unused variable. It hasn't been + present in glibc since revision 1.1 of this file. + * obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast, + obstack_alignment_mask, obstack_alloc, obstack_base, + obstack_blank, obstack_blank_fast, obstack_chunk_size, + obstack_copy, obstack_copy0, obstack_finish, obstack_grow, + obstack_grow0, obstack_init, obstack_int_grow, + obstack_int_grow_fast, obstack_make_room, obstack_memory_used, + obstack_next_free, obstack_object_size, obstack_ptr_grow, + obstack_ptr_grow_fast, obstack_room): Remove declarations of + nonexistent functions. + +2004-05-17 Derek R. Price + Paul Eggert + + * argp-help.c, argp-parse.c: Assume rather than freecoding. + +2004-05-14 Bruno Haible + + * vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision + that consists of a '.' followed by an empty digit string. + Patch by Tor Lillqvist . + +2004-05-17 Paul Eggert + + Port obstack to the AS/400, where pointers are 16 bytes wide and + you cannot cast an integer to a valid pointer. This patch is + currently waiting to be integrated into glibc; see + . + + * obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove. + All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN. + (__BPTR_ALIGN, __PTR_ALIGN): New macros. + (struct obstack): temp member is now a union of a pointer and + an integer, instead of an integer. All integer uses changed. + This does not affect the physical layout of struct obstack, + except on hosts (like the AS/400) where the size or alignment of + void * is greater than that of ptrdiff_t. + (obstack_finish) [! (defined __GNUC__ && defined __STDC__ && + __STDC__)]: Store temporary in pointer member of union, not + integer member. + * obstack.c: Include , for offsetof. + (struct fooalign): Remove; it doesn't need a name. + (union fooround): Change double to long double, and add void *. + (DEFAULT_ALIGNMENT): Use offsetof to compute. + (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant, + not a macro. Hence the values are always int; so remove all + casts-to-int in uses. + +2004-05-16 Paul Eggert + Derek Price + + * alloca.c: Include , to get our interface. + * alloca_.h: Use __alloca on AIX, so that we don't have to + include first. Use C89 prototype for alloca; this + requires including for size_t. Use extern "C" if C++. + Use #elif for simplicity, since we can assume C89 now. + Don't try to source the system alloca.h since it will not be found + and to prevent recursively including its replacement. + * fnmatch.c: Include instead of opencoding. + * regex.c: Likewise. + +2004-05-16 Derek Price + Paul Eggert + + getline cleanup. This changes the getndelim2 API: both order of + arguments, and meaning of delim2 (now uses EOF, not 0, to indicate + no delimiter). + + * getline.c: Don't include stddef.h or stdio.h, since our + interface does that. + (getline): Always use getdelim, so that we don't have two + copies of this code. + * getndelim2.c: Include , , + if available. + (PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined. + (GETNDELIM2_MAXIMUM): New macro. + (getndelim2): Reorder arguments. delim==EOF now means no delimiter, + instead of the old practice of delim2==0. All callers changed. + Return -1 on overflow, instead of returning junk. + Do not set *linesize unless allocation succeeds. + * getndelim2.h: Do not include stddef.h; no longer needed, now + that we include sys/types.h. + * getnline.h: Likewise. + * getndelim2.h (GETNLINE_NO_LIMIT): New macro. + (getndelim2): Reorder arguments. + * getnline.c (getnline, getndelim): + Don't discard the NMAX argument. + (getnline): Invoke getndelim, to avoid code duplication. + * getnline.h (GETNLINE_NO_LIMIT): New macro, used instead + of (size_t) -1 by callers of the getnline family. + +2004-05-13 Paul Eggert + + * nanosleep.c (suspended): Change its type from int to + sig_atomic_t volatile. + (first_call): Make it private to rpl_nanosleep, and have it + be zero initially as that's a bit faster. + (my_usleep): Round up fractional times instead of truncating them, + as this is the usual meaning for 'sleep'. + + * gettime.c (gettime): Fall back on `time' if `gettimeofday' + doesn't work. + * settime.c: Include , for stime (on Solaris 8, anyway). + (ENOSYS): Define if not defined. + (settime): Fall back on stime if it exists and settimeofday fails. + But don't bother with fallbacks if a method fails with errno == EPERM. + +2004-05-11 Jim Meyering + + Prior to this change, the save_cwd caller required read access to the + current directory on most systems (ones with the fchdir function). + + * save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only + fails, try write-only, and finally, resort to using xgetcwd. + +2004-05-06 Paul Eggert + + * obstack.c, obstack.h: Import changes from libc. + +2004-04-28 Bruno Haible + + * findprog.c (find_in_path): Treat Cygwin like Windows, since it also + implicitly appends .exe to executables. + * localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now + accepts Windows pathnames. + * pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat + Cygwin like Windows, since it now accepts Windows pathnames. + * progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat + Cygwin like Windows, since it now accepts Windows pathnames. + Reported by Derek Robert Price . + +2004-04-20 Jim Meyering + + * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory. + +2004-04-20 Jim Meyering + Bruno Haible + + * localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak + memory when realloc fails. + +2004-04-18 Jim Meyering + + * readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure, + don't leak memory and do call END_UTMP_ENT. + +2004-04-11 Paul Eggert + + * inttostr.h: Include unconditionally, since we assume C89. + (CHAR_BIT): Remove, since we assume C89. + Include if available, as per current Autoconf CVS advice. + +2004-03-30 Paul Eggert + + * cloexec.h, cloexec.c (set_cloexec_flag): Return int + not bool, to be more consistent with Unix conventions. + Suggested by Bruno Haible. + + Merge from coreutils. + + * imaxtostr.c, inttostr.c, inttostr.h, offtostr.c, umaxtostr.c: + New files. + + * getdate.h: Include stdbool.h, and timespec.h instead of + the usual dance. + (get_date): Change signature to support fractional time stamps. + All callers changed. + * getdate.y: Include "getdate.h" first, as we can now + assume C89 and don't need to worry about 'const'. + Similarly, include "unlocked-io.h" near start, not in middle. + Include . + (textint.value): Use long int rather than int. + (textint.digits): Use size_t rather than int. + (BILLION, LOG10_BILLION): New constants. + (parser_control): New member rel_ns. Members day_ordinal, + time_zone, month, day, hour, minutes, rel_year, rel_month, + rel_day, rel_hour, rel_minutes, rel_seconds + are now long int, not int. Member seconds is now struct timespec, + not int. New member timespec_seen. Members dates_seen, days_seen, + local_zones_seen, rels_seen, times_seen, zones_seen are now size_t, + not int. + (%union.intval): Now long int, not int. + New member timespec. + (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens. + (seconds, signed_seconds, unsigned_seconds): New nonterminals. + (spec): Now is a timespec or an item list. + (timespec, items): New nonterminals. + (time, rel, relunit, number, get_date): + Add support for fractional seconds. + (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax. + (gmtime, localtime, mktime): Remove decls; not needed with C89. + (to_hour): First arg is now long int, not int. + (to_year): Returns long int, not int. + Don't treat year -70 like 70. + (tm_diff): Returns long int, not int. + (lookup_word): Use bool instead of int when appropriate. + (yylex): Use size_t for count, not int. + Detect overflow when parsing large integer constants. + Add support for fractions. + (get_date): Make pointers 'const' if possible. + Use more-portable code to detect integer overflow. + (main) [TEST]: Adjust to above changes. Test for localtime failure. + Don't use ctime; it's not reliable if the year has >4 digits. + + * human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set. + This is for compatibility with BSD. + + * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define. + (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise. + From coreutils' system.h. + + * userspec.c: Don't include "posixver.h". + (parse_user_spec): Fall back on USER.GROUP parsing, regardless + of POSIX version, as POSIX 1003.1-2001 allows that behavior as a + compatible extension. Simplify code by removing a boolean int + that was always nonzero if a string was nonnull. + +2004-03-30 Jim Meyering + + Merge from coreutils. + + * mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h. + + * readtokens.c (readtoken): Don't leak 64 bytes when reading + an empty input stream. + + * readtokens.c: Include . + (readtoken): Use `size_t' rather than int/long. + All callers adjusted. + Use `bool' rather than `int' where appropriate. + Use memset rather than an explicit loop. + Use x2nrealloc rather than xrealloc. + Allow the use of `\0' as a delimiter. + (readtokens): Likewise. + * readtokens.h (readtoken, readtokens): Update prototypes. + +2004-03-30 Bruno Haible + + * getloadavg.c (getloadavg): Don't assume setlocale returns + nonnull. + +2004-03-29 Paul Eggert + + Merge changes to getloadavg.c from coreutils and Emacs. + + * getloadavg.c [!defined HAVE_SETLOCALE] (setlocale): + Define to an expression, not to the empty string. + Include cloexec.h and xalloc.h. + (getloadavg): Restore LC_NUMERIC locale after setting it temporarily. + Use set_cloexec_flag rather than rolling our own. + * cloexec.c, cloexec.h: New files. + +2004-03-18 Paul Eggert + + * getopt.h: Sync with libc CVS. + +2004-03-18 Paul Eggert + Bruno Haible + + * mbswidth.h: Include only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H, + not on all platforms that have . + * mbswidth.c: Include and before . + +2004-03-09 Paul Eggert + + * argp-parse.c, getopt.c, getopt.h, getopt1.c: + Sync with libc CVS. + * getopt_int.h: New file, also synced from libc. + +2004-03-07 Paul Eggert + + * c-stack.c (SIGACTION_WORKS): New macro. Use it instead of long + '#if' expressions. Unlike the code it replaces, it does not + depend on (defined _SC_PAGESIZE). However, it does depend on + HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug + first reported by Jason Andrade in + . + +2004-01-18 Simon Josefsson + + * strdup.h: New file. + * strdup.c: Include it. + * path-concat.c: Include strdup.h. Drop strdup declaration. + * userspec.c: Include strdup.h. Drop strdup declaration. + +2004-02-06 Karl Berry + + * config.charset: update from gettext 0.14.1. + +2004-02-05 Paul Eggert + + Add comments and code, prompted by suggestions from Bruno Haible + for sh-quote. + * quotearg.h (quotearg_alloc): New decl. Improve the comments + describing the enum quoting_style values. + * quotearg.c (quotearg_alloc): New function. + (quotearg_buffer_restyled): Treat lone { and } as special. + Treat = as special. Work around bug with older shells + that "see" a '\' that is really the 2nd byte of a multibyte char. + Quote empty string with shell_quoting_style. + +2004-02-03 Bruno Haible + + * pipe.h: New file, from GNU gettext. + * pipe.c: New file, from GNU gettext. + +2004-01-27 Bruno Haible + + * execute.h: New file, from GNU gettext. + * execute.c: New file, from GNU gettext. + * w32spawn.h: New file, from GNU gettext. + +2004-01-23 Paul Eggert + + Exit-status fix from coreutils. + + Use exit_failure consistently in place of EXIT_FAILURE, + so that program exit statuses are consistent on failure. + + * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]: + Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE. + * argmatch.h: Comment fix to match the above. + * obstack.c (obstack_exit_failure) [!defined _LIBC]: + Now a macro referring to exit_failure, instead of a separate + variable. Include "exitfail.h" to get it. + * xstrtol.h: Include "exitfail.h". + (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2. + + * long-options.c (parse_long_options): Use prototype + for usage function arg. Pass it EXIT_SUCCESS rather than 0, + for clarity. + +2004-01-21 Jim Meyering + + * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal + so as not to conflict with a different-sized __mktime_internal + function in GNU libc. + * timegm.c (__mktime_internal) [!_LIBC]: Likewise. + Problem building statically-linked `ls' reported by Michael Brunnbauer. + +2004-01-18 Paul Eggert + + Merge from diffutils. + + * file-type.c (file_type): Add typed memory objects. + * file-type.h (S_TYPEISTMO): New macro. + + * c-stack.h (c_stack_action): Remove argv argument. + * c-stack.c (c_stack_action): Likewise. All uses changed. + (die): Don't calculate message unless segv_action returns. + (get_stack_location, min_address_from_argv, max_address_from_argv, + volatile stack_base, volatile_stack_size): Remove. + (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume + that every segmentation violation is a stack overflow. (Ouch!) + See Debian bug 136249 (still outstanding) for more info about why + HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels. + +2003-11-30 Bruno Haible + + Safer stack allocation. + * setenv.c: Include allocsa.h. + (alloca): Remove fallback definition. + (freea): Remove macro. + (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa + instead of freea. + +2003-10-17 Bruno Haible + + * binary-io.h: Avoid warnings on Cygwin. + +2003-12-28 Bruno Haible + + * wait-process.c (wait_subprocess): Add ignore_sigpipe argument. + * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially. + +2003-11-28 Bruno Haible + + * wait-process.c (cleanup_slaves): Use ANSI C declaration. + +2003-11-27 Bruno Haible + + * wait-process.c: On Windows, include windows.h. Needed on mingw. + +2003-11-17 Bruno Haible + + * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch. + +2003-11-24 Bruno Haible + + * xallocsa.h: New file, from GNU gettext. + * xallocsa.c: New file, from GNU gettext. + +2003-11-24 Bruno Haible + + * allocsa.h: New file, from GNU gettext. + * allocsa.c: New file, from GNU gettext. + +2003-11-24 Bruno Haible + + * eealloc.h: New file. + +2004-01-15 Jim Meyering + + Merge from coreutils. + + * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These + days, gcc-3.x does better all by itself. Patch from Dean Gaudet: + http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html + + * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new, + optional configure-time default. + + * version-etc.c (version_etc_copyright): Update copyright date. + + * xreadlink.c (xreadlink): Correct outdated comment. + +2004-01-15 Paul Eggert + + Merge from coreutils. + + * posixver.c: Include posixver.h. + + * same.c: Include , . + (_POSIX_NAME_MAX): Define if not defined. + (MIN): New macro. + (same_name): If file names are silently truncated, report + that the file names are the same if they are the same after + the silent truncation. + + * xstrtod.h (xstrtod): Accept an extra arg, specifying the + conversion function. + * xstrtod.c (xstrtod): Likewise. All callers changed to + include c-strtod.h and use c_strtod. Don't include stdlib.h; no + longer needed. + +2004-01-14 Paul Eggert + + * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided + with like-named macro in fnmatch.c. + (EXT): Use an internal constant instead. + + Merge fnmatch patches from glibc. + * fnmatch.c (mbsinit): Remove define. + Add libc_hidden_ver (__fnmatch, fnmatch). + * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate. + Adjust to renaming of collseq_table_lookup to __collseq_table_lookup. + +2003-12-14 Karl Berry + + * config.charset: update from gettext-runtime. + +2003-12-03 Paul Eggert + + * getgroups.c (getgroups): xmalloc takes one argument, not two. + Bug reported by Alfred M. Szmidt. + +2003-11-29 Karl Berry + + * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc. + +2003-11-23 Paul Eggert + Bruno Haible + + * printf-parse.h: Don't include sys/types.h. + (ARG_NONE): New macro. + (char_directive): Change type of *arg_index fields to size_t. + * printf-parse.c: Don't include sys/types.h. + (SSIZE_MAX): Remove macro. + (PRINTF_PARSE): Change the type of the arg_index variables to size_t. + Remove unnecessary overflow check. + * vasnprintf.c (VASNPRINTF): Update for type change of *arg_index + fields. + +2003-11-24 Paul Eggert + + * alloca.c: Remove dependency on xalloc module. + (xalloc_die): Remove. + (memory_full) [!defined emacs]: New macro. + [!defined emacs]: Don't include xalloc.h. + (alloca): Invoke memory_full, not xalloc_die, if malloc fails or + address arithmetic overflows. Change datatypes a bit to avoid + unnecessary casts. + +2003-11-22 Jim Meyering + + * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/. + +2003-11-17 Bruno Haible + + * vasnprintf.c (alloca): Remove fallback definition. + (freea): Remove definition. + (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes. + Reported by Paul Eggert. + +2003-11-17 Jim Meyering + + On systems without utime and without a utimes function capable of + dealing with a NULL struct utimbuf* argument, this utime replacement + could -- in unusual circumstances -- leak a file descriptor. + * utime.c: Include and . + (utime_null): Be sure to close `fd' and to preserve errno. + Reported by Geoff Collyer via Arnold Robbins. + +2003-11-16 Paul Eggert + Bruno Haible + + Protect against address arithmetic overflow. + * printf-args.h: Include stddef.h. + (arguments): Change type of field 'count' to size_t. + * printf-args.c (printf_fetchargs): Use size_t instead of + 'unsigned int' where appropriate. + * printf-parse.h: Include sys/types.h. + (char_directive): Change type of *arg_index fields to ssize_t. + (char_directives): Change type of fields 'count', max_*_length to + size_t. + * printf-parse.c: Include sys/types.h and xsize.h. + (SSIZE_MAX): Define fallback value. + (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t + instead of 'int' where appropriate. Check a_allocated, d_allocated + against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1. + * vasnprintf.c: Include xsize.h. + (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate. + Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against + overflow. Avoid wraparound when converting a width or precision from + decimal to binary. + +2003-11-16 Bruno Haible + + Update from GNU gettext. + * printf-parse.c: Generalize to it can be compiled for wide strings. + (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros. + * vasnprintf.c: Generalize to it can be compiled for wide strings. + (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF, + SNPRINTF): New macros. + Don't include if the file is used inside libintl. + (local_wcslen): New function, for Solaris 2.5.1. + (VASNPRINTF): Use it instead of wcslen. + +2003-11-16 Bruno Haible + + * xsize.h (xmax): New function. + (xsum, xsum3, xsum4): Declare as "pure" functions. + +2003-11-12 Paul Eggert + + * xalloc.h: Do not include or . + (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for + the heuristic, rather than PTRDIFF_MAX and SIZE_MAX. This + heuristic is just as accurate as far as we know, and it removes a + dependency on size_max.m4 and ptrdiff_max.m4. + +2003-11-12 Paul Eggert + + * xstrtol.c (__xstrtol): Remove "break" immediately after + "return", to pacify some unknown compiler. Problem reported + by Joerg Schilling. + +2003-11-11 Bruno Haible + + * xsize.h (SIZE_MAX): Remove fallback definition. + * xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are + defined. + +2003-11-10 Paul Eggert + + * xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX && + PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have + rejected some allocations of exactly SIZE_MAX - 2 bytes. + From Bruno Haible. + [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX, + not (size_t) -1, since it's defined here. + +2003-11-06 Paul Eggert + + * xalloc.h [HAVE_STDINT_H]: Include . + (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]: + Reject sizes of exactly SIZE_MAX bytes. + * xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX + is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts. + +2003-11-05 Bruno Haible + + * xsize.h: Include limits.h, to avoid a possible collision with + SIZE_MAX defined in on Solaris. + +2003-11-04 Bruno Haible + + * xsize.h: New file. + * linebreak.c: Include xsize.h. + (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc() + argument for overflow. + Suggested by Paul Eggert. + +2003-10-31 Bruno Haible + + * wait-process.c (wait_process): Use waitid with WNOWAIT if available, + to avoid (extremely rare) race condition. + Suggested by Paul Eggert. + 2003-11-03 Jim Meyering * userspec.c: Include "userspec.h". @@ -234,17 +1882,17 @@ 2003-10-12 Paul Eggert - * lib/xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls. + * xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls. (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate, and define in terms of the other primitives. - * lib/xmalloc.c: Include stdbool.h; do not include exit.h. + * xmalloc.c: Include stdbool.h; do not include exit.h. (SIZE_MAX): Define if not already defined. (array_size_overflow): New function. (xalloc_die): Abort instead of exiting if 'error' returns. (xnmalloc, xnrealloc, xzalloc, xclone): New functions. (xmalloc, xrealloc): Use them. (xcalloc): Check for address arithmetic overflow. - * lib/xstrdup.c (xstrdup): Use xclone, since memcpy should be + * xstrdup.c (xstrdup): Use xclone, since memcpy should be a bit faster than strcpy. 2003-10-08 Paul Eggert @@ -1036,11 +2684,11 @@ Merge some files from coreutils. These changes were originally made by Jim Meyering. - * lib/acl.c: Include before ; + * acl.c: Include before ; many older Unixes require this. - * lib/alloca.c (alloca): Remove cast to argument of free; + * alloca.c (alloca): Remove cast to argument of free; no longer needed in C89. - * lib/alloca_.h, lib/regex.h: Fix white space to match + * alloca_.h, regex.h: Fix white space to match what GNU indent does. 2003-08-05 Paul Eggert @@ -4521,6 +6169,8 @@ alert, backslash, formfeed, and vertical tab unnecessarily in shell quoting style. -Local Variables: -version-control: never -End: + +Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. +Copying and distribution of this file, with or without modification, +are permitted provided the copyright notice and this notice are preserved.