+2005-08-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (re_compile_fastmap_iter, init_dfa, init_word_char):
+ (optimize_subexps, lower_subexp):
+ Don't assume 1<<31 has defined behavior on hosts with 32-bit int,
+ since the signed shift might overflow. Use 1u<<31 instead.
+ * regex_internal.h (bitset_set, bitset_clear, bitset_contain): Likewise.
+ * regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top):
+ Likewise.
+ * regcomp.c (optimize_subexps, lower_subexp):
+ Use CHAR_BIT rather than 8, for clarity.
+ * regexec.c (check_dst_limits_calc_pos_1):
+ (check_subexp_matching_top): Likewise.
+ * regcomp.c (init_dfa): Make table_size unsigned, so that we don't
+ have to worry about portability issues when shifting it left.
+ Remove no-longer-needed test for table_size > 0.
+ * regcomp.c (parse_sub_exp): Do not shift more bits than there are
+ in a word, as the resulting behavior is undefined.
+ * regexec.c (check_dst_limits_calc_pos_1): Likewise;
+ in one case, a <= should have been an <, and in another case the
+ whole test was missing.
+ * regex_internal.h (BYTE_BITS): Remove. All uses changed to
+ the standard name CHAR_BIT.
+ * regexec.c (match_ctx_add_entry): Don't assume that ~0 == -1;
+ this is not true on one's complement and signed-magnitude hosts.
+
+ * regex_internal.h (re_sub_match_top_t): Remove unused member
+ next_last_offset.
+ (struct re_dfa_t): Remove unused member states_alloc.
+ * regcomp.c (init_dfa): Don't initialize unused members.
+
+2005-08-31 Bruno Haible <bruno@clisp.org>
+
+ * strstr.c: Include <stddef.h>, for NULL.
+ * strcasestr.c: Likewise.
+ Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
+
+2005-08-30 "Oskar Liljeblad" <oskar@osk.mine.nu>
+
+ * iconvme.h: Add prototype for iconv_alloc.
+
+2005-08-29 Simon Josefsson <jas@extundo.com>
+
+ * iconvme.c: Fix errno.
+
+2005-08-29 "Oskar Liljeblad" <oskar@osk.mine.nu>
+
+ * iconvme.c: Split iconv_string into iconv_alloc.
+
+2005-08-27 Jim Meyering <jim@meyering.net>
+
+ * fopen-safer.c: Merge minor changes from coreutils.
+ * dup-safer.c: Likewise.
+ * fd-safer.c: Likewise.
+
+ Merge from coreutils.
+ * stdio--.h: New file.
+ * stdlib--.h: New file.
+ * mkstemp-safer.c: New file.
+
+ GNU tar needs these.
+ * pipe-safer.c: New file.
+ * creat-safer.c: New file.
+ * fcntl--.h (creat): Define to creat_safer.
+ * fcntl-safer.h: Include <sys/types.h> and declare creat_safer.
+ * unistd--.h (pipe): Define to pipe_safer.
+ * unistd-safer.h: Declare pipe_safer.
+
+2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex_internal.h: Remove all references to
+ RE_NO_INTERNAL_PROTOTYPES; no longer neeeded now that we assume C89
+ or better.
+ (bitset_not, bitset_merge, bitset_not_merge):
+ (bitset_mask, re_string_allocate, re_string_construct):
+ (re_string_reconstruct, re_string_destruct, re_string_elem_size_at):
+ (re_string_char_size_at, re_string_wchar_at, re_string_peek_byte_case):
+ (re_string_fetch_byte_case, re_node_set_alloc, re_node_set_init_1):
+ (re_node_set_init_2, re_node_set_init_copy, re_node_set_add_intersect):
+ (re_node_set_init_union, re_node_set_merge, re_node_set_insert):
+ (re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
+ (re_node_set_remove_at, re_dfa_add_node, re_acquire_state):
+ (re_acquire_state_context):
+ Remove unnecessary forward decls.
+ (re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at):
+ Put __attribute at function definition,
+ now that the function decl has been removed.
+ * lib/regex_internal.c (re_string_peek_byte_case):
+ (re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains):
+ Likewise.
+
+2005-08-26 Simon Josefsson <jas@extundo.com>
+
+ * getpass.c: Use _WIN32 instead of WIN32, suggested by Bruno
+ Haible <bruno@clisp.org>.
+
+2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regexec.c (set_regs): Don't alloca with an unbounded size.
+
+ alloca modernization/simplification for regex.
+ * regex.c: Remove portability cruft for alloca. This no longer
+ needs to be at the start of the file, and can be moved into
+ regex_internal.h and simplified.
+ * regex_internal.h: Include <alloca.h>.
+ (__libc_use_alloca) [!defined _LIBC]: New macro.
+ * regexec.c (build_trtable): Remove "#ifdef _LIBC", since the code
+ now works outside glibc.
+
+2005-08-24 Simon Josefsson <jas@extundo.com>
+
+ * getpass.c: Add WIN32 implementation. Conditionalize use of
+ termios.h, tcgetattr, tcsetattr and __fsetlocking. Remove some
+ GLIBC specific code.
+
+2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Make regex safe for g++. This fixes one real bug (an "err"
+ that should have been "*err"). g++ problem reported by
+ Sam Steingold.
+ * regex_internal.h (re_calloc): New macro, consistent with
+ re_malloc etc. All callers of calloc changed to use re_calloc.
+ * regex_internal.c (build_wcs_upper_buffer): Return reg_errcode_t,
+ not int. All callers changed.
+ * regcomp.c (re_compile_fastmap_iter): Don't use alloca (mb_cur_max);
+ just use an array of size MB_LEN_MAX.
+ * regexec.c (push_fail_stack): Use re_realloc, not realloc.
+ (find_recover_state): Change "err" to "*err"; this fixes what
+ appears to be a real bug.
+ (check_arrival_expand_ecl_sub): Be consistent about reg_errcode_t
+ versus int.
+
+2005-08-25 Jim Meyering <jim@meyering.net>
+
+ * open-safer.c: Include <config.h>.
+ Otherwise, we'd lose LARGEFILE support in any file using
+ e.g. "fcntl--.h"
+
+2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (regerror): 2nd arg is 'restrict', as per POSIX.
+ * regex.h (regerror): Likewise.
+
+ * regex.c: Do not include <sys/types.h>, as POSIX no longer
+ requires this. (The code never needed it.)
+
+ * regcomp.c, regex_internal.c, regex_internal.h, regexec.c:
+ All uses of recently-renamed identifiers changed to use the new,
+ POSIX-compliant names. The code will build and run just fine
+ without these changes, but it's better to eat our own dog food
+ and use the standard-conforming names.
+
+ * regex.h: Fix a multitude of POSIX name space violations.
+ These changes have an effect only for programs that define
+ _POSIX_C_SOURCE, _POSIX_SOURCE, or _XOPEN_SOURCE; they
+ do not change anything for programs compiled in the normal way.
+ Also, there is no effect on the ABI.
+
+ (_REGEX_SOURCE): New macro.
+ Do not include <stddef.h> if _XOPEN_SOURCE and VMS are both
+ defined and _GNU_SOURCE is not; this fixes a name space violation.
+
+ Rename the following macros to obey POSIX requirements.
+ The old names are still visible as macros if _REGEX_SOURCE is defined.
+ (REG_BACKSLASH_ESCAPE_IN_LISTS): renamed from
+ RE_BACKSLASH_ESCAPE_IN_LISTS.
+ (REG_BK_PLUS_QM): renamed from RE_BK_PLUS_QM.
+ (REG_CHAR_CLASSES): renamed from RE_CHAR_CLASSES.
+ (REG_CONTEXT_INDEP_ANCHORS): renamed from RE_CONTEXT_INDEP_ANCHORS.
+ (REG_CONTEXT_INDEP_OPS): renamed from RE_CONTEXT_INDEP_OPS.
+ (REG_CONTEXT_INVALID_OPS): renamed from RE_CONTEXT_INVALID_OPS.
+ (REG_DOT_NEWLINE): renamed from RE_DOT_NEWLINE.
+ (REG_DOT_NOT_NULL): renamed from RE_DOT_NOT_NULL.
+ (REG_HAT_LISTS_NOT_NEWLINE): renamed from RE_HAT_LISTS_NOT_NEWLINE.
+ (REG_INTERVALS): renamed from RE_INTERVALS.
+ (REG_LIMITED_OPS): renamed from RE_LIMITED_OPS.
+ (REG_NEWLINE_ALT): renamed from RE_NEWLINE_ALT.
+ (REG_NO_BK_BRACES): renamed from RE_NO_BK_BRACES.
+ (REG_NO_BK_PARENS): renamed from RE_NO_BK_PARENS.
+ (REG_NO_BK_REFS): renamed from RE_NO_BK_REFS.
+ (REG_NO_BK_VBAR): renamed from RE_NO_BK_VBAR.
+ (REG_NO_EMPTY_RANGES): renamed from RE_NO_EMPTY_RANGES.
+ (REG_UNMATCHED_RIGHT_PAREN_ORD): renamed from
+ RE_UNMATCHED_RIGHT_PAREN_ORD.
+ (REG_NO_POSIX_BACKTRACKING): renamed from RE_NO_POSIX_BACKTRACKING.
+ (REG_NO_GNU_OPS): renamed from RE_NO_GNU_OPS.
+ (REG_DEBUG): renamed from RE_DEBUG.
+ (REG_INVALID_INTERVAL_ORD): renamed from RE_INVALID_INTERVAL_ORD.
+ (REG_IGNORE_CASE): renamed from RE_ICASE. This renaming is a bit
+ unusual, since we can't clash with the POSIX REG_ICASE.
+ (REG_CARET_ANCHORS_HERE): renamed from RE_CARET_ANCHORS_HERE.
+ (REG_CONTEXT_INVALID_DUP): renamed from RE_CONTEXT_INVALID_DUP.
+ (REG_NO_SUB): renamed from RE_NO_SUB.
+ (REG_SYNTAX_EMACS): renamed from RE_SYNTAX_EMACS.
+ (REG_SYNTAX_AWK): renamed from RE_SYNTAX_AWK.
+ (REG_SYNTAX_GNU_AWK): renamed from RE_SYNTAX_GNU_AWK.
+ (REG_SYNTAX_POSIX_AWK): renamed from RE_SYNTAX_POSIX_AWK.
+ (REG_SYNTAX_GREP): renamed from RE_SYNTAX_GREP.
+ (REG_SYNTAX_EGREP): renamed from RE_SYNTAX_EGREP.
+ (REG_SYNTAX_POSIX_EGREP): renamed from RE_SYNTAX_POSIX_EGREP.
+ (REG_SYNTAX_ED): renamed from RE_SYNTAX_ED.
+ (REG_SYNTAX_SED): renamed from RE_SYNTAX_SED.
+ (_REG_SYNTAX_POSIX_COMMON): renamed from _RE_SYNTAX_POSIX_COMMON.
+ (REG_SYNTAX_POSIX_BASIC): renamed from RE_SYNTAX_POSIX_BASIC.
+ (REG_SYNTAX_POSIX_MINIMAL_BASIC): renamed from
+ RE_SYNTAX_POSIX_MINIMAL_BASIC.
+ (REG_SYNTAX_POSIX_EXTENDED): renamed from RE_SYNTAX_POSIX_EXTENDED.
+ (REG_SYNTAX_POSIX_MINIMAL_EXTENDED): renamed from
+ RE_SYNTAX_POSIX_MINIMAL_EXTENDED.
+ (REG_DUP_MAX): renamed from RE_DUP_MAX. No need to undef it.
+ (REG_UNALLOCATED): Renamed from REGS_UNALLOCATED.
+ (REG_REALLOCATE): Renamed from REGS_REALLOCATE.
+ (REG_FIXED): Renamed from REGS_FIXED.
+ (REG_NREGS): Renamed from RE_NREGS.
+
+ (REG_ICASE, REG_NEWLINE, REG_NOSUB): Do not depend on the values
+ of other REG_* macros, since POSIX says the user is allowed to
+ #undef these macros selectively.
+
+ (reg_errcode_t): Update comment stating what other tables need
+ to be consistent.
+
+ Rename the following enum values to obey POSIX requirements.
+ The old names are still visible as macros.
+ (_REG_ENOSYS): Renamed from REG_ENOSYS. Define even if _XOPEN_SOURCE
+ is not defined, since GNU is supposed to be a superset of POSIX as
+ much as possible, and since we want reg_errcode_t to be a signed
+ type for implementation consistency.
+ (_REG_NOERROR): Renamed from REG_NOERROR.
+ (_REG_NOMATCH): Renamed from REG_NOMATCH.
+ (_REG_BADPAT): Renamed from REG_BADPAT.
+ (_REG_ECOLLATE): Renamed from REG_ECOLLATE.
+ (_REG_ECTYPE): Renamed from REG_ECTYPE.
+ (_REG_EESCAPE): Renamed from REG_EESCAPE.
+ (_REG_ESUBREG): Renamed from REG_ESUBREG.
+ (_REG_EBRACK): Renamed from REG_EBRACK.
+ (_REG_EPAREN): Renamed from REG_EPAREN.
+ (_REG_EBRACE): Renamed from REG_EBRACE.
+ (_REG_BADBR): Renamed from REG_BADBR.
+ (_REG_ERANGE): Renamed from REG_ERANGE.
+ (_REG_ESPACE): Renamed from REG_ESPACE.
+ (_REG_BADRPT): Renamed from REG_BADRPT.
+ (_REG_EEND): Renamed from REG_EEND.
+ (_REG_ESIZE): Renamed from REG_ESIZE.
+ (_REG_ERPAREN): Renamed from REG_ERPAREN.
+ (REG_ENOSYS, REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE):
+ (REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN):
+ (REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND):
+ (REG_ESIZE, REG_ERPAREN): Now macros, not enum constants.
+
+ (_REG_RE_NAME, _REG_RM_NAME): New macros.
+ (REG_TRANSLATE_TYPE): Renamed from RE_TRANSLATE_TYPE. All uses
+ changed. But support the old name if the new one is not defined
+ and if _REGEX_SOURCE.
+
+ Change the following member names in struct re_pattern_buffer.
+ The old names are still supported if !_REGEX_SOURCE.
+ The new names are always supported, regardless of _REGEX_SOURCE.
+ (re_buffer): Renamed from buffer.
+ (re_allocated): Renamed from allocated.
+ (re_used): Renamed from used.
+ (re_syntax): Renamed from syntax.
+ (re_fastmap): Renamed from fastmap.
+ (re_translate): Renamed from translate.
+ (re_can_be_null): Renamed from can_be_null.
+ (re_regs_allocated): Renamed from regs_allocated.
+ (re_fastmap_accurate): Renamed from fastmap_accurate.
+ (re_no_sub): Renamed from no_sub.
+ (re_not_bol): Renamed from not_bol.
+ (re_not_eol): Renamed from not_eol.
+ (re_newline_anchor): Renamed from newline_anchor.
+
+ Change the following member names in struct re_registers.
+ The old names are still supported if !_REGEX_SOURCE.
+ The new names are always supported, regardless of _REGEX_SOURCE.
+ (rm_num_regs): Renamed from num_regs.
+ (rm_start): Renamed from start.
+ (rm_end): Renamed from end.
+
+ (re_set_syntax, re_compile_pattern, re_compile_fastmap):
+ (re_search, re_search_2, re_match, re_match_2, re_set_registers):
+ Prepend __ to parameter names.
+
+ Undo yesterday's changes.
+
+2005-08-24 Jim Meyering <jim@meyering.net>
+
+ Sync from coreutils.
+ * fcntl--.h, fcntl-safer.h, open-safer.c: New files.
+
+2005-08-21 Bruno Haible <bruno@clisp.org>
+
+ * lock.h: Add multiple inclusion guard.
+ * tls.h: Add multiple inclusion guard.
+
+2005-08-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.h (REG_NOSYS)
+ [!defined _XOPEN_SOURCE && 200112L <= _POSIX_C_SOURCE]:
+ Define, since POSIX requires it as of 2001.
+ (_REG_ENOSYS) [! (defined _XOPEN_SOURCE || 200112L <= _POSIX_C_SOURCE)]:
+ New private symbol, used to keep the enum signed in all cases.
+ * regex.h (RE_NO_EMPTY_RANGES): Fix doc bug reported by James Youngman
+ in <http://lists.gnu.org/archive/html/bug-gnulib/2005-07/msg00132.html>.
+
+ * regex_internal.c (re_string_skip_chars, register_state):
+ (calc_state_hash):
+ Remove forward decls; no longer needed now that we use prototypes.
+ * regexec.c (acquire_init_state_context, check_halt_node_context):
+ (proceed_next_node, pop_fail_stack, sub_epsilon_src_nodes):
+ (clean_state_log_if_needed): Likewise.
+
+2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems reported by Sam Steingold in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00007.html>.
+ * regexec.c (sift_states_bkref): Fix portability bug: the code
+ assumed that reg_errcode_t is a signed type, which is not
+ necessarily true if _XOPEN_SOURCE is not defined.
+ * regex_internal.c (calc_state_hash): Put 'inline' before type, since
+ some compilers warn about it otherwise.
+
+2005-08-20 Jim Meyering <jim@meyering.net>
+
+ * regexec.c (regexec, re_search_stub) [!_LIBC]: Omit declaration
+ of unused local, dfa.
+
+2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (create_initial_state): Remove duplicate decl.
+ (init_word_char, create_initial_state, duplicate_node_closure):
+ (fetch_token, peek_token_bracket, build_range_exp):
+ (build_collating_symbol): Remove forward decls; no longer needed
+ now that we use prototypes.
+
+ * regcomp.c:
+ (re_compile_pattern, re_set_syntax, re_compile_fastmap):
+ (re_compile_fastmap_iter, regcomp, regerror, regfree):
+ (re_compile_internal, init_dfa, init_word_char, free_workarea_compile):
+ (create_initial_state, optimize_utf8, analyze, postorder, preorder):
+ (optimize_subexps, lower_subexps, lower_subexp, calc_first, calc_next):
+ (link_nfa_nodes, duplicate_node_closure, search_duplicated_node):
+ (duplicate_node, calc_inveclosure, calc_eclosure, calc_eclosure_iter):
+ (fetch_token, peek_token, peek_token_bracket, parse, parse_reg_exp):
+ (parse_branch, parse_expression, parse_sub_exp, parse_dup_op):
+ (build_range_exp, build_collating_symbol, parse_bracket_exp):
+ (parse_bracket_element, parse_bracket_symbol, build_equiv_class):
+ (build_charclass, build_charclass_op, fetch_number, create_tree):
+ (create_token_tree, mark_opt_subexp, duplicate_tree):
+ Use prototypes rather than old-style definitions.
+
+ * regex_internal.c:
+ (re_string_allocate, re_string_construct, re_string_realloc_buffers):
+ (re_string_construct_common, build_wcs_buffer, build_wcs_upper_buffer):
+ (re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
+ (re_string_reconstruct, re_string_peek_byte_case):
+ (re_string_fetch_byte_case, re_string_destruct, re_string_context_at):
+ (re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
+ (re_node_set_init_copy, re_node_set_add_intersect):
+ (re_node_set_init_union, re_node_set_merge, re_node_set_insert):
+ (re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
+ (re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
+ (re_acquire_state, re_acquire_state_context, register_state):
+ (create_ci_newstate, create_cd_newstate, free_state):
+ Likewise.
+ * regexec.c (regexec, re_match, re_search, re_match_2, re_search_2):
+ (re_search_2_stub, re_search_stub, re_copy_regs, re_set_registers):
+ (re_search_internal, prune_impossible_nodes):
+ (acquire_init_state_context, check_matching, static):
+ (check_halt_node_context, check_halt_state_context, proceed_next_node):
+ (push_fail_stack, pop_fail_stack, set_regs, free_fail_stack_return):
+ (update_regs, sift_states_backward, build_sifted_states):
+ (clean_state_log_if_needed, merge_state_array):
+ (update_cur_sifted_state, add_epsilon_src_nodes):
+ (sub_epsilon_src_nodes, check_dst_limits, check_dst_limits_calc_pos_1):
+ (check_dst_limits_calc_pos, check_subexp_limits, sift_states_bkref):
+ (sift_states_iter_mb, transit_state, merge_state_with_log, static):
+ (find_recover_state, check_subexp_matching_top, transit_state_mb):
+ (transit_state_bkref, get_subexp, get_subexp_sub, find_subexp_node):
+ (check_arrival, check_arrival_add_next_nodes):
+ (check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
+ (expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
+ (check_node_accept_bytes, check_node_accept, extend_buffers):
+ (match_ctx_init, match_ctx_clean, match_ctx_free, match_ctx_add_entry):
+ (search_cur_bkref_entry, match_ctx_add_subtop, match_ctx_add_sublast):
+ (sift_ctx_init):
+ Likewise.
+
+ * regex_internal.h:
+ (re_string_allocate, re_string_construct, re_string_reconstruct):
+ (re_string_realloc_buffers, build_wcs_buffer, build_wcs_upper_buffer):
+ (build_upper_buffer, re_string_translate_buffer, re_string_destruct):
+ (re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at):
+ (re_string_context_at, re_string_peek_byte_case):
+ (re_string_fetch_byte_case): Declare even if RE_NO_INTERNAL_PROTOTYPES
+ is defined, since we now use prototypes always.
+
+ * regex.h (_RE_ARGS): Remove. No longer needed, since we assume
+ C89 or better. All uses removed.
+
+2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex_internal.c (re_acquire_state, re_acquire_state_context)
+ [defined lint]: Suppress bogus uninitialized-variable warnings.
+
+ * regcomp.c (duplicate_node): Return new index, not an error code,
+ and let the caller return REG_ESPACE if out of space. This
+ removes an uninitialied-variable warning with GCC 4.0.1, and also
+ avoids taking the address of a local variable. All callers
+ changed.
+
+2005-08-19 Jim Meyering <jim@meyering.net>
+
+ * regexec.c (proceed_next_node): Redo local variables to
+ avoid GCC shadowing warnings.
+
+2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex_internal.c (re_string_realloc_buffers, re_node_set_insert):
+ (re_node_set_insert_last, re_dfa_add_node):
+ Rename local variables to avoid GCC shadowing warnings.
+
+2005-08-18 Bruno Haible <bruno@clisp.org>
+
+ * strstr.c (strstr): Fix return value in multibyte case.
+ * strcasestr.c (strcasestr): Likewise.
+
+2005-08-17 Jim Meyering <jim@meyering.net>
+
+ Make the %s format (seconds since the epoch) work for a negative
+ number and when used with a zero-padded field width, e.g. %015s.
+
+ * strftime.c (my_strftime): Move the `do_number_sign_and_padding'
+ label so that it precedes the code to set `digits'. Otherwise,
+ %0Ns wouldn't work. Before this change, `date -d @-22 +%05s' would
+ print `00-22'. Now, it prints `-0022', as it should.
+
+2005-08-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.h: Remove useless space-before-tab. From coreutils.
+
+2005-08-17 Bruno Haible <bruno@clisp.org>
+
+ * strcasestr.h: New file.
+ * strcasestr.c: New file.
+
+2005-08-17 Bruno Haible <bruno@clisp.org>
+
+ * strstr.h: Ignore HAVE_STRSTR, always declare the gnulib function.
+ * strstr.c: Completely rewritten, with multibyte locale support.
+
+2005-08-17 Bruno Haible <bruno@clisp.org>
+
+ * strcasecmp.c: Use mbuiter.h.
+
+2005-08-17 Bruno Haible <bruno@clisp.org>
+
+ * mbuiter.h: New file.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * strcasecmp.c (struct mbiter_multi): Remove at_end field.
+ (mbi_init): Update.
+ (mbi_avail, mbi_advance): Let the iteration end before the terminating
+ NUL byte, not after it.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * mbchar.h (mb_cmp, mb_casecmp): Order the invalid characters after
+ the valid ones. Makes the comparison operations transitive:
+ cmp (a, b) < 0 && cmp (b, c) < 0 ==> cmp (a, c) < 0.
+ * strcasecmp.c (strcasecmp): Use mb_casecmp.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * strcase.h (strcasecmp): Add note in comments.
+ * strncasecmp.c: Use code from strcasecmp.c.
+ * strcasecmp.c: Use mbchar module. Define private mbiter variant.
+ (strcasecmp): Work correctly in multibyte locales.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * strnlen1.h: New file.
+ * strnlen1.c: New file.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * mbfile.h: New file.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * mbiter.h: New file.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * mbchar.h: New file.
+ * mbchar.c: New file.
+
+2005-08-16 Bruno Haible <bruno@clisp.org>
+
+ * tls.h: New file, from GNU gettext.
+ * tls.c: New file, from GNU gettext.
+
+2005-08-15 Bruno Haible <bruno@clisp.org>
+
+ * regex.h (__restrict_arr): Don't define to __restrict if __cplusplus
+ is defined.
+
+2005-08-14 Jim Meyering <jim@meyering.net>
+
+ Sync from coreutils.
+
+ * fts-cycle.c (setup_dir, enter_dir, leave_dir, free_dir):
+ Use the hash-table-based cycle-detection code not just when
+ FTS_TIGHT_CYCLE_CHECK if specified, but also with FTS_LOGICAL.
+ Reported by James Youngman in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00011.html>.
+ * fts_.h: Mention that with FTS_LOGICAL, we use FTS_TIGHT_CYCLE_CHECK.
+ * fts.c (fts_cross_check) [FTS_DEBUG]: s/active_dir_ht/fts_cycle.ht/.
+ This lets us compile with -DFTS_DEBUG, once again.
+ * fts.c [! _LIBC]: Include "lstat.h" rather than rolling our own.
+ * fts.c (fd_safer): Remove decl.
+ Include fcntl--.h rather than unistd-safer.h
+ (fts_safe_changedir): Don't call fd_safer; no longer needed
+ now that we include fcntl--.h.
+
+2005-08-11 Simon Josefsson <jas@extundo.com>
+
+ * readline.h, readline.c: New file.
+
+2005-08-11 Bruno Haible <bruno@clisp.org>
+
+ * strnlen.h (strnlen): Change parameter name to match comment.
+
+2005-08-10 Simon Josefsson <jas@extundo.com>
+
+ * strndup.c: Use strnlen.h.
+
+ * strnlen.h: New file.
+
+2005-08-02 Simon Josefsson <jas@extundo.com>
+
+ * getline.h, getline.c: Rewrite.
+
+ * getdelim.h, getdelim.c: New files, ported from glibc.
+
+2005-07-31 Bruno Haible <bruno@clisp.org>
+
+ * lock.h (gl_lock_initializer): New macro.
+ (gl_lock_define_initialized): Use it.
+ (gl_rwlock_initializer): New macro.
+ (gl_rwlock_define_initialized): Use it.
+ (gl_recursive_lock_initializer): New macro.
+ (gl_recursive_lock_define_initialized): Use it.
+
+2005-07-26 Bruno Haible <bruno@clisp.org>
+
+ * lock.h: Update from GNU gettext.
+ * lock.c: Update from GNU gettext.
+
+2005-07-18 Bruno Haible <bruno@clisp.org>
+
+ * lock.h (gl_once_t): New type.
+ (gl_once_define, gl_once): New macros.
+ * lock.c (fresh_once): New variable.
+ (glthread_once, glthread_once_call, glthread_once_singlethreaded): New
+ functions.
+
+2005-07-18 Simon Josefsson <jas@extundo.com>
+
+ * check-version.c (check_version): Accept identical versions too.
+
+2005-07-18 Bruno Haible <bruno@clisp.org>
+
+ * lock.h: New file, from GNU gettext.
+ * lock.c: New file, from GNU gettext.
+
+2005-07-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * quotearg.c: Add translator comment suggested by Bruno Haible,
+ with a minor change.
+
+2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * version-etc-fsf.c (version_etc_copyright): Parameterize the
+ copyright symbol and the year.
+ * version-etc.c (COPYRIGHT_YEAR): New constant.
+ (version_etc_va): Use parameterized copyright notice.
+ Reword to conform to the current GNU coding standards.
+
+2005-07-11 Simon Josefsson <jas@extundo.com>
+
+ * size_max.h: New file.
+
+2005-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * argp-namefrob.h: Include unlocked-io.h. Removed unnecessary
+ block of defines.
+
+2005-07-08 Eric Blake <ebb9@byu.net> (tiny change)
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (init_dfa, build_range_exp): Store __btowc value
+ in wint_t, not wchar_t. Remove now-unnecessary cast.
+
+2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.c, regex.h: Sync from libc.
+ * regcomp.c, regexec_internal.c, regex_internal.h, regexec.c:
+ New files, synced from libc, except that regex_internal.h
+ currently has a small porting fix.
+
+2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Remove the dependency of the strftime module on the tzset module.
+ * strftime.c (my_strftime) [! defined _LIBC && ! HAVE_RUN_TZSET_TEST]:
+ Copy the input structure, to work around some of the bug with
+ Solaris 2.5.1 and Solaris 2.6. If you still care about these old
+ Solaris releases, you should also use the tzset module, but we won't
+ require it as a dependency any more since we don't want LGPLed code
+ to depend on GPLed code.
+
+2005-07-02 Jim Meyering <jim@meyering.net>
+
+ * backupfile.c (backup_args): Change a `0' to NULL.
+
+2005-07-01 Jim Meyering <jim@meyering.net>
+
+ * chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c:
+ * getloadavg.c, mountlist.c, openat.h, pagealign_alloc.c:
+ * save-cwd.c, tempname.c:
+ Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
+ and don't include <sys/file.h>).
+
+2005-07-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xnanosleep.c: Include timespec.h, since OpenBSD 3.4 <time.h>
+ declares only 'struct timespec;' (!).
+
+2005-06-29 Jim Meyering <jim@meyering.net>
+
+ * mkdir-p.c (make_dir_parents): Don't apply sizeof to a hard-coded
+ type name. Use the variable name instead.
+ * idcache.c (getuser, getuidbyname, getgroup, getgidbyname): Likewise.
+
+2005-06-28 Simon Josefsson <jas@extundo.com>
+
+ * check-version.h, check-version.c: New files.
+
+2005-06-28 Simon Josefsson <jas@extundo.com>
+
+ * base64.c (base64_encode): Indent. Rename 'b64' to avoid
+ collision with global variable. Better indentation. Don't
+ increment buffer pointer beyond buffer end. Based on comments
+ from Paul Eggert <eggert@cs.ucla.edu>.
+
+ * base64.h: Indent.
+
+2005-06-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canon-host.c (canon-host): Append trailing "," to 0 in
+ initializer of struct addrinfo, as an indication that we don't
+ care how many members the structure has.
+
+2005-06-24 Derek Price <derek@ximbiot.com>
+ and Bruno Haible <bruno@clisp.org>
+
+ Remove stat module & update lstat.
+ * stat.c: Remove this file...
+ (slash_aware_lstat): ...moving this content and its support...
+ * lstat.c (rpl_lstat): ...into here.
+ * lstat.h: New file.
+
+2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * mktime.c: Include <string.h> even if !DEBUG. (From glibc.)
+ (ranged_convert): Don't save conversion in a temporary struct.
+ This causes a warning with GCC 4.0.0, and anyway in the typical
+ case it's not worth the extra 100 bytes or so of code.
+ (ranged_convert, __mktime_internal): When calling a function via a
+ pointer P, use P () rather than (*P) (), as we now assume C89 or
+ better.
+
+2005-06-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * readutmp.c (desirable_utmp_entry): Fix bug where "who -b" and
+ "who -r" failed to give output. Problem reported by Tim Waugh.
+
+ * xmalloc.c (HAVE_GNU_CALLOC): New constant.
+ (xcalloc): Use it to avoid needless tests.
+ Problem reported by Jim Meyering.
+
+2005-06-16 Jim Meyering <jim@meyering.net>
+
+ * calloc.c (rpl_calloc): Allocate a 1-byte buffer (not 1xS or Nx1)
+ when either N or S is zero.
+
+2005-06-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * argp.h (__option_is_short): Check upper limit of
+ __key. Isprint() requires its argument to have the value
+ of an unsigned char or EOF.
+
+2005-06-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fnmatch.c (fnmatch): If there is an encoding error in a
+ multibyte string or pattern, fall back on unibyte matching.
+ Problem reported by James Youngman.
+
+2005-06-08 Bruno Haible <bruno@clisp.org>
+
+ * binary-io.h (fileno): Undefine before defining it. Avoids a gcc
+ warning on mingw.
+
+2005-06-08 Bruno Haible <bruno@clisp.org>
+
+ * csharpcomp.h: New file, from GNU gettext.
+ * csharpcomp.c: New file, from GNU gettext.
+ * csharpcomp.sh.in: New file, from GNU gettext.
+
+2005-06-07 Derek Price <derek@ximbiot.com>
+
+ Sync from CVS.
+ * glob_.h: Indent nested #ifdef.
+
+2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from coreutils.
+ Use "file name" when talking about file names, instead of "filename"
+ or "path", as per the GNU coding standards.
+ * mkdir-p.c: Renamed from makepath.c.
+ (make_dir_parents): Renamed from make_path. All callers changed.
+ * mkdir-p.h: Likewise. All includers changed.
+ * filenamecat.c: Renamed from path-concat.c.
+ (file_name_concat): Renamed from path_concat. All callers changed.
+ [TEST_FILE_NAME_CONCAT]: Renamed from TEST_PATH_CONCAT.
+ * filenamecat.h: Likewise. All includers changed.
+ * acl.c: Don't use "path" or "filename" to mean "file name"
+ in comments or local variable names.
+ * basename.c: Likewise.
+ * canonicalize.c, canonicalize.h: Likewise.
+ * dirname.c, dirname.h: Likewise.
+ * euidaccess.c: Likewise.
+ * exclude.c: Likewise
+ * fnmatch_.h, fnmatch_loop.c: Likewise.
+ * fsusage.c, fsuage.h: Likewise.
+ * fts.c, fts_.h: Likewise.
+ * getcwd.c: Likewise.
+ * getloadavg.c: Likewise.
+ * mkstemp.c: Likewise.
+ * mountlist.c, mountlist.h: Likewise.
+ * openat.c, openat.h: Likewise.
+ * readlink-stub.c: Likewise.
+ * readutmp.c, readutmp.h: Likewise.
+ * rename.c: Likewise.
+ * rmdir.c: Likewise.
+ * same.c: Likewise.
+ * savedir.c: Likewise.
+ * stripslash.c: Likewise.
+ * tempname.c: Likewise.
+ * xreadlink.c: Likewise.
+ * exclude.c (excluded_file_name): Renamed from excluded_filename.
+ All uses changed.
+ * exclude.h: Likewise.
+
+ * euidaccess.c (getuid, getgid, getuid, getegid)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+ * idcache.c (getpwuid, getpwnam, getgrgid, getgrnam)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+ * pathmax.h: Include <limits.h> unconditionally, since other
+ files have been getting away with it for years (MORE/BSD 4.3
+ is extinct now).
+ * userspec.c (getpwnam, getgrnam, getgrgid)
+ [!defined _POSIX_VERSION]: Remove decls; not needed these days.
+
+ * pathmax.h (_POSIX_PATH_MAX) [!defined _POSIX_PATH_MAX]:
+ Define to 256, not 255, as per modern POSIX.
+
+2005-06-01 Bruno Haible <bruno@clisp.org>
+
+ * csharpexec.h: New file, from GNU gettext.
+ * csharpexec.c: New file, from GNU gettext.
+ * csharpexec.sh.in: New file, from GNU gettext.
+
+2005-05-31 Derek Price <derek@ximbiot.com>
+ Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from cvs.
+ * glob_.h: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment.
+
+2005-05-29 Derek Price <derek@ximbiot.com>
+ Paul Eggert <eggert@cs.ucla.edu>
+
+ * glob_.h, glob.c: New files.
+
+2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getlogin_r.c (getlogin_r): Don't set errno to 0 on return.
+
+ * fts.c: Don't worry about debugging on pre-C99-compatible hosts;
+ the configuration hassle isn't worth it.
+ Include inttypes.h and stdint.h unconditionally if FTS_DEBUG.
+ (LONGEST_MODIFIER, PRIuMAX): Remove.
+
+2005-05-27 Bruno Haible <bruno@clisp.org>
+
+ * getlogin_r.h: Remove second include of <stddef.h>.
+
+2005-05-25 Bruno Haible <bruno@clisp.org>
+ Derek Price <derek@ximbiot.com>
+
+ * getlogin_r.h: Simplify API documentation.
+
+2005-05-25 Derek Price <derek@ximbiot.com>
+ Paul Eggert <eggert@cs.ucla.edu>
+
+ * getlogin_r.c, getlogin_r.h: New files.
+
+2005-05-22 Bruno Haible <bruno@clisp.org>
+
+ * minmax.h: Include <limits.h> only when it defines MIN, MAX.
+ Also include <sys/param.h> if it defines MIN, MAX.
+ Based on a patch by Derek Price <derek@ximbiot.com>.
+
+2005-05-22 Bruno Haible <bruno@clisp.org>
+
+ * stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs.
+ (INT64_MIN): Fix definition.
+ Suggested by Paul Eggert <eggert@cs.ucla.edu>.
+
+ * stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Renamed from
+ NEED_SIGNED_INT_TYPES.
+
+ * stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Renamed from
+ HAVE_SYSTEM_INTTYPES.
+
+2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fts.c (fd_safer) [_LGPL_PACKAGE]: New static function,
+ so that unistd-safer.h (GPL'ed code) need not be included.
+
+2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ New fts module.
+ * fts.c: Don't include "cycle-check.h" or "hash.h".
+ (setup_dir, free_dir): New functions.
+ (enter_dir, leave_dir): Define trivial
+ alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE.
+ (HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed.
+ (LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir.
+ (struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir):
+ Move to fts-cycle.c.
+ (fts_open): Use setup_dir.
+ (fts_close): Use free_dir.
+ (fts_read): Have just one copy of the ENTER_DIR code rather than three.
+ This adds a label and some gotos, but the alternatives were messier.
+ Check for memory allocation failure when entering a dir.
+ (fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code.
+ * fts_.h (_LGPL_PACKAGE) [defined _LIBC]: New macro.
+ (FTS): New member fts_cycle, that is a union that contains the
+ old active_dir_ht and cycle_state. All uses changed to mention
+ fts_cycle.ht and fts_cycle.state.
+ * fts-cycle.c: New file, containing GPL'ed code migrated out of
+ fts.c, with the following changes:
+ (setup_dir, free_dir): New functions.
+ (enter_dir): Now returns bool. Return true if successful, false
+ if memory exhausted. All callers changed.
+ Do not bother partly cleaning up on
+ memory allocation failure; that is free_dir's job.
+ However, free ad if hash_insert fails, to avoid memory leak.
+ (enter_dir, leave_dir): Accommodate change to FTS by inspecting
+ fts->fts_options to see which union member to use.
+
+2005-05-20 Jim Meyering <jim@meyering.net>
+
+ * unlinkdir.h (cannot_unlink_dir) [UNLINK_CANNOT_UNLINK_DIR]:
+ Now a macro, to pacify GCC.
+
+2005-05-20 Eric Blake <ebb9@byu.net> (tiny change)
+
+ * chown.c (rpl_chown): Return -1 on failure.
+
+2005-05-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * canonicalize.c: Include canonicalize.h first, to test interface.
+ Include <stddef.h> unconditionally, since we assume C89 now.
+ All uses of PTR_INT_TYPE replaced by ptrdiff_t.
+ * fts.c: Include fts_.h first, to check interface.
+ Do not include intprops.h; no longer needed.
+ Include cycle-check.h and hash.h, since fts_.h no longer does.
+ Remove unnecessary casts of closedir to void.
+ (fts_build): Use a simpler method (not involving TYPE_SIGNED) to
+ decide whether to decrement nlinks.
+ * fts_.h: Do not include hash.h or cycle-check.h; no longer needed.
+ (FTS): Use struct hash_table * instead of Hash_table, so that
+ we no longer need to include hash.h here.
+
+2005-05-17 Jim Meyering <jim@meyering.net>
+
+ * fts.c, fts_.h: New files, from coreutils.
+
+2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from coreutils.
+ * unlinkdir.c, unlinkdir.h: New files.
+ * gethrxtime.c, gethrxtime.h, getpass.h, mountlist.h, path-concat.c,
+ regex.h, unlocked-io.h, xtime.h:
+ White space changes only.
+ * makepath.c (make_path): Port to hosts where leading "//" is special.
+ * yesno.c: Include getline.h, not ctype.h.
+ (yesno): Don't remove leading white space; POSIX doesn't allow it.
+ Use getline to remove arbitrary restriction on response length.
+
+2005-05-13 Bruno Haible <bruno@clisp.org>
+
+ * stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t,
+ int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX,
+ UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
+ INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN,
+ INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C):
+ Add support for 64-bit integers in the MSVC compiler.
+
+2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * byteswap_.h, getsubopt.h, iconvme.h, strsep.c, strsep.h:
+ Change the initial comment to refer to GPL, not LGPL.
+ gnulib-tool will change it to LGPL as needed.
+
+ * __fpending.c, acl.c, acl.h, alloca_.h, allocsa.c, allocsa.h,
+ argmatch.c, argmatch.h, argp-ba.c, argp-eexst.c, argp-fmtstream.c,
+ argp-fmtstream.h, argp-fs-xinl.c, argp-help.c, argp-namefrob.h,
+ argp-parse.c, argp-pv.c, argp-pvh.c, argp-xinl.c, argp.h, argz.c,
+ argz_.h, asnprintf.c, asprintf.c, atanl.c, backupfile.c,
+ backupfile.h, base64.c, base64.h, basename.c, binary-io.h,
+ byteswap_.h, c-ctype.c, c-ctype.h, c-stack.c, c-stack.h,
+ c-strtod.c, calloc.c, canon-host.c, canonicalize.c,
+ canonicalize.h, ceill.c, chdir-long.c, chdir-long.h, chown.c,
+ classpath.c, classpath.h, cloexec.c, closeout.c, closeout.h,
+ concatpath.c, config.charset, copy-file.c, copy-file.h,
+ cycle-check.c, cycle-check.h, diacrit.c, diacrit.h, dirfd.c,
+ dirfd.h, dirname.c, dirname.h, dummy.c, dup-safer.c, dup2.c,
+ eealloc.h, error.c, error.h, euidaccess.c, exclude.c, exclude.h,
+ execute.c, execute.h, exit.h, exitfail.c, exitfail.h, expl.c,
+ fatal-signal.c, fatal-signal.h, fd-safer.c, file-type.c,
+ file-type.h, fileblocks.c, filemode.c, filemode.h, findprog.c,
+ findprog.h, floorl.c, fnmatch.c, fnmatch_.h, fnmatch_loop.c,
+ fopen-safer.c, free.c, frexpl.c, fsusage.c, fsusage.h,
+ full-read.c, full-read.h, full-write.c, full-write.h,
+ fwriteerror.c, fwriteerror.h, gai_strerror.c, gcd.c, gcd.h,
+ getaddrinfo.c, getaddrinfo.h, getcwd.c, getcwd.h, getdate.h,
+ getdate.y, getdomainname.c, getdomainname.h, getgroups.c,
+ gethostname.c, gethrxtime.c, gethrxtime.h, getline.c, getline.h,
+ getloadavg.c, getndelim2.c, getndelim2.h, getnline.c, getnline.h,
+ getopt.c, getopt1.c, getopt_.h, getopt_int.h, getpagesize.h,
+ getpass.c, getpass.h, getsubopt.c, getsubopt.h, gettext.h,
+ gettime.c, gettimeofday.c, getugroups.c, getusershell.c,
+ group-member.c, group-member.h, hard-locale.c, hard-locale.h,
+ hash-pjw.c, hash-pjw.h, hash.c, hash.h, human.c, human.h,
+ iconvme.c, iconvme.h, idcache.c, inet_ntop.h, intprops.h,
+ inttostr.c, inttostr.h, isdir.c, javacomp.c, javacomp.h,
+ javacomp.sh.in, javaexec.c, javaexec.h, javaexec.sh.in,
+ lbrkprop.h, lchown.c, ldexpl.c, linebreak.c, linebreak.h,
+ linebuffer.c, linebuffer.h, localcharset.c, localcharset.h,
+ logl.c, long-options.c, long-options.h, lstat.c, makepath.c,
+ makepath.h, malloc.c, mathl.h, mbswidth.c, mbswidth.h, md5.c,
+ md5.h, memcasecmp.c, memcasecmp.h, memchr.c, memcmp.c, memcoll.c,
+ memcoll.h, memcpy.c, memmem.c, memmem.h, mempcpy.c, mempcpy.h,
+ memrchr.c, memrchr.h, memset.c, minmax.h, mkdir.c, mkdtemp.c,
+ mkdtemp.h, mkstemp.c, mktime.c, modechange.c, modechange.h,
+ mountlist.c, mountlist.h, nanosleep.c, obstack.c, obstack.h,
+ openat.c, openat.h, pagealign_alloc.c, pagealign_alloc.h,
+ path-concat.c, path-concat.h, pathmax.h, pathname.h, physmem.c,
+ physmem.h, pipe.c, pipe.h, poll.c, poll_.h, posixtm.c, posixtm.h,
+ posixver.c, printf-args.c, printf-args.h, printf-parse.c,
+ printf-parse.h, progname.c, progname.h, progreloc.c, putenv.c,
+ quote.c, quote.h, quotearg.c, quotearg.h, raise.c, readlink.c,
+ readtokens.c, readtokens.h, readtokens0.c, readtokens0.h,
+ readutmp.c, readutmp.h, realloc.c, ref-add.sin, ref-del.sin,
+ regex.c, regex.h, rename.c, rmdir.c, rpmatch.c, safe-read.c,
+ safe-read.h, safe-write.c, safe-write.h, same.c, same.h,
+ save-cwd.c, save-cwd.h, savedir.c, savedir.h, setenv.c, setenv.h,
+ settime.c, sh-quote.c, sh-quote.h, sha1.c, sha1.h, sig2str.c,
+ sig2str.h, sincosl.c, snprintf.c, snprintf.h, sqrtl.c,
+ stat-macros.h, stat.c, stdbool_.h, stdint_.h, stdio-safer.h,
+ stpcpy.c, stpcpy.h, stpncpy.c, stpncpy.h, strcase.h, strcasecmp.c,
+ strchrnul.c, strchrnul.h, strcspn.c, strdup.c, strdup.h,
+ strerror.c, strftime.c, strftime.h, stripslash.c, strndup.c,
+ strndup.h, strnlen.c, strpbrk.c, strpbrk.h, strsep.c, strsep.h,
+ strstr.c, strstr.h, strtod.c, strtoimax.c, strtok_r.c, strtok_r.h,
+ strtol.c, strtoll.c, strtoul.c, strtoull.c, strverscmp.c,
+ strverscmp.h, sysexit_.h, tempname.c, time_r.c, time_r.h,
+ timegm.c, timegm.h, timespec.h, trigl.c, trigl.h, ucs4-utf16.h,
+ ucs4-utf8.h, unicodeio.c, unicodeio.h, unistd-safer.h,
+ unlocked-io.h, unsetenv.c, userspec.c, utf16-ucs4.h, utf8-ucs4.h,
+ utime.c, utimecmp.c, utimecmp.h, utimens.c, vasnprintf.c,
+ vasnprintf.h, vasprintf.c, vasprintf.h, version-etc-fsf.c,
+ version-etc.c, version-etc.h, vsnprintf.c, vsnprintf.h,
+ w32spawn.h, wait-process.c, wait-process.h, xalloc-die.c,
+ xalloc.h, xallocsa.c, xallocsa.h, xasprintf.c, xgetcwd.c,
+ xgetcwd.h, xgetdomainname.c, xgetdomainname.h, xgethostname.c,
+ xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xreadlink.h,
+ xsetenv.c, xsetenv.h, xsize.h, xstrndup.c, xstrndup.h, xstrtod.c,
+ xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c,
+ xtime.h, xvasprintf.c, xvasprintf.h, yesno.c, yesno.h:
+ Update FSF postal mail address.
+
+2005-05-10 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+
+ * getaddrinfo.c: Don't fail when SOCK_STREAM or SOCK_DGRAM are
+ specified in ai_socktype. Fix invalid ai_protocol
+ check. ai_protocol is usually set to 0 or depending on
+ ai_family/ai_socktype to IPPROTO_TCP / IPPROTO_UDP. Checking for
+ SOCK_STREAM / SOCK_DGRAM in ai_protocol was invalid. Set
+ ai_socktype / ai_protocol in the returned addrinfo structure.
+
+2005-05-09 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+ Bruno Haible <bruno@clisp.org>
+
+ * inet_ntop.h: New file.
+ * inet_ntop.c: New file, from glibc with modifications.
+
+2005-05-08 Jim Meyering <jim@meyering.net>
+
+ * classpath.c (PATH_SEPARATOR): Remove insignificant trailing blank.
+
+2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge from coreutils. Among other things,
+ add bulletproofing for cases where stdin, stdout, or stderr are closed.
+ * fd-safer.c: New file.
+ * fcntl-safer.h, open-safer.c: Remove.
+ * chdir-long.c: Fix comment "fetish" -> "coreutils".
+ * dup-safer.c: Include unistd-safer.h first.
+ Don't include errno.h.
+ (dup_safer) [!defined F_DUPFD]: Let fd_safer do the real work.
+ * file-type.h: Don't assume invoker included sys/stat.h first.
+ * file-type.c: Rely on file-type.h change.
+ * getloadavg.c: Include unistd-safer.h.
+ (getloadavg): Use safer open.
+ * getusershell.c: Include "stdio-safer.h".
+ (getusershell): Use safer fopen.
+ * long-options.c (long_options): Use NULL rather than 0.
+ * modechange.h (mode_free): Remove; all callers changed to invoke
+ 'free'.
+ * modechange.c: Likewise.
+ xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed.
+ (MODE_DONE): New constant.
+ (struct mode_change): Remove 'next' member.
+ (make_node_op_equals): New function; like the old one of the
+ same name, except it allocates an array.
+ (mode_compile, mode_create_from_ref): Use it.
+ (mode_compile): Allocate result as an array, not a linked list.
+ Parse octal string ourself, so that we catch mistakes like "+0".
+ (mode_adjust): Arg is an array, not a linked list.
+ * modechange.c: Include stat-macros.h, xalloc.h.
+ (S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR):
+ (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU):
+ (S_IRWXG, S_IRWXO, CHMOD_MODE_BITS):
+ Remove. This is now stat-macros.h's job.
+ (talloc): Remove. All callers replaced by xalloc, so that
+ our invokers don't have to worry about reporting memory failures.
+ (make_node_op_equals): Remove.
+ (MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
+ New constants.
+ (struct mode_change): Moved here from modechange.h.
+ (mode_append_entry): Remove.
+ (mode_compile): Remove MASKED_OPS arg, since it encouraged
+ apps to have incorrect behavior. Use simpler algorithm for head
+ and tail. Don't futz with umask; that's now the job of mode_adjust.
+ Detect more invalid usages rather than having somewhat-random behavior.
+ Don't insert an "a=" action, as that leads to incorrect behavior.
+ (mode_compile, mode_create_from_ref): Return NULL on error instead
+ of an enum, since now there's only one way to have an error. All
+ callers changed.
+ (mode_adjust): Accept new arg UMASK_VALUE, and interpret it
+ at the correct time. Simplify calculation of "+u" and its ilk.
+ Don't mishandle "+X".
+ (mode_free): Remove "register" and localize decls.
+ * modechange.h (MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
+ (struct mode_change): Move to modechange.c; callers don't
+ need to see this stuff.
+ (MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL):
+ (MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove.
+ (mode_change, mode_adjust): Reflect the new signatures noted above.
+ * nanosleep.c (rpl_nanosleep): Include "timespec.h" before macros
+ that might redefine system include files.
+ (siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
+ (my_usleep): Use NULL rather than (void *) 0.
+ (rpl_nanosleep) [!defined SA_NOCLDSTOP]:
+ Use siginterrupt to specify that system calls should be interrupted.
+ (rpl_nanosleep): Move initialization of suspended closer to call of
+ my_usleep.
+ * readutmp.h (read_utmp): New arg OPTIONS. All uses changed.
+ * readutmp.c: Likewise. Include signal.h, stdbool.h.
+ (desirable_utmp_entry): New function.
+ (read_utmp) [defined UTMP_NAME_FUNCTION]: Redo memory allocation
+ using x2nrealloc, to simplify logic.
+ (read_utmp) [!defined UTMP_NAME_FUNCTION]: Check for overflow in
+ size calculation. Do not assume utmp file is a regular file.
+ * readutmp.h (UT_PID): Moved here from ../src/who.c.
+ (READ_UTMP_CHECK_PIDS): New constant.
+ * save-cwd.c: Include unistd-safer.h.
+ (save_cwd): Use fd_safer.
+ * tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove.
+ [!_LIBC] Include "stat-macros.h" instead.
+ * unistd-safer.h (fd_safer): New decl.
+
+2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
+
+ * byteswap_.h: New file.
+
+2005-04-25 Albert Chin <china@thewrittenword.com>
+
+ * regex.c: Include <stdio.h>, as a workaround to a Compaq Desktop
+ Toolkit C bug.
+
+2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (zone): Allow relunit_snumber after tZONE, so
+ that "UTC +1 second" continues to work. Problem reported
+ by Dmitry V. Levin.
+ (relunit_snumber): New rule.
+ (relunit): Use it.
+
+2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (universal_time_zone_table): New constant.
+ (time_zone_table): Remove GMT, UT, UTC entries; they're now in
+ universal_time_zone_table.
+ (lookup_zone): Prefer universal_time_zone_table to
+ local_time_zone_table, so that "GMT" time stamps are allowed in
+ London during the summer. Problem reported by Ian Abbott.
+
+2005-04-12 Jim Meyering <jim@meyering.net>
+
+ * human.c (humblock): Set *options even when returning due to
+ xstrtoumax conversion failure. Thanks to a used-uninitialized
+ warning from gcc-4.
+
+2005-04-09 Jim Meyering <jim@meyering.net>
+
+ * posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's
+ -Wuninitialized: initialize tm0.tm_year.
+
+2005-04-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.y (parser_control): rels_seen is now a boolean, not a
+ count, since there's no maximum. All uses changed.
+ Add member dsts_seen.
+ (local_zone): Accumulate dsts_seen rather than relying on tm_isdst
+ not being INT_MAX.
+ (get_date): Initialize dsts_seen, and check that it doesn't go over 1.
+ Use pc_rels_seen to decide whther a date is absolute.
+
+ * getdate.y (number): Don't overwrite year.
+ (get_date): Initialize pc.year.digits to 0, not 4, to enable above
+ check.
+
+2005-04-02 Simon Josefsson <jas@extundo.com>
+
+ * getaddrinfo.h: Fix OpenBSD compilation failure, inspired by tiny
+ patch from Yoann Vandoorselaere <yoann@prelude-ids.org>.
+
+2005-03-27 Jim Meyering <jim@meyering.net>
+
+ * argmatch.c: Clarify comment: null-terminated -> NULL-terminated.
+