1 2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
3 * regex_internal.h: Remove all references to
4 RE_NO_INTERNAL_PROTOTYPES; no longer neeeded now that we assume C89
6 (bitset_not, bitset_merge, bitset_not_merge):
7 (bitset_mask, re_string_allocate, re_string_construct):
8 (re_string_reconstruct, re_string_destruct, re_string_elem_size_at):
9 (re_string_char_size_at, re_string_wchar_at, re_string_peek_byte_case):
10 (re_string_fetch_byte_case, re_node_set_alloc, re_node_set_init_1):
11 (re_node_set_init_2, re_node_set_init_copy, re_node_set_add_intersect):
12 (re_node_set_init_union, re_node_set_merge, re_node_set_insert):
13 (re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
14 (re_node_set_remove_at, re_dfa_add_node, re_acquire_state):
15 (re_acquire_state_context):
16 Remove unnecessary forward decls.
17 (re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at):
18 Put __attribute at function definition,
19 now that the function decl has been removed.
20 * lib/regex_internal.c (re_string_peek_byte_case):
21 (re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains):
24 2005-08-26 Simon Josefsson <jas@extundo.com>
26 * getpass.c: Use _WIN32 instead of WIN32, suggested by Bruno
27 Haible <bruno@clisp.org>.
29 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
31 * regexec.c (set_regs): Don't alloca with an unbounded size.
33 alloca modernization/simplification for regex.
34 * regex.c: Remove portability cruft for alloca. This no longer
35 needs to be at the start of the file, and can be moved into
36 regex_internal.h and simplified.
37 * regex_internal.h: Include <alloca.h>.
38 (__libc_use_alloca) [!defined _LIBC]: New macro.
39 * regexec.c (build_trtable): Remove "#ifdef _LIBC", since the code
40 now works outside glibc.
42 2005-08-24 Simon Josefsson <jas@extundo.com>
44 * getpass.c: Add WIN32 implementation. Conditionalize use of
45 termios.h, tcgetattr, tcsetattr and __fsetlocking. Remove some
48 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
50 Make regex safe for g++. This fixes one real bug (an "err"
51 that should have been "*err"). g++ problem reported by
53 * regex_internal.h (re_calloc): New macro, consistent with
54 re_malloc etc. All callers of calloc changed to use re_calloc.
55 * regex_internal.c (build_wcs_upper_buffer): Return reg_errcode_t,
56 not int. All callers changed.
57 * regcomp.c (re_compile_fastmap_iter): Don't use alloca (mb_cur_max);
58 just use an array of size MB_LEN_MAX.
59 * regexec.c (push_fail_stack): Use re_realloc, not realloc.
60 (find_recover_state): Change "err" to "*err"; this fixes what
61 appears to be a real bug.
62 (check_arrival_expand_ecl_sub): Be consistent about reg_errcode_t
65 2005-08-25 Jim Meyering <jim@meyering.net>
67 * open-safer.c: Include <config.h>.
68 Otherwise, we'd lose LARGEFILE support in any file using
71 2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
73 * regcomp.c (regerror): 2nd arg is 'restrict', as per POSIX.
74 * regex.h (regerror): Likewise.
76 * regex.c: Do not include <sys/types.h>, as POSIX no longer
77 requires this. (The code never needed it.)
79 * regcomp.c, regex_internal.c, regex_internal.h, regexec.c:
80 All uses of recently-renamed identifiers changed to use the new,
81 POSIX-compliant names. The code will build and run just fine
82 without these changes, but it's better to eat our own dog food
83 and use the standard-conforming names.
85 * regex.h: Fix a multitude of POSIX name space violations.
86 These changes have an effect only for programs that define
87 _POSIX_C_SOURCE, _POSIX_SOURCE, or _XOPEN_SOURCE; they
88 do not change anything for programs compiled in the normal way.
89 Also, there is no effect on the ABI.
91 (_REGEX_SOURCE): New macro.
92 Do not include <stddef.h> if _XOPEN_SOURCE and VMS are both
93 defined and _GNU_SOURCE is not; this fixes a name space violation.
95 Rename the following macros to obey POSIX requirements.
96 The old names are still visible as macros if _REGEX_SOURCE is defined.
97 (REG_BACKSLASH_ESCAPE_IN_LISTS): renamed from
98 RE_BACKSLASH_ESCAPE_IN_LISTS.
99 (REG_BK_PLUS_QM): renamed from RE_BK_PLUS_QM.
100 (REG_CHAR_CLASSES): renamed from RE_CHAR_CLASSES.
101 (REG_CONTEXT_INDEP_ANCHORS): renamed from RE_CONTEXT_INDEP_ANCHORS.
102 (REG_CONTEXT_INDEP_OPS): renamed from RE_CONTEXT_INDEP_OPS.
103 (REG_CONTEXT_INVALID_OPS): renamed from RE_CONTEXT_INVALID_OPS.
104 (REG_DOT_NEWLINE): renamed from RE_DOT_NEWLINE.
105 (REG_DOT_NOT_NULL): renamed from RE_DOT_NOT_NULL.
106 (REG_HAT_LISTS_NOT_NEWLINE): renamed from RE_HAT_LISTS_NOT_NEWLINE.
107 (REG_INTERVALS): renamed from RE_INTERVALS.
108 (REG_LIMITED_OPS): renamed from RE_LIMITED_OPS.
109 (REG_NEWLINE_ALT): renamed from RE_NEWLINE_ALT.
110 (REG_NO_BK_BRACES): renamed from RE_NO_BK_BRACES.
111 (REG_NO_BK_PARENS): renamed from RE_NO_BK_PARENS.
112 (REG_NO_BK_REFS): renamed from RE_NO_BK_REFS.
113 (REG_NO_BK_VBAR): renamed from RE_NO_BK_VBAR.
114 (REG_NO_EMPTY_RANGES): renamed from RE_NO_EMPTY_RANGES.
115 (REG_UNMATCHED_RIGHT_PAREN_ORD): renamed from
116 RE_UNMATCHED_RIGHT_PAREN_ORD.
117 (REG_NO_POSIX_BACKTRACKING): renamed from RE_NO_POSIX_BACKTRACKING.
118 (REG_NO_GNU_OPS): renamed from RE_NO_GNU_OPS.
119 (REG_DEBUG): renamed from RE_DEBUG.
120 (REG_INVALID_INTERVAL_ORD): renamed from RE_INVALID_INTERVAL_ORD.
121 (REG_IGNORE_CASE): renamed from RE_ICASE. This renaming is a bit
122 unusual, since we can't clash with the POSIX REG_ICASE.
123 (REG_CARET_ANCHORS_HERE): renamed from RE_CARET_ANCHORS_HERE.
124 (REG_CONTEXT_INVALID_DUP): renamed from RE_CONTEXT_INVALID_DUP.
125 (REG_NO_SUB): renamed from RE_NO_SUB.
126 (REG_SYNTAX_EMACS): renamed from RE_SYNTAX_EMACS.
127 (REG_SYNTAX_AWK): renamed from RE_SYNTAX_AWK.
128 (REG_SYNTAX_GNU_AWK): renamed from RE_SYNTAX_GNU_AWK.
129 (REG_SYNTAX_POSIX_AWK): renamed from RE_SYNTAX_POSIX_AWK.
130 (REG_SYNTAX_GREP): renamed from RE_SYNTAX_GREP.
131 (REG_SYNTAX_EGREP): renamed from RE_SYNTAX_EGREP.
132 (REG_SYNTAX_POSIX_EGREP): renamed from RE_SYNTAX_POSIX_EGREP.
133 (REG_SYNTAX_ED): renamed from RE_SYNTAX_ED.
134 (REG_SYNTAX_SED): renamed from RE_SYNTAX_SED.
135 (_REG_SYNTAX_POSIX_COMMON): renamed from _RE_SYNTAX_POSIX_COMMON.
136 (REG_SYNTAX_POSIX_BASIC): renamed from RE_SYNTAX_POSIX_BASIC.
137 (REG_SYNTAX_POSIX_MINIMAL_BASIC): renamed from
138 RE_SYNTAX_POSIX_MINIMAL_BASIC.
139 (REG_SYNTAX_POSIX_EXTENDED): renamed from RE_SYNTAX_POSIX_EXTENDED.
140 (REG_SYNTAX_POSIX_MINIMAL_EXTENDED): renamed from
141 RE_SYNTAX_POSIX_MINIMAL_EXTENDED.
142 (REG_DUP_MAX): renamed from RE_DUP_MAX. No need to undef it.
143 (REG_UNALLOCATED): Renamed from REGS_UNALLOCATED.
144 (REG_REALLOCATE): Renamed from REGS_REALLOCATE.
145 (REG_FIXED): Renamed from REGS_FIXED.
146 (REG_NREGS): Renamed from RE_NREGS.
148 (REG_ICASE, REG_NEWLINE, REG_NOSUB): Do not depend on the values
149 of other REG_* macros, since POSIX says the user is allowed to
150 #undef these macros selectively.
152 (reg_errcode_t): Update comment stating what other tables need
155 Rename the following enum values to obey POSIX requirements.
156 The old names are still visible as macros.
157 (_REG_ENOSYS): Renamed from REG_ENOSYS. Define even if _XOPEN_SOURCE
158 is not defined, since GNU is supposed to be a superset of POSIX as
159 much as possible, and since we want reg_errcode_t to be a signed
160 type for implementation consistency.
161 (_REG_NOERROR): Renamed from REG_NOERROR.
162 (_REG_NOMATCH): Renamed from REG_NOMATCH.
163 (_REG_BADPAT): Renamed from REG_BADPAT.
164 (_REG_ECOLLATE): Renamed from REG_ECOLLATE.
165 (_REG_ECTYPE): Renamed from REG_ECTYPE.
166 (_REG_EESCAPE): Renamed from REG_EESCAPE.
167 (_REG_ESUBREG): Renamed from REG_ESUBREG.
168 (_REG_EBRACK): Renamed from REG_EBRACK.
169 (_REG_EPAREN): Renamed from REG_EPAREN.
170 (_REG_EBRACE): Renamed from REG_EBRACE.
171 (_REG_BADBR): Renamed from REG_BADBR.
172 (_REG_ERANGE): Renamed from REG_ERANGE.
173 (_REG_ESPACE): Renamed from REG_ESPACE.
174 (_REG_BADRPT): Renamed from REG_BADRPT.
175 (_REG_EEND): Renamed from REG_EEND.
176 (_REG_ESIZE): Renamed from REG_ESIZE.
177 (_REG_ERPAREN): Renamed from REG_ERPAREN.
178 (REG_ENOSYS, REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE):
179 (REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN):
180 (REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND):
181 (REG_ESIZE, REG_ERPAREN): Now macros, not enum constants.
183 (_REG_RE_NAME, _REG_RM_NAME): New macros.
184 (REG_TRANSLATE_TYPE): Renamed from RE_TRANSLATE_TYPE. All uses
185 changed. But support the old name if the new one is not defined
186 and if _REGEX_SOURCE.
188 Change the following member names in struct re_pattern_buffer.
189 The old names are still supported if !_REGEX_SOURCE.
190 The new names are always supported, regardless of _REGEX_SOURCE.
191 (re_buffer): Renamed from buffer.
192 (re_allocated): Renamed from allocated.
193 (re_used): Renamed from used.
194 (re_syntax): Renamed from syntax.
195 (re_fastmap): Renamed from fastmap.
196 (re_translate): Renamed from translate.
197 (re_can_be_null): Renamed from can_be_null.
198 (re_regs_allocated): Renamed from regs_allocated.
199 (re_fastmap_accurate): Renamed from fastmap_accurate.
200 (re_no_sub): Renamed from no_sub.
201 (re_not_bol): Renamed from not_bol.
202 (re_not_eol): Renamed from not_eol.
203 (re_newline_anchor): Renamed from newline_anchor.
205 Change the following member names in struct re_registers.
206 The old names are still supported if !_REGEX_SOURCE.
207 The new names are always supported, regardless of _REGEX_SOURCE.
208 (rm_num_regs): Renamed from num_regs.
209 (rm_start): Renamed from start.
210 (rm_end): Renamed from end.
212 (re_set_syntax, re_compile_pattern, re_compile_fastmap):
213 (re_search, re_search_2, re_match, re_match_2, re_set_registers):
214 Prepend __ to parameter names.
216 Undo yesterday's changes.
218 2005-08-24 Jim Meyering <jim@meyering.net>
221 * fcntl--.h, fcntl-safer.h, open-safer.c: New files.
223 2005-08-21 Bruno Haible <bruno@clisp.org>
225 * lock.h: Add multiple inclusion guard.
226 * tls.h: Add multiple inclusion guard.
228 2005-08-23 Paul Eggert <eggert@cs.ucla.edu>
230 * regex.h (REG_NOSYS)
231 [!defined _XOPEN_SOURCE && 200112L <= _POSIX_C_SOURCE]:
232 Define, since POSIX requires it as of 2001.
233 (_REG_ENOSYS) [! (defined _XOPEN_SOURCE || 200112L <= _POSIX_C_SOURCE)]:
234 New private symbol, used to keep the enum signed in all cases.
235 * regex.h (RE_NO_EMPTY_RANGES): Fix doc bug reported by James Youngman
236 in <http://lists.gnu.org/archive/html/bug-gnulib/2005-07/msg00132.html>.
238 * regex_internal.c (re_string_skip_chars, register_state):
240 Remove forward decls; no longer needed now that we use prototypes.
241 * regexec.c (acquire_init_state_context, check_halt_node_context):
242 (proceed_next_node, pop_fail_stack, sub_epsilon_src_nodes):
243 (clean_state_log_if_needed): Likewise.
245 2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
247 Fix problems reported by Sam Steingold in
248 <http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00007.html>.
249 * regexec.c (sift_states_bkref): Fix portability bug: the code
250 assumed that reg_errcode_t is a signed type, which is not
251 necessarily true if _XOPEN_SOURCE is not defined.
252 * regex_internal.c (calc_state_hash): Put 'inline' before type, since
253 some compilers warn about it otherwise.
255 2005-08-20 Jim Meyering <jim@meyering.net>
257 * regexec.c (regexec, re_search_stub) [!_LIBC]: Omit declaration
258 of unused local, dfa.
260 2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
262 * regcomp.c (create_initial_state): Remove duplicate decl.
263 (init_word_char, create_initial_state, duplicate_node_closure):
264 (fetch_token, peek_token_bracket, build_range_exp):
265 (build_collating_symbol): Remove forward decls; no longer needed
266 now that we use prototypes.
269 (re_compile_pattern, re_set_syntax, re_compile_fastmap):
270 (re_compile_fastmap_iter, regcomp, regerror, regfree):
271 (re_compile_internal, init_dfa, init_word_char, free_workarea_compile):
272 (create_initial_state, optimize_utf8, analyze, postorder, preorder):
273 (optimize_subexps, lower_subexps, lower_subexp, calc_first, calc_next):
274 (link_nfa_nodes, duplicate_node_closure, search_duplicated_node):
275 (duplicate_node, calc_inveclosure, calc_eclosure, calc_eclosure_iter):
276 (fetch_token, peek_token, peek_token_bracket, parse, parse_reg_exp):
277 (parse_branch, parse_expression, parse_sub_exp, parse_dup_op):
278 (build_range_exp, build_collating_symbol, parse_bracket_exp):
279 (parse_bracket_element, parse_bracket_symbol, build_equiv_class):
280 (build_charclass, build_charclass_op, fetch_number, create_tree):
281 (create_token_tree, mark_opt_subexp, duplicate_tree):
282 Use prototypes rather than old-style definitions.
285 (re_string_allocate, re_string_construct, re_string_realloc_buffers):
286 (re_string_construct_common, build_wcs_buffer, build_wcs_upper_buffer):
287 (re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
288 (re_string_reconstruct, re_string_peek_byte_case):
289 (re_string_fetch_byte_case, re_string_destruct, re_string_context_at):
290 (re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
291 (re_node_set_init_copy, re_node_set_add_intersect):
292 (re_node_set_init_union, re_node_set_merge, re_node_set_insert):
293 (re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
294 (re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
295 (re_acquire_state, re_acquire_state_context, register_state):
296 (create_ci_newstate, create_cd_newstate, free_state):
298 * regexec.c (regexec, re_match, re_search, re_match_2, re_search_2):
299 (re_search_2_stub, re_search_stub, re_copy_regs, re_set_registers):
300 (re_search_internal, prune_impossible_nodes):
301 (acquire_init_state_context, check_matching, static):
302 (check_halt_node_context, check_halt_state_context, proceed_next_node):
303 (push_fail_stack, pop_fail_stack, set_regs, free_fail_stack_return):
304 (update_regs, sift_states_backward, build_sifted_states):
305 (clean_state_log_if_needed, merge_state_array):
306 (update_cur_sifted_state, add_epsilon_src_nodes):
307 (sub_epsilon_src_nodes, check_dst_limits, check_dst_limits_calc_pos_1):
308 (check_dst_limits_calc_pos, check_subexp_limits, sift_states_bkref):
309 (sift_states_iter_mb, transit_state, merge_state_with_log, static):
310 (find_recover_state, check_subexp_matching_top, transit_state_mb):
311 (transit_state_bkref, get_subexp, get_subexp_sub, find_subexp_node):
312 (check_arrival, check_arrival_add_next_nodes):
313 (check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
314 (expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
315 (check_node_accept_bytes, check_node_accept, extend_buffers):
316 (match_ctx_init, match_ctx_clean, match_ctx_free, match_ctx_add_entry):
317 (search_cur_bkref_entry, match_ctx_add_subtop, match_ctx_add_sublast):
322 (re_string_allocate, re_string_construct, re_string_reconstruct):
323 (re_string_realloc_buffers, build_wcs_buffer, build_wcs_upper_buffer):
324 (build_upper_buffer, re_string_translate_buffer, re_string_destruct):
325 (re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at):
326 (re_string_context_at, re_string_peek_byte_case):
327 (re_string_fetch_byte_case): Declare even if RE_NO_INTERNAL_PROTOTYPES
328 is defined, since we now use prototypes always.
330 * regex.h (_RE_ARGS): Remove. No longer needed, since we assume
331 C89 or better. All uses removed.
333 2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
335 * regex_internal.c (re_acquire_state, re_acquire_state_context)
336 [defined lint]: Suppress bogus uninitialized-variable warnings.
338 * regcomp.c (duplicate_node): Return new index, not an error code,
339 and let the caller return REG_ESPACE if out of space. This
340 removes an uninitialied-variable warning with GCC 4.0.1, and also
341 avoids taking the address of a local variable. All callers
344 2005-08-19 Jim Meyering <jim@meyering.net>
346 * regexec.c (proceed_next_node): Redo local variables to
347 avoid GCC shadowing warnings.
349 2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
351 * regex_internal.c (re_string_realloc_buffers, re_node_set_insert):
352 (re_node_set_insert_last, re_dfa_add_node):
353 Rename local variables to avoid GCC shadowing warnings.
355 2005-08-18 Bruno Haible <bruno@clisp.org>
357 * strstr.c (strstr): Fix return value in multibyte case.
358 * strcasestr.c (strcasestr): Likewise.
360 2005-08-17 Jim Meyering <jim@meyering.net>
362 Make the %s format (seconds since the epoch) work for a negative
363 number and when used with a zero-padded field width, e.g. %015s.
365 * strftime.c (my_strftime): Move the `do_number_sign_and_padding'
366 label so that it precedes the code to set `digits'. Otherwise,
367 %0Ns wouldn't work. Before this change, `date -d @-22 +%05s' would
368 print `00-22'. Now, it prints `-0022', as it should.
370 2005-08-17 Paul Eggert <eggert@cs.ucla.edu>
372 * regex.h: Remove useless space-before-tab. From coreutils.
374 2005-08-17 Bruno Haible <bruno@clisp.org>
376 * strcasestr.h: New file.
377 * strcasestr.c: New file.
379 2005-08-17 Bruno Haible <bruno@clisp.org>
381 * strstr.h: Ignore HAVE_STRSTR, always declare the gnulib function.
382 * strstr.c: Completely rewritten, with multibyte locale support.
384 2005-08-17 Bruno Haible <bruno@clisp.org>
386 * strcasecmp.c: Use mbuiter.h.
388 2005-08-17 Bruno Haible <bruno@clisp.org>
390 * mbuiter.h: New file.
392 2005-08-16 Bruno Haible <bruno@clisp.org>
394 * strcasecmp.c (struct mbiter_multi): Remove at_end field.
396 (mbi_avail, mbi_advance): Let the iteration end before the terminating
397 NUL byte, not after it.
399 2005-08-16 Bruno Haible <bruno@clisp.org>
401 * mbchar.h (mb_cmp, mb_casecmp): Order the invalid characters after
402 the valid ones. Makes the comparison operations transitive:
403 cmp (a, b) < 0 && cmp (b, c) < 0 ==> cmp (a, c) < 0.
404 * strcasecmp.c (strcasecmp): Use mb_casecmp.
406 2005-08-16 Bruno Haible <bruno@clisp.org>
408 * strcase.h (strcasecmp): Add note in comments.
409 * strncasecmp.c: Use code from strcasecmp.c.
410 * strcasecmp.c: Use mbchar module. Define private mbiter variant.
411 (strcasecmp): Work correctly in multibyte locales.
413 2005-08-16 Bruno Haible <bruno@clisp.org>
415 * strnlen1.h: New file.
416 * strnlen1.c: New file.
418 2005-08-16 Bruno Haible <bruno@clisp.org>
420 * mbfile.h: New file.
422 2005-08-16 Bruno Haible <bruno@clisp.org>
424 * mbiter.h: New file.
426 2005-08-16 Bruno Haible <bruno@clisp.org>
428 * mbchar.h: New file.
429 * mbchar.c: New file.
431 2005-08-16 Bruno Haible <bruno@clisp.org>
433 * tls.h: New file, from GNU gettext.
434 * tls.c: New file, from GNU gettext.
436 2005-08-15 Bruno Haible <bruno@clisp.org>
438 * regex.h (__restrict_arr): Don't define to __restrict if __cplusplus
441 2005-08-14 Jim Meyering <jim@meyering.net>
445 * fts-cycle.c (setup_dir, enter_dir, leave_dir, free_dir):
446 Use the hash-table-based cycle-detection code not just when
447 FTS_TIGHT_CYCLE_CHECK if specified, but also with FTS_LOGICAL.
448 Reported by James Youngman in
449 <http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00011.html>.
450 * fts_.h: Mention that with FTS_LOGICAL, we use FTS_TIGHT_CYCLE_CHECK.
451 * fts.c (fts_cross_check) [FTS_DEBUG]: s/active_dir_ht/fts_cycle.ht/.
452 This lets us compile with -DFTS_DEBUG, once again.
453 * fts.c [! _LIBC]: Include "lstat.h" rather than rolling our own.
454 * fts.c (fd_safer): Remove decl.
455 Include fcntl--.h rather than unistd-safer.h
456 (fts_safe_changedir): Don't call fd_safer; no longer needed
457 now that we include fcntl--.h.
459 2005-08-11 Simon Josefsson <jas@extundo.com>
461 * readline.h, readline.c: New file.
463 2005-08-11 Bruno Haible <bruno@clisp.org>
465 * strnlen.h (strnlen): Change parameter name to match comment.
467 2005-08-10 Simon Josefsson <jas@extundo.com>
469 * strndup.c: Use strnlen.h.
471 * strnlen.h: New file.
473 2005-08-02 Simon Josefsson <jas@extundo.com>
475 * getline.h, getline.c: Rewrite.
477 * getdelim.h, getdelim.c: New files, ported from glibc.
479 2005-07-31 Bruno Haible <bruno@clisp.org>
481 * lock.h (gl_lock_initializer): New macro.
482 (gl_lock_define_initialized): Use it.
483 (gl_rwlock_initializer): New macro.
484 (gl_rwlock_define_initialized): Use it.
485 (gl_recursive_lock_initializer): New macro.
486 (gl_recursive_lock_define_initialized): Use it.
488 2005-07-26 Bruno Haible <bruno@clisp.org>
490 * lock.h: Update from GNU gettext.
491 * lock.c: Update from GNU gettext.
493 2005-07-18 Bruno Haible <bruno@clisp.org>
495 * lock.h (gl_once_t): New type.
496 (gl_once_define, gl_once): New macros.
497 * lock.c (fresh_once): New variable.
498 (glthread_once, glthread_once_call, glthread_once_singlethreaded): New
501 2005-07-18 Simon Josefsson <jas@extundo.com>
503 * check-version.c (check_version): Accept identical versions too.
505 2005-07-18 Bruno Haible <bruno@clisp.org>
507 * lock.h: New file, from GNU gettext.
508 * lock.c: New file, from GNU gettext.
510 2005-07-15 Paul Eggert <eggert@cs.ucla.edu>
512 * quotearg.c: Add translator comment suggested by Bruno Haible,
515 2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
517 * version-etc-fsf.c (version_etc_copyright): Parameterize the
518 copyright symbol and the year.
519 * version-etc.c (COPYRIGHT_YEAR): New constant.
520 (version_etc_va): Use parameterized copyright notice.
521 Reword to conform to the current GNU coding standards.
523 2005-07-11 Simon Josefsson <jas@extundo.com>
525 * size_max.h: New file.
527 2005-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
529 * argp-namefrob.h: Include unlocked-io.h. Removed unnecessary
532 2005-07-08 Eric Blake <ebb9@byu.net> (tiny change)
533 and Paul Eggert <eggert@cs.ucla.edu>
535 * regcomp.c (init_dfa, build_range_exp): Store __btowc value
536 in wint_t, not wchar_t. Remove now-unnecessary cast.
538 2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
540 * regex.c, regex.h: Sync from libc.
541 * regcomp.c, regexec_internal.c, regex_internal.h, regexec.c:
542 New files, synced from libc, except that regex_internal.h
543 currently has a small porting fix.
545 2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
547 Remove the dependency of the strftime module on the tzset module.
548 * strftime.c (my_strftime) [! defined _LIBC && ! HAVE_RUN_TZSET_TEST]:
549 Copy the input structure, to work around some of the bug with
550 Solaris 2.5.1 and Solaris 2.6. If you still care about these old
551 Solaris releases, you should also use the tzset module, but we won't
552 require it as a dependency any more since we don't want LGPLed code
553 to depend on GPLed code.
555 2005-07-02 Jim Meyering <jim@meyering.net>
557 * backupfile.c (backup_args): Change a `0' to NULL.
559 2005-07-01 Jim Meyering <jim@meyering.net>
561 * chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c:
562 * getloadavg.c, mountlist.c, openat.h, pagealign_alloc.c:
563 * save-cwd.c, tempname.c:
564 Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
565 and don't include <sys/file.h>).
567 2005-07-01 Paul Eggert <eggert@cs.ucla.edu>
569 * xnanosleep.c: Include timespec.h, since OpenBSD 3.4 <time.h>
570 declares only 'struct timespec;' (!).
572 2005-06-29 Jim Meyering <jim@meyering.net>
574 * mkdir-p.c (make_dir_parents): Don't apply sizeof to a hard-coded
575 type name. Use the variable name instead.
576 * idcache.c (getuser, getuidbyname, getgroup, getgidbyname): Likewise.
578 2005-06-28 Simon Josefsson <jas@extundo.com>
580 * check-version.h, check-version.c: New files.
582 2005-06-28 Simon Josefsson <jas@extundo.com>
584 * base64.c (base64_encode): Indent. Rename 'b64' to avoid
585 collision with global variable. Better indentation. Don't
586 increment buffer pointer beyond buffer end. Based on comments
587 from Paul Eggert <eggert@cs.ucla.edu>.
591 2005-06-24 Paul Eggert <eggert@cs.ucla.edu>
593 * canon-host.c (canon-host): Append trailing "," to 0 in
594 initializer of struct addrinfo, as an indication that we don't
595 care how many members the structure has.
597 2005-06-24 Derek Price <derek@ximbiot.com>
598 and Bruno Haible <bruno@clisp.org>
600 Remove stat module & update lstat.
601 * stat.c: Remove this file...
602 (slash_aware_lstat): ...moving this content and its support...
603 * lstat.c (rpl_lstat): ...into here.
606 2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
608 * mktime.c: Include <string.h> even if !DEBUG. (From glibc.)
609 (ranged_convert): Don't save conversion in a temporary struct.
610 This causes a warning with GCC 4.0.0, and anyway in the typical
611 case it's not worth the extra 100 bytes or so of code.
612 (ranged_convert, __mktime_internal): When calling a function via a
613 pointer P, use P () rather than (*P) (), as we now assume C89 or
616 2005-06-22 Paul Eggert <eggert@cs.ucla.edu>
618 * readutmp.c (desirable_utmp_entry): Fix bug where "who -b" and
619 "who -r" failed to give output. Problem reported by Tim Waugh.
621 * xmalloc.c (HAVE_GNU_CALLOC): New constant.
622 (xcalloc): Use it to avoid needless tests.
623 Problem reported by Jim Meyering.
625 2005-06-16 Jim Meyering <jim@meyering.net>
627 * calloc.c (rpl_calloc): Allocate a 1-byte buffer (not 1xS or Nx1)
628 when either N or S is zero.
630 2005-06-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
632 * argp.h (__option_is_short): Check upper limit of
633 __key. Isprint() requires its argument to have the value
634 of an unsigned char or EOF.
636 2005-06-10 Paul Eggert <eggert@cs.ucla.edu>
638 * fnmatch.c (fnmatch): If there is an encoding error in a
639 multibyte string or pattern, fall back on unibyte matching.
640 Problem reported by James Youngman.
642 2005-06-08 Bruno Haible <bruno@clisp.org>
644 * binary-io.h (fileno): Undefine before defining it. Avoids a gcc
647 2005-06-08 Bruno Haible <bruno@clisp.org>
649 * csharpcomp.h: New file, from GNU gettext.
650 * csharpcomp.c: New file, from GNU gettext.
651 * csharpcomp.sh.in: New file, from GNU gettext.
653 2005-06-07 Derek Price <derek@ximbiot.com>
656 * glob_.h: Indent nested #ifdef.
658 2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
661 Use "file name" when talking about file names, instead of "filename"
662 or "path", as per the GNU coding standards.
663 * mkdir-p.c: Renamed from makepath.c.
664 (make_dir_parents): Renamed from make_path. All callers changed.
665 * mkdir-p.h: Likewise. All includers changed.
666 * filenamecat.c: Renamed from path-concat.c.
667 (file_name_concat): Renamed from path_concat. All callers changed.
668 [TEST_FILE_NAME_CONCAT]: Renamed from TEST_PATH_CONCAT.
669 * filenamecat.h: Likewise. All includers changed.
670 * acl.c: Don't use "path" or "filename" to mean "file name"
671 in comments or local variable names.
672 * basename.c: Likewise.
673 * canonicalize.c, canonicalize.h: Likewise.
674 * dirname.c, dirname.h: Likewise.
675 * euidaccess.c: Likewise.
676 * exclude.c: Likewise
677 * fnmatch_.h, fnmatch_loop.c: Likewise.
678 * fsusage.c, fsuage.h: Likewise.
679 * fts.c, fts_.h: Likewise.
680 * getcwd.c: Likewise.
681 * getloadavg.c: Likewise.
682 * mkstemp.c: Likewise.
683 * mountlist.c, mountlist.h: Likewise.
684 * openat.c, openat.h: Likewise.
685 * readlink-stub.c: Likewise.
686 * readutmp.c, readutmp.h: Likewise.
687 * rename.c: Likewise.
690 * savedir.c: Likewise.
691 * stripslash.c: Likewise.
692 * tempname.c: Likewise.
693 * xreadlink.c: Likewise.
694 * exclude.c (excluded_file_name): Renamed from excluded_filename.
696 * exclude.h: Likewise.
698 * euidaccess.c (getuid, getgid, getuid, getegid)
699 [!defined _POSIX_VERSION]: Remove decls; not needed these days.
700 * idcache.c (getpwuid, getpwnam, getgrgid, getgrnam)
701 [!defined _POSIX_VERSION]: Remove decls; not needed these days.
702 * pathmax.h: Include <limits.h> unconditionally, since other
703 files have been getting away with it for years (MORE/BSD 4.3
705 * userspec.c (getpwnam, getgrnam, getgrgid)
706 [!defined _POSIX_VERSION]: Remove decls; not needed these days.
708 * pathmax.h (_POSIX_PATH_MAX) [!defined _POSIX_PATH_MAX]:
709 Define to 256, not 255, as per modern POSIX.
711 2005-06-01 Bruno Haible <bruno@clisp.org>
713 * csharpexec.h: New file, from GNU gettext.
714 * csharpexec.c: New file, from GNU gettext.
715 * csharpexec.sh.in: New file, from GNU gettext.
717 2005-05-31 Derek Price <derek@ximbiot.com>
718 Paul Eggert <eggert@cs.ucla.edu>
721 * glob_.h: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment.
723 2005-05-29 Derek Price <derek@ximbiot.com>
724 Paul Eggert <eggert@cs.ucla.edu>
726 * glob_.h, glob.c: New files.
728 2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
730 * getlogin_r.c (getlogin_r): Don't set errno to 0 on return.
732 * fts.c: Don't worry about debugging on pre-C99-compatible hosts;
733 the configuration hassle isn't worth it.
734 Include inttypes.h and stdint.h unconditionally if FTS_DEBUG.
735 (LONGEST_MODIFIER, PRIuMAX): Remove.
737 2005-05-27 Bruno Haible <bruno@clisp.org>
739 * getlogin_r.h: Remove second include of <stddef.h>.
741 2005-05-25 Bruno Haible <bruno@clisp.org>
742 Derek Price <derek@ximbiot.com>
744 * getlogin_r.h: Simplify API documentation.
746 2005-05-25 Derek Price <derek@ximbiot.com>
747 Paul Eggert <eggert@cs.ucla.edu>
749 * getlogin_r.c, getlogin_r.h: New files.
751 2005-05-22 Bruno Haible <bruno@clisp.org>
753 * minmax.h: Include <limits.h> only when it defines MIN, MAX.
754 Also include <sys/param.h> if it defines MIN, MAX.
755 Based on a patch by Derek Price <derek@ximbiot.com>.
757 2005-05-22 Bruno Haible <bruno@clisp.org>
759 * stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs.
760 (INT64_MIN): Fix definition.
761 Suggested by Paul Eggert <eggert@cs.ucla.edu>.
763 * stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Renamed from
764 NEED_SIGNED_INT_TYPES.
766 * stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Renamed from
767 HAVE_SYSTEM_INTTYPES.
769 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
771 * fts.c (fd_safer) [_LGPL_PACKAGE]: New static function,
772 so that unistd-safer.h (GPL'ed code) need not be included.
774 2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
777 * fts.c: Don't include "cycle-check.h" or "hash.h".
778 (setup_dir, free_dir): New functions.
779 (enter_dir, leave_dir): Define trivial
780 alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE.
781 (HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed.
782 (LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir.
783 (struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir):
785 (fts_open): Use setup_dir.
786 (fts_close): Use free_dir.
787 (fts_read): Have just one copy of the ENTER_DIR code rather than three.
788 This adds a label and some gotos, but the alternatives were messier.
789 Check for memory allocation failure when entering a dir.
790 (fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code.
791 * fts_.h (_LGPL_PACKAGE) [defined _LIBC]: New macro.
792 (FTS): New member fts_cycle, that is a union that contains the
793 old active_dir_ht and cycle_state. All uses changed to mention
794 fts_cycle.ht and fts_cycle.state.
795 * fts-cycle.c: New file, containing GPL'ed code migrated out of
796 fts.c, with the following changes:
797 (setup_dir, free_dir): New functions.
798 (enter_dir): Now returns bool. Return true if successful, false
799 if memory exhausted. All callers changed.
800 Do not bother partly cleaning up on
801 memory allocation failure; that is free_dir's job.
802 However, free ad if hash_insert fails, to avoid memory leak.
803 (enter_dir, leave_dir): Accommodate change to FTS by inspecting
804 fts->fts_options to see which union member to use.
806 2005-05-20 Jim Meyering <jim@meyering.net>
808 * unlinkdir.h (cannot_unlink_dir) [UNLINK_CANNOT_UNLINK_DIR]:
809 Now a macro, to pacify GCC.
811 2005-05-20 Eric Blake <ebb9@byu.net> (tiny change)
813 * chown.c (rpl_chown): Return -1 on failure.
815 2005-05-18 Paul Eggert <eggert@cs.ucla.edu>
817 * canonicalize.c: Include canonicalize.h first, to test interface.
818 Include <stddef.h> unconditionally, since we assume C89 now.
819 All uses of PTR_INT_TYPE replaced by ptrdiff_t.
820 * fts.c: Include fts_.h first, to check interface.
821 Do not include intprops.h; no longer needed.
822 Include cycle-check.h and hash.h, since fts_.h no longer does.
823 Remove unnecessary casts of closedir to void.
824 (fts_build): Use a simpler method (not involving TYPE_SIGNED) to
825 decide whether to decrement nlinks.
826 * fts_.h: Do not include hash.h or cycle-check.h; no longer needed.
827 (FTS): Use struct hash_table * instead of Hash_table, so that
828 we no longer need to include hash.h here.
830 2005-05-17 Jim Meyering <jim@meyering.net>
832 * fts.c, fts_.h: New files, from coreutils.
834 2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
837 * unlinkdir.c, unlinkdir.h: New files.
838 * gethrxtime.c, gethrxtime.h, getpass.h, mountlist.h, path-concat.c,
839 regex.h, unlocked-io.h, xtime.h:
840 White space changes only.
841 * makepath.c (make_path): Port to hosts where leading "//" is special.
842 * yesno.c: Include getline.h, not ctype.h.
843 (yesno): Don't remove leading white space; POSIX doesn't allow it.
844 Use getline to remove arbitrary restriction on response length.
846 2005-05-13 Bruno Haible <bruno@clisp.org>
848 * stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t,
849 int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX,
850 UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
851 INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN,
852 INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C):
853 Add support for 64-bit integers in the MSVC compiler.
855 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
857 * byteswap_.h, getsubopt.h, iconvme.h, strsep.c, strsep.h:
858 Change the initial comment to refer to GPL, not LGPL.
859 gnulib-tool will change it to LGPL as needed.
861 * __fpending.c, acl.c, acl.h, alloca_.h, allocsa.c, allocsa.h,
862 argmatch.c, argmatch.h, argp-ba.c, argp-eexst.c, argp-fmtstream.c,
863 argp-fmtstream.h, argp-fs-xinl.c, argp-help.c, argp-namefrob.h,
864 argp-parse.c, argp-pv.c, argp-pvh.c, argp-xinl.c, argp.h, argz.c,
865 argz_.h, asnprintf.c, asprintf.c, atanl.c, backupfile.c,
866 backupfile.h, base64.c, base64.h, basename.c, binary-io.h,
867 byteswap_.h, c-ctype.c, c-ctype.h, c-stack.c, c-stack.h,
868 c-strtod.c, calloc.c, canon-host.c, canonicalize.c,
869 canonicalize.h, ceill.c, chdir-long.c, chdir-long.h, chown.c,
870 classpath.c, classpath.h, cloexec.c, closeout.c, closeout.h,
871 concatpath.c, config.charset, copy-file.c, copy-file.h,
872 cycle-check.c, cycle-check.h, diacrit.c, diacrit.h, dirfd.c,
873 dirfd.h, dirname.c, dirname.h, dummy.c, dup-safer.c, dup2.c,
874 eealloc.h, error.c, error.h, euidaccess.c, exclude.c, exclude.h,
875 execute.c, execute.h, exit.h, exitfail.c, exitfail.h, expl.c,
876 fatal-signal.c, fatal-signal.h, fd-safer.c, file-type.c,
877 file-type.h, fileblocks.c, filemode.c, filemode.h, findprog.c,
878 findprog.h, floorl.c, fnmatch.c, fnmatch_.h, fnmatch_loop.c,
879 fopen-safer.c, free.c, frexpl.c, fsusage.c, fsusage.h,
880 full-read.c, full-read.h, full-write.c, full-write.h,
881 fwriteerror.c, fwriteerror.h, gai_strerror.c, gcd.c, gcd.h,
882 getaddrinfo.c, getaddrinfo.h, getcwd.c, getcwd.h, getdate.h,
883 getdate.y, getdomainname.c, getdomainname.h, getgroups.c,
884 gethostname.c, gethrxtime.c, gethrxtime.h, getline.c, getline.h,
885 getloadavg.c, getndelim2.c, getndelim2.h, getnline.c, getnline.h,
886 getopt.c, getopt1.c, getopt_.h, getopt_int.h, getpagesize.h,
887 getpass.c, getpass.h, getsubopt.c, getsubopt.h, gettext.h,
888 gettime.c, gettimeofday.c, getugroups.c, getusershell.c,
889 group-member.c, group-member.h, hard-locale.c, hard-locale.h,
890 hash-pjw.c, hash-pjw.h, hash.c, hash.h, human.c, human.h,
891 iconvme.c, iconvme.h, idcache.c, inet_ntop.h, intprops.h,
892 inttostr.c, inttostr.h, isdir.c, javacomp.c, javacomp.h,
893 javacomp.sh.in, javaexec.c, javaexec.h, javaexec.sh.in,
894 lbrkprop.h, lchown.c, ldexpl.c, linebreak.c, linebreak.h,
895 linebuffer.c, linebuffer.h, localcharset.c, localcharset.h,
896 logl.c, long-options.c, long-options.h, lstat.c, makepath.c,
897 makepath.h, malloc.c, mathl.h, mbswidth.c, mbswidth.h, md5.c,
898 md5.h, memcasecmp.c, memcasecmp.h, memchr.c, memcmp.c, memcoll.c,
899 memcoll.h, memcpy.c, memmem.c, memmem.h, mempcpy.c, mempcpy.h,
900 memrchr.c, memrchr.h, memset.c, minmax.h, mkdir.c, mkdtemp.c,
901 mkdtemp.h, mkstemp.c, mktime.c, modechange.c, modechange.h,
902 mountlist.c, mountlist.h, nanosleep.c, obstack.c, obstack.h,
903 openat.c, openat.h, pagealign_alloc.c, pagealign_alloc.h,
904 path-concat.c, path-concat.h, pathmax.h, pathname.h, physmem.c,
905 physmem.h, pipe.c, pipe.h, poll.c, poll_.h, posixtm.c, posixtm.h,
906 posixver.c, printf-args.c, printf-args.h, printf-parse.c,
907 printf-parse.h, progname.c, progname.h, progreloc.c, putenv.c,
908 quote.c, quote.h, quotearg.c, quotearg.h, raise.c, readlink.c,
909 readtokens.c, readtokens.h, readtokens0.c, readtokens0.h,
910 readutmp.c, readutmp.h, realloc.c, ref-add.sin, ref-del.sin,
911 regex.c, regex.h, rename.c, rmdir.c, rpmatch.c, safe-read.c,
912 safe-read.h, safe-write.c, safe-write.h, same.c, same.h,
913 save-cwd.c, save-cwd.h, savedir.c, savedir.h, setenv.c, setenv.h,
914 settime.c, sh-quote.c, sh-quote.h, sha1.c, sha1.h, sig2str.c,
915 sig2str.h, sincosl.c, snprintf.c, snprintf.h, sqrtl.c,
916 stat-macros.h, stat.c, stdbool_.h, stdint_.h, stdio-safer.h,
917 stpcpy.c, stpcpy.h, stpncpy.c, stpncpy.h, strcase.h, strcasecmp.c,
918 strchrnul.c, strchrnul.h, strcspn.c, strdup.c, strdup.h,
919 strerror.c, strftime.c, strftime.h, stripslash.c, strndup.c,
920 strndup.h, strnlen.c, strpbrk.c, strpbrk.h, strsep.c, strsep.h,
921 strstr.c, strstr.h, strtod.c, strtoimax.c, strtok_r.c, strtok_r.h,
922 strtol.c, strtoll.c, strtoul.c, strtoull.c, strverscmp.c,
923 strverscmp.h, sysexit_.h, tempname.c, time_r.c, time_r.h,
924 timegm.c, timegm.h, timespec.h, trigl.c, trigl.h, ucs4-utf16.h,
925 ucs4-utf8.h, unicodeio.c, unicodeio.h, unistd-safer.h,
926 unlocked-io.h, unsetenv.c, userspec.c, utf16-ucs4.h, utf8-ucs4.h,
927 utime.c, utimecmp.c, utimecmp.h, utimens.c, vasnprintf.c,
928 vasnprintf.h, vasprintf.c, vasprintf.h, version-etc-fsf.c,
929 version-etc.c, version-etc.h, vsnprintf.c, vsnprintf.h,
930 w32spawn.h, wait-process.c, wait-process.h, xalloc-die.c,
931 xalloc.h, xallocsa.c, xallocsa.h, xasprintf.c, xgetcwd.c,
932 xgetcwd.h, xgetdomainname.c, xgetdomainname.h, xgethostname.c,
933 xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xreadlink.h,
934 xsetenv.c, xsetenv.h, xsize.h, xstrndup.c, xstrndup.h, xstrtod.c,
935 xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c,
936 xtime.h, xvasprintf.c, xvasprintf.h, yesno.c, yesno.h:
937 Update FSF postal mail address.
939 2005-05-10 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
941 * getaddrinfo.c: Don't fail when SOCK_STREAM or SOCK_DGRAM are
942 specified in ai_socktype. Fix invalid ai_protocol
943 check. ai_protocol is usually set to 0 or depending on
944 ai_family/ai_socktype to IPPROTO_TCP / IPPROTO_UDP. Checking for
945 SOCK_STREAM / SOCK_DGRAM in ai_protocol was invalid. Set
946 ai_socktype / ai_protocol in the returned addrinfo structure.
948 2005-05-09 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
949 Bruno Haible <bruno@clisp.org>
951 * inet_ntop.h: New file.
952 * inet_ntop.c: New file, from glibc with modifications.
954 2005-05-08 Jim Meyering <jim@meyering.net>
956 * classpath.c (PATH_SEPARATOR): Remove insignificant trailing blank.
958 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
960 Merge from coreutils. Among other things,
961 add bulletproofing for cases where stdin, stdout, or stderr are closed.
962 * fd-safer.c: New file.
963 * fcntl-safer.h, open-safer.c: Remove.
964 * chdir-long.c: Fix comment "fetish" -> "coreutils".
965 * dup-safer.c: Include unistd-safer.h first.
966 Don't include errno.h.
967 (dup_safer) [!defined F_DUPFD]: Let fd_safer do the real work.
968 * file-type.h: Don't assume invoker included sys/stat.h first.
969 * file-type.c: Rely on file-type.h change.
970 * getloadavg.c: Include unistd-safer.h.
971 (getloadavg): Use safer open.
972 * getusershell.c: Include "stdio-safer.h".
973 (getusershell): Use safer fopen.
974 * long-options.c (long_options): Use NULL rather than 0.
975 * modechange.h (mode_free): Remove; all callers changed to invoke
977 * modechange.c: Likewise.
978 xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed.
979 (MODE_DONE): New constant.
980 (struct mode_change): Remove 'next' member.
981 (make_node_op_equals): New function; like the old one of the
982 same name, except it allocates an array.
983 (mode_compile, mode_create_from_ref): Use it.
984 (mode_compile): Allocate result as an array, not a linked list.
985 Parse octal string ourself, so that we catch mistakes like "+0".
986 (mode_adjust): Arg is an array, not a linked list.
987 * modechange.c: Include stat-macros.h, xalloc.h.
988 (S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR):
989 (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU):
990 (S_IRWXG, S_IRWXO, CHMOD_MODE_BITS):
991 Remove. This is now stat-macros.h's job.
992 (talloc): Remove. All callers replaced by xalloc, so that
993 our invokers don't have to worry about reporting memory failures.
994 (make_node_op_equals): Remove.
995 (MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
997 (struct mode_change): Moved here from modechange.h.
998 (mode_append_entry): Remove.
999 (mode_compile): Remove MASKED_OPS arg, since it encouraged
1000 apps to have incorrect behavior. Use simpler algorithm for head
1001 and tail. Don't futz with umask; that's now the job of mode_adjust.
1002 Detect more invalid usages rather than having somewhat-random behavior.
1003 Don't insert an "a=" action, as that leads to incorrect behavior.
1004 (mode_compile, mode_create_from_ref): Return NULL on error instead
1005 of an enum, since now there's only one way to have an error. All
1007 (mode_adjust): Accept new arg UMASK_VALUE, and interpret it
1008 at the correct time. Simplify calculation of "+u" and its ilk.
1009 Don't mishandle "+X".
1010 (mode_free): Remove "register" and localize decls.
1011 * modechange.h (MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
1012 (struct mode_change): Move to modechange.c; callers don't
1013 need to see this stuff.
1014 (MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL):
1015 (MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove.
1016 (mode_change, mode_adjust): Reflect the new signatures noted above.
1017 * nanosleep.c (rpl_nanosleep): Include "timespec.h" before macros
1018 that might redefine system include files.
1019 (siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
1020 (my_usleep): Use NULL rather than (void *) 0.
1021 (rpl_nanosleep) [!defined SA_NOCLDSTOP]:
1022 Use siginterrupt to specify that system calls should be interrupted.
1023 (rpl_nanosleep): Move initialization of suspended closer to call of
1025 * readutmp.h (read_utmp): New arg OPTIONS. All uses changed.
1026 * readutmp.c: Likewise. Include signal.h, stdbool.h.
1027 (desirable_utmp_entry): New function.
1028 (read_utmp) [defined UTMP_NAME_FUNCTION]: Redo memory allocation
1029 using x2nrealloc, to simplify logic.
1030 (read_utmp) [!defined UTMP_NAME_FUNCTION]: Check for overflow in
1031 size calculation. Do not assume utmp file is a regular file.
1032 * readutmp.h (UT_PID): Moved here from ../src/who.c.
1033 (READ_UTMP_CHECK_PIDS): New constant.
1034 * save-cwd.c: Include unistd-safer.h.
1035 (save_cwd): Use fd_safer.
1036 * tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove.
1037 [!_LIBC] Include "stat-macros.h" instead.
1038 * unistd-safer.h (fd_safer): New decl.
1040 2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
1042 * byteswap_.h: New file.
1044 2005-04-25 Albert Chin <china@thewrittenword.com>
1046 * regex.c: Include <stdio.h>, as a workaround to a Compaq Desktop
1049 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
1051 * getdate.y (zone): Allow relunit_snumber after tZONE, so
1052 that "UTC +1 second" continues to work. Problem reported
1054 (relunit_snumber): New rule.
1057 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
1059 * getdate.y (universal_time_zone_table): New constant.
1060 (time_zone_table): Remove GMT, UT, UTC entries; they're now in
1061 universal_time_zone_table.
1062 (lookup_zone): Prefer universal_time_zone_table to
1063 local_time_zone_table, so that "GMT" time stamps are allowed in
1064 London during the summer. Problem reported by Ian Abbott.
1066 2005-04-12 Jim Meyering <jim@meyering.net>
1068 * human.c (humblock): Set *options even when returning due to
1069 xstrtoumax conversion failure. Thanks to a used-uninitialized
1072 2005-04-09 Jim Meyering <jim@meyering.net>
1074 * posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's
1075 -Wuninitialized: initialize tm0.tm_year.
1077 2005-04-04 Paul Eggert <eggert@cs.ucla.edu>
1079 * getdate.y (parser_control): rels_seen is now a boolean, not a
1080 count, since there's no maximum. All uses changed.
1081 Add member dsts_seen.
1082 (local_zone): Accumulate dsts_seen rather than relying on tm_isdst
1084 (get_date): Initialize dsts_seen, and check that it doesn't go over 1.
1085 Use pc_rels_seen to decide whther a date is absolute.
1087 * getdate.y (number): Don't overwrite year.
1088 (get_date): Initialize pc.year.digits to 0, not 4, to enable above
1091 2005-04-02 Simon Josefsson <jas@extundo.com>
1093 * getaddrinfo.h: Fix OpenBSD compilation failure, inspired by tiny
1094 patch from Yoann Vandoorselaere <yoann@prelude-ids.org>.
1096 2005-03-27 Jim Meyering <jim@meyering.net>
1098 * argmatch.c: Clarify comment: null-terminated -> NULL-terminated.
1100 2005-03-26 Paul Eggert <eggert@cs.ucla.edu>
1102 * intprops.h (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND):
1103 "one's complement" -> "ones' complement" in comment, as per Knuth.
1104 "value of type" -> "type or expression" in comment.
1105 * mktime.c, strftime.c: Propagate intprops.h comment nits.
1107 2005-03-26 Jim Meyering <jim@meyering.net>
1110 * intprops.h: Add the apostrophe in `(one|two)'s complement'.
1111 Correct typos: s/or/of/.
1113 2005-03-23 Jim Meyering <jim@meyering.net>
1115 * canonicalize.c: Remove duplicate `#include "stat-macros.h"'.
1117 2005-03-21 Jim Meyering <jim@meyering.net>
1119 Changes imported from coreutils.
1121 * cycle-check.c: Don't include xalloc.h.
1123 * path-concat.c: Don't include assert.h.
1124 (path_concat): Remove assertion that would have triggered
1125 for ABASE starting with more than one slash.
1126 Reported by Andreas Schwab.
1128 * path-concat.c (path_concat): Set *BASE_IN_RESULT
1129 properly when ABASE is an absolute file name.
1130 Correct the description of this function.
1132 Add an assertion and a test driver.
1133 This fixes a bug introduced on 2004-07-02.
1134 Andreas Schwab reported the resulting failure of cp --parents:
1135 http://lists.gnu.org/archive/html/bug-coreutils/2005-01/msg00130.html
1137 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
1139 * strftime.c (my_strftime): If the underlying strftime returns 0
1140 (which shouldn't happen), generate nothing instead of returning 0
1141 immediately, so that nstrftime (NULL, ...) doesn't return 0.
1143 2005-03-16 Bruno Haible <bruno@clisp.org>
1145 * stdint_.h: Use HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT.
1147 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
1149 * strftime.c (my_strftime): Prepend space to format so that we can
1150 reliably distinguish strftime failure from empty output on POSIX
1153 2005-03-08 Paul Eggert <eggert@cs.ucla.edu>
1155 * iconvme.c (SIZE_MAX): New macro, if not already defined.
1156 (iconv_string): Don't guess a size-zero buffer, as that might cause
1157 buffer overrun. Instead, avoid multiplying by MB_LEN_MAX if the
1158 result would be 'too large', where 'too large' is (heuristically)
1159 the square root of SIZE_MAX, divided by MB_LEN_MAX to allay
1160 overflow concerns. This will prevent some unwanted malloc failures
1161 when the inputs are very large.
1163 2005-03-15 Bruno Haible <bruno@clisp.org>
1165 * regex.c (byte_re_match_2_internal): Rename local variable 'not' to
1168 * regex.c (byte_re_match_2_internal): Reduce scope of same_str_p
1171 * regex.c (EXTEND_BUFFER, regcomp): Cast the realloc/malloc results.
1173 2005-03-14 Paul Eggert <eggert@cs.ucla.edu>
1175 * mktime.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT,
1176 TYPE_SIGNED_MAGNITUDE, TYPE_MINIMUM, TYPE_MAXIMUM): Sync from
1178 * strtol.c: Likewise.
1180 2005-03-14 Simon Josefsson <jas@extundo.com>
1182 * timegm.h: Use proper prototype CPP guards, reported by Dave Love
1185 2005-03-14 Jim Meyering <jim@meyering.net>
1187 * strftime.c (my_strftime) [HAVE_STRFTIME && ! (_NL_CURRENT
1188 && HAVE_STRUCT_ERA_ENTRY)]: Initialize the first byte of ubuf[]
1189 to be nonzero so that we (and caller) can detect the difference
1190 between a valid zero-length expansion and an error return, even
1191 when the underlying strftime fails before writing anything into
1194 2005-03-10 Jim Meyering <jim@meyering.net>
1196 * save-cwd.c [!HAVE_FCHDIR]: Define open, fchdir, and chdir_long
1197 so that this module works on systems without fchdir.
1199 2005-03-09 Paul Eggert <eggert@cs.ucla.edu>
1201 Factor int-properties macros into a single file, except for
1202 glibc-related files.
1203 * intprops.h: New file.
1204 * getloadavg.c: Include it instead of limits.h.
1205 (INT_STRLEN_BOUND): Remove.
1206 * human.c: Include intprops.h.
1207 (group_number): Use INT_STRLEN_BOUND instead of rolling it ourself.
1208 * human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000.
1209 * inttostr.h: Include intprops.h instead of limits.h.
1210 (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove.
1211 * mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros,
1212 for consistency with intprops.h.
1213 (time_t_is_integer, twos_complement_arithmetic): Use them.
1214 * sig2str.h: Include <signal.h>, intprops.h.
1215 (INT_STRLEN_BOUND): Remove.
1216 * strftime.c (TYPE_SIGNED): Remove.
1217 (INT_STRLEN_BOUND): Switch to same implementation as intprops.h.
1218 * strtol.c: Adjust comments to match intprops.h.
1219 * userspec.c: Include intprops.h.
1220 (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.
1221 * utimecmp.c, xnanosleep.c, xstrtol.c: Likewise.
1222 * utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT
1223 instead of rolling our own expressions.
1224 * xstrtol.c: Include xstrtol.h first, to test interface.
1226 * strftime.c: Include <stdbool.h>. Use bool where appropriate,
1228 (my_strftime): Do not mishandle years close to INT_MAX, by doing
1229 the right thing even if adding 1900 would overflow. Similarly
1230 for tm_mon + 1 and tm_yday + 1.
1231 Make %Y always equivalent to %C%y, and similarly for %G and %g.
1232 (DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional.
1233 (DO_SIGNED_NUMBER): New macro.
1234 (my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1.
1236 2005-03-07 Bruno Haible <bruno@clisp.org>
1238 * pagealign_alloc.c (MAP_FILE, MAP_FAILED): Define fallbacks.
1240 2005-03-03 Derek R. Price <derek@ximbiot.com>
1241 Bruno Haible <bruno@clisp.org>
1243 * pagealign_alloc.h: New file.
1244 * pagealign_alloc.c: New file.
1246 2005-01-28 Bruno Haible <bruno@clisp.org>
1248 * stpncpy.h (stpncpy): Define as a macro without arguments, so that
1251 2005-03-01 Paul Eggert <eggert@cs.ucla.edu>
1253 Remove workaround for bug in Linux kernel 2.6.8 or thereabouts.
1254 The workaround isn't strictly needed for POSIX conformance, and
1255 it's too much of a pain to configure and maintain. We'll ask
1256 people to fix their kernels instead.
1257 * xnanosleep.c: Don't include gethrxtime.h or xtime.h.
1258 (NANOSLEEP_BUG_WORKAROUND): Remove.
1259 (xnanosleep): Remove the workaround.
1261 2005-02-12 Bruno Haible <bruno@clisp.org>
1263 * vasnprintf.c (EOVERFLOW): Define to a fallback if needed.
1265 2005-02-25 Paul Eggert <eggert@cs.ucla.edu>
1267 * gethrxtime.h, gethrxtime.c, xtime.h: New files.
1268 * timespec.h (gettime): Return void, since it always
1269 succeeds now. All uses changed.
1270 * gettime.c (gettime) Likewise.
1271 [HAVE_NANOTIME]: Prefer nanotime.
1272 Assume gettimeofday succeeds, as POSIX requires.
1273 Assime time () succeeds, since other code already does.
1274 * xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h.
1275 (timespec_subtract): Remove.
1276 (NANOSLEEP_BUG_WORKAROUND): New constant.
1277 (xnanosleep): Use gethrxtime rather than gettime; this simplifies
1278 things considerably. Use it only on GNU/Linux hosts, since the
1279 workaround shouldn't be needed elsewhere.
1281 2005-02-24 Bruno Haible <bruno@clisp.org>
1283 * gettext.h: Update from GNU gettext 0.14.2.
1285 2005-02-24 Bruno Haible <bruno@clisp.org>
1287 * localcharset.c: Update from GNU gettext 0.14.2.
1288 * config.charset: Update from GNU gettext 0.14.2.
1290 2005-02-22 Simon Josefsson <jas@extundo.com>
1292 * iconvme.h, iconvme.c: New files, from libc.
1294 2005-02-20 Neil Conway <neilc@samurai.com>
1296 * xgethostname.c (xgethostname): Check for ENOMEM, which is
1297 returned by OSX/Darwin if the specified buffer is not large
1298 enough for the hostname.
1300 2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
1302 * memrchr.h: New file.
1303 * chdir-long.c: Include it.
1304 * memrchr.c [!defined _LIBC]: Include it rather than <string.h>
1305 Don't bother including stddef.h.
1307 2005-02-03 Sergey Poznyakoff <gray@Mirddin.farlep.net>
1309 * argp-help.c (__argp_help): Create a fake struct argp_state and
1310 pass it to _help, otherwise the latter coredumps trying to
1311 dereference state.root_argp.
1313 2005-02-01 Paul Eggert <eggert@cs.ucla.edu>
1315 * mountlist.h (MOUNTLIST_H_): New macro, to protect against double
1317 Include <sys/types.h>, for dev_t.
1318 (ME_DUMMY, ME_REMOTE): Move from here....
1319 * mountlist.c (ME_DUMMY, ME_REMOTE): To here.
1320 (ME_DUMMY): Count "subfs" as a dummy. Problem reported by
1322 Include mountlist.h first, to test the interface.
1324 2005-01-29 Bruno Haible <bruno@clisp.org>
1326 * progname.c (program_name): Initialize.
1327 Needed when linking statically on MacOS X.
1329 2005-01-28 Bruno Haible <bruno@clisp.org>
1331 * javacomp.sh.in: New file, from GNU gettext.
1332 * javacomp.h: New file, from GNU gettext.
1333 * javacomp.c: New file, from GNU gettext.
1335 2005-01-26 Bruno Haible <bruno@clisp.org>
1337 * javaexec.sh.in: New file, from GNU gettext.
1338 * javaexec.h: New file, from GNU gettext.
1339 * javaexec.c: New file, from GNU gettext.
1341 2005-01-26 Simon Josefsson <jas@extundo.com>
1343 * gai_strerror.c: Use GPL in header.
1345 2005-01-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
1347 * argp-help.c (hol_entry_help): Avoid using non-constant
1348 initializers for struct pentry_state.
1349 (__argp_error): Check return value of __asprintf
1350 (__argp_failure): Translate error message
1352 * argp-parse.c: Removed braces around the expansion of N_()
1354 2005-01-21 Jim Meyering <jim@meyering.net>
1356 * openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the
1357 same value as for Solaris 9.
1359 * chdir-long.c (chdir_long): Rewrite to remove limitation on
1360 component length. This included changing the parameter to be
1361 of type `char *' rather than `char const *'.
1362 * chdir-long.h (chdir_long): Update prototype.
1364 * openat.c (fdopendir, fstatat): New functions.
1365 * openat.h: Include headers required for use of DIR and struct stat.
1366 [AT_SYMLINK_NOFOLLOW]: Define.
1367 (fdopendir, fstatat): Add prototypes.
1369 2005-01-21 Bruno Haible <bruno@clisp.org>
1371 * classpath.h: New file, from GNU gettext.
1372 * classpath.c: New file, from GNU gettext.
1374 2005-01-20 Simon Josefsson <jas@extundo.com>
1376 * version-etc-fsf.c: New file, with version_etc_copyright.
1377 * version-etc.c: Remove version_etc_copyright.
1378 * version-etc.h (version_etc_copyright): Use [] instead of * in
1379 prototype, suggested by Paul Eggert <eggert@CS.UCLA.EDU>.
1381 2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
1383 * save-cwd.c (save_cwd): Remove code to support the case
1384 where fchdir is missing or flaky.
1386 2005-01-20 Simon Josefsson <jas@extundo.com>
1388 * base64.h (isbase64): Add.
1390 * base64.c (isb64): Rename to isbase64, use to_uchar instead of
1391 using a unsigned prototype, don't inline.
1392 (base64_decode): Use it.
1394 2005-01-19 Bruno Haible <bruno@clisp.org>
1396 * sh-quote.h: New file, from GNU gettext.
1397 * sh-quote.c: New file, from GNU gettext.
1399 2005-01-18 Paul Eggert <eggert@cs.ucla.edu>
1401 Merge changes from coreutils, as described below in several
1402 changelogs dated today.
1404 * save-cwd.c: Include "save-cwd.h" before other include files.
1405 (O_DIRECTORY): Remove; not needed here, since "." must be
1406 a directory. All uses removed.
1407 (save_cwd): Use __sgi || __sun, not sun || __sun. __sun is
1408 universal on Suns, and we also need to test for IRIX.
1409 Revamp code to use 'if' rather than '#if'.
1410 Avoid unnecessary comparison of cwd->desc to 0.
1412 * utimens.c (futimens): Robustify the previous patch, by checking
1413 for known valid error numbers rather than observed invalid ones.
1415 2005-01-18 Jim Meyering <jim@meyering.net>
1417 * version-etc.c (version_etc_copyright): Update copyright date.
1419 * utimens.c (futimens): Account for the fact that futimes
1420 can also fail with errno == ENOSYS or errno == ENOENT.
1421 Patch from Dmitry V. Levin.
1423 Change the name of the robust chdir function from chdir to chdir_long.
1424 * save-cwd.c: Include chdir-long.h rather than chdir.h.
1425 (restore_cwd): Use chdir_long, not chdir.
1426 * chdir-long.c: Renamed from chdir.c.
1427 * chdir-long.h: Renamed from chdir.h.
1428 [!defined PATH_MAX]: Define chdir_long to chdir on systems like the
1431 2005-01-18 Bob Proulx <bob@proulx.com>
1433 * obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to simplify
1434 offsetof() macro construct to avoid compile failure with native HP-UX
1435 11.0 ANSI C compiler.
1437 2005-01-06 Bruno Haible <bruno@clisp.org>
1439 * stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming, redundant
1440 because stpncpy.m4 takes care of it.
1442 2004-01-24 Bruno Haible <bruno@clisp.org>
1444 * progreloc.c (xstrdup): Define as strdup if no xmalloc should be used.
1446 2003-10-09 Bruno Haible <bruno@clisp.org>
1448 * progreloc.c: Include xalloc.h instead of xmalloc.h.
1450 2005-01-06 Bruno Haible <bruno@clisp.org>
1452 * fwriteerror.h (fwriteerror): Change specification to include fclose.
1453 * fwriteerror.c: Include <stdbool.h>.
1454 (fwriteerror): At the end, close the file stream. Record whether
1455 stdout was already closed.
1457 2004-05-27 Bruno Haible <bruno@clisp.org>
1459 * execute.c (environ): Declare if needed.
1460 * pipe.c (environ): Likewise.
1461 Reported by Michael Schloh von Bennewitz <michael.schloh@cw.com>.
1463 2005-01-04 Paul Eggert <eggert@cs.ucla.edu>
1465 * human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional
1466 definitions to be after all include files, to avoid collisions.
1467 Problem reported by Bob Proulx.
1469 2004-12-28 Paul Eggert <eggert@cs.ucla.edu>
1471 * error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h";
1472 not needed. This removes a dependency on the gettext module.
1473 [defined _LIBC]: Do not include <libintl.h>; not needed.
1475 2004-12-24 Paul Eggert <eggert@cs.ucla.edu>
1477 * c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not
1480 2004-12-23 Paul Eggert <eggert@cs.ucla.edu>
1482 * argp-parse.c: Include <stddef.h>.
1483 (alignof, alignto): New macros.
1484 (parser_init): Don't assume that void * is aligned sufficiently
1487 * getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no
1488 need to extend the stack.
1489 (YYINITDEPTH): New macro, so that the initial stack isn't overly
1492 2004-12-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
1494 * argp-parse.c (parser_init): Avoid arithmetics on void pointers.
1496 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
1498 * alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H.
1499 Remove now-obsolete comment about AIX.
1500 * getdate.y: Include <alloca.h> only if HAVE_ALLOCA.
1501 (YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA.
1502 (YYMAXDEPTH): New macro.
1504 2004-12-18 Bruno Haible <bruno@clisp.org>
1506 * fatal-signal.c (fatal_signals): Make non-const.
1507 (init_fatal_signals): New function.
1508 (uninstall_handlers, install_handlers): Ignore signals that were set to
1510 (at_fatal_signal): Call init_fatal_signals.
1511 (init_fatal_signal_set): Likewise. Ignore signals that were set to
1513 Reported by Paul Eggert.
1515 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
1517 * getdate.y (textint): New member "negative".
1518 (time_zone_hhmm): New function.
1519 Expect 14 shift-reduce conflicts, not 13.
1520 (o_colon_minutes): New rule.
1521 (time, zone): Use it to add support for +HH:MM, UTC+HH:MM.
1522 (yylex): Set the "negative" member of signed numbers.
1524 2004-12-04 Paul Eggert <eggert@cs.ucla.edu>
1526 Changes imported from coreutils.
1527 * hard-locale.c: Assume <locale.h> exists.
1529 (GLIBC_VERSION): New macro.
1530 (hard_locale): Assume setlocale exists.
1531 Rewrite to avoid #ifdef.
1532 Use strdup rather than malloc + strcpy.
1533 * human.c: Assume <locale.h> exists.
1534 (human_readable): Assume localeconv exists.
1536 2004-12-01 Jakub Jelinek <jakub@redhat.com>
1538 * mktime.c (__mktime_internal): If SEC_REQUESTED != SEC,
1539 convert T2, not T. (Imported from libc.)
1541 2004-11-30 Paul Eggert <eggert@cs.ucla.edu>
1543 * getcwd.c (is_ENAMETOOLONG): New macro.
1544 (__getcwd.c): Don't restore errno; glibc doesn't.
1545 [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd
1546 first, falling back to our code only if its results look suspicious.
1547 Ensure that the resulting buffer is only as large as necessary.
1549 * readutmp.c: Include readutmp.h first.
1550 Include <errno.h>, since readutmp.h no longer does that.
1551 * readutmp.h: Don't include <errno.h>,
1552 <sys/param.h>, <time.h>; not needed to establish interface.
1553 (errno): Remove decl.
1554 (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed.
1555 (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME,
1556 UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros.
1558 2004-11-28 Simon Josefsson <jas@extundo.com>
1560 * base64.h, base64.c: New file.
1562 2004-11-27 Paul Eggert <eggert@cs.ucla.edu>
1564 * getcwd.h: New file, which I forgot to check in on 2004-11-25.
1566 2004-11-25 Paul Eggert <eggert@cs.ucla.edu>
1568 Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using
1569 HP's ANSI C compiler.
1570 * fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl.
1571 Declaring int functions causes warnings on some modern systems and
1572 shouldn't be needed to compile on ancient ones.
1573 * same.c (MIN) [defined MIN]: Don't define, since it's already
1576 * getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but
1577 with the following changes.
1578 (__set_errno): Parenthesize properly.
1579 Include <stdbool.h>.
1580 (MIN, MAX, MATCHING_INO): New macros.
1581 (__getcwd): Define with prototype, not K&R form.
1582 Use heuristics to allocate default buffer on stack if possible.
1583 If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2)
1584 behavior, and to avoid the PATH_MAX limit when computing
1586 Use MATCHING_INO to compare inode number to file.
1587 Check for arithmetic overflow in size calculations.
1588 Fix bug in reallocation of dot array that caused getcwd to fail
1589 on directories nested deeper than 75.
1590 Be more careful about saving errno on error.
1591 Do not use realloc; use only free+malloc, as this is a bit
1592 more flexible and avoids a needless copy operation.
1593 Do not inspect st_dev and st_ino for symbolic links; POSIX
1594 doesn't specify the latter.
1595 Check for closedir errors.
1596 Avoid needless casts.
1597 Use "#ifdef weak_alias" around weak_alias, to be like other
1599 The following changes to getcwd.c have effect only when used in
1600 gnulib; they have no effect inside glibc proper.
1601 (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove,
1602 as alloca isn't used.
1603 (alloca, __alloca): Likewise.
1604 [!_LIBC]: Include "getcwd.h", "mempcpy.h".
1605 Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
1606 unconditionally, as gnulib assumes C89 or better.
1607 Do not include <sys/param.h>.
1608 (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove
1609 no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or
1611 (NULL) [!defined NULL]: Remove; we assume C89 or better.
1612 Include <dirent.h> in a way that is compatible with modern Autoconf.
1613 (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN):
1614 New macros, if not already defined.
1615 Include <unistd.h> if _LIBC, not if __GNU_LIBRARY__.
1616 Use "_LIBC", not "defined _LIBC", for consistency.
1617 (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has
1619 (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros.
1620 (GETCWD_RETURN_TYPE): Remove. All uses replaced by char *.
1621 * xgetcwd.c: David MacKenzie's old code was removed, so give
1622 credit only to Jim Meyering and adjust the copyright dates.
1623 Do not include <limits.h>, <stdio.h>, <sys/types.h>,
1624 <stdlib.h>, <unistd.h>, "pathmax.h".
1625 Instead, include "xgetcwd.h" (first) and "getcwd.h".
1626 (INITIAL_BUFFER_SIZE): Remove.
1627 (xgetcwd): Rely on getcwd, since we now depend on a reliable one.
1629 2004-11-23 Jim Meyering <jim@meyering.net>
1631 * getopt_.h: Remove trailing blanks.
1633 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
1635 * utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros.
1636 (futimens): New function, which uses futimes if available.
1637 (futimens, utimens): Support timespec==NULL, with same semantics
1638 as utime and utimens.
1639 * utimens.h (futimens): New decl.
1641 2004-11-23 Jim Meyering <jim@meyering.net>
1643 * __fpending.c: Add comment.
1645 2004-11-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
1647 * getopt_.h: Re-addition of __getopt_argv_const caused
1648 redefinition warnings. To avoid them, include the defines
1649 in `#if !defined __need_getopt ... #endif'. The only place
1650 where __getopt_argv_const is used is in definitions
1651 of getopt_long and getopt_long_only below, which are as well
1652 protected by `#ifndef __need_getopt'.
1653 [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef
1654 __need_getopt after including <stdio.h> and <unistd.h> These
1655 headers might have defined it.
1657 2004-11-20 Paul Eggert <eggert@cs.ucla.edu>
1659 * getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID):
1661 (getopt, getopt_long, getopt_long_only, optarg, opterr, optind,
1662 optopt): Use them instead of invoking ## directly; otherwise, the
1663 symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt.
1665 2004-11-19 Bruno Haible <bruno@clisp.org>
1667 * strtok_r.c: Move comments from here...
1668 * strtok_r.h: ... to here.
1670 2004-11-17 Paul Eggert <eggert@cs.ucla.edu>
1672 * realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
1673 might fail. Problem reported by Yoann Vandoorselaere.
1674 * calloc.c (rpl_calloc): Defend against buggy calloc implementations
1675 that mishandle size_t overflow.
1677 2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
1679 * canon-host.c: Include "strdup.h".
1680 (canon_host): Use getaddrinfo if available, so that IPv6 works.
1681 Use strdup instead of malloc/strcpy to duplicate strings.
1683 * human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit.
1684 (human_space_before_unit): New constant.
1685 * human.c (human_readable): Support it.
1687 * xgetcwd.c: Include <limits.h>, for PATH_MAX.
1688 (xgetcwd): Set errno correctly when failing.
1689 Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
1690 the failure is actually due to a PATH_MAX problem.
1692 Further getopt changes to make it more likely that glibc will
1693 buy the changes back.
1694 * getopt.c (POSIXLY_CORRECT): New constant.
1695 (getopt): Use it, so to preserve glibc semantic
1696 * getopt1.c (getopt_long, getopt_long_only): Arg is char * const *
1697 when compiling for libc.
1698 * getopt_.h (__getopt_argv_const): Bring it back.
1699 (getopt_long, getopt_long_only): Use it.
1701 * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal):
1702 New arg POSIXLY_CORRECT. All callers changed.
1703 (getopt): Argv is now char * const *, as per standard.
1704 (_getopt_internal_r, _getopt_internal): Argv is now char **,
1705 not char *__getopt_argv_const *.
1706 * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
1707 _getopt_long_only_r): Likewise.
1708 * getopt_.h (getopt, getopt_long, geopt_long_only): Likewise.
1709 * getopt_int.h (_getopt_internal, _getopt_internal_r,
1710 _getopt_long_r, _getopt_long_only_r): Likewise.
1711 * getopt_.h (__getopt_argv_const): Remove.
1712 (getopt): Argv is now char * const *, as per standard.
1714 * getdate.y (tORDINAL): New token.
1715 (day, relunit): Allow it for relative times.
1716 (relative_time_table): Use tORDINAL for ordinals.
1718 2004-11-15 Jim Meyering <jim@meyering.net>
1720 * closeout.c: Include "__fpending.h" once again.
1721 Include <stdbool.h>.
1722 (close_stdout): Don't fail just because stdout was closed initially,
1723 since some programs don't write to stdout in the normal course of
1724 operation (other than --version and --help), and we don't want this
1725 function to make e.g. `touch file >&-' fail.
1726 But do fail if it was closed and someone has tried to write to it.
1727 E.g., `printf foo >&-' must fail.
1729 2004-11-11 Simon Josefsson <jas@extundo.com>
1731 * strtok_r.h, strtok_r.c: New file.
1733 2004-11-11 Paul Eggert <eggert@cs.ucla.edu>
1735 * getopt_.h (__getopt_argv_const): New macro, to be used so that
1736 we can stop lying to compilers about the constness of argv when we
1737 are compiled outside glibc.
1738 (getopt, getopt_long, getopt_long_only): Use it.
1739 * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal,
1741 * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
1742 _getopt_long_only_r): Likewise.
1743 * getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r,
1744 _getopt_long_only_r): Likewise.
1746 * getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]:
1747 Include <stdlib.h> and <stdio.h>, and <unistd.h> if available.
1748 Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for
1749 the other external symbols.
1750 (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style
1751 declaration, since the above renaming now works around collisions.
1753 2004-11-11 Jim Meyering <jim@meyering.net>
1755 * linebreak.c: Remove trailing blanks.
1756 * alloca_.h: Likewise.
1757 * acosl.c: Likewise.
1758 * euidaccess.c: Likewise.
1759 * allocsa.h: Likewise.
1761 2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
1763 * mktime.c (SHR): New macro, which is a portable
1764 substitute for >> that should work even on Crays.
1765 (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
1766 Problem reported by Mark D. Baushke in
1767 <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00071.html>.
1768 * getdate.y (SHR): Likewise.
1770 * strftime.c (SHR): Likewise.
1772 * quotearg.c (struct quoting_options): Use unsigned int for
1773 quote_these_too, so that right shifts are well defined. All uses
1776 2004-11-10 Simon Josefsson <jas@extundo.com>
1778 * getaddrinfo.h, getaddrinfo.c: New files.
1780 2004-11-10 Jim Meyering <jim@meyering.net>
1782 Ensure that no close failure goes unreported.
1783 * closeout.c (close_stdout): Always close stdout. I.e., don't
1784 return early when it seems there's nothing to flush.
1785 Don't include __fpending.h.
1787 2004-11-09 Paul Eggert <eggert@cs.ucla.edu>
1789 * strftime.c (DO_MULTIBYTE): Check for wchar.h, too.
1791 2004-11-05 Bruno Haible <bruno@clisp.org>
1793 * readlink.c: Include stddef.h, needed for size_t on Woe32.
1794 Reported by Mark D. Baushke <mdb@cvshome.org>.
1796 2004-11-04 Bruno Haible <bruno@clisp.org>
1798 2004-09-11 Bruno Haible <bruno@clisp.org>
1799 * allocsa.valgrind: New file.
1800 2004-02-06 Bruno Haible <bruno@clisp.org>
1801 * allocsa.h (sa_alignof): Define differently with HP-UX cc, to
1802 avoid a bug of this cc on HP-UX 10.20 dealing with enums.
1803 Reported by Christopher Seip <chris.seip@hp.com>.
1805 2004-11-03 Paul Eggert <eggert@cs.ucla.edu>
1807 * xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
1808 with errno == ERANGE if the buffer is too small.
1809 Problem reported by Mark D. Baushke.
1811 2004-11-02 Paul Eggert <eggert@cs.ucla.edu>
1813 * xreadlink.c (MAXSIZE): New macro.
1814 (xreadlink): Use it instead of SSIZE_MAX. Ensure initial buffer
1815 size does not exceed MAXSIZE. Avoid cast.
1816 As suggested by Mark D. Baushke in
1817 <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00009.html>,
1818 if readlink fails with buffer size just under MAXSIZE, try again
1821 2004-11-02 Derek R. Price <derek@ximbiot.com>
1822 and Paul Eggert <eggert@cs.ucla.edu>
1824 * getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
1825 (get_date): Overparenthesize to avoid GCC warning.
1827 2004-11-02 Bruno Haible <bruno@clisp.org>
1829 * setenv.h (unsetenv): Define as a macro if the system's unsetenv()
1830 function returns void.
1832 2004-11-01 Paul Eggert <eggert@cs.ucla.edu>
1834 * getpass.c (fflush_unlocked, flockfile, funlockfile)
1835 (funlockfile, fputs_unlocked, putc_unlocked): Don't define if
1838 2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
1840 * getdate.y: Add support for TZ="foo" within a date string.
1841 Fix some bugs near time_t boundaries. Reject dates with
1842 out-of-range components, e.g., "Sept 31".
1843 Include <stdlib.h>, "setenv.h", "xalloc.h".
1844 (ISDIGIT_LOCALE): Remove; unused.
1845 Note that the TZ and time functions used here are not reentrant.
1846 (mktime_ok, get_tz): New functions.
1847 (TZBUFSIZE): New constant.
1848 (get_date): Parse leading TZ="foo". Reject out-of-range components;.
1849 This requires that we sometimes generate our own TZ="XXX..." setting.
1851 2004-10-27 Derek R. Price <derek@ximbiot.com>
1853 * mktime.c (not_equal_tm): Remove redundant check.
1855 2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
1857 * getdate.y: Use Bison 1.875 features, and some minor
1858 code cleanups. This change does not affect semantics.
1859 Don't include <stdlib.h>; no longer needed.
1860 Don't include unlocked-io.h; only the "#if TEST" code uses
1861 stdio, and performance isn't crucial there.
1862 (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by
1863 Bison 1.875 features as described below.
1864 All uses of "PC." replaced by "pc->".
1865 (YYSTYPE): Add a forward declaration.
1866 (yylex, yyerror): Use full prototypes in forward decls.
1867 Use "%pure-parser" rather than obsolescent "%pure_parser".
1868 Use %parse-param and %lex-param instead of obsolescent
1869 YYPARSE_PARAM and YYLEX_PARAM.
1870 (meridian_table, month_and_day_table, time_units_table,
1871 relative_time_table, time_zone_table, military_table,
1872 lookup_zone, lookup_word, get_date):
1873 Use NULL instead of 0 where appropriate.
1874 (to_hour): Avoid abort (), to avoid a dependency on
1876 (yyerror, yylex): Now accepts parser_control * arg.
1877 (main) [TEST]: Use '\0' rather than 0 for char.
1879 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
1881 * getpagesize.c (getpagesize): Don't assume <sys/param.h> exists.
1882 It's now the caller's responsibility to handle the case where
1883 !HAVE_GETPAGESIZE && !defined getpagesize.
1885 * mktime.c (leapyear): Arg is long int, not int.
1887 2004-10-18 Paul Eggert <eggert@cs.ucla.edu>
1889 * argp-fs-xinl.c, argp-xinl.c: Update from glibc.
1891 2004-10-12 Simon Josefsson <jas@extundo.com>
1893 * getpass.c (fflush_unlocked, flockfile, funlockfile)
1894 (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
1897 2004-10-11 Yoann Vandoorselaere <yoann@prelude-ids.org>
1899 * vsnprintf.h: New file.
1900 * vsnprintf.c: New file.
1902 2004-10-07 Bruno Haible <bruno@clisp.org>
1904 * snprintf.c (snprintf): Avoid a memory allocation if the result fits
1905 into the provided buffer.
1907 2004-10-06 Paul Eggert <eggert@cs.ucla.edu>
1909 * diacrit.c, diacrit.h: Add GPL notice.
1911 * atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice.
1912 * atanl.c (atanl): Keep the code as similar to glibc as possible.
1913 * logl.c (logl): Keep the code as similar to glibc as possible.
1914 This avoids a potential constant-folding bug.
1916 2004-10-05 Bruno Haible <bruno@clisp.org>
1918 * strsep.h: Don't declare strsep() if HAVE_STRSEP.
1920 2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
1922 * xalloc.h (xmemdup): Renamed from xclone. All uses changed.
1923 * xmalloc.c (xmemdup): Likewise.
1924 * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
1925 XFREE): Remove these long-obsolescent macros.
1926 * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
1927 * xstrdup.c: Remove.
1929 * regex.c (re_comp): Cast gettext return value to char *,
1930 Problem reported by Martin Neitzel via Mark D. Baushke.
1932 2004-10-04 Simon Josefsson <jas@extundo.com>
1934 * error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of
1935 '#ifdef USE_UNLOCKED_IO'.
1937 2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
1939 * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
1940 getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
1941 md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
1942 regex.c, sha1.c, version-etc.c, yesno.c:
1943 Include "unlocked-io.h" only if USE_UNLOCKED_IO.
1944 * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
1945 the includer's responsibility.
1947 Sync from coreutils.
1949 * modechange.c (mode_compile): Don't decrement a pointer that
1950 points to the start of a string, as the C Standard says the
1951 resulting behavior is undefined.
1953 * backupfile.h (enum backuptype): Rename none -> no_backups,
1954 simple -> simple_backups, numbered_existing ->
1955 numbered_existing_backups, numbered -> numbered_backups
1956 to avoid shadowing problems. All uses changed.
1957 * argmatch.c (enum backuptype) [defined TEST]: Likewise.
1958 * backupfile.c (check_extension, numbered_backup):
1959 Rename locals to avoid shadowing 'basename'.
1960 * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
1963 * .cppi-disable: Add getopt_.h, getopt_int.h.
1964 * .cvsignore: Add getopt.h.
1966 2004-10-04 Simon Josefsson <jas@extundo.com>
1968 * memmem.h: New file.
1969 * memmem.c: New file, taken from glibc.
1971 2004-10-02 Jim Meyering <jim@meyering.net>
1973 * dirfd.h, getpagesize.h: Add copyright notice.
1975 2004-10-01 Paul Eggert <eggert@cs.ucla.edu>
1977 * snprintf.c: Remove comments as to why each header is needed.
1979 2004-10-01 Yoann Vandoorselaere <yoann@prelude-ids.org>
1981 * strsep.h: New file.
1982 * strsep.c: New file.
1984 2004-10-01 Simon Josefsson <jas@extundo.com>
1986 * snprintf.c (snprintf): Handle size==0.
1988 2004-10-01 Simon Josefsson <jas@extundo.com>
1989 Bruno Haible <bruno@clisp.org>
1991 * snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
1992 (snprintf): Declare 'args'.
1994 2004-09-30 Simon Josefsson <jas@extundo.com>
1996 * snprintf.h, snprintf.c: New files.
1998 2004-09-30 Sergey Poznyakoff <gray@Mirddin.farlep.net>
2000 * argp-help.c (canon_doc_option): Fixed coredump if *name==NULL
2001 (hol_entry_help): Never translate an empty string.
2002 Do not translate option tag (opt->name) if OPTION_NO_TRANS is set
2003 * argp.h (OPTION_NO_TRANS): New option.
2005 2004-09-29 Oskar Liljeblad <oskar@osk.mine.nu>
2007 * xvasprintf.c: Include xalloc.h.
2008 (xvasprintf): Use xalloc_die, not xmalloc_die.
2010 2004-09-28 Paul Eggert <eggert@cs.ucla.edu>
2012 * dummy.c: Change copyright notice to FSF, and license to GPL.
2014 2004-09-13 Paul Eggert <eggert@cs.ucla.edu>
2016 * argp-pvh.c (argp_program_version_hook): Provide initial value.
2017 Problem reported by Bruno Haible in:
2018 http://lists.gnu.org/archive/html/bug-tar/2004-09/msg00023.html
2020 2004-09-11 Paul Eggert <eggert@cs.ucla.edu>
2022 * mempcpy.h: Wrap the entire include file inside #ifndef mempcpy,
2023 in case some system header has #define'd it. Problem reported by
2024 Soeren D. Schulze in
2025 <http://lists.gnu.org/archive/html/bug-gnulib/2004-09/msg00017.html>.
2027 2004-09-08 Bruno Haible <bruno@clisp.org>
2029 * stdint_.h.in: New file, taken from GNU clisp.
2031 2004-09-08 Oskar Liljeblad <oskar@osk.mine.nu>
2033 * xvasprintf.h: New file.
2034 * xvasprintf.c: New file.
2035 * xasprintf.c: New file.
2037 2004-09-08 Bruno Haible <bruno@clisp.org>
2039 * vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length
2041 * vasprintf.c (vasprintf): Don't test for length > INT_MAX any more.
2043 2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
2045 Import from coreutils.
2046 * userspec.c: Don't use <alloca.h>, so that we don't use alloca on
2047 strings on unbounded length. alloca's performance benefits aren't
2048 that important here.
2050 (parse_with_separator): New function, with most of the internals
2051 of the old parse_user_spec. Allow user to omit both user and group,
2052 for compatibility with FreeBSD.
2053 Clone only the user name, not the entire spec.
2054 Do not set *uid, *gid unless entirely successful.
2055 Avoid memory leak in some failing cases.
2056 Fix regression for USER.GROUP reported by Dmitry V. Levin in
2057 <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00102.html>
2058 (parse_user_spec): Rewrite to use parse_with_separator.
2060 2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
2062 * argp-help.c, argp-parse.c: Use "gettext.h" instead of
2063 its complicated substitute.
2064 * argp-help.c: Include <errno.h>, for program_invocation_short_name
2065 and program_invocation_name.
2066 (__argp_basename) [!_LIBC]: Remove; the only use was
2067 replaced by its body.
2068 (__argp_short_program_name): Change condition from
2069 !defined __argp_short_program_name to
2070 ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME),
2071 to match argp-namefrob.h.
2072 (__argp_failure): Don't assume strerror_r returns char *.
2073 * argp-parse.c (N_): Define unconditionally.
2074 (argp_default_options): Fill out initializers with 0 to avoid
2077 2004-08-12 Simon Josefsson <jas@extundo.com>
2079 * getopt.c, getopt1.c: Remove ELIDE_CODE hack.
2080 * getopt_.h: Renamed from getopt.h.
2082 2004-08-11 Paul Eggert <eggert@cs.ucla.edu>
2084 Merge from coreutils.
2086 * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
2087 wmemchr or wmemcpy. Problem reported by Robert Dahlem
2088 for Reliant Unix 5.43.
2090 * obstack.c: Include <inttypes.h> and <stdint.h> if available.
2091 (union fooround): Use uintmax_t, not long int.
2092 The rest is a merge from libc:
2093 [defined _LIBC]: Include <shlib-compat.h>.
2094 (_obstack) [defined _LIBC]: Remove after 2.3.4.
2096 * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2.
2098 * strverscmp.c: Convert to UTF-8.
2100 2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
2102 * obstack.h (obstack_empty_p):
2103 Don't assume that chunk->contents is suitably aligned.
2104 * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
2105 Likewise. Problem reported by Benno in
2106 <http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
2108 * chown.c (rpl_chown): Work even if the file is writeable but not
2109 readable. This could be improved further but it'd take some work.
2111 2004-08-08 Simon Josefsson <jas@extundo.com>
2113 * xgethostname.c: Don't include error.h (not used).
2116 * getpass.c: Include getpass.h first.
2118 2004-08-08 Paul Eggert <eggert@cs.ucla.edu>
2120 * xalloc-die.c: New files.
2121 * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
2123 * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise.
2124 Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c.
2125 (_, N_, xalloc_die): Move to xalloc-die.c.
2126 * userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
2127 so that we needn't mess with xalloc_msg_memory_exhausted.
2129 * sha1.h: Renamed from sha.h.
2130 (SHA1_H): Renamed from _SHA_H.
2131 (sha1_ctx): Renamed from sha_ctx.
2132 (sha1_init_ctx): Renamed from sha_init_ctx.
2133 (sha1_process_block): Renamed from sha_process_block.
2134 (sha1_process_bytes): Renamed from sha_process_bytes.
2135 (sha1_finish_ctx): Renamed from sha_finish_ctx.
2136 (sha1_read_ctx): Renamed from sha_read_ctx.
2137 (sha1_stream): Renamed from sha_stream.
2138 (sha1_buffer): Renamed from sha_buffer.
2139 * sha1.c: Likewise; renamed from sha.c.
2140 Do not include <sys/types.h>.
2141 Include <stddef.h> rather than <stdlib.h>.
2143 2004-08-08 Bruno Haible <bruno@clisp.org>
2145 * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
2146 FILESYSTEM_PREFIX_LEN.
2147 * progreloc.c: Likewise.
2148 * concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN.
2150 2004-08-06 Paul Eggert <eggert@cs.ucla.edu>
2153 * argp-help.c (make_hol, hol_append): Don't assume that
2154 SIZE_MAX is a valid preprocessor constant.
2155 (__argp_basename): Change from "#ifndef _LIBC"
2156 to "#ifndef __argp_short_program_name", so that
2157 we don't compile these functions for tar.
2159 More merges from coreutils.
2160 * raise.c, readtokens0.h, readtokens0.c, strftime.h, utimens.h,
2161 utimens.c, utimecmp.h, utimecmp.c, xnanosleep.h, xnanosleep.c,
2163 * addext.c: Remove; no longer needed.
2164 * yesno.c, argmatch.h, argmatch.c, backupfile.h, backupfile.c,
2165 euidaccess.c, filemode.c, closeout.c, dup2.c, exclude.c,
2166 fileblocks.c, filemode.c, fnmatch.c, fnmtahc_loop.c,
2167 fopen-safer.c, fsusage.c, fsusage.h, ftruncate.c, full-write.c,
2168 getdate.y, getloadavg.c, getugroups.c, hard-locale.c, hard-locale.h,
2169 hash.c, human.c, human.h, lchown.c, lchown.h, makepath.c, makepath.h,
2170 md5.c, md5.h, memchr.c, memcoll.c, memrchr.c, modechange.c,
2171 modechange.h, mountlist.c, mountlist.h, nanosleep.c, posixtm.c,
2172 putenv.c, quotearg.c, quotearg.h, readtokens.c, readutmp.c,
2173 readutmp.h, rmdir.c, safe-read.c, save-cwd.c, savedir.c, setenv.c,
2174 sig2str.c, stat.c, strtoimax.c, strverscmp.c, userspec.c, utime.c,
2175 version-etc.c., xgethostname.c, xmemcoll.c, xreadlink.c, xstrtod.c,
2176 xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c:
2177 Import changes from coreutils.
2179 2004-08-05 Paul Eggert <eggert@cs.ucla.edu>
2181 Merge from coreutils.
2183 * .gdb-history: Remove; this doesn't belong here.
2185 * c-strtod.c, c-strtod.h, c-strtold.c, cycle-check.c,
2186 cycle-check.h, dev-ino.h, canonicalize.h, canonicalize.c,
2187 fcntl-safer.h, fcntl-safer.c, getcwd.c: New files.
2189 * dirname.h: Include <stdbool.h>.
2190 (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN,
2191 for consistency with POSIX terminology. All uses changed.
2192 (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
2193 (strip_trailing_slashes): Use bool for booleans.
2194 * stripslash.c (strip_trailing_slashes): Likewise.
2196 * error.c: Work around bug in OpenBSD 3.4 sterror_r: it
2197 sometimes returns a positive errno value even when it succeeds.
2198 (print_errno_message) [!LIBC]: Fall back on strerror if
2201 * path-concat.c (mempcpy): Don't define if a system header defines it.
2202 Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
2203 (longest_relative_suffix): New function.
2204 (path_concat): Use it. Assume first argument is not NULL.
2205 Port to DOS. Omit redundant separators.
2206 Report an error instead of returning NULL.
2207 Use mempcpy instead of memcpy.
2208 (xpath_concat): Remove: not declared or used.
2210 * same.h: Include <stdbool.h>
2211 (same_name): Return bool, not int.
2212 * same.c (same_name): Likewise.
2213 (errno): Don't declare; we assume C89 or better now.
2215 * stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros,
2216 if not already defined.
2218 * xgetcwd.c (errno): Don't declare; we assume C89 or better now.
2219 * dup-safer.c (errno): Likewise.
2221 2004-08-03 Paul Eggert <eggert@cs.ucla.edu>
2223 * fatal.c, fatal.h: Remove as the "fatal" module wasn't used or
2226 2004-08-03 Simon Josefsson <jas@extundo.com>
2228 * strdup.h: Only use HAVE_DECL_STRDUP if defined.
2229 * progname.h: Don't include stdbool.h.
2231 2004-08-02 Simon Josefsson <jas@extundo.com>
2233 * getsubopt.h: New file, with comments from Bruno Haible.
2234 * getsubopt.c: New file, from glibc, but slightly modified based on
2235 suggestions from Paul Eggert <eggert@cs.ucla.edu>.
2237 2004-08-01 Simon Josefsson <jas@extundo.com>
2239 * xgetdomainname.c: Include stdlib.h, for free().
2241 2004-07-16 Simon Josefsson <jas@extundo.com>
2243 * dummy.c: New file.
2245 2004-07-16 Bruno Haible <bruno@clisp.org>
2247 * backupfile.h: Add extern "C" for C++.
2248 * closeout.h: Likewise.
2249 * copy-file.h: Likewise.
2250 * findprog.h: Likewise.
2251 * full-write.h: Likewise.
2252 * pathname.h: Likewise.
2253 * progname.h: Likewise.
2254 * stpcpy.h: Likewise.
2255 * stpncpy.h: Likewise.
2256 * strcase.h: Likewise.
2257 * strstr.h: Likewise.
2258 * xalloc.h: Likewise.
2260 * mbswidth.h: Add extern "C" for C++.
2261 Reported by Albert Chin-A-Young <china@thewrittenword.com>.
2263 2004-07-09 Simon Josefsson <jas@extundo.com>
2265 * getndelim2.c: Include stddef.h, for ptrdiff_t. (FreeBSD 4.9
2266 failed without this.)
2268 2004-07-09 Paul Eggert <eggert@cs.ucla.edu>
2270 * fchown-stub.c: New file.
2272 2004-06-24 Jim Meyering <jim@meyering.net>
2274 * obstack.h (obstack_base): Cast to (void *), per documentation.
2276 2004-06-22 Paul Eggert <eggert@cs.ucla.edu>
2278 * argz.c, argz_.h: New files, which are autoupdated from libtool.
2280 2004-06-01 Jim Meyering <jim@meyering.net>
2282 * calloc.c: New file.
2284 2004-06-06 Paul Eggert <eggert@cs.ucla.edu>
2286 * getdate.y (yylex): Allow space between sign and number.
2287 Problem reported by Dan Jacobson.
2289 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
2290 and Jim Meyering <jim@meyering.net>
2292 Merge from coreutils CVS.
2294 * stat-macros.h: New file, with contents from file-type.h
2295 and coreutils' system.h.
2296 * file-type.c: Include "stat-macros.h".
2297 * file-type.h (file_type): Move all macro definitions to new file,
2300 * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
2301 Wrap old code with this conditional.
2302 [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
2303 function that does not dereference symlinks.
2304 * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
2306 * xreadlink.c: Include xreadlink.h first, to catch .h file
2307 dependency problems.
2308 (xreadlink): Accept new arg SIZE, for efficiency.
2309 All decls and uses changed.
2310 * xreadlink.h: Include <stddef.h>, for size_t.
2312 * .cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h,
2313 gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h.
2315 * .cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h.
2317 2004-05-30 Paul Eggert <eggert@cs.ucla.edu>
2319 * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these
2320 macros to be defined.
2321 (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if
2322 the allocator returns NULL because the requested size is zero.
2324 2004-05-20 Paul Eggert <eggert@cs.ucla.edu>
2326 * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this
2327 var. Add comment explaining why libc still defines it. This
2328 merges the following patch from glibc:
2329 http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html
2331 2004-05-19 Paul Eggert <eggert@cs.ucla.edu>
2333 * obstack.c (_obstack): Remove unused variable. It hasn't been
2334 present in glibc since revision 1.1 of this file.
2335 * obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast,
2336 obstack_alignment_mask, obstack_alloc, obstack_base,
2337 obstack_blank, obstack_blank_fast, obstack_chunk_size,
2338 obstack_copy, obstack_copy0, obstack_finish, obstack_grow,
2339 obstack_grow0, obstack_init, obstack_int_grow,
2340 obstack_int_grow_fast, obstack_make_room, obstack_memory_used,
2341 obstack_next_free, obstack_object_size, obstack_ptr_grow,
2342 obstack_ptr_grow_fast, obstack_room): Remove declarations of
2343 nonexistent functions.
2345 2004-05-17 Derek R. Price <derek@ximbiot.com>
2346 Paul Eggert <eggert@cs.ucla.edu>
2348 * argp-help.c, argp-parse.c: Assume <alloca.h> rather than freecoding.
2350 2004-05-14 Bruno Haible <bruno@clisp.org>
2352 * vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision
2353 that consists of a '.' followed by an empty digit string.
2354 Patch by Tor Lillqvist <tml@iki.fi>.
2356 2004-05-17 Paul Eggert <eggert@cs.ucla.edu>
2358 Port obstack to the AS/400, where pointers are 16 bytes wide and
2359 you cannot cast an integer to a valid pointer. This patch is
2360 currently waiting to be integrated into glibc; see
2361 <http://sources.redhat.com/ml/libc-alpha/2004-05/msg00073.html>.
2363 * obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove.
2364 All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN.
2365 (__BPTR_ALIGN, __PTR_ALIGN): New macros.
2366 (struct obstack): temp member is now a union of a pointer and
2367 an integer, instead of an integer. All integer uses changed.
2368 This does not affect the physical layout of struct obstack,
2369 except on hosts (like the AS/400) where the size or alignment of
2370 void * is greater than that of ptrdiff_t.
2371 (obstack_finish) [! (defined __GNUC__ && defined __STDC__ &&
2372 __STDC__)]: Store temporary in pointer member of union, not
2374 * obstack.c: Include <stddef.h>, for offsetof.
2375 (struct fooalign): Remove; it doesn't need a name.
2376 (union fooround): Change double to long double, and add void *.
2377 (DEFAULT_ALIGNMENT): Use offsetof to compute.
2378 (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant,
2379 not a macro. Hence the values are always int; so remove all
2380 casts-to-int in uses.
2382 2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
2383 Derek Price <derek@ximbiot.com>
2385 * alloca.c: Include <alloca.h>, to get our interface.
2386 * alloca_.h: Use __alloca on AIX, so that we don't have to
2387 include <alloca.h> first. Use C89 prototype for alloca; this
2388 requires including <stddef.h> for size_t. Use extern "C" if C++.
2389 Use #elif for simplicity, since we can assume C89 now.
2390 Don't try to source the system alloca.h since it will not be found
2391 and to prevent recursively including its replacement.
2392 * fnmatch.c: Include <alloca.h> instead of opencoding.
2393 * regex.c: Likewise.
2395 2004-05-16 Derek Price <derek@ximbiot.com>
2396 Paul Eggert <eggert@cs.ucla.edu>
2398 getline cleanup. This changes the getndelim2 API: both order of
2399 arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
2402 * getline.c: Don't include stddef.h or stdio.h, since our
2403 interface does that.
2404 (getline): Always use getdelim, so that we don't have two
2405 copies of this code.
2406 * getndelim2.c: Include <limits.h>, <inttypes.h>, <stdint.h>
2408 (PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined.
2409 (GETNDELIM2_MAXIMUM): New macro.
2410 (getndelim2): Reorder arguments. delim==EOF now means no delimiter,
2411 instead of the old practice of delim2==0. All callers changed.
2412 Return -1 on overflow, instead of returning junk.
2413 Do not set *linesize unless allocation succeeds.
2414 * getndelim2.h: Do not include stddef.h; no longer needed, now
2415 that we include sys/types.h.
2416 * getnline.h: Likewise.
2417 * getndelim2.h (GETNLINE_NO_LIMIT): New macro.
2418 (getndelim2): Reorder arguments.
2419 * getnline.c (getnline, getndelim):
2420 Don't discard the NMAX argument.
2421 (getnline): Invoke getndelim, to avoid code duplication.
2422 * getnline.h (GETNLINE_NO_LIMIT): New macro, used instead
2423 of (size_t) -1 by callers of the getnline family.
2425 2004-05-13 Paul Eggert <eggert@cs.ucla.edu>
2427 * nanosleep.c (suspended): Change its type from int to
2428 sig_atomic_t volatile.
2429 (first_call): Make it private to rpl_nanosleep, and have it
2430 be zero initially as that's a bit faster.
2431 (my_usleep): Round up fractional times instead of truncating them,
2432 as this is the usual meaning for 'sleep'.
2434 * gettime.c (gettime): Fall back on `time' if `gettimeofday'
2436 * settime.c: Include <unistd.h>, for stime (on Solaris 8, anyway).
2437 (ENOSYS): Define if not defined.
2438 (settime): Fall back on stime if it exists and settimeofday fails.
2439 But don't bother with fallbacks if a method fails with errno == EPERM.
2441 2004-05-11 Jim Meyering <jim@meyering.net>
2443 Prior to this change, the save_cwd caller required read access to the
2444 current directory on most systems (ones with the fchdir function).
2446 * save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only
2447 fails, try write-only, and finally, resort to using xgetcwd.
2449 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
2451 * obstack.c, obstack.h: Import changes from libc.
2453 2004-04-28 Bruno Haible <bruno@clisp.org>
2455 * findprog.c (find_in_path): Treat Cygwin like Windows, since it also
2456 implicitly appends .exe to executables.
2457 * localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now
2458 accepts Windows pathnames.
2459 * pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
2460 Cygwin like Windows, since it now accepts Windows pathnames.
2461 * progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
2462 Cygwin like Windows, since it now accepts Windows pathnames.
2463 Reported by Derek Robert Price <derek@ximbiot.com>.
2465 2004-04-20 Jim Meyering <jim@meyering.net>
2467 * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory.
2469 2004-04-20 Jim Meyering <jim@meyering.net>
2470 Bruno Haible <bruno@clisp.org>
2472 * localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
2473 memory when realloc fails.
2475 2004-04-18 Jim Meyering <jim@meyering.net>
2477 * readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure,
2478 don't leak memory and do call END_UTMP_ENT.
2480 2004-04-11 Paul Eggert <eggert@twinsun.com>
2482 * inttostr.h: Include <limits.h> unconditionally, since we assume C89.
2483 (CHAR_BIT): Remove, since we assume C89.
2484 Include <stdint.h> if available, as per current Autoconf CVS advice.
2486 2004-03-30 Paul Eggert <eggert@twinsun.com>
2488 * cloexec.h, cloexec.c (set_cloexec_flag): Return int
2489 not bool, to be more consistent with Unix conventions.
2490 Suggested by Bruno Haible.
2492 Merge from coreutils.
2494 * imaxtostr.c, inttostr.c, inttostr.h, offtostr.c, umaxtostr.c:
2497 * getdate.h: Include stdbool.h, and timespec.h instead of
2498 the usual <time.h> dance.
2499 (get_date): Change signature to support fractional time stamps.
2500 All callers changed.
2501 * getdate.y: Include "getdate.h" first, as we can now
2502 assume C89 and don't need to worry about 'const'.
2503 Similarly, include "unlocked-io.h" near start, not in middle.
2505 (textint.value): Use long int rather than int.
2506 (textint.digits): Use size_t rather than int.
2507 (BILLION, LOG10_BILLION): New constants.
2508 (parser_control): New member rel_ns. Members day_ordinal,
2509 time_zone, month, day, hour, minutes, rel_year, rel_month,
2510 rel_day, rel_hour, rel_minutes, rel_seconds
2511 are now long int, not int. Member seconds is now struct timespec,
2512 not int. New member timespec_seen. Members dates_seen, days_seen,
2513 local_zones_seen, rels_seen, times_seen, zones_seen are now size_t,
2515 (%union.intval): Now long int, not int.
2516 New member timespec.
2517 (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens.
2518 (seconds, signed_seconds, unsigned_seconds): New nonterminals.
2519 (spec): Now is a timespec or an item list.
2520 (timespec, items): New nonterminals.
2521 (time, rel, relunit, number, get_date):
2522 Add support for fractional seconds.
2523 (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax.
2524 (gmtime, localtime, mktime): Remove decls; not needed with C89.
2525 (to_hour): First arg is now long int, not int.
2526 (to_year): Returns long int, not int.
2527 Don't treat year -70 like 70.
2528 (tm_diff): Returns long int, not int.
2529 (lookup_word): Use bool instead of int when appropriate.
2530 (yylex): Use size_t for count, not int.
2531 Detect overflow when parsing large integer constants.
2532 Add support for fractions.
2533 (get_date): Make pointers 'const' if possible.
2534 Use more-portable code to detect integer overflow.
2535 (main) [TEST]: Adjust to above changes. Test for localtime failure.
2536 Don't use ctime; it's not reliable if the year has >4 digits.
2538 * human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set.
2539 This is for compatibility with BSD.
2541 * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define.
2542 (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise.
2543 From coreutils' system.h.
2545 * userspec.c: Don't include "posixver.h".
2546 (parse_user_spec): Fall back on USER.GROUP parsing, regardless
2547 of POSIX version, as POSIX 1003.1-2001 allows that behavior as a
2548 compatible extension. Simplify code by removing a boolean int
2549 that was always nonzero if a string was nonnull.
2551 2004-03-30 Jim Meyering <jim@meyering.net>
2553 Merge from coreutils.
2555 * mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h.
2557 * readtokens.c (readtoken): Don't leak 64 bytes when reading
2558 an empty input stream.
2560 * readtokens.c: Include <stdbool.h>.
2561 (readtoken): Use `size_t' rather than int/long.
2562 All callers adjusted.
2563 Use `bool' rather than `int' where appropriate.
2564 Use memset rather than an explicit loop.
2565 Use x2nrealloc rather than xrealloc.
2566 Allow the use of `\0' as a delimiter.
2567 (readtokens): Likewise.
2568 * readtokens.h (readtoken, readtokens): Update prototypes.
2570 2004-03-30 Bruno Haible <bruno@clisp.org>
2572 * getloadavg.c (getloadavg): Don't assume setlocale returns
2575 2004-03-29 Paul Eggert <eggert@twinsun.com>
2577 Merge changes to getloadavg.c from coreutils and Emacs.
2579 * getloadavg.c [!defined HAVE_SETLOCALE] (setlocale):
2580 Define to an expression, not to the empty string.
2581 Include cloexec.h and xalloc.h.
2582 (getloadavg): Restore LC_NUMERIC locale after setting it temporarily.
2583 Use set_cloexec_flag rather than rolling our own.
2584 * cloexec.c, cloexec.h: New files.
2586 2004-03-18 Paul Eggert <eggert@twinsun.com>
2588 * getopt.h: Sync with libc CVS.
2590 2004-03-18 Paul Eggert <eggert@twinsun.com>
2591 Bruno Haible <bruno@clisp.org>
2593 * mbswidth.h: Include <wchar.h> only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H,
2594 not on all platforms that have <wchar.h>.
2595 * mbswidth.c: Include <stdio.h> and <time.h> before <wchar.h>.
2597 2004-03-09 Paul Eggert <eggert@twinsun.com>
2599 * argp-parse.c, getopt.c, getopt.h, getopt1.c:
2601 * getopt_int.h: New file, also synced from libc.
2603 2004-03-07 Paul Eggert <eggert@twinsun.com>
2605 * c-stack.c (SIGACTION_WORKS): New macro. Use it instead of long
2606 '#if' expressions. Unlike the code it replaces, it does not
2607 depend on (defined _SC_PAGESIZE). However, it does depend on
2608 HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug
2609 first reported by Jason Andrade in
2610 <http://mail.gnu.org/archive/html/bug-textutils/2003-03/msg00027.html>.
2612 2004-01-18 Simon Josefsson <jas@extundo.com>
2614 * strdup.h: New file.
2615 * strdup.c: Include it.
2616 * path-concat.c: Include strdup.h. Drop strdup declaration.
2617 * userspec.c: Include strdup.h. Drop strdup declaration.
2619 2004-02-06 Karl Berry <karl@gnu.org>
2621 * config.charset: update from gettext 0.14.1.
2623 2004-02-05 Paul Eggert <eggert@twinsun.com>
2625 Add comments and code, prompted by suggestions from Bruno Haible
2627 * quotearg.h (quotearg_alloc): New decl. Improve the comments
2628 describing the enum quoting_style values.
2629 * quotearg.c (quotearg_alloc): New function.
2630 (quotearg_buffer_restyled): Treat lone { and } as special.
2631 Treat = as special. Work around bug with older shells
2632 that "see" a '\' that is really the 2nd byte of a multibyte char.
2633 Quote empty string with shell_quoting_style.
2635 2004-02-03 Bruno Haible <bruno@clisp.org>
2637 * pipe.h: New file, from GNU gettext.
2638 * pipe.c: New file, from GNU gettext.
2640 2004-01-27 Bruno Haible <bruno@clisp.org>
2642 * execute.h: New file, from GNU gettext.
2643 * execute.c: New file, from GNU gettext.
2644 * w32spawn.h: New file, from GNU gettext.
2646 2004-01-23 Paul Eggert <eggert@twinsun.com>
2648 Exit-status fix from coreutils.
2650 Use exit_failure consistently in place of EXIT_FAILURE,
2651 so that program exit statuses are consistent on failure.
2653 * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
2654 Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
2655 * argmatch.h: Comment fix to match the above.
2656 * obstack.c (obstack_exit_failure) [!defined _LIBC]:
2657 Now a macro referring to exit_failure, instead of a separate
2658 variable. Include "exitfail.h" to get it.
2659 * xstrtol.h: Include "exitfail.h".
2660 (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
2662 * long-options.c (parse_long_options): Use prototype
2663 for usage function arg. Pass it EXIT_SUCCESS rather than 0,
2666 2004-01-21 Jim Meyering <jim@meyering.net>
2668 * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
2669 so as not to conflict with a different-sized __mktime_internal
2670 function in GNU libc.
2671 * timegm.c (__mktime_internal) [!_LIBC]: Likewise.
2672 Problem building statically-linked `ls' reported by Michael Brunnbauer.
2674 2004-01-18 Paul Eggert <eggert@twinsun.com>
2676 Merge from diffutils.
2678 * file-type.c (file_type): Add typed memory objects.
2679 * file-type.h (S_TYPEISTMO): New macro.
2681 * c-stack.h (c_stack_action): Remove argv argument.
2682 * c-stack.c (c_stack_action): Likewise. All uses changed.
2683 (die): Don't calculate message unless segv_action returns.
2684 (get_stack_location, min_address_from_argv, max_address_from_argv,
2685 volatile stack_base, volatile_stack_size): Remove.
2686 (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume
2687 that every segmentation violation is a stack overflow. (Ouch!)
2688 See Debian bug 136249 (still outstanding) for more info about why
2689 HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels.
2691 2003-11-30 Bruno Haible <bruno@clisp.org>
2693 Safer stack allocation.
2694 * setenv.c: Include allocsa.h.
2695 (alloca): Remove fallback definition.
2696 (freea): Remove macro.
2697 (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
2700 2003-10-17 Bruno Haible <bruno@clisp.org>
2702 * binary-io.h: Avoid warnings on Cygwin.
2704 2003-12-28 Bruno Haible <bruno@clisp.org>
2706 * wait-process.c (wait_subprocess): Add ignore_sigpipe argument.
2707 * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially.
2709 2003-11-28 Bruno Haible <bruno@clisp.org>
2711 * wait-process.c (cleanup_slaves): Use ANSI C declaration.
2713 2003-11-27 Bruno Haible <bruno@clisp.org>
2715 * wait-process.c: On Windows, include windows.h. Needed on mingw.
2717 2003-11-17 Bruno Haible <bruno@clisp.org>
2719 * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch.
2721 2003-11-24 Bruno Haible <bruno@clisp.org>
2723 * xallocsa.h: New file, from GNU gettext.
2724 * xallocsa.c: New file, from GNU gettext.
2726 2003-11-24 Bruno Haible <bruno@clisp.org>
2728 * allocsa.h: New file, from GNU gettext.
2729 * allocsa.c: New file, from GNU gettext.
2731 2003-11-24 Bruno Haible <bruno@clisp.org>
2733 * eealloc.h: New file.
2735 2004-01-15 Jim Meyering <jim@meyering.net>
2737 Merge from coreutils.
2739 * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These
2740 days, gcc-3.x does better all by itself. Patch from Dean Gaudet:
2741 http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html
2743 * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
2744 optional configure-time default.
2746 * version-etc.c (version_etc_copyright): Update copyright date.
2748 * xreadlink.c (xreadlink): Correct outdated comment.
2750 2004-01-15 Paul Eggert <eggert@twinsun.com>
2752 Merge from coreutils.
2754 * posixver.c: Include posixver.h.
2756 * same.c: Include <stdbool.h>, <limits.h>.
2757 (_POSIX_NAME_MAX): Define if not defined.
2759 (same_name): If file names are silently truncated, report
2760 that the file names are the same if they are the same after
2761 the silent truncation.
2763 * xstrtod.h (xstrtod): Accept an extra arg, specifying the
2764 conversion function.
2765 * xstrtod.c (xstrtod): Likewise. All callers changed to
2766 include c-strtod.h and use c_strtod. Don't include stdlib.h; no
2769 2004-01-14 Paul Eggert <eggert@twinsun.com>
2771 * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
2772 with like-named macro in fnmatch.c.
2773 (EXT): Use an internal constant instead.
2775 Merge fnmatch patches from glibc.
2776 * fnmatch.c (mbsinit): Remove define.
2777 Add libc_hidden_ver (__fnmatch, fnmatch).
2778 * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
2779 Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
2781 2003-12-14 Karl Berry <karl@gnu.org>
2783 * config.charset: update from gettext-runtime.
2785 2003-12-03 Paul Eggert <eggert@twinsun.com>
2787 * getgroups.c (getgroups): xmalloc takes one argument, not two.
2788 Bug reported by Alfred M. Szmidt.
2790 2003-11-29 Karl Berry <karl@gnu.org>
2792 * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
2794 2003-11-23 Paul Eggert <eggert@twinsun.com>
2795 Bruno Haible <bruno@clisp.org>
2797 * printf-parse.h: Don't include sys/types.h.
2798 (ARG_NONE): New macro.
2799 (char_directive): Change type of *arg_index fields to size_t.
2800 * printf-parse.c: Don't include sys/types.h.
2801 (SSIZE_MAX): Remove macro.
2802 (PRINTF_PARSE): Change the type of the arg_index variables to size_t.
2803 Remove unnecessary overflow check.
2804 * vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
2807 2003-11-24 Paul Eggert <eggert@twinsun.com>
2809 * alloca.c: Remove dependency on xalloc module.
2810 (xalloc_die): Remove.
2811 (memory_full) [!defined emacs]: New macro.
2812 [!defined emacs]: Don't include xalloc.h.
2813 (alloca): Invoke memory_full, not xalloc_die, if malloc fails or
2814 address arithmetic overflows. Change datatypes a bit to avoid
2817 2003-11-22 Jim Meyering <jim@meyering.net>
2819 * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/.
2821 2003-11-17 Bruno Haible <bruno@clisp.org>
2823 * vasnprintf.c (alloca): Remove fallback definition.
2824 (freea): Remove definition.
2825 (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
2826 Reported by Paul Eggert.
2828 2003-11-17 Jim Meyering <jim@meyering.net>
2830 On systems without utime and without a utimes function capable of
2831 dealing with a NULL struct utimbuf* argument, this utime replacement
2832 could -- in unusual circumstances -- leak a file descriptor.
2833 * utime.c: Include <unistd.h> and <errno.h>.
2834 (utime_null): Be sure to close `fd' and to preserve errno.
2835 Reported by Geoff Collyer via Arnold Robbins.
2837 2003-11-16 Paul Eggert <eggert@twinsun.com>
2838 Bruno Haible <bruno@clisp.org>
2840 Protect against address arithmetic overflow.
2841 * printf-args.h: Include stddef.h.
2842 (arguments): Change type of field 'count' to size_t.
2843 * printf-args.c (printf_fetchargs): Use size_t instead of
2844 'unsigned int' where appropriate.
2845 * printf-parse.h: Include sys/types.h.
2846 (char_directive): Change type of *arg_index fields to ssize_t.
2847 (char_directives): Change type of fields 'count', max_*_length to
2849 * printf-parse.c: Include sys/types.h and xsize.h.
2850 (SSIZE_MAX): Define fallback value.
2851 (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
2852 instead of 'int' where appropriate. Check a_allocated, d_allocated
2853 against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
2854 * vasnprintf.c: Include xsize.h.
2855 (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
2856 Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
2857 overflow. Avoid wraparound when converting a width or precision from
2860 2003-11-16 Bruno Haible <bruno@clisp.org>
2862 Update from GNU gettext.
2863 * printf-parse.c: Generalize to it can be compiled for wide strings.
2864 (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
2865 * vasnprintf.c: Generalize to it can be compiled for wide strings.
2866 (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
2867 SNPRINTF): New macros.
2868 Don't include <alloca.h> if the file is used inside libintl.
2869 (local_wcslen): New function, for Solaris 2.5.1.
2870 (VASNPRINTF): Use it instead of wcslen.
2872 2003-11-16 Bruno Haible <bruno@clisp.org>
2874 * xsize.h (xmax): New function.
2875 (xsum, xsum3, xsum4): Declare as "pure" functions.
2877 2003-11-12 Paul Eggert <eggert@twinsun.com>
2879 * xalloc.h: Do not include <limits.h> or <stdint.h>.
2880 (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for
2881 the heuristic, rather than PTRDIFF_MAX and SIZE_MAX. This
2882 heuristic is just as accurate as far as we know, and it removes a
2883 dependency on size_max.m4 and ptrdiff_max.m4.
2885 2003-11-12 Paul Eggert <eggert@twinsun.com>
2887 * xstrtol.c (__xstrtol): Remove "break" immediately after
2888 "return", to pacify some unknown compiler. Problem reported
2891 2003-11-11 Bruno Haible <bruno@clisp.org>
2893 * xsize.h (SIZE_MAX): Remove fallback definition.
2894 * xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are
2897 2003-11-10 Paul Eggert <eggert@twinsun.com>
2899 * xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX &&
2900 PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have
2901 rejected some allocations of exactly SIZE_MAX - 2 bytes.
2903 [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX,
2904 not (size_t) -1, since it's defined here.
2906 2003-11-06 Paul Eggert <eggert@twinsun.com>
2908 * xalloc.h [HAVE_STDINT_H]: Include <stdint.h>.
2909 (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]:
2910 Reject sizes of exactly SIZE_MAX bytes.
2911 * xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX
2912 is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts.
2914 2003-11-05 Bruno Haible <bruno@clisp.org>
2916 * xsize.h: Include limits.h, to avoid a possible collision with
2917 SIZE_MAX defined in <limits.h> on Solaris.
2919 2003-11-04 Bruno Haible <bruno@clisp.org>
2921 * xsize.h: New file.
2922 * linebreak.c: Include xsize.h.
2923 (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc()
2924 argument for overflow.
2925 Suggested by Paul Eggert.
2927 2003-10-31 Bruno Haible <bruno@clisp.org>
2929 * wait-process.c (wait_process): Use waitid with WNOWAIT if available,
2930 to avoid (extremely rare) race condition.
2931 Suggested by Paul Eggert.
2933 2003-11-03 Jim Meyering <jim@meyering.net>
2935 * userspec.c: Include "userspec.h".
2936 * userspec.h: New file.
2938 2003-10-31 Paul Eggert <eggert@twinsun.com>
2940 * mountlist.h (struct mount_entry.me_type_malloced): New member.
2941 * mountlist.c (SIZE_MAX): Define if not defined already.
2942 (read_filesystem_list): Set and use me_type_malloced.
2943 Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
2944 whatever the type happens to be), for brevity and consistency.
2945 Check for size calculation overflow on Alphas running OSF/1.
2947 2003-10-31 Jim Meyering <jim@meyering.net>
2949 * hash.c: Include "xalloc.h" for use of xalloc_oversized.
2951 * linebuffer.c: Include <string.h> for declaration of memset.
2953 2003-10-30 Paul Eggert <eggert@twinsun.com>
2954 Bruno Haible <bruno@clisp.org>
2956 * vasprintf.c: Include <limits.h>, <stdlib.h>.
2957 (vasprintf): Fail if the resulting length doesn't fit in an 'int'.
2959 2003-10-29 Paul Eggert <eggert@twinsun.com>
2961 * xalloc.h (xalloc_oversized): Now a macro, not a function,
2962 so that it works even if SIZE_MAX < N. Do not include <stdbool.h>;
2964 * quotearg.c (quotearg_n_options): Use it.
2965 * group-member.c: Include <stdbool.h>.
2966 (free_group_info): Arg is now const *; don't free arg.
2967 (get_group_info): Now returns bool and accepts struct group_info *,
2968 rather than returning a malloc'ed struct group_info *.
2969 All uses changed. Check for overflow in internal size calculation.
2971 * getusershell.c (readname): Simplify the code by using x2nrealloc
2972 rather than xmalloc/xrealloc.
2973 * linebuffer.c (initbuffer, readlinebuffer): Simplify the code by
2974 using x2realloc rather than xmalloc/xrealloc. Also, fix a C
2975 conformance bug: the old code used a pointer after freeing the
2976 storage that it addressed.
2977 * hash.c (hash_initialize): Simplify the code by using xalloc_oversized
2978 rather than doing it by hand.
2979 * getgroups.c (getgroups): Don't use xrealloc, since we don't need
2980 the buffer preserved. Use free and xmalloc instead.
2981 * quotearg.c (quotearg_n_options): Likewise.
2982 Use a simpler test for size overflow. Don't use xalloc_oversized
2983 because unsigned int might be wider than size_t (!); this suggests
2984 that we should switch from unsigned int to size_t for slot numbers.
2986 2003-10-27 Bruno Haible <bruno@clisp.org>
2988 * stdbool_.h: Better support for BeOS.
2990 2003-10-27 Paul Eggert <eggert@twinsun.com>
2992 * exclude.c (new_exclude): Use xzalloc rather than xmalloc
2993 to allocate the returned structure. Do not allocate a subarray,
2994 as x2nrealloc will do that.
2995 (add_exclude): Use x2nrealloc to reallocate ex->exclude,
2996 instead of xnrealloc.
2997 (add_exclude_file): Use x2realloc instead of malloc + xnrealloc.
2999 2003-10-26 Paul Eggert <eggert@twinsun.com>
3001 * xalloc.h (xalloc_oversized): New static inline function, for
3002 callers that want to do their own size-overflow checking. Include
3003 <stdbool.h>, since xalloc_oversized returns bool.
3004 * xalloc.c (array_size_overflow): Remove. All callers changed
3005 to use xalloc_oversized.
3007 Add two functions x2realloc, x2nrealloc, for programs that grow
3008 arrays dynamically by doubling their sizes.
3009 * xalloc.h (x2realloc, x2nrealloc): New decls.
3010 * xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc):
3013 Port to C99 semantics for 'inline' of external functions.
3014 Bug reported by Bruno Haible.
3015 * xmalloc.c (xnmalloc_inline): New static inline function,
3016 with the old contents of xnmalloc.
3017 (xnmalloc, xmalloc): Use it.
3018 (xnrealloc_inline): New static inline function,
3019 with the old contents of xnrealloc.
3020 (xnrealloc, xrealloc): Use it.
3022 * alloc.c (alloca): xmalloc cannot return NULL, so don't test for that.
3024 2003-10-25 Paul Eggert <eggert@twinsun.com>
3026 Fix several address-calculation bugs in the hash modules,
3027 plus some minor code cleanup.
3029 * hash.h: Include <stdbool.h>, for bool.
3030 * hash.c: Don't include <stdbool.h>, since hash.h does it now.
3031 * hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used,
3032 hash_get_n_entries, hash_get_max_bucket_length,
3033 hash_get_entries, hash_do_for_each, hash_string, hash_initialize,
3034 hash_rehash): Use size_t rather than unsigned.
3035 * hash.c (struct hash_table, hash_get_n_buckets,
3036 hash_get_n_buckets_used, hash_get_n_entries,
3037 hash_get_max_bucket_length, hash_table_ok, hash_print_statistics,
3038 hash_get_entries, hash_do_for_each, hash_string, is_prime,
3039 next_prime, hash_initialize, hash_rehash, hash_delete, hash_print):
3041 (SIZE_MAX): Define if not defined.
3042 (hash_get_max_bucket_length, hash_table_ok, hash_lookup,
3043 hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each,
3045 Use const * when possible.
3046 (hash_string): Use (unsigned char) *P rather than *(unsigned char *) P.
3047 (check_tuning): Fix bug: if tuning parameters were very close to
3048 0 or 1, rounding errors could have caused subscript violations.
3049 (hash_initialize, allocate_entry, hash_print): Remove unnecessary cast.
3050 (hash_initialize): Add 'fail:' label
3051 to free table and return NULL, and use it to simplify code.
3052 Use calloc rather than clearing the storage ourself.
3053 (hash_initialize, hash_rehash): Check for arithmetic overflow in
3054 buffer size calculations.
3055 * hash-pjw.h (hash_pjw): Use size_t, not unsigned.
3056 Include <stddef.h>, for size_t.
3057 * hash-pjw.c (hash_pjw): Likewise.
3058 Switch to method described by Bruno Haible.
3059 Include <limits.h>, for CHAR_BIT.
3060 (SIZE_BITS): New macro.
3062 2003-10-21 Paul Eggert <eggert@twinsun.com>
3064 * getndelim2.c (getndelim2): When size calculation overflows,
3065 ceiling the allocation at NMAX bytes rather than silently
3066 discarding input bytes before NMAX is reached. This makes
3067 a difference only if NMAX exceeds SIZE_MAX / 2.
3069 * obstack.c: Merge from glibc.
3070 [defined _LIBC]: Include <obstack.h>, not "obstack.h".
3071 Add libc_hidden_def (_obstack_newchunk).
3072 (_obstack_free) [! defined _LIBC]: Remove.
3073 [defined _LIBC]: Make a strong alias from obstack_free, rather than
3074 a clone of the function body.
3075 (fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove.
3076 [defined _LIBC && !defined USE_IN_LIBIO]: Include <libio/iolibio.h>.
3078 * obstack.h: Indenting cleanup, to make it easier to merge with glibc.
3079 (obstack_grow, obstack_grow0): Remove unnecessary parentheses around
3082 * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
3083 (obstack_ptr_grow_fast, obstack_int_grow_fast):
3084 Don't use lvalue casts, as GCC plans to remove support for them
3085 in GCC 3.5. Reported by Joseph S. Myers. This bug
3086 was also present in the non-GCC version, indicating that this
3087 code had always been buggy and had never been widely used.
3088 (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
3089 Use the fast variant of each macro, rather than copying the
3090 definiens of the fast variant; that way, we'll be more likely to
3091 catch future bugs in the fast variants.
3093 2003-10-20 Bruno Haible <bruno@clisp.org>
3095 * wait-process.h: New file, from GNU gettext.
3096 * wait-process.c: New file, from GNU gettext.
3098 2003-10-19 Jim Meyering <jim@meyering.net>
3100 * vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20.
3102 2003-10-16 Paul Eggert <eggert@twinsun.com>
3104 * getgroups.c: Include <errno.h>, <stdlib.h>.
3105 (getgroups): First arg is int, not size_t.
3106 Don't let 'free' mangle errno.
3108 2003-10-16 Jim Meyering <jim@meyering.net>
3110 * xmalloc.c: Include <string.h>, for declarations of memset and memcpy.
3112 2003-10-15 Paul Eggert <eggert@twinsun.com>
3114 * exclude.c: Do not include <inttypes.h> or <stdint.h>.
3116 (new_exclude, add_exclude_file): Initial size no longer needs to
3118 (add_exclude, add_exclude_file): Use xnrealloc instead of rolling
3119 our own address arithmetic overflow checking.
3121 * fnmatch.c (SIZE_MAX): Define if standard headers don't.
3122 (fnmatch): Do not alloca more than 2000 wide characters;
3123 instead, use malloc for large buffers.
3124 Check for address arithmetic overflow, and return -1
3125 with errno set to ENOMEM in that case.
3126 * fnmatch_loop.c (ALLOCA_LIMIT): New macro.
3127 (NEW_PATTERN): Do not alloca more than 8000 bytes;
3128 instead, return -1. Check for address arithmetic overflow.
3130 2003-10-14 Paul Eggert <eggert@twinsun.com>
3132 Handle invalid suffixes and overflow independently, so that
3133 callers can treat them independently as needed. Fix some bugs in
3134 suffix handling, e.g., "100k@" was not diagnosed as an invalid
3135 suffix for a human-readable blocksize. The major caller-visible
3136 change is the addition of a new
3137 LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating
3138 that both overflow and suffix chars were found.
3140 * human.c (humblock): Don't check separately for invalid suffix
3141 char; that is xstrtoumax's job (now that its bug is fixed).
3142 * xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined
3143 INTMAX_MAX]: New macros.
3144 * xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM,
3145 TYPE_MAXIMUM): New macros.
3146 (bkm_scale, bkm_scale_by_power): Return strtol_error, not int.
3147 (bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values
3148 if overflow occurs, as it's what __strtol does and it's more useful
3150 (__xstrtol): If __strtol reports some error other than ERANGE,
3151 reflect it to the caller as LONGINT_INVALID. If it reports
3152 ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW
3153 | LONGINT_INVALID_SUFFIX_CHAR if both errors occur.
3154 * xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum
3156 (_STRTOL_ERROR): Handle it. Abort when given unknown error codes.
3157 * xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros.
3158 * xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM)
3159 [defined UINTMAX_MAX]: New macros.
3161 2003-10-14 Bruno Haible <bruno@clisp.org>
3163 * fatal-signal.h: Improved comments. Suggested by Paul Eggert.
3164 * fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert.
3165 Also use volatile where needed.
3167 2003-10-12 Paul Eggert <eggert@twinsun.com>
3169 * xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
3170 (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
3171 and define in terms of the other primitives.
3172 * xmalloc.c: Include stdbool.h; do not include exit.h.
3173 (SIZE_MAX): Define if not already defined.
3174 (array_size_overflow): New function.
3175 (xalloc_die): Abort instead of exiting if 'error' returns.
3176 (xnmalloc, xnrealloc, xzalloc, xclone): New functions.
3177 (xmalloc, xrealloc): Use them.
3178 (xcalloc): Check for address arithmetic overflow.
3179 * xstrdup.c (xstrdup): Use xclone, since memcpy should be
3180 a bit faster than strcpy.
3182 2003-10-08 Paul Eggert <eggert@twinsun.com>
3184 Merge getpass from libc, plus a few fixes.
3186 * getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1.
3187 Include <stdbool.h>.
3188 Include <stdio_ext.h> if HAVE_STDIO_H, otherwise define
3189 __fsetlocking to empty.
3190 [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but
3191 do include <bits/libc-lock.h>.
3192 Do not include <fcntl.h>; not needed.
3193 [_LIBC]: Include <wchar.h>.
3194 (NOTCANCEL_MODE): New macro.
3195 (flockfile, funlockfile) [_LIBC]: New macros.
3196 (__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr)
3197 [!_LIBC]: New macros.
3198 (call_fclose): New function.
3199 (getpass): Use it. Save tty stream separately; this simplifies the
3200 code and makes it more reliable if stdin happens to equal stdout.
3201 Invoke __fsetlocking on tty.
3202 Handle thread cancellation if needed.
3203 Namespace cleanup (use __tcgetattr, __getline).
3204 Use bool for Booleans.
3205 [USE_IN_LIBIO]: Handle wide streams.
3206 [!_LIBC]: Unconditionally do the fseek, since we don't know what
3207 stream might go where.
3209 * unlocked-io.h: Include <stdio.h>, so that the caller
3210 doesn't have to include <stdio.h> before us.
3211 (clearerr_unlocked, feof_unlocked, ferror_unlocked,
3212 fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
3213 fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
3214 putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
3215 if not declared, so that we can use getpass.c code from libc without
3217 (flockfile, ftrylockfile, funlockfile): New macros.
3219 2003-10-06 Bruno Haible <bruno@clisp.org>
3221 * version-etc-2.h: Remove file.
3222 * version-etc-2.c: Remove file.
3224 2003-09-25 Jim Meyering <jim@meyering.net>
3225 Bruno Haible <bruno@clisp.org>
3227 This lets translators provide better translations for the
3228 "Written by ..." part of --version output.
3229 * version-etc.h: Include stdarg.h.
3230 (version_etc_copyright): Declare as readonly.
3231 (version_etc): Make this function variadic with a NULL-terminated list
3232 of author name strings.
3233 (version_etc_va): New declaration.
3234 * version-etc.c: Include stdarg.h, stdlib.h.
3235 (version_etc_copyright): Declare as readonly.
3236 (version_etc_va): New function. Provide a different translatable string
3237 for each possible number of authors < 10. Abbreviate when there are 10
3239 (version_etc): Make this function variadic. Call version_etc_va.
3240 Suggestion from Gary V. Vaughan.
3242 * long-options.h (parse_long_options): Change prototype: the authors
3243 string is moved to the end and becomes variadic.
3244 * long-options.c: Include stdarg.h.
3245 (parse_long_options): Make this function variadic, too.
3246 Call version_etc_va, not version_etc.
3248 2003-10-06 Bruno Haible <bruno@clisp.org>
3250 * fatal-signal.h: New file, from GNU gettext.
3251 * fatal-signal.c: New file, from GNU gettext.
3253 2003-10-04 Karl Berry <karl@gnu.org>
3255 * argp*: update from libc.
3257 2003-10-01 Larry Jones <lawrence.jones@eds.com>
3259 * getpass.c (getpass): Use a no-op fseek when switching from input to
3260 output mode on the same stream.
3262 2003-09-29 Paul Eggert <eggert@twinsun.com>
3264 * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
3265 Fix arg typo in previous patch.
3267 2003-09-28 Jim Meyering <jim@meyering.net>
3269 * error.c: Correct cpp indentation.
3271 2003-09-27 Paul Eggert <eggert@twinsun.com>
3273 * minmax.h (MIN, MAX) [__STDC__ && defined __GNUC__ && __GNUC__ >= 2]:
3274 Omit the special code that used __typeof__, since we worry that
3275 it could be more trouble than it's worth. See:
3276 http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00090.html
3277 http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00095.html
3281 2003-09-26 Jim Meyering <jim@meyering.net>
3283 * error.c (error_tail): Move some declarations
3284 into inner scope where the local variables are used.
3286 2003-09-26 Bruno Haible <bruno@clisp.org>
3288 * stpncpy.h (gnu_stpncpy): New declaration.
3289 (stpncpy): Define as alias for gnu_stpncpy.
3290 * stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy.
3292 2003-09-26 Paul Eggert <eggert@twinsun.com>
3294 * error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
3295 (error_tail): Do not loop, reallocating temporary buffer, since
3296 the output cannot contain more wide characters than the input
3297 contains bytes, the size must be big enough already. This avoids
3298 one potential size overflow calculation. Check for size overflow
3299 when calculating temporary buffer size. Free temporary buffer
3300 when done, if it was allocated with malloc; this plugs a memory
3301 leak. Remove casts from void * to pointers, that are no longer
3302 needed now that we're assuming C89 or better.
3304 Merge error changes from glibc.
3306 * error.c, error.h: Update copyright notice header to match glibc.
3307 * error.c [defined _LIBC]: Include <errno.h>, <bits/libc-lock.h>.
3308 (error, error_at_line) [defined _LIBC && defined __libc_ptf_call]:
3309 Disable cancellation while printing error.
3310 * error.h: Prepend __ to parameter names.
3312 2003-09-25 Karl Berry <karl@gnu.org>
3314 * argp-fmtstream.c, argp-help.c: update from libc.
3316 2003-09-25 Bruno Haible <bruno@clisp.org>
3318 * version-etc-2.h: New file, from version-etc.h with modifications.
3319 * version-etc-2.c: New file, from version-etc.c with modifications.
3321 2003-09-25 Simon Josefsson <jas@extundo.com>
3323 * xgetdomainname.h: New file.
3324 * xgetdomainname.c: New file.
3326 2003-09-25 Simon Josefsson <jas@extundo.com>
3327 Bruno Haible <bruno@clisp.org>
3329 * getdomainname.h: New file.
3330 * getdomainname.c: New file.
3332 2003-09-24 Paul Eggert <eggert@twinsun.com>
3334 * linebuffer.c (freebuffer): Don't free the argument, just
3335 the buffer associated with the argument. Bug reported by
3338 2003-09-19 Karl Berry <karl@gnu.org>
3340 * argp.h: update from libc.
3342 2003-09-16 Paul Eggert <eggert@twinsun.com>
3344 * linebuffer.c (readlinebuffer): Return NULL immediately upon
3345 input error, instead of returning NULL the next time we are called
3346 (and therefore losing track of errno).
3348 2003-09-15 Paul Eggert <eggert@twinsun.com>
3350 * getndelim2.c (getndelim2): Don't trash errno when a read
3351 fails, so that the caller gets the proper errno.
3353 * readutmp.c (read_utmp): Likewise.
3354 Check for fstat error. Close stream and free storage
3357 2003-09-14 Bruno Haible <bruno@clisp.org>
3359 * fwriteerror.h: New file.
3360 * fwriteerror.c: New file.
3362 2003-09-14 Jim Meyering <jim@meyering.net>
3364 * getloadavg.c: Correct cpp indentation.
3365 * strdup.c: Likewise.
3366 * vasnprintf.c: Likewise.
3368 2003-09-12 Paul Eggert <eggert@twinsun.com>
3370 * argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h.
3371 * obstack.c [!defined _LIBC]: Likewise.
3372 * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
3373 * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
3374 * exitfail.c: Don't include stdlib.h; no longer needed.
3376 More changes to assume C89 or better.
3378 * error.c (error_tail): Assume vprintf.
3380 * argmatch.c (getenv): Remove decl.
3381 * progreloc.c (get_full_program_name): Define via prototype.
3382 * setenv.c (clearenv): Likewise.
3383 * stpncpy.c: Do not include <string.h> or <sys/types.h>; not
3385 * strdup.c: Include <stdlib.h>, <string.h> unconditionally.
3386 (malloc, memcpy): Remove decls.
3387 * strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove.
3388 (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove.
3389 Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
3390 (memcpy): Remove macro.
3391 (MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally.
3392 (__P): Remove. All uses removed.
3393 (PTR): Remove. All uses changed to void *.
3394 (CHAR_BIT, NULL): Remove.
3395 (spaces, zeros, memset_space, memset_zero)
3396 [!defined memset && !defined HAVE_MEMSET && !defined _LIBC]:
3398 (LOCALE_PARAM, LOCALE_PARAM_DECL): Remove.
3399 (memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days):
3400 Define with prototype.
3401 Remove now-unnecessary prototype decl.
3402 (extra_args_spec): Assume ANSI C. All uses changed.
3403 (extra_args_spec_iso): Remove.
3404 (my_strftime, emacs_strftimeu): Define via prototype.
3405 * strtod.c: Include <float.h>, <stdlib.h>, <string.h>
3407 (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls.
3408 * strtoimax.c: Include <stdlib.h> unconditionally.
3409 (strtoul, strtol): Remove decls.
3410 * strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX,
3412 Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
3413 (LOCALE_PARAM_DECL): Remove. All uses changed to LOCALE_PARAM_PROTO.
3414 (LOCALE_PARAM_PROTO): New macro.
3415 (INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R.
3416 (INTERNAL (strtol), strtol): Define with a prototype.
3417 (PARAMS): Remove. All uses removed.
3418 * tempname.c: Include <string.h> unconditionally.
3419 * userspec.c: Include <stdlib.h>, <string.h> unconditionally.
3420 * xgethostname.c (main): Define with a prototype.
3421 * xmalloc.c: Include "xalloc.h" first, to check interface.
3422 Include <stdlib.h> unconditionally.
3423 (calloc, malloc, realloc, free): Remove decls.
3424 * xstrtod.c: Include "xstrtod.h" first, to check interface.
3425 Include <stdlib.h> unconditionally. Sort include file names.
3427 (xstrtod): Define with a prototype.
3428 * xstrtol.c: Include <stdlib.h>, <string.h> unconditionally.
3429 (strtol, strtoul): Remove decls.
3431 2003-09-11 Paul Eggert <eggert@twinsun.com>
3433 * strndup.c: Don't include <stdio.h>, <sys/types.h>.
3434 Include <stdlib.h>, <string.h> unconditionally.
3435 Remove now-unnecessary cast to char *.
3436 * strnlen.c: Include <string.h> unconditionally.
3437 * yesno.c (yesno): Define with a prototype.
3439 2003-09-10 Bruno Haible <bruno@clisp.org>
3441 * strcspn.c: Include <string.h> unconditionally.
3442 * strpbrk.c: Include <string.h> unconditionally.
3443 * strstr.c: Include <string.h> unconditionally.
3444 * unicodeio.c: Include <string.h> unconditionally.
3445 * setenv.c: Include <stdlib.h> and <string.h> unconditionally.
3446 * unsetenv.c: Likewise.
3447 * xreadlink.c: Include <stdlib.h> unconditionally.
3448 * yesno.c: Include <stdlib.h> unconditionally.
3449 (rpmatch): Add prototype.
3451 2003-09-10 Jim Meyering <jim@meyering.net>
3453 * error.c: Correct indentation of cpp directives.
3455 2003-09-09 Paul Eggert <eggert@twinsun.com>
3459 * acosl.c (main): Use a prototype.
3460 * asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c,
3463 * getloadavg.c (getloadavg, main): Define via prototypes.
3465 * getopt.h (struct option.name): Assume C89, and use 'const'.
3466 (getopt, etopt_long, getopt_long_only, _getopt_internal)
3467 [defined __GNU_LIBRARY__]: Assume C89, so we can always declare
3469 * getopt.c (const): Remove macro.
3470 Include <string.h> unconditionally.
3471 (my_index): Remove; all uses changed to strchr.
3472 (strlen): Remove decl.
3473 (exchange): Remove forward decl; no longer needed.
3474 (exchange, _getopt_initialize, _getopt_internal, getopt, main):
3475 Define with prototype.
3476 * getopt1.c (const): Remove macro.
3477 (getopt_long, getopt_long_only, main): Define with prototype.
3479 * getugroups.c: Include <string.h> unconditionally.
3481 * getusershell.c: Include <stdlib.h> unconditionally.
3482 (getusershell, setusershell, endusershell, readname, main):
3483 Define with prototypes.
3485 * group-member.c: Include group-member.h first.
3486 Include <stdlib.h> unconditionally.
3488 * hard-locale.c: Include hard-locale.h first.
3489 Include <stdlib.h>, <string.h> unconditionally.
3491 * hash.c (free, malloc): Remove decls.
3492 Include <stdlib.h> unconditionally.
3494 * human.c: Include <stdlib.h>, <string.h> unconditionally.
3495 (getenv): Do not declare.
3497 * idcache.c: Include <string.h> unconditionally.
3499 * long-options.c: Include long-options.h first, to test interface.
3500 Include <stdlib.h> unconditionally.
3502 * makepath.c: Include makepath.h first, to test interface.
3503 Include <stdlib.h> and <string.h> unconditionally.
3505 * linebuffer.c: Include <stdlib.h>.
3506 (free): Remove decl.
3508 * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h.
3509 rpl_malloc returns void *, not char *.
3510 * realloc.c (rpl_realloc): Likewise. Also, define with a prototype.
3512 * md5.h: Include <limits.h> unconditionally.
3513 (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
3514 (__P): Remove; all uses removed.
3515 * md5.c: Include "md5.h" first.
3516 (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
3517 md5_buffer, md5_process_bytes, md5_process_block):
3518 Define with prototypes.
3519 * sha.h (__P): Remove all uses. (It wasn't defined??)
3520 * sha.c: Include "sha.h" first.
3521 Include <stdlib.h>, <string.h> unconditionally.
3523 * memchr.c (__ptr_t): Remove; all uses changed to void *.
3524 * memcmp.c (__ptr_t): Likewise.
3525 * memrchr.c (__ptr_t): Likewise.
3526 * memchr.c, memcmp.c, memcoll.c, memrchr.c:
3527 Include <string.h> unconditionally.
3528 * memchr.c, memrchr.c: Include <limits.h> unconditionally.
3529 * memchr.c: Include <stdlib.h> unconditionally.
3530 * memchr.c (LONG_MAX): Remove.
3531 * memrchr.c (LONG_MAX): Likewise.
3532 * memchr.c (__memchr): Define via a prototype.
3533 * memrchr.c (__memrchr): Likewise.
3534 * memcmp.c (__P): Remove, and remove all uses.
3535 (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
3536 Remove forward decls; no longer needed.
3537 * memcpy.c, memmove.c, memset.c: Include <stddef.h>.
3538 Use types required by C89 in prototype.
3540 * mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
3541 * savedir.c: Likewise.
3542 * mkdir.c (free): Remove decl.
3543 * rmdir.c (rmdir): Define with a prototype.
3544 * savedir.c: Include savedir.h first, to test interface.
3546 * mktime.c (STDC_HEADERS): Remove.
3547 Include <stdlib.h>, <string.h> unconditionally.
3549 * modechange.c: Include <stdlib.h> unconditionally.
3550 (malloc): Remove decl.
3552 * mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
3553 (free): Remove decl.
3555 * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
3556 Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
3557 (This type really should be intptr_t, but that's a C99ism.)
3558 (_obstack_memcpy): Remove: all uses changed to memcpy.
3559 Include <string.h> unconditionally.
3560 (struct obstack): Assume __STDC__ for types of members
3561 chunkfun, freefun, extra_arg.
3562 (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
3563 _obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
3564 obstack_begin, obstack_specify_allocation,
3565 obstack_specify_allocation_with_arg, obstack_chunkfun,
3566 obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
3567 Remove unprototyped decls and the macros that use them.
3568 * obstack.c (POINTER): Remove. All uses changed to void *.
3569 (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
3570 _obstack_begin, _obstack_begin_1, _obstack_allocated_p)
3571 (defined __STDC__ && __STDC__)]:
3572 Remove nonprototyped code.
3573 Include <stdlib.h> unconditionally.
3574 (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
3575 _obstack_allocated_p, _obstack_free, obstack_free,
3576 _obstack_memory_used, print_and_abort):
3577 Define using prototypes.
3578 (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
3579 obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
3580 obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
3581 obstack_next_free, obstack_object_size, obstack_room) [0]:
3582 Remove unused, unprototyped code.
3584 * path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
3586 * physmem.c (physmem_total, physmem_available, main): Define
3589 * posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
3590 (main): Define with a prototype.
3592 * posixver.c (getenv): Remove decl.
3594 * putenv.c (malloc): Returns void *, not char *.
3595 Include <string.h> unconditionally.
3596 (strchr, memcpy, NULL): Do not define.
3598 * readtokens.c: Include readtokens.h first, to test interface.
3599 Include <stdlib.h>, <string.h> unconditionally.
3600 (init_tokenbuffer): Define with a prototype.
3602 * regex.c (PARAMS): Remove. All uses removed.
3603 All uses of _RE_ARGS removed, too.
3604 Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
3606 (bzero): Assume memset exists.
3607 (memcmp, memcpy, NULL): Remove.
3608 (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
3609 char, or assignments to local vars of type signed char.
3610 (init_syntax_once, PREFIX(extract_number_and_incr),
3611 PREFIX(print_partial_compiled_pattern),
3612 PREFIX(print_compiled_pattern), PREFIX(print_double_string),
3613 convert_mbs_to_wcs, print_fastmap, re_set_syntax,
3614 PREFIX(regex_grow_registers), PREFIX(regex_compile),
3615 PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
3616 PREFIX(insert_op2), PREFIX(at_begline_loc_p),
3617 PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
3618 wcs_compile_range, byte_compile_range, truncate_wchar,
3619 PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
3620 re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
3621 count_mbs_length, wcs_re_match_2_internal,
3622 byte_re_match_2_internal, PREFIX(group_match_null_string_p),
3623 PREFIX(alt_match_null_string_p),
3624 PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
3625 re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
3626 regfree, PREFIX(extract_number)): Define with prototype. Remove
3627 now-unnecessary declaration, if any.
3628 (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
3630 Remove now-unnecessary casts among pointer types.
3631 * regex.h (_RE_ARGS): Remove. All uses removed.
3633 * rename.c: Include <stdlib.h>, <string.h> unconditionally.
3634 (free): Remove decl.
3636 * rpmatch.c: Include <stdlib.h> unconditionally.
3638 * same.c: Include <stdlib.h>, <string.h> unconditionally.
3639 (free): Remove decl.
3641 * save-cwd.c: Include <stdlib.h> unconditionally.
3642 * xgetcwd.c: Likewise.
3644 * stat.c: Include <stdlib.h>, <string.h> unconditionally.
3645 (free): Remove decl.
3647 * strchrnul.c (strchrnul): Define with a prototype.
3648 Fix bug: c_in was not converted to char before searching.
3650 The following changes are not K&R related:
3652 * group-member.h: Include <sys/types.h>, so that this file is
3654 * makepath.h: Likewise.
3656 * getusershell.c (readname, default_index, line_size, readname):
3657 Use size_t, not int, for sizes.
3658 (readname): If the size overflows, report an error instead of
3661 2003-09-09 Derek Robert Price <derek@ximbiot.com>
3663 * getndelim2.c: Assume stdlib.h per the C89 spec.
3665 2003-09-08 Paul Eggert <eggert@twinsun.com>
3667 Assume C89 or better; remove K&R cruft.
3668 A few of these changes were first proposed by Derek Robert Price
3669 in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>.
3671 * addext.c: Include <string.h> unconditionally.
3672 * backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
3673 Don't declare getenv or malloc.
3675 * alloca.c: Include <string.h>, <stdlib.h> unconditionally.
3676 (POINTER_TYPE, pointer): Remove; all uses changed to void *.
3678 (find_stack_direction, alloca): Use prototypes.
3680 * atexit.c (atexit): Define using a prototype.
3682 * basename.c, dirname.c, stripslash.c:
3683 Include <string.h> unconditionally.
3685 * bcopy.c: Include <stddef.h>.
3686 (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
3688 * canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
3690 * error.h (error, error_at_line, error_print_progname)
3691 [! (defined (__STDC__) && __STDC__)]: Remove decls.
3692 * error.c: Include error.h first, to check interface.
3693 Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
3694 (VA_START): Remove; all uses changeed to va_start.
3695 (exit, strerror): Remove decls.
3696 (error_print_progname): Prototype uncondionally.
3697 Don't include <errno.h>; no longer needed.
3698 (private_strerror): Remove.
3699 (error_tail): Always define.
3700 (error, error_at_line): Assume C89 or better; always use prototypes.
3701 * fatal.c: Include "fatal.h" first, to test interface.
3702 Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
3703 (VA_START): Remove; all uses changed to va_start.
3704 [! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for
3706 (exit): Remove decl.
3707 (fatal): Prototype unconditionally. Assume va_start works.
3708 Abort at end, to pacify gcc.
3710 * euidaccess.c (main): Define with a prototype.
3712 * exclude.c: Include <stdlib.h>, <string.h> unconditionally.
3714 * exitfail.c: Include <stdlib.h> unconditionally.
3716 * fnmatch_.h (__P): Remove. All uses changed to assume
3718 * fnmatch.c: Include fnmatch.h first, to test interface.
3719 Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
3720 (getenv): Remove decl.
3721 (fnmatch): Define using a prototype.
3722 * fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
3723 (FCT): Define using a prototype.
3725 * getdate.y: Include <stdlib.h>, <string.h> unconditionally.
3727 * gethostname.c: Include <stddef.h>.
3728 (gethostname): Define with prototype. Length is size_t, not int.
3730 2003-09-08 Paul Eggert <eggert@twinsun.com>
3732 * getversion.c: Remove; was migrated to backupfile.c in 1997.
3733 getversion.c should have been removed then, but was accidentally
3736 * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
3737 (utime_null): Fix typo: 'st' was sometimes called 'sb'.
3739 2003-09-07 Paul Eggert <eggert@twinsun.com>
3741 * time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to
3742 copy_tm_result. Bug reported by Simon Josefsson in
3743 <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00028.html>.
3745 2003-09-06 Paul Eggert <eggert@twinsun.com>
3747 * time_r.c, time_r.h: New files.
3749 * mktime.c (my_mktime_localtime_r): Remove; all uses changed to
3751 (__localtime_r) [!defined _LIBC]: New macro. Include <time_r.h>.
3752 (__mktime_internal) [!defined _LIBC]: Now extern, not static.
3754 * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
3756 (my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
3757 (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
3760 * timegm.c: Switch to glibc implementation, with the following changes:
3761 [defined HAVE_CONFIG_H]: Include <config.h>.
3762 [!defined _LIBC]: Include "timegm.h" rather than <time.h>.
3763 (__mktime_internal) [!defined _LIBC]: New decl.
3764 (__gmtime_r) [!defined _LIBC]: New macro and function.
3765 (timegm): Use a prototype, since gnulib assumes C89.
3766 Do not bother declaring tmp to be const, as it's not really usefu.
3767 * timegm.h: Hoist "#include <time.h>" out of #ifdef.
3768 (timegm): Declare only if HAVE_DECL_TIMEGM.
3770 2003-09-03 Paul Eggert <eggert@twinsun.com>
3772 * human.c (human_readable): Fix bug that rounded 10501 to 10k.
3773 Bug reported by Lute Kamstra in
3774 <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00003.html>.
3776 * getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
3777 "yesterday", "today", and "now" rather than tMINUTE_UNIT. Of
3778 course with correspondingly smaller numbers for tomorrow and
3779 yesterday. From Tadayoshi Funaba. Originally installed into
3780 sh-utils on 1999-08-07, but the patch got lost (I guess during the
3783 2003-08-31 Simon Josefsson <jas@extundo.com>
3785 * timegm.h: New file.
3786 * timegm.c: New file. Based on wget-1.8.2/src/http.c:mktime_from_utc.
3788 2003-08-31 Karl Berry <karl@gnu.org>
3790 * argp.h: update from libc.
3792 2003-08-28 Bruno Haible <bruno@clisp.org>
3794 * binary-io.h: Undefine O_BINARY before defining it. This avoids a
3795 warning on QNX, which defines O_BINARY to 000000.
3797 2003-08-24 Bruno Haible <bruno@clisp.org>
3799 * binary-io.h: Include <stdio.h>, to avoid a compilation error when
3800 MSVC7 <stdio.h> is included later.
3802 2003-08-20 Bruno Haible <bruno@clisp.org>
3804 * progname.h: New file, from GNU gettext.
3805 * progname.c: New file, from GNU gettext.
3806 * progreloc.c: New file, from GNU gettext.
3808 2003-08-19 Bruno Haible <bruno@clisp.org>
3810 * xstrdup.c: Assume <string.h> exists.
3812 2003-08-18 Jim Meyering <jim@meyering.net>
3814 * setenv.h: Indent nested cpp directive.
3815 * vasnprintf.c: Remove trailing blanks.
3817 2003-08-17 Simon Josefsson <jas@extundo.com>
3818 Bruno Haible <bruno@clisp.org>
3820 * xstrndup.h: New file.
3821 * xstrndup.c: New file.
3823 2003-08-17 Bruno Haible <bruno@clisp.org>
3825 * strndup.h: New file.
3827 2003-08-16 Paul Eggert <eggert@twinsun.com>
3829 * regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
3830 space, undoing this 2003-08-12 change:
3831 <http://mail.gnu.org/archive/html/bug-gnulib/2003-08/msg00080.html>
3833 2003-08-16 Jim Meyering <jim@meyering.net>
3835 Merge from coreutils.
3836 * xstrtoimax.c: #else #if -> #elif.
3837 * xstrtoumax.c: Likewise.
3839 2003-08-15 Paul Eggert <eggert@twinsun.com>
3841 * config.charset, ref-add.sin, ref-del.sin: Use three spaces,
3842 rather than tab, after '#' in shell-script copyright notices.
3843 Suggested by Bruno Haible.
3845 2003-08-15 Jim Meyering <jim@meyering.net>
3846 and Paul Eggert <eggert@twinsun.com>
3848 Merge from coreutils.
3849 * readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
3850 member but strut utmpx does not. Needed for AIX 4.3.3.
3851 (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
3853 2003-08-15 Jim Meyering <jim@meyering.net>
3855 Merge from coreutils.
3856 * xgethostname.c: Include <stdlib.h>.
3857 (xghostname): Don't exit for anything other than memory-related
3858 failure; just return NULL.
3859 * userspec.c: Include "posixver.h".
3860 (parse_user_spec): Accept `.' as a separator only
3861 in pre-POSIX-200112 mode.
3862 * strtoimax.c: Use #elif rather than #else #if.
3863 * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
3864 Remove function, now that we can rely on a working tzset function.
3865 [!_LIBC]: Ensure that the required autoconf test has been run.
3866 [!defined _NL_CURRENT && HAVE_STRFTIME]:
3867 Use underlying_strftime for %r.
3868 * sha.c: Merge in some clean-up and optimization changes from glibc.
3869 * sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
3870 Ensure that it is a multiple of 64.
3871 Rearrange loop exit tests so as to avoid performing an
3872 additional fread after encountering an error or EOF.
3873 * realloc.c: Update copyright date.
3875 2003-08-14 Jim Meyering <jim@meyering.net>
3877 Merge from coreutils.
3878 * obstack.h: Whitespace changes.
3879 * mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
3880 and xcalloc return values.
3881 (read_filesystem_list) [MOUNTED_GETFSSTAT]:
3882 Use MNT_NOWAIT, rather than MNT_WAIT. Otherwise, `df DIR' could
3883 hang on OSF/1 5.1 for DIR on both local and remote file systems.
3884 Reported by (and fix confirmed by) Nelson H. F. Beebe.
3885 (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
3887 Use mntctl's return value to drive the entry-processing loop, since
3888 we can't rely on the value of the vmt_length member in the last
3889 entry. On some systems doing so could result in exhausting
3890 virtual memory. Based in part on a patch from Mike Jetzer.
3892 2003-08-14 Jim Meyering <jim@meyering.net>
3893 and Paul Eggert <eggert@twinsun.com>
3895 Merges from coreutils, plus other fixes.
3896 * physmem.c: Merge in portability changes from gcc/libiberty
3897 to support AIX, IRIX, Tru64, and Windows. See the ChangeLog there
3898 for credits and details. Thanks to Kaveh Ghazi for helping
3899 to keep these files in sync.
3900 (ARRAY_SIZE): Define it.
3901 (physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
3902 * memcasecmp.c: Remove unnecessary parentheses after 'defined'.
3903 (memcasecmp): Don't assume size_t fits in unsigned int.
3904 Remove casts and duplicate code.
3905 * md5.c: Include <string.h> and <stdlib.h> unconditionally.
3906 (memcpy): Remove definition.
3907 Merge in some clean-up and optimization changes from glibc.
3908 [BLOCKSIZE]: Move definition to top of file.
3909 Ensure that it is a multiple of 64.
3910 Rearrange loop exit tests so as to avoid performing an
3911 additional fread after encountering an error or EOF.
3912 * md5.h (md5_uintptr): Define.
3913 * makepath.c (CLEANUP_CWD): Report an error if we failed to
3914 return to the initial working directory. Preserve errno
3916 * idcache.c: Include "xalloc.h".
3917 (xmalloc, xrealloc): Remove decls.
3918 (getuser): Remove casts no longer required in C89.
3919 * human.c: Include stdio.h, for sprintf.
3920 * group-member.c: Include "xalloc.h".
3921 (xmalloc, xrealloc): Remove decls.
3922 (get_group_info): Remove casts no longer required in C89.
3923 * getusershell.c (readname): Remove casts no longer required in C89.
3924 * gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
3925 * getline.c: Whitespace fix, from coreutils.
3927 2003-08-13 Paul Eggert <eggert@twinsun.com>
3929 * exclude.c: Include <ctype.h>
3930 (IN_CTYPE_DOMAIN): New macro.
3932 (add_exclude_file): If LINE_END is a space, ignore trailing spaces
3935 * argp-help.c, argp-parse.c, config.charset, getopt.h:
3936 Undo previous (whitespace-only) change.
3938 2003-08-12 Paul Eggert <eggert@twinsun.com>
3940 * argp-help.c, argp-parse.c, config.charset, getopt.h:
3941 Normalize leading white space and remove trailing white space.
3942 * ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
3943 notice, as per ../config/srclist-update.
3945 Merge from coreutils.
3946 * euidaccess.h: New file.
3947 * euidaccess.c: Include it.
3948 * .cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
3949 vasnprintf.h, vasprintf.h. Remove strdup.c, gettext.h.
3950 * regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
3952 2003-08-11 Bruno Haible <bruno@clisp.org>
3954 * vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
3955 (vasnprintf): Use it instead of wcslen.
3957 2003-08-11 Bruno Haible <bruno@clisp.org>
3959 * stdbool_.h (_Bool): Undo last change; instead use a negative enum
3960 value to ensure that _Bool promotes to int. Use #define for _Bool when
3961 using the Solaris C compiler. Adds comments suggested by Paul Eggert.
3963 2003-08-10 Karl Berry <karl@gnu.org>
3965 * regex.h: update from libc (whitespace fix).
3967 2003-08-09 Paul Eggert <eggert@twinsun.com>
3969 Merge some files from coreutils. These changes were
3970 originally made by Jim Meyering.
3971 * acl.c: Include <sys/types.h> before <sys/stat.h>;
3972 many older Unixes require this.
3973 * alloca.c (alloca): Remove cast to argument of free;
3974 no longer needed in C89.
3975 * alloca_.h, regex.h: Fix white space to match
3976 what GNU indent does.
3978 2003-08-05 Paul Eggert <eggert@twinsun.com>
3980 * bumpalloc.h: Remove.
3982 2003-08-04 Paul Eggert <eggert@twinsun.com>
3984 * getloadavg.c: Change copyright notice and spacing to conform to
3987 Merge from coreutils.
3988 * error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
3990 * getdate.y (date): Also accept dates like May-23-2003; suggestion
3991 from Karl Berry, implemented by Jim Meyering.
3992 * getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
3993 from Dmitry V. Levin.
3994 Remove anachronistic cast of xrealloc.
3995 * fnmatch_.h (__const): Remove. Use 'const'.
3996 * fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
3997 type. Otherwise, it wouldn't compile with at least /bin/cc on
3998 ymp-cray-unicos9.0.2.X.
3999 Combine two mostly-identical uses of alloca into one.
4000 Thanks to the Cray-Cyber project for access to a Cray Y-MP.
4002 2003-08-04 Dave Love <d.love@dl.ac.uk>
4006 * getloadavg.c: Check `__unix' as well as `unix'. Use #ifdef, not
4007 #if. Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE. Check
4008 F_SETFD, not FD_SETFD. Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
4009 obsolete NLIST_NAME_UNION.
4010 [__GNU__]: Undef BSD and FSCALE.
4011 [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
4013 2003-08-03 Paul Eggert <eggert@twinsun.com>
4015 * stdbool_.h (_Bool): Make it signed char, instead of
4016 an enum type, so that it's guaranteed to promote to int. See:
4017 <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
4019 2003-07-31 Paul Eggert <eggert@twinsun.com>
4021 * strerror.c: Include config.h, limits.h. Declare sprintf.
4022 (strerror): Don't assume that a printable int fits in 14 bytes.
4024 2003-07-24 Derek Robert Price <derek@ximbiot.com>
4025 Bruno Haible <bruno@clisp.org>
4027 * getline.h (getline, getdelim): Change return type to ssize_t.
4028 * getline.c (getline, getdelim): Likewise.
4029 Remove _GNU_SOURCE define; now it's defined in config.h through
4032 2003-07-22 Paul Eggert <eggert@twinsun.com>
4034 * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
4035 over-parenthesization in macros.
4037 Sync with coreutils.
4039 * xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
4042 Use `exit_failure' for xalloc and xmemcoll instead of their own
4043 private exit-failure variables.
4044 * xalloc.h (xalloc_exit_failure): Remove.
4045 * xmalloc.c: Likewise. Include exitfail.h.
4046 (xalloc_die): Use exit_failure instead of xalloc_exit_failure.
4047 * xmemcoll.h (xmemcoll_exit_failure): Remove.
4048 * xmemcoll.c: Likewise. Include exitfail.h.
4049 (xmemcoll): Use exit_failure instead of xalloc_exit_failure.
4051 2003-07-18 Paul Eggert <eggert@twinsun.com>
4053 * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
4054 * closeout.c: Likewise. Include "closeout.h" right after config.h,
4055 to test that it can stand by itself. Include "exitfail.h".
4056 Clients should set exit_failure instead.
4057 (EXIT_FAILURE): Remove; no longer needed. Do not include <stdlib.h>.
4059 2003-07-18 Andreas Schwab <schwab@suse.de>
4061 * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
4063 2003-07-18 Bruno Haible <bruno@clisp.org>
4065 * getndelim2.h: New file.
4066 * getndelim2.c: Make into a module of its own. Include config.h,
4068 (getndelim2): Make non-static. Change return type to ssize_t.
4069 * getline.h: Change argument names.
4070 * getline.c: Include getndelim2.h instead of getndelim2.c.
4071 * getnline.c: Include getndelim2.h.
4073 2003-07-17 Bruno Haible <bruno@clisp.org>
4075 * Makefile.am: Remove file.
4076 * Makefile.in: Remove file.
4078 2003-07-17 Bruno Haible <bruno@clisp.org>
4080 * getnline.h: New file.
4081 * getnline.c: New file.
4082 * getndelim2.c: New file, extracted from getline.c.
4083 (getndelim2): Renamed from getdelim2, with added nmax argument.
4084 * getline.c: Include getndelim2.c.
4085 (getdelim2): Moved out to getndelim2.c.
4086 (getline, getdelim): Update.
4088 2003-07-15 <karl@gnu.org>
4090 * vasnprintf.c: update from gettext.
4092 2003-07-15 Jim Meyering <jim@meyering.net>
4094 * makepath.c (make_path): Enclose diagnostic in _(...).
4096 2003-07-14 Paul Eggert <eggert@twinsun.com>
4098 * asnprintf.c, asprintf.c, config.charset, gettext.h,
4099 localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
4100 printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
4101 ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
4102 vasprintf.c, vasprintf.h: Regenerate. These files are now being
4103 updated automatically by ../config/srclist-update. This changes
4104 their license from LPGL to GPL.
4106 2003-07-14 Jim Meyering <jim@meyering.net>
4108 Don't emit diagnostics. Let callers do that.
4109 * save-cwd.c: Don't include "error.h".
4110 (save_cwd): Don't call error. Ensure that errno is valid
4111 when returning nonzero.
4113 * save-cwd.h (restore_cwd): Update prototype.
4114 * save-cwd.c (restore_cwd): Remove two parameters.
4115 Simplify. Don't call error upon failure. Let callers do that.
4116 (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
4117 when auditing is enabled. But don't bother updating the #if.
4119 2003-07-14 Simon Josefsson <jas@extundo.com>
4121 * mempcpy.h: New file.
4122 * mempcpy.c: New file.
4124 2003-07-14 Paul Eggert <eggert@twinsun.com>
4126 * ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
4127 sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
4128 unicodeio.c, unicodeio.h, unlocked-io.h:
4129 Switch from LGPL to GPL.
4131 2003-07-11 Alexandre Duret-Lutz <adl@gnu.org>
4133 * obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
4134 it breaks C++ compilation.
4135 [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
4137 2003-07-10 Jim Meyering <jim@meyering.net>
4139 * vasnprintf.c: Remove trailing blanks.
4140 Make cpp indentation consistent.
4142 2003-07-09 Paul Eggert <eggert@twinsun.com>
4144 * alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
4145 posixver.c, strftime.c, strnlen.c, strverscmp.c:
4146 Switch from LGPL to GPL.
4148 2003-07-07 Paul Eggert <eggert@twinsun.com>
4150 * mktime.c: Fix some boundary cases and remove need for floating point.
4152 Issue a compile-time diagnostic if time_t is floating point, or if
4153 two's complement arithmetic is not in effect, or if arithmetic
4154 right shift does not propagate the sign. These assumptions were
4155 all in the original code but they weren't checked.
4157 (TIME_T_MIDPOINT, verify): New macros.
4158 (__isleap): Remove; it has integer overflow problems.
4159 (leapyear): New function, without those problems.
4160 (ydhms_tm_diff): Remove; splitting into two parts.
4161 (ydhms_diff): New function, containing the arithmetic part of
4162 the old ydhms_tm_diff function. Issue a compile-time
4163 diagnostic if we are not using C99 integer division.
4164 Avoid casts when possible.
4165 (guess_time_tm): New function, containing the checking part of
4166 the old ydhms_tm_diff function. Return the new value, rather than
4167 the difference between it and the old. Accept a new argument T
4168 so that *T specifies the old value. Check for overflow in the result.
4170 (__mktime_internal): Use a time_t offset, not a long int offset.
4171 This undoes the 2003-06-04 change, which is no longer needed now
4172 that we have better overflow checking.
4173 (localtime_offset): Likewise.
4175 (__mktime_internal): Avoid harmful overflow on hosts where time_t
4176 and long are 64-bit but int is only 32-bit.
4177 (ydhms_diff): Use long int to store year1 and yday1.
4178 Issue a compile-time diagnostic if long int is not wide enough.
4180 (__mktime_internal): Use long int to store adjusted year and yday.
4181 Use plain C rather than preprocessor commands, if that doesn't
4183 Check for overflow (and try to repair) after each probe
4184 rather than checking only at the very end. This avoids some bugs
4185 (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
4186 does not equal GMT offset at maximum time).
4187 Use integer to check for overflow rather than floating point; this
4188 is more portable to non-IEEE hosts, and is a tad faster.
4189 When we detect that we are oscillating between two values,
4190 don't check whether tm_isdst has the requested value, since
4191 we already know the answer. When tm_isdst has the wrong value,
4192 use a different heuristic to find the right one, based on the
4193 extreme values actually observed in practice in tz2003a,
4194 rather than the (overly optimistic) "previous 3 calendar quarters".
4196 (not_equal_tm, print_tm, check_result): Use "const T" rather than
4197 "T const" to accommodate glibc style.
4198 (check_result): Use less-confusing report format. "long" -> "long int.
4200 Don't loop if the iteration overflows time_t.
4201 Allow a negative step in the iteration.
4203 2003-07-01 Paul Eggert <eggert@twinsun.com>
4205 * xreadlink.c: Include <sys/types.h> unconditionally, instead of
4206 having it depend on HAVE_SYS_TYPES_H.
4208 2003-06-25 Bruno Haible <bruno@clisp.org>
4210 * readlink.c: New file.
4212 2003-06-20 Bruno Haible <bruno@clisp.org>
4214 Assume C89, so PARAMS isn't needed.
4215 * unicodeio.h (PARAMS): Remove.
4216 * unicodeio.c: Don't use PARAMS.
4218 2003-06-18 Jim Meyering <jim@meyering.net>
4220 Merge changes from coreutils.
4221 * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
4222 Remove explicit declarations of xmalloc and realloc.
4224 (read_utmp): Remove anachronistic cast of xmalloc.
4226 2003-06-17 Paul Eggert <eggert@twinsun.com>
4228 Assume C89, so PARAMS isn't needed.
4229 * backupfile.h (PARAMS): Remove. All uses removed.
4230 * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
4231 group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
4232 makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
4233 path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
4234 save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
4235 unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
4236 xstrtol.h: Likewise.
4237 * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h,
4238 same.h, strverscmp.h: Do not include config.h; no longer needed.
4239 Anyway, config.h should always be included before any other file.
4241 2003-06-11 Simon Josefsson <jas@extundo.com>
4243 * sysexit_.h: New file.
4245 2003-05-20 Derek Price <derek@ximbiot.com>
4247 * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
4249 2003-06-10 Simon Josefsson <jas@extundo.com>
4251 * strchrnul.h: New file.
4252 * strchrnul.c: New file.
4254 2003-06-10 Simon Josefsson <jas@extundo.com>
4256 * argp.h: New file, from glibc.
4257 * argp-ba.c: New file, from glibc.
4258 * argp-eexst.c: New file, from glibc.
4259 * argp-fmtstream.c: New file, from glibc.
4260 * argp-fmtstream.h: New file, from glibc.
4261 * argp-fs-xinl.c: New file, from glibc.
4262 * argp-help.c: New file, from glibc.
4263 * argp-namefrob.h: New file, from glibc.
4264 * argp-parse.c: New file, from glibc.
4265 * argp-pv.c: New file, from glibc.
4266 * argp-pvh.c: New file, from glibc.
4267 * argp-xinl.c: New file, from glibc.
4269 2003-06-07 Jim Meyering <jim@meyering.net>
4271 * readtokens.h: Put `Free Software Foundation, Inc.'
4272 in place of my name in the copyright comment.
4273 Remove definition and uses of __P.
4276 * stat.c: Don't declare xmalloc explicitly.
4277 Instead, include "xalloc.h".
4278 * readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
4279 xrealloc, and xcalloc return values.
4280 * xgetcwd.c (xgetcwd): Include "xgetcwd.h".
4282 * xgetcwd.h: Remove definition/uses of PARAMS.
4284 2003-06-06 Jim Meyering <jim@meyering.net>
4286 * stdbool_.h: Renamed from stdbool.h.in.
4288 2003-06-06 Jim Meyering <jim@meyering.net>
4290 Merge from coreutils.
4291 * same.c: (same_name): Declare *_basename locals to be `const'.
4292 Consolidate declarations and initializations of *_base* locals.
4294 Merge from coreutils.
4295 This avoids a core dump on systems without GNU putenv,
4296 when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
4297 * putenv.c (__set_errno, LOCK, UNLOCK): Define.
4298 (unsetenv): New static function, from GNU libc.
4299 (rpl_putenv): Use it.
4301 * modechange.c: Remove trailing blanks.
4303 Merge from coreutils.
4304 * fsusage.c: Remove declaration of statfs.
4305 It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
4307 * posixtm.c: Include <stdbool.h> unconditionally.
4309 2003-06-05 Paul Eggert <eggert@twinsun.com>
4311 * mktime.c (__mktime_internal): When resolving a tm_isdst
4312 mismatch, look in future quarters as well as past. This fixes a
4313 bug when processing fall-backwards gaps immediately after a long
4314 period of daylight-saving time.
4316 * mktime.c: Assume freestanding C89 or better.
4317 (HAVE_LIMITS_H): Remove. Assume it's 1.
4318 (__P): Remove; not used.
4319 (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
4320 (mktime, not_equal_tm, print_tm, check_result,
4321 main): Use prototypes. Use const * where appropriate.
4322 (main): Fix typo in testing code that uncovered by above changes.
4323 (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
4325 2003-06-04 Paul Eggert <eggert@twinsun.com>
4327 * mktime.c: Fix Debian bug 177940
4328 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
4329 (localtime_offset): Now long int, not time_t, because we want it
4330 to be guaranteed to be signed. All uses changed.
4331 (__mktime_internal): If overflow would occur when adding offset,
4334 Merge 'human' changes from coreutils. Rewrite to support
4335 locale-specific notations like thousands separators.
4336 * human.c: Simplify authorship notice.
4337 Include human.h immediately after config.h.
4338 <sys/types.h>, <stdio.h>: Do not include; no longer needed.
4339 <limits.h>: Do not include, since human.h does.
4340 (SIZE_MAX, UINTMAX_MAX): New macros.
4341 <strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
4342 <locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
4343 (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
4344 (power_letter): Renamed from suffixes.
4345 (generate_suffix_backwards): Remove.
4346 (adjust_value): Now takes int style (because of human.h changes)
4347 and long double value (for greater precision on some platforms).
4348 (group_number): New function.
4349 (human_readable): Use it. Use integer options, not enum.
4350 Put the options before the sizes in the arg list.
4351 Support all the new options.
4352 The old human_readable function has been removed;
4353 use inttostr.h instead.
4354 (human_readable, default_block_size, humblock):
4355 Use uintmax_t, not int, for block sizes.
4356 (human_readable_inexact, block_size_types): Remove.
4357 (block_size_opts): New constant.
4358 (human_options): Renamed from human_block_size, with new signature
4359 that allows block sizes up to UINTMAX_MAX. All callers changed.
4360 * human.h: Add copyright and authorship notice.
4361 Include <limits.h> and <stdbool.h> unconditionally.
4362 (PARAMS): Remove. All uses removed.
4363 (LONGEST_HUMAN_READABLE): Add support for thousands separator.
4364 (enum human_inexact_style): Remove tag; now a nameless enum.
4365 (human_floor, human_ceiling, human_round_to_even): Now have
4366 values 2, 0, 1 rather than -1, 1, 0.
4367 (human_group_digits, human_suppress_point_zero, human_autoscale,
4368 human_base_1024, human_SI, human_B): New constants.
4369 (human_readable_inexact, human_block_size): Remove.
4370 (human_readable): Size args are now uintmax_t, not int.
4371 (human_options): New decl.
4373 * exclude.c: (new_exclude, add_exclude): Remove casts that are
4374 unnecessary now that we assume C89 or better. This change
4375 imported from coreutils.
4377 * mktime.c (__mktime_internal): Do not reject negative timestamps
4378 arbitrarily. This is the same patch as 2003-05-28, but it got lost
4379 in the 2003-05-30 sync from glibc.
4381 .h files should stand alone, but we shouldn't include <sys/types.h>
4382 if we can get away with just <stddef.h>.
4384 * __fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
4385 malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
4386 rather than <sys/types.h>, as we merely need size_t.
4387 * dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
4389 * hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
4390 Include <stdio.h>, to get FILE.
4391 * memcasecmp.c: Don't include <sys/types.h>, as we can assume
4392 memcasecmp.h has included <stddef.h> and all we need is size_t.
4393 * memcoll.c: Include "memcoll.h", which gets us size_t and checks
4394 our interface, instead of including <sys/types.h>
4396 2003-06-02 Paul Eggert <eggert@twinsun.com>
4399 Fix some minor time-related bugs with POSIX time arguments.
4400 Some valid time stamps were being rejected (notably -1, and
4401 time stamps before 1900 on 64-bit hosts). And some invalid
4402 time stamps were being accepted, e.g. September 31.
4404 * posixtm.h (posixtime): Return bool instead of time_t, so
4405 that we can return (time_t) -1 successfully.
4406 * posixtm.c: Likewise.
4407 [HAVE_STDBOOL_H]: Include <stdbool.h>.
4408 (bool, false, true) [!HAVE_STDBOOL_H]: New type.
4409 (t): Remove static var.
4410 (year, posix_time_parse): Now takes struct tm * arg to modify, instead
4411 of static var. All uses changed.
4412 (year): Do not reject years before 1900; they can occur with
4414 (posix_time_parse): Do not check for out-of-range components;
4415 that is now the caller's responsibility, since our checks were
4416 only approximations.
4417 (posixtime): Use mktime to check for out-of-range components,
4418 since it knows them exactly.
4419 If mktime returns (time_t) -1, check whether an error actually occurred
4420 by invoking localtime on -1.
4421 (main) [TEST_POSIXTIME]: Check for input data errors, and report
4422 posixtime failures better.
4423 Improve the test data (in comments only).
4425 2003-05-30 <karl@gnu.org>
4427 * mktime.c: update from libc.
4429 2003-05-30 Bruno Haible <bruno@clisp.org>
4431 * config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
4432 * localcharset.h: Likewise.
4433 * localcharset.c: Likewise.
4435 2003-05-28 Paul Eggert <eggert@twinsun.com>
4437 Assume the headers required for C89 freestanding compilers.
4438 * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h,
4439 rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h>
4440 without checking for HAVE_LIMITS_H.
4441 * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c,
4442 xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed
4444 * fatal.c: Include <stdarg.h> without checking for __STDC__.
4445 * exclude.c: Include <stdbool.h> unconditionally.
4446 * tempname.c: Include <stddef.h> unconditionally.
4447 * hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
4448 * modechange.c, rpmatch.c (NULL): Don't define, since
4449 <stddef.h> does that.
4450 * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
4451 * safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
4452 * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed.
4453 * xstrtol.c: Likewise.
4454 * safe-read.c: Remove TYPE_SIGNED; no longer needed.
4455 * savedir.c: Include <stddef.h> instead of defining NULL.
4457 * addext.c (addext): Use assignment rather than cast, to avoid
4458 warnings on some platforms.
4460 * mktime.c (__mktime_internal): Do not reject negative timestamps
4463 2003-05-10 Bruno Haible <bruno@clisp.org>
4465 * linebreak.c (iconv_string_length): Don't return -1 just because the
4466 string is longer than 4 KB.
4468 2003-05-12 Jim Meyering <jim@meyering.net>
4470 * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
4471 the space-padded-by-default conversion specifiers, %e, %k, %l.
4473 2003-05-03 Bruno Haible <bruno@clisp.org>
4475 Upgrade to Unicode-4.0.
4476 * linebreak.c (nonspacing_table_data): Change width of U+00AD,
4477 U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
4478 U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
4479 U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
4480 from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
4481 (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
4482 of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
4483 Change width of U+E0100..U+E01EF from 1 to 0.
4485 2003-04-25 Bruno Haible <bruno@clisp.org>
4487 * copy-file.c: Include <stddef.h>, for size_t.
4489 2003-04-25 Jim Meyering <jim@meyering.net>
4491 * copy-file.c (copy_file_preserving): Declare buf_size to be
4492 of type size_t, not int.
4494 2003-04-11 Jim Meyering <jim@meyering.net>
4496 Merge changes from Coreutils.
4498 2003-03-22 Jim Meyering <jim@meyering.net>
4500 * strftime.c (widen): Cast alloca return value to proper type.
4502 2003-01-19 Ulrich Drepper <drepper@redhat.com>
4505 * strftime.c (my_strftime): Handle very large width
4506 specifications for numeric values correctly. Improve checks for
4509 2003-01-19 Jim Meyering <jim@meyering.net>
4511 * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
4512 (nl_get_alt_digit) [! defined my_strftime]: Define.
4513 (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
4514 _nl_get_alt_digit and _nl_get_walt_digit.
4516 * strftime.c (my_strftime): Merge in locale-related changes from libc.
4517 These changes have no effect outside of _LIBC.
4519 2003-04-10 Bruno Haible <bruno@clisp.org>
4521 * findprog.h: New file, from GNU gettext.
4522 * findprog.c: New file, from GNU gettext.
4524 2003-04-05 Jim Meyering <jim@meyering.net>
4526 Merge changes from Coreutils.
4528 * exclude.h (PARAMS): Remove definition and uses.
4529 * exclude.c: Remove uses of `PARAMS'.
4531 * dirname.c [TEST_DIRNAME]: Update build instructions for test.
4532 Add test-cases for DOS filenames. Declare program_name.
4533 (main): Set up program_name. Patch by Rich Dawe.
4535 * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
4537 Use mntctl's return value to drive the entry-processing loop, since
4538 we can't rely on the value of the vmt_length member in the last
4539 entry. On some systems doing so could result in exhausting
4540 virtual memory. Based in part on a patch from Mike Jetzer.
4542 2003-04-04 Bruno Haible <bruno@clisp.org>
4544 * linebreak.h: New file, from GNU gettext.
4545 * linebreak.c: New file, from GNU gettext with slight modifications.
4546 * lbrkprop.h: New file, from GNU gettext.
4548 2003-04-03 Bruno Haible <bruno@clisp.org>
4550 * utf8-ucs4.h: New file, from GNU gettext.
4551 * utf16-ucs4.h: New file, from GNU gettext.
4552 * ucs4-utf8.h: New file, from GNU gettext.
4553 * ucs4-utf16.h: New file, from GNU gettext.
4555 2003-04-02 Bruno Haible <bruno@clisp.org>
4557 * binary-io.h: New file, from GNU gettext.
4559 2003-04-01 Bruno Haible <bruno@clisp.org>
4561 * pathname.h: New file, from GNU gettext.
4562 * concatpath.c: New file, from GNU gettext.
4564 2003-03-30 Bruno Haible <bruno@clisp.org>
4566 * copy-file.c (copy_file_preserving): Don't set owner if the function
4567 chown() doesn't exist.
4569 2003-03-28 Bruno Haible <bruno@clisp.org>
4571 * copy-file.h: New file, from GNU gettext.
4572 * copy-file.c: New file, from GNU gettext.
4574 2003-03-18 Jim Meyering <jim@meyering.net>
4576 * quote.c (quote_n): Fix typo in comment.
4578 2003-03-14 Jim Meyering <jim@meyering.net>
4580 Merge changes from Coreutils.
4581 * obstack.h (obstack_object_size): Declare temporary, __o,
4582 to be const, in order to avoid warnings.
4583 (obstack_room): Likewise.
4584 (obstack_empty_p): Likewise.
4586 2003-03-13 Paul Eggert <eggert@twinsun.com>
4588 Merge changes from Bison.
4589 * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
4590 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
4591 when compiling Bison 1.875's `bitset bset = obstack_alloc
4592 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
4593 * hash.c: Include <stdbool.h> unconditionally.
4595 2003-03-09 Paul Eggert <eggert@twinsun.com>
4597 * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
4598 Reported by Bruce Becker; see:
4599 http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
4601 2003-03-03 Paul Eggert <eggert@twinsun.com>
4602 Bruno Haible <bruno@clisp.org>
4604 * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
4605 Reported by John Hughes, see
4606 http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
4608 2003-02-19 Paolo Bonzino <bonzini@gnu.org>
4610 * poll_.h: New file.
4613 2003-02-18 Paolo Bonzino <bonzini@gnu.org>
4615 * mathl.h: New file.
4616 * acosl.c: New file.
4617 * asinl.c: New file.
4618 * atanl.c: New file.
4619 * ceill.c: New file.
4622 * floorl.c: New file.
4623 * frexpl.c: New file.
4624 * ldexpl.c: New file.
4626 * sincosl.c: New file.
4628 * sqrtl.c: New file.
4630 * trigl.c: New file.
4631 * trigl.h: New file.
4633 2003-02-17 Bruno Haible <bruno@clisp.org>
4635 * mkdtemp.h: New file, from GNU gettext.
4636 * mkdtemp.c: New file, from GNU gettext.
4638 2003-01-31 Bruno Haible <bruno@clisp.org>
4640 * rename.c: #undef rename before defining rpl_rename.
4641 * strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
4643 2003-01-30 Bruno Haible <bruno@clisp.org>
4645 * printf-args.h: New file, from GNU gettext.
4646 * printf-args.c: New file, from GNU gettext.
4647 * printf-parse.h: New file, from GNU gettext.
4648 * printf-parse.c: New file, from GNU gettext.
4649 * vasnprintf.h: New file, from GNU gettext.
4650 * vasnprintf.c: New file, from GNU gettext.
4651 * asnprintf.c: New file, from GNU gettext.
4652 * vasprintf.h: New file, from GNU gettext with modifications.
4653 * vasprintf.c: New file, from GNU gettext.
4654 * asprintf.c: New file, from GNU gettext.
4656 2003-01-29 Bruno Haible <bruno@clisp.org>
4658 * stpncpy.h: New file, from GNU gettext with modifications.
4659 * stpncpy.c: New file, from GNU gettext with modifications.
4661 2003-01-28 Bruno Haible <bruno@clisp.org>
4663 * c-ctype.h: New file, from GNU gettext, with changes suggested by
4665 * c-ctype.c: New file, from GNU gettext, with changes suggested by
4668 2003-01-27 Bruno Haible <bruno@clisp.org>
4670 * xsetenv.h: New file, from GNU gettext.
4671 * xsetenv.c: New file, from GNU gettext.
4673 2003-01-23 Bruno Haible <bruno@clisp.org>
4675 * minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
4677 2003-01-22 Bruno Haible <bruno@clisp.org>
4679 * exit.h: New file, from GNU gettext.
4681 2003-01-11 Bruno Haible <bruno@clisp.org>
4683 * stpcpy.h (stpcpy): Use ANSI C function declarations.
4684 * strcase.h (strcasecmp, strncasecmp): Likewise.
4686 2003-01-14 Jim Meyering <jim@meyering.net>
4688 * same.c (same_name): Tweak a comment.
4690 2003-01-11 Bruno Haible <bruno@clisp.org>
4692 * same.c (same_name): Reorder tests so as to avoid calling stat()
4693 when a string comparison is sufficient.
4695 2003-01-11 Bruno Haible <bruno@clisp.org>
4697 * readtokens.c (readtoken): Cast character to 'unsigned char', not
4700 2003-01-11 Bruno Haible <bruno@clisp.org>
4702 * hash-pjw.c: Add comment about low quality of this function.
4704 2003-01-12 Paul Eggert <eggert@twinsun.com>
4706 Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
4707 to avoid collisions with libcurses and libreadline.
4709 * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
4710 * getstr.h, getstr.c: Remove.
4711 * getline.c: Include "getline.h", to check interface.
4712 Move body of old getstr.c here: this defines MIN_CHUNK and
4713 declares getdelim2, which is renamed from getstr.
4714 (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
4716 * linebuffer.c (readlinebuffer): Renamed from readline.
4718 * linebuffer.h: Likewise.
4719 (readline): Remove backward-compatibility macro.
4721 2003-01-12 Jim Meyering <jim@meyering.net>
4723 * makepath.c: Don't test HAVE_ERRNO_H. It's not necessary.
4725 2003-01-10 Bruno Haible <bruno@clisp.org>
4727 * alloca_.h: New file.
4728 * getdate.y: Unconditionally include alloca.h.
4729 * makepath.c: Likewise.
4730 * setenv.c: Likewise.
4731 * userspec.c: Likewise.
4733 2003-01-09 Bruno Haible <bruno@clisp.org>
4735 * stdbool.h.in: New file.
4737 2003-01-08 Bruno Haible <bruno@clisp.org>
4739 * safe-read.c: Include specification header first, to ensure its
4741 * full-write.c: Likewise.
4743 2003-01-08 Jim Meyering <jim@meyering.net>
4745 * full-write.c: Undefine and define-away `const' after inclusion
4746 of errno.h, not before. Suggestion from Bruno Haible.
4748 2003-01-07 Jim Meyering <jim@meyering.net>
4750 * full-write.c: Rework so that it may serve to define full_read, too.
4751 * full-read.c: Simply #define FULL_READ and include full-write.c.
4753 2003-01-06 Jim Meyering <jim@meyering.net>
4755 * version-etc.c: Update year in translatable copyright string.
4757 2002-12-25 Bruno Haible <bruno@clisp.org>
4759 * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
4760 * xstrtol.h: Likewise.
4761 * xstrtoimax.c: Likewise.
4762 * xstrtoumax.c: Likewise.
4763 * human.h: Likewise.
4765 * tempname.c: Include <inttypes.h> too. Avoids a compilation error
4766 on systems that have <inttypes.h> but not <stdint.h>.
4768 2002-12-31 Paul Eggert <eggert@twinsun.com>
4770 * memcoll.c (memcoll): Fall back on a simple algorithm using
4771 memcmp if strcoll doesn't work.
4773 2002-12-23 Bruno Haible <bruno@clisp.org>
4775 * localcharset.h: New file.
4776 * localcharset.c: Include it.
4777 * unicodeio.c: Likewise.
4779 2002-12-22 Bruno Haible <bruno@clisp.org>
4781 * utime.c (utime_null): No need to call ftruncate if the file was
4784 2002-12-23 Bruno Haible <bruno@clisp.org>
4786 * memcoll.c (STRCOLL): New macro.
4789 2002-12-22 Bruno Haible <bruno@clisp.org>
4791 * getstr.h (getstr): Define, to avoid clash with libcurses.
4792 * linebuffer.h (readline): Define, to avoid clash with libreadline.
4794 2002-12-22 Bruno Haible <bruno@clisp.org>
4796 * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
4798 2002-12-23 Bruno Haible <bruno@clisp.org>
4800 * getline.h: Include <stddef.h>, for size_t.
4802 * unicodeio.h: Include <stddef.h>, for size_t.
4803 * unicodeio.c: Don't include <stddef.h>.
4805 2002-12-17 Bruno Haible <bruno@clisp.org>
4807 * canon-host.c (strdup): Remove unused declaration.
4809 * fsusage.c: Include full_read.h.
4810 (get_fs_usage): Use full_read instead of safe_read.
4812 * utime.c (utime_null): Use SAFE_READ_ERROR.
4814 2002-12-11 Bruno Haible <bruno@clisp.org>
4816 * setenv.h: Rewritten to cope with systems that have setenv() but not
4818 * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
4821 2002-12-11 Bruno Haible <bruno@clisp.org>
4823 * setenv.c (alloca): Fall back to malloc.
4825 (setenv): Use freea() to free memory allocated with alloca().
4827 2002-11-13 Bruno Haible <bruno@clisp.org>
4829 * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
4830 function declarations.
4831 * unsetenv.c (unsetenv): Likewise.
4833 2002-03-04 Bruno Haible <bruno@clisp.org>
4835 Portability to AIX 4.3.3.
4836 * unsetenv.c: New file, extracted from setenv.c.
4837 * setenv.c: Move the unsetenv() function to unsetenv.c.
4839 2001-12-20 Bruno Haible <bruno@clisp.org>
4841 * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
4842 use malloc instead. For SunOS 4.
4844 2001-12-11 Bruno Haible <bruno@clisp.org>
4846 * setenv.c: Declare alloca.
4847 (compar_fn_t): New typedef.
4848 (KNOWN_VALUE, STORE_VALUE): Use it.
4850 * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
4853 2002-12-10 Paul Eggert <eggert@twinsun.com>
4855 Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
4856 * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
4857 Choose values that are less likely to collide with system fnmatch
4859 * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
4860 defined (e.g., a pure POSIX system).
4861 (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
4862 instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
4864 2002-12-06 Jim Meyering <jim@meyering.net>
4866 * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
4868 Merge in changes from libc's misc/error.c, in preparation
4869 for the merge of gnulib's changes back into libc.
4871 * error.c (_): Define only if not already defined.
4872 Move definition to follow all #include directives.
4873 Include unlocked-io.h only if !_LIBC.
4874 [_LIBC]: Include <libio/libioP.h>.
4875 [USE_IN_LIBIO]: Include <libio/iolibio.h>
4876 (fflush): Tweak definition to use INTUSE.
4879 2002-12-05 Paul Eggert <eggert@twinsun.com>
4881 * alloca.c [defined emacs]: Include "lisp.h".
4882 (xalloc_die) [defined emacs]: New macro.
4883 (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
4884 [! defined emacs]: Include <xalloc.h>.
4885 (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
4886 (pointer): Typedef to POINTER_TYPE *.
4887 (malloc): Remove decl; we now always use xmalloc.
4888 (alloca): Use old-style definition, since Emacs needs this.
4889 Check for arithmetic overflow when computing combined size.
4891 2002-12-04 Paul Eggert <eggert@twinsun.com>
4893 Do not generate unlocked-io.h automatically, since it's easier to
4894 maintain it by hand.
4896 * unlocked-io.h: New file, from GNU diffutils,
4897 but with proper copyright notice and attribution.
4899 * Makefile.am: Add copyright notice.
4900 (libfetish_a_SOURCES): Add unlocked-io.h.
4901 (BUILT_SOURCES, all-local): Remove unlocked-io.h.
4902 (DISTCLEANFILES, io_functions): Remove macros.
4903 (EXTRA_DIST): Remove gen_uio.
4904 (unlocked-io.h): Remove rule.
4906 2002-12-04 Jim Meyering <jim@meyering.net>
4908 Reflect the fact that stat.c and lstat.c are no longer generated.
4909 * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
4910 (DISTCLEANFILES): Likewise.
4911 (EXTRA_DIST): Likewise.
4912 (all_local): Don't depend on stat.c or lstat.c.
4913 (stat.c, lstat.c): Remove rules.
4914 (EXTRA_DIST): Remove xstat.in.
4916 * xstat.in: Remove file. Contents moved into stat.c.
4917 * stat.c: New file. Contents mostly from xstat.in.
4918 * stat.c: Rework so that it may serve to define rpl_lstat, too.
4919 * lstat.c: New file. Simply #define LSTAT and include stat.c.
4921 * safe-read.c: Rework so that it may serve to define safe_write, too.
4922 * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
4924 2002-12-03 Jim Meyering <jim@meyering.net>
4926 * safe-read.c, safe-write.c: Change variable names and comments, but
4927 not semantics, to minimize the differences between these two files.
4928 (safe_read): Change comment to mention SAFE_READ_ERROR.
4930 * safe-read.c (IS_EINTR): Define.
4931 (safe_read): Use IS_EINTR in place of in-function cpp directives.
4933 2002-12-02 Bruno Haible <bruno@clisp.org>
4935 * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
4936 Define, taken from safe-read.c.
4937 (INT_MAX): Provide fallback.
4938 (safe_write): Rewrite to iterate IFF the write fails with EINTR.
4939 * safe-write.h (SAFE_WRITE_ERROR): Define.
4941 * safe-read.c (EINTR): Remove definition.
4942 (safe_read): Don't use EINTR if it is absent.
4944 2002-12-02 Jim Meyering <jim@meyering.net>
4946 * safe-read.c (EINTR): Define.
4947 (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
4948 (INT_MAX): Provide fallback.
4949 (safe_read): Rewrite to iterate IFF the read fails with EINTR.
4951 * safe-read.h (SAFE_READ_ERROR): Define.
4953 2002-12-01 Jim Meyering <jim@meyering.net>
4955 * safe-read.c: (safe_read): Also exit the loop when read returns zero.
4956 (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
4958 2002-11-27 Paul Eggert <eggert@twinsun.com>
4960 * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
4961 hash_rehash): Replace `if (limit <= value) abort ();' with
4962 `if (! (value < limit)) abort ();', for readability.
4964 2002-11-26 <karl@gnu.org>
4966 * strdup.c: copy from libc again, with jim's ok.
4967 * .cppi-disable: re-add strdup.c
4969 2002-11-25 <karl@gnu.org>
4971 * strtoll.c: copy from libc, meaning we now #include <strtol.c>
4972 instead of "strtol.c".
4974 2002-11-25 Jim Meyering <jim@meyering.net>
4976 * mktime.c: Sync from libc, now that it has the latest fix.
4978 2002-11-24 <karl@gnu.org>
4980 * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
4981 regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
4983 2002-11-24 Jim Meyering <jim@meyering.net>
4985 Update from coreutils:
4987 * mktime.c: Merge in changes from libc.
4989 Avoid a link-time failure on some Linux systems.
4990 * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
4991 (__mon_yday): Declare with the STATIC attribute.
4992 (__mktime_internal): Likewise.
4993 Based on a report from Greg Schafer.
4995 2002-11-23 Jim Meyering <jim@meyering.net>
4997 * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
4998 Use `unsigned', not `int', as type of index.
5000 * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
5002 * fsusage.c: Remove unneeded parentheses around operands of `defined'.
5004 2002-11-22 Paul Eggert <eggert@twinsun.com>
5006 * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
5007 hint that one should use `if (! x) abort ();' rather than `assert
5008 (x);', and anyway it's one less thing to worry about configuring.
5009 (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
5010 hash_rehash, hash_insert): Use abort rather than assert.
5012 2002-11-22 Paul Eggert <eggert@twinsun.com>
5014 * quotearg.h: Allow multiple inclusion by surrounding with
5015 "#ifndef QUOTEARG_H_". Include <stddef.h>, for size_t,
5016 so that we can be included first.
5017 (PARAMS): Remove; we now assume C89 or later. All uses removed.
5018 * quotearg.c: Include quotearg.h immediately after config.h.
5019 No need to include stddef.h or sys/types.h any more.
5020 Surround local include files with "", not "<>".
5021 Assume HAVE_LIMITS_H unconditionally, as we assume C89.
5022 Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
5023 HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
5024 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
5025 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
5026 (ISPRINT): Remove; no longer needed now that we assume C89.
5028 (clone_quoting_options, quotearg_buffer, quotearg_n_options):
5031 (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
5032 quotearg_char): Use SIZE_MAX rather than
5033 (size_t) -1 when we are talking about "infinity".
5035 (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
5037 2002-11-22 Bruno Haible <bruno@clisp.org>
5039 * safe-read.h: Assume C89. Add comments.
5040 (safe_read): Change return type to size_t.
5041 * safe-read.c (safe_read): Change return type to size_t. Handle byte
5042 counts > SSIZE_MAX correctly.
5043 * safe-write.h: New file.
5044 * safe-write.c: New file.
5045 * full-read.h: New file.
5046 * full-read.c: New file.
5047 * full-write.h: Assume C89. Add comments.
5048 * full-write.c: Include safe-write.h.
5049 (full_write): Rewritten to use safe_write.
5050 Suggested by Jim Meyering and Paul Eggert.
5052 2002-11-21 Bruno Haible <bruno@clisp.org>
5054 Remove case insensitive option matching.
5055 * argmatch.h (argcasematch): Remove declaration.
5056 (ARGCASEMATCH): Remove macro.
5057 (__xargmatch_internal): Remove case_sensitive argument.
5058 (XARGMATCH): Update.
5059 (XARGCASEMATCH): Remove macro.
5060 * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
5061 case_sensitive argument.
5062 (argcasematch): Remove function.
5063 (__xargmatch_internal): Remove case_sensitive argument.
5064 (main): Use XARGMATCH instead of XARGCASEMATCH.
5066 * xmalloc.c: Change compile-time error message. Add comment about
5067 required autoconf version.
5069 2002-11-21 Jim Meyering <jim@meyering.net>
5071 * strdup.c (strdup): Tweak comment and initial #if/#include.
5073 Merge in changes from the coreutils.
5075 2002-09-25 Paul Eggert <eggert@twinsun.com>
5076 * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
5077 (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
5078 (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
5079 int. Work more efficiently if X is the same width as uintmax_t.
5080 Do not compare X to -1, to avoid bogus compiler warning.
5081 (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
5082 Don't assume that f_frsize and f_bsize are the same type.
5084 * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
5087 * makepath.c (make_path): Restore umask *before* creating the final
5089 (make_path): Minor reformatting.
5091 * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
5092 and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
5094 * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
5095 ones. At least on GNU/Linux systems, `auto' means something else.
5098 2002-11-20 Paul Eggert <eggert@twinsun.com>
5100 Merge argmatch cleanups from Bison. Assume C89.
5102 * argmatch.c: Include config.h here, not in argmatch.h.
5103 Include stdlib.h, for EXIT_FAILURE.
5104 Always include <string.h>, since we assume C89.
5105 (EXIT_FAILURE): Remove pre-C89 bug workaround.
5106 * argmatch.h: Do not include <config.h> or <sys/types.h>.
5107 Include <stddef.h> instead, since it's all we need for size_t.
5108 (PARAMS): Remove. All uses removed.
5109 (ARRAY_CARDINALITY): Do not bother to #undef.
5110 (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
5111 ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
5112 Remove unnecessary parentheses.
5113 (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
5114 Insert necessary parentheses.
5115 (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
5116 (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
5118 2002-11-19 Bruno Haible <bruno@clisp.org>
5120 * mbswidth.c: Include mbswidth.h right at the beginning.
5121 * mbswidth.h: Include <stddef.h>, for size_t.
5123 * mbswidth.h (PARAMS): Remove macro.
5124 (mbswidth, mbsnwidth): Use ANSI C function declarations.
5125 * mbswidth.c (mbswidth, mbsnwidth): Likewise.
5127 * gcd.h (PARAMS): Remove macro.
5128 (gcd): Use ANSI C function declarations.
5129 * gcd.c (gcd): Likewise.
5131 2002-11-15 Bruno Haible <bruno@clisp.org>
5133 * strcspn.c: Include <stddef.h>.
5134 (strcspn): Use ANSI C function declaration. Change return type to
5136 * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
5137 (strpbrk): Use NULL.
5138 * strpbrk.h (PARAMS): Remove macro.
5139 (strpbrk): Use ANSI C function declaration.
5140 * strstr.c: Don't include <sys/types.h>.
5141 * strstr.h (PARAMS): Remove macro.
5142 (strstr): Use ANSI C function declarations.
5144 2002-11-06 Bruno Haible <bruno@clisp.org>
5146 * gcd.h (gcd): Change argument type to 'unsigned long'.
5147 * gcd.c (gcd): Likewise.
5149 2002-11-05 Bruno Haible <bruno@clisp.org>
5151 * gcd.h: New file, from gettext-0.11.5.
5152 * gcd.c: New file, from gettext-0.11.5.
5154 2002-11-05 Bruno Haible <bruno@clisp.org>
5156 * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
5157 * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
5158 * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
5159 * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
5161 * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
5162 * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
5164 * closeout.c: Include gettext.h instead of <libintl.h>.
5165 * human.c: Include gettext.h instead of <libintl.h>.
5166 * quotearg.c: Include gettext.h instead of <libintl.h>.
5167 * rpmatch.c: Include gettext.h instead of <libintl.h>.
5168 * unicodeio.c: Include gettext.h instead of <libintl.h>.
5169 * userspec.c: Include gettext.h instead of <libintl.h>.
5170 * version-etc.c: Include gettext.h instead of <libintl.h>.
5171 * xmalloc.c: Include gettext.h instead of <libintl.h>.
5172 (textdomain): Remove definition.
5173 * xmemcoll.c: Include gettext.h instead of <libintl.h>.
5175 * long-options.c: Remove include of <libintl.h> and definition of _.
5176 * same.c: Remove include of <libintl.h> and definition of _.
5178 2002-11-04 Bruno Haible <bruno@clisp.org>
5180 * stpcpy.h: New file, from GNU gettext-0.11.5.
5181 * strcase.h: New file, from GNU gettext-0.11.5.
5182 * strpbrk.h: New file, from GNU gettext-0.11.5.
5183 * strstr.h: New file, from GNU gettext-0.11.5.
5184 * xgetcwd.h: New file, from GNU gettext-0.11.5.
5186 2002-05-09 Bruno Haible <bruno@clisp.org>
5188 * config.charset: Update for newest glibc. Add canonical names
5189 ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
5191 2002-05-09 Bruno Haible <bruno@clisp.org>
5193 * localcharset.c (get_charset_aliases): Add more Windows specific
5196 2002-05-08 Owen Taylor <otaylor@redhat.com>
5198 * config.charset: A few additions for Solaris.
5200 2001-12-05 Bruno Haible <bruno@clisp.org>
5202 * localcharset.c (locale_charset): Don't return an empty string.
5204 2001-10-23 Bruno Haible <haible@clisp.cons.org>
5206 * config.charset: msdos in uk_UA uses CP1125.
5208 2001-08-05 Bruno Haible <haible@clisp.cons.org>
5210 Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
5211 * localcharset.c (locale_charset): Declare as extern "C".
5213 2002-02-15 Bruno Haible <bruno@clisp.org>
5215 * config.charset [msdosdjgpp]: For Russian, use CP866.
5217 2002-02-11 Bruno Haible <bruno@clisp.org>
5219 * config.charset: Add support for NetBSD.
5221 2002-09-25 <karl@gnu.org>
5223 * strdup.c: copy from libc/string (via ../config/srclist*).
5224 * getopt*: copy from libc/posix.
5225 * gettext.h: copy from gettext.
5226 * .cppi-disable: add strdup.c, gettext.h.
5228 2002-07-01 Jim Meyering <meyering@lucent.com>
5230 * c-stack.c: Include sys/time.h.
5231 From Volker Borchert.
5233 2002-06-11 Paul Eggert <eggert@twinsun.com>
5235 * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
5236 New macro. Use it uniformly instead of
5237 (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
5238 It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
5239 reported by Vin Shelton.
5241 2002-06-22 Jim Meyering <meyering@lucent.com>
5243 * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
5244 redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
5246 2002-06-22 Paul Eggert <eggert@twinsun.com>
5248 * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
5249 Do not assume SA_SIGINFO behavior.
5250 Bug reported by Jim Meyering on NetBSD 1.5.2.
5252 2002-06-22 Jim Meyering <meyering@lucent.com>
5254 * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
5256 * exitfail.c, exitfail.h: Likewise.
5257 * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
5259 * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
5261 (EXTRA_DIST): Add fnmatch_loop.c.
5262 (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
5264 * fnmatch_loop.c: New file, from diffutils-2.8.2.
5265 * fnmatch.c: Update from diffutils-2.8.2.
5266 * fnmatch_.h: New file. From diffutils-2.8.2.
5267 * fnmatch.h: Remove file.
5269 2002-06-18 Paul Eggert <eggert@twinsun.com>
5271 * file-type.h: Report an error if neither S_ISREG nor
5272 S_IFREG is defined, instead of using a test specific to glibc
5273 2.2. This should be safe, since POSIX requires S_ISREG and
5274 Unix Version 7 had S_IFREG. We don't need to check for
5275 <sys/types.h> since we don't use any symbols that it defines.
5277 2002-06-15 Jim Meyering <meyering@lucent.com>
5279 * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
5280 For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
5281 have been included before this file.
5283 2002-06-13 Richard Dawe <richdawe@bigfoot.com>
5285 * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
5286 so that each temporary file name is unique and valid in the first
5287 8 characters, for operation under DOS.
5289 2002-06-15 Jim Meyering <meyering@lucent.com>
5291 Work even with DJGPP 2.03, which lacks support for symlinks.
5293 * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
5295 * lchown.c (S_ISLNK): Likewise.
5297 2002-06-14 Jim Meyering <meyering@lucent.com>
5299 * file-type.h: Use the version from diffutils-2.8.2.
5300 * file-type.c: Likewise.
5302 2002-05-27 Jim Meyering <meyering@lucent.com>
5304 Fix a problem seen only on nonconforming systems whereby ls.c's
5305 use of localtime, and then of gettimeofday would cause trouble:
5306 the localtime call used to initialize rpl_gettimeofday's save
5307 mechanism would clobber ls's current local time information so
5308 that in any long listing the first file would always be listed
5309 with date 1970-01-01. Analysis by Volker Borchert.
5311 * gettimeofday.c (localtime): Undefine.
5312 (rpl_localtime): New function.
5314 2002-05-22 Jim Meyering <meyering@lucent.com>
5316 * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
5317 * file-type.h: New file.
5318 * file-type.c (file_type): New file/function. Extracted from diffutils.
5320 2002-04-29 Paul Eggert <eggert@twinsun.com>
5322 * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
5324 2002-04-28 Paul Eggert <eggert@twinsun.com>
5326 * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
5327 depending on <sys/wait.h> and WTERMSIG. Default to 64 instead
5328 of 127, since 64 is the largest conceivable number for ancient
5330 * sig2str.c: Do not include <sys/wait.h>; no longer needed.
5332 2002-04-28 Jim Meyering <meyering@lucent.com>
5334 * sig2str.c (WTERMSIG): Remove definition (unused).
5336 2002-04-28 Paul Eggert <eggert@twinsun.com>
5338 * sig2str.h, sig2str.c: New files.
5339 * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
5341 2002-04-24 Jim Meyering <meyering@lucent.com>
5343 * gettext.h: New file, from Gettext.
5344 * Makefile.am (INCLUDES): Remove -I../intl.
5345 (libfetish_a_SOURCES): Add gettext.h.
5347 2002-04-16 Jim Meyering <meyering@lucent.com>
5349 * readutmp.h (UT_TYPE): Remove definition (now in who.c).
5350 (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
5351 (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
5353 2002-04-12 Jim Meyering <meyering@lucent.com>
5355 * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
5357 2002-03-10 Jim Meyering <meyering@lucent.com>
5359 * makepath.c (make_path): Remove a comma from a diagnostic.
5360 Suggestion from Santiago Vila.
5362 2002-03-08 Jim Meyering <meyering@lucent.com>
5364 * rename.c: Mention that this wrapper is needed also on
5365 mips-dec-ultrix4.4 systems.
5367 2002-03-02 Jim Meyering <meyering@lucent.com>
5369 * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
5370 not HAVE_CLOCK_SETTIME.
5372 2002-02-27 Paul Eggert <eggert@twinsun.com>
5374 * nanosleep.h: Rename to....
5375 * timespec.h: New name for nanosleep.h. All uses changed.
5377 * gettime.c: New file.
5378 * settime.c: New file.
5381 * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
5382 timespec.h. Remove nanosleep.h.
5384 2002-02-25 Paul Eggert <eggert@twinsun.com>
5386 * acl.c, acl.h: New files.
5387 * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
5389 2002-02-24 Jim Meyering <meyering@lucent.com>
5391 * strnlen.c (strnlen): Define-away/undef so that an inconsistent
5392 prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
5393 cause trouble. Reported by Nelson Beebe.
5395 2002-02-23 Paul Eggert <eggert@twinsun.com>
5397 * path-concat.c (xpath_concat): Reorder code to pacify
5398 compilers that don't know that xalloc_die never returns.
5400 2002-02-20 Jim Meyering <meyering@lucent.com>
5402 * getdate.c: Regenerate using bison-1.33.
5404 2002-02-15 Paul Eggert <eggert@twinsun.com>
5406 * posixver.c, posixver.h: New files.
5407 * Makefile.am (libfetish_a_SOURCES): Add them.
5409 2002-02-02 Paul Eggert <eggert@twinsun.com>
5410 Bruno Haible <bruno@clisp.org>
5412 * unicodeio.h (print_unicode_char): Add exit_on_error argument.
5413 (fwrite_success_callback): New declaration.
5414 * unicodeio.c (unicode_to_mb): New function, extracted from
5415 print_unicode_char. Call failure callback instead of error.
5416 (fwrite_success_callback): New function.
5417 (exit_failure_callback): New function.
5418 (fallback_failure_callback): New function.
5419 (print_unicode_char): Call unicode_to_mb.
5421 2002-01-26 Jim Meyering <meyering@lucent.com>
5423 * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
5425 2002-01-22 Jim Meyering <meyering@lucent.com>
5427 * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
5428 Otherwise, some versions of automake would omit the rule that makes
5429 Makefile from Makefile.in.
5431 2001-01-21 Paul Eggert <eggert@twinsun.com>
5433 * xmemcoll.h, xmemcoll.c: New files.
5434 * Makefile.am (libfetish_a_SOURCES): Add them.
5435 * memcoll.c: Include errno.h, and declare errno if not defined.
5436 (memcoll): Set errno to zero if there is no error.
5438 * quotearg.c (quotearg_buffer_restyled):
5439 Fix bug with quoting buffers containing NUL when backslashing escapes.
5440 This bug was exposed by the other changes in this patch.
5441 (quotearg_n_options): New arg ARGSIZE.
5442 All callers changed.
5443 (quoting_options_from_style): New function.
5444 (quotearg_n_style): Use it.
5445 (quotearg_n_style_mem): New function.
5447 * quotearg.h (quotearg_n_style_mem): New function.
5449 2002-01-16 Jim Meyering <meyering@lucent.com>
5451 * getdate.y: Add three semicolons, each just before a closing brace.
5452 Bison (as of version 1.31) no longer papers over that mistake.
5454 2002-02-14 Paul Eggert <eggert@twinsun.com>
5456 * backupfile.c (ISDIGIT): Comment fix.
5457 * getdate.y (ISDIGIT): Likewise.
5458 * posixtm.c (ISDIGIT, year): Likewise.
5459 * strverscmp.c (ISDIGIT): Likewise.
5460 * userspec.c (ISDIGIT): Likewise.
5462 2002-01-05 Jim Meyering <meyering@lucent.com>
5464 * version-etc.c (version_etc_copyright): Update copyright year.
5466 2001-01-19 Paul Eggert <eggert@twinsun.com>
5468 * closeout.c (close_stdout_status): If ferror (stdout), do
5469 not silently exit merely because the output buffer happens to
5470 have nothing pending.
5472 2001-12-18 Paul Eggert <eggert@twinsun.com>
5474 See the big note in ../ChangeLog.
5475 * human.c (suffixes): Prefer K to k for 1024.
5476 (generate_suffix_backwards): New function.
5477 (human_readable_inexact): Use it.
5478 * xstrtol.c (__xstrtol): If there is no number but there
5479 is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary.
5480 Accept 'K' as well as 'k'.
5482 2001-12-15 Jim Meyering <meyering@lucent.com>
5484 * regex.h (__restrict_arr): Update from libc.
5486 * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
5487 as `remote' if the name starts with `//'. Suggested by Michael Stone.
5490 2001-12-10 Jim Meyering <meyering@lucent.com>
5492 * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
5493 Instead, include "xalloc.h".
5494 (initbuffer): Don't cast xmalloc return value to char*.
5495 (readline): Reword comment.
5496 Don't cast xrealloc return value to char*
5499 2001-12-09 Jim Meyering <meyering@lucent.com>
5501 * modechange.c (mode_compile): Add cast to avoid pedantic warning about
5502 `signed and unsigned type in conditional expression'.
5503 * posixtm.c (posix_time_parse): Likewise.
5505 * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
5507 * readtokens.c (readtoken): Declare an index to be of type unsigned
5508 to avoid a pedantic warning.
5510 * getstr.c: Don't include assert.h.
5511 (getstr): Remove warning-evoking assertions.
5512 Return -1 if offset parameter is out of bounds.
5513 Change the type of a local from int to size_t.
5515 * strftime.c (my_strftime_localtime_r): Include this function
5516 definition in the `#if ! HAVE_TM_GMTOFF' block.
5518 * xgethostname.c: Remove declarations of xmalloc and xrealloc.
5519 Include xalloc.h instead.
5521 2001-12-02 Jim Meyering <meyering@lucent.com>
5523 * tempname.c: Don't declare getenv, thus reverting the change of
5524 2001-11-18. It's no longer necessary, now that stdlib.h is always
5527 * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
5528 __unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld.
5530 2001-11-30 Akim Demaille <akim@epita.fr>
5532 * xstrdup.c: Include xalloc.h, so that xstrdup is declared
5533 before being defined.
5535 2001-11-27 Paul Eggert <eggert@twinsun.com>
5537 * quotearg.h (quotearg_n, quotearg_n_style):
5538 First arg is int, not unsigned.
5539 * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
5540 (SIZE_MAX, UINT_MAX): New macros.
5541 (quotearg_n_options): Abort if N is negative.
5542 Avoid overflow check on hosts where size_t is 64 bits and int
5543 is 32 bits, as overflow is impossible there.
5544 Fix off-by-one typo that caused unnecessary reallocation.
5546 2001-11-27 Jim Meyering <meyering@lucent.com>
5548 * tempname.c: Merge with version from libc.
5549 * regex.c: Likewise.
5551 * tempname.c: Include stdlib.h unconditionally. On some old systems
5552 for which STDC_HEADERS is 0, it was not included, resulting in a
5553 warning about an integer-to-pointer conversion problem with getenv.
5554 Reported by Volker Borchert.
5556 2001-11-26 Jim Meyering <meyering@lucent.com>
5558 * gtod.h: Remove file.
5559 * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
5560 * gettimeofday.c: Don't include gtod.h.
5561 (GTOD_init): Remove function.
5562 (rpl_gettimeofday): Do its job here instead, rather than aborting.
5563 Suggestion from Volker Borchert.
5565 2001-11-23 Jim Meyering <meyering@lucent.com>
5567 * hash.h (struct hash_table): Don't define here. Merely declare it.
5568 * hash.c (struct hash_table): Define it here instead.
5570 2001-11-22 Jim Meyering <meyering@lucent.com>
5572 * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
5574 2001-11-18 Paul Eggert <eggert@twinsun.com>
5576 * tempname.c (TMP_MAX): Remove; no longer needed.
5577 (TEMPORARIES): New macro.
5578 (__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This
5579 removes an artificial limitation (e.g. HP-UX 10.20, where
5582 2001-11-18 Jim Meyering <meyering@lucent.com>
5584 * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
5587 * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
5588 files will be created before anything else.
5590 2001-11-17 Jim Meyering <meyering@lucent.com>
5592 * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
5593 that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
5594 rather than group writable. Patch by Juan F. Codagnone.
5596 * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
5597 Instead, include "xalloc.h".
5599 * mountlist.c: Include unlocked-io.h after all system headers.
5600 Remove explicit declarations of xmalloc, xrealloc,
5601 and xstrdup. Instead, include "xalloc.h".
5603 * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
5604 * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
5605 * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
5607 * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
5608 Reported by Padraig Brady.
5610 * mkstemp.c: #undef mkstemp.
5612 (rpl_mkstemp): Rename from mkstemp.
5615 2001-11-16 Jim Meyering <meyering@lucent.com>
5617 * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
5618 (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
5619 determine the amount of total physical memory, use pstat_getstatic.
5620 HPUX-11 doesn't define _SC_PHYS_PAGES.
5621 (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
5622 If sysconf couldn't be used to determine the amount of available
5623 physical memory, use both pstat_getstatic and pstat_getdynamic.
5624 Based on a patch from Bob Proulx.
5626 2001-11-05 Jim Meyering <meyering@lucent.com>
5628 * xstat.in (slash_aware_lstat): Correct a misleading comment.
5630 2001-11-03 Jim Meyering <meyering@lucent.com>
5632 * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
5633 in argmatch_to_argument call.
5635 * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
5638 * hash.c (hash_clear): Fix a bug that could lead to an infloop or
5639 e.g., a fault due to an attempt to free a NULL pointer.
5641 2001-11-01 Jim Meyering <meyering@lucent.com>
5643 * dirfd.c, dirfd.h: New files.
5644 * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
5646 * hash.c (hash_print) [TESTING]: Clean up.
5648 2001-10-22 Paul Eggert <eggert@twinsun.com>
5650 * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
5651 to avoid a warning if -Wall.
5653 2001-10-21 Paul Eggert <eggert@twinsun.com>
5655 * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
5657 2001-10-21 Jim Meyering <meyering@lucent.com>
5659 * obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
5660 this code would end up calling gettext even in packages built
5662 * getopt.c (_): Likewise.
5663 * regex.c (_): Likewise.
5665 2001-10-20 Paul Eggert <eggert@twinsun.com>
5667 * error.c (strerror_r): Do not declare unless !_LIBC.
5668 Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
5669 Use strerror_r that is only a macro, even if it is not a function.
5670 (strerror): Check for HAVE_DECL_STRERROR before declaring.
5671 (private_strerror): Use prototypes, not old-style function definition.
5672 (print_errno_message): New function.
5673 Support the POSIX 'int'-flavored strerror_r, as well as the traditional
5675 (error_tail, error, error_at_line): Use it.
5677 2001-10-11 Jim Meyering <meyering@lucent.com>
5679 * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
5680 and quote_n (1, ... to avoid clobbering a buffer.
5682 2001-10-05 Jim Meyering <meyering@lucent.com>
5684 * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
5685 * hash-pjw.c: New file (factored out of fileutils' remove.c).
5686 * hash-pjw.h: New file.
5688 2001-09-30 Jim Meyering <meyering@lucent.com>
5690 * mountlist.c [MOUNTED_GETFSSTAT]:
5691 Include <sys/ucred.h>, for Apple Darwin.
5692 Include sys/mount.h and sys/fs_types.h only if available.
5694 (read_filesystem_list): Use FS_TYPE.
5696 2001-09-29 Paul Eggert <eggert@twinsun.com>
5698 * exclude.c (excluded_filename): 0 -> false, since it's
5701 2001-09-28 Paul Eggert <eggert@twinsun.com>
5703 Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
5704 #defines strtoimax. Also treat the other strto* functions
5707 * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
5708 (strtoul): Do not declare if HAVE_DECL_STRTOUL.
5709 (strtoimax, strtoumax): Do not declare if already defined as a macro.
5711 2001-09-26 Jim Meyering <meyering@lucent.com>
5713 Most macros in unlocked-io.h had the wrong number of arguments.
5714 * gen-uio: New script.
5715 (USE_UNLOCKED_IO): Define to 1 if not already defined.
5716 * unlocked-io.hin: Remove file.
5717 * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
5718 rather than trying to embed it here.
5719 (EXTRA_DIST): Add gen-uio. Remove unlocked-io.hin
5720 Reported by Padraig Brady.
5722 2001-09-25 Volker Borchert <bt@teknon.de>
5724 * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
5726 2001-09-23 Jim Meyering <meyering@lucent.com>
5728 * mountlist.c: Remove useless parentheses in #if directives.
5729 (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
5730 the deprecated MOUNTED symbol is no longer defined in mntent.h.
5732 2001-09-22 Jim Meyering <meyering@lucent.com>
5734 * localcharset.c: Update from latest gettext.
5735 * config.charset: Likewise.
5737 2001-09-20 Jim Meyering <meyering@lucent.com>
5739 * xstrtol.c (strtoimax): Guard declaration with
5740 `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
5741 The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
5742 have their own, conflicting declaration of strtoimax in sys/inttypes.h.
5743 (strtoumax): Likewise, for completeness (it wasn't necessary).
5745 2001-09-06 Paul Eggert <eggert@twinsun.com>
5747 * strtoimax.c (HAVE_LONG_LONG):
5748 Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
5749 (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
5750 to work around bug in IBM C compiler.
5752 2001-09-16 Jim Meyering <meyering@lucent.com>
5754 * mkdir.c: New file.
5756 2001-09-04 Paul Eggert <eggert@twinsun.com>
5758 * xgetcwd.c: Revert some of the previous change; intead,
5759 fix the HAVE_GETCWD_NULL code to behave more like the
5760 !HAVE_GETCWD_NULL code used to.
5763 (xgetcwd): Do not return NULL when memory is exhausted; instead,
5766 2001-09-04 Paul Eggert <eggert@twinsun.com>
5768 * xreadlink.c (xreadlink): Omit size_t* arg. All uses changed.
5769 Use ssize_t, not int, to store result of readlink.
5770 Check for ssize_t overflow as well as size_t overflow,
5771 as POSIX says the result of readlink is implementation-defined
5772 when ssize_t overflows.
5773 Remove unnecessary cast to char*.
5774 Use free+malloc instead of realloc, as the storage doesn't need
5775 to be preserved and it's clearer and can be more efficient that way.
5776 (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
5777 * xreadlink.h (xreadlink): Update prototype.
5779 2001-09-03 Paul Eggert <eggert@twinsun.com>
5781 * exclude.c (fnmatch_no_wildcards): Fix confusion between
5782 usage of FNM_CASEFOLD and FNM_LEADING_DIR. The bug was
5783 spotted by Jim Meyering.
5785 2001-09-03 Jim Meyering <meyering@lucent.com>
5787 * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
5789 2001-09-03 Paul Eggert <eggert@twinsun.com>
5791 * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
5792 like the HAVE_GETCWD_NULL code.
5793 Include pathmax.h if not HAVE_GETCWD.
5794 Do not include xalloc.h.
5795 (INITIAL_BUFFER_SIZE): New symbol.
5796 Do not use xmalloc / xrealloc, since the caller is responsible for
5797 handling errors. Preserve errno around `free' during failure.
5798 Do not overrun buffer when using getwd.
5800 2001-09-03 Paul Eggert <eggert@twinsun.com>
5802 * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
5803 __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
5805 2001-09-02 Jim Meyering <meyering@lucent.com>
5807 * error.c: Update from GNU libc.
5809 2001-09-01 Jim Meyering <meyering@lucent.com>
5811 * xreadlink.c: New file.
5812 * xreadlink.h: New file.
5813 * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
5815 * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
5816 doesn't conflict with sparc Solaris 7's definition in
5817 /usr/include/sys/int_types.h.
5819 * exclude.c: Use `""', not `<>' to #include non-system header files.
5820 (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
5821 and strncasecmp as r-values. Unixware didn't have declarations.
5823 2001-08-31 Jim Meyering <meyering@lucent.com>
5825 * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
5826 Use an initial, malloc'd, buffer of length 128 rather than
5827 a statically allocated one of length 1024.
5829 2001-08-30 Paul Eggert <eggert@twinsun.com>
5831 * xgetcwd.c: Don't include pathmax.h.
5832 Include stdlib.h and unistd.h if available.
5834 (xmalloc, xstrdup, free): Remove decls.
5835 (xgetcwd): Don't assume sizes fit in unsigned.
5836 Check for overflow when computing sizes.
5837 Simplify reallocation code.
5839 2001-08-28 Paul Eggert <eggert@twinsun.com>
5841 * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
5843 * strtoimax.c: Renamed from strtoxmax.c, removing the
5846 Also, make the following further changes to make this file's
5847 configuration more similar to that of strtol.c:
5848 (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED. All uses changed.
5849 (strtoumax, uintmax_t, strtoull, strtol): Remove.
5850 (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
5851 (strtoimax): Renamed from strtoumax. All uses of unsigned values
5852 changed to signed values.
5854 And make the following changes as well:
5855 Fix copyright notice, as 1999 was missing.
5856 (verify): New macro.
5857 (strtoimax): Check sizes at compile-time, not run-time.
5858 Prefer strtol to strtoll if both work.
5859 (main): Remove; it was not that useful and was a pain to maintain.
5861 * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
5863 2001-08-30 Paul Eggert <eggert@twinsun.com>
5865 * savedir.c (savedir): Remove size parameter, as POSIX says that
5866 a directory's st_size can have an arbitrary value, so the old
5867 usage could waste an arbitrary amount of memory. All uses
5869 * savedir.h: Update prototype.
5871 2001-08-30 Paul Eggert <eggert@twinsun.com>
5873 * xstrtol.c (strtoimax): New decl.
5875 2001-08-28 Paul Eggert <eggert@twinsun.com>
5877 * xstrtol.h: Add copyright notice.
5878 (_DECLARE_XSTRTOL): Improve quality of diagnostic for
5879 LONGINT_INVALID_SUFFIX_CHAR.
5881 2001-08-30 Paul Eggert <eggert@twinsun.com>
5883 * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
5886 2001-08-30 Paul Eggert <eggert@twinsun.com>
5888 * hash.c: Remove '2001' from copyright notice.
5890 2001-08-30 Paul Eggert <eggert@twinsun.com>
5892 * full-write.h: New file.
5893 * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
5894 * full-write.c: Correct credits, as cccp.c no longer
5895 exists and anyway it was so heavily changed from the old cccp
5896 code as to be unrecognizable. Include full-write.h.
5897 (full_write) Return size_t, with short writes meaning failure.
5898 All callers changed. This fixes a bug with large buffers
5900 * utime.c: Include full-write.h.
5902 2001-08-30 Paul Eggert <eggert@twinsun.com>
5904 Merge 'exclude' changes from tar 1.13.22.
5905 This fixes one or two unlikely storage allocation overflow bugs,
5906 but doesn't change user-visible behavior otherwise.
5908 2001-08-30 Paul Eggert <eggert@twinsun.com>
5910 * exclude.c (bool): Declare, perhaps by including stdbool.h.
5911 (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
5912 (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
5913 Include if available.
5914 (<xalloc.h>): Include
5915 (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
5916 (verify): New macro. Use it to verify that EXCLUDE macros do not
5917 collide with FNM macros.
5918 (struct patopts): New struct.
5919 (struct exclude): Use it, as exclude patterns now come with options.
5920 (new_exclude): Support above changes.
5921 (new_exclude, add_exclude_file):
5922 Initial size must now be a power of two to simplify overflow checking.
5923 (free_exclude, fnmatch_no_wildcards): New function.
5924 (excluded_filename): No longer requires options arg, as the options
5925 are determined by add_exclude. Now returns bool, not int.
5926 (excluded_filename, add_exclude):
5927 Add support for the fancy new exclusion options.
5928 (add_exclude, add_exclude_file): Now takes int options arg.
5929 Check for arithmetic overflow when computing sizes.
5930 (add_exclude_file): xrealloc might modify errno, so don't
5931 realloc until after errno might be used.
5933 * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
5935 (free_exclude): New decl.
5936 (add_exclude, add_exclude_file): Now takes int options arg.
5937 (excluded_filename): No longer requires options arg, as the options
5938 are determined by add_exclude. Now returns bool, not int.
5940 2001-08-30 Paul Eggert <eggert@twinsun.com>
5942 * alloca.c (alloca): Arg is of type size_t, not unsigned.
5944 2001-08-27 Jim Meyering <meyering@lucent.com>
5946 * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
5948 * version-etc.c (N_): Remove definition.
5949 Revert most of last change.
5950 Instead, simply don't mark the `Copyright...' string for translation.
5951 Based on advice from Paul Eggert.
5953 * strtoxmax.c: Tweak comment.
5955 2001-08-26 Jim Meyering <meyering@lucent.com>
5957 * version-etc.c (version_etc_copyright_fmt): Replace literal year
5958 of copyright with `%s' so translators don't get an untranslated
5960 (COPYRIGHT_YEAR): Define.
5961 (version_etc): Use fprintf rather than fputs.
5962 Suggestion from Ulrich Drepper.
5964 * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
5966 * strtoll.c: New file, from GNU libc.
5967 * xstrtoimax.c: New file.
5969 * xstrtol.h: Add xstrtoimax.
5970 * strtoumax.c: New file. Simply include "strtoumax.c".
5971 * strtoimax.c: New file. Likewise, but first define STRTOUXMAX_SIGNED.
5973 * strtoumax.c: Factor to work both for unsigned and signed types, ...
5974 * strtoxmax.c: ... then renamed to this.
5976 2001-08-13 Paul Eggert <eggert@twinsun.com>
5978 * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
5979 Port to Solaris 8, where 'sed' requires a space after the 'r'
5980 command, and where sh dislikes "$/". Clean up the spacing a bit.
5981 Redirect output to $tmp just once.
5983 2001-08-12 Paul Eggert <eggert@sic.twinsun.com>
5985 * addext.c (<errno.h>): Include.
5986 (errno): Declare if not defined.
5987 (addext): Work correctly when pathconf returns -1 and leaves
5988 errno alone because there is no limit. Also, work even if
5989 pathconf returns a value greater than SIZE_MAX.
5991 2001-08-12 Jim Meyering <meyering@lucent.com>
5993 * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
5994 Simply `return getcwd (NULL, 0);'.
5995 [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
5996 Use 1300 as initial value for length, not PATH_MAX.
5998 * pathmax.h: Clean up cpp syntax.
6000 2001-08-12 Jim Meyering <meyering@lucent.com>
6002 * gettimeofday.c: New file.
6004 * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
6006 2001-08-04 Jim Meyering <meyering@lucent.com>
6008 * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
6009 to get in sync with glibc.
6011 2001-08-03 Paul Eggert <eggert@twinsun.com>
6013 The following changes are from gettext 0.10.39 as maintained by
6016 * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
6017 Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
6018 with inverted sense. All uses changed.
6020 * mbswidth.c: Don't include <limits.h>.
6021 Include <stdlib.h> and <string.h> unconditionally.
6022 (iswcntrl, mbsinit, ISCNTRL): New macros.
6023 (mbsnwidth): Use K&R style function declarations.
6024 Don't bother checking for MB_LEN_MAX == 1, since the compiler
6025 can optimize it when MB_CUR_MAX == 1.
6026 The width of control characters is zero, not 1.
6028 2001-07-15 Jim Meyering <meyering@lucent.com>
6030 * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
6031 (BUILT_SOURCES): Add unlocked-io.h.
6032 (io_functions): Define.
6033 (unlocked-io.h): New rule.
6034 (DISTCLEANFILES): Add unlocked-io.h.
6035 (all-local): Depend on unlocked-io.h, to ensure it is created.
6037 * unlocked-io.hin: New file
6039 * regex.c: Update from glibc.
6041 2001-07-05 Jim Meyering <meyering@lucent.com>
6043 * Makefile.am (noinst_HEADERS): Remove definition, per new automake
6045 (libfetish_a_SOURCES): Put all .h files here instead.
6046 Remove a thus-exposed (better checks in automake) duplicate and
6047 two unnecessary .h files.
6049 2001-06-11 Jim Meyering <meyering@lucent.com>
6051 * regex.c: Update from GNU libc.
6053 2001-05-27 Jim Meyering <meyering@lucent.com>
6055 * readutmp.h (UT_TYPE): Define.
6057 2001-05-24 Jim Meyering <meyering@lucent.com>
6059 * argmatch.c: Include "quote.h".
6060 (argmatch_invalid): Remove explicit `' quotes. Instead, use the
6061 quote function. Reported by Göran Uddeborg.
6063 2001-05-20 Alexandre Duret-Lutz <duret_g@epita.fr>
6065 * dirname.c (dir_name): Compute append_dot using path, not newpath
6066 which is not yet declared.
6068 2001-05-11 Paul Eggert <eggert@twinsun.com>
6070 * Makefile.am (libfetish_a_SOURCES):
6071 Add strftime.c, since we now compile it on all hosts.
6073 * strftime.c (my_strftime):
6074 Define to nstrftime if emacs, but only if my_strftime is not defined.
6075 (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
6076 ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
6077 Add one more extra argument: a nanoseconds value.
6080 (my_strftime function): Add %N format.
6081 (emacs_strftimeu): Renamed from emacs_strftime,
6082 with extra ut argument.
6084 2001-05-11 Paul Eggert <eggert@twinsun.com>
6086 dirname code cleanup. base_name now behaves more compatibly
6087 with POSIX basename when given file names that have trailing
6088 slashes, and similarly for dir_name. Add new primitives
6089 base_len and dir_len. Put the directory-name-related decls
6092 * addext.c (ISSLASH, base_name): Remove; now in dirname.h.
6093 * backupfile.c (base_name): Likewise.
6094 * basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
6095 * dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
6096 * makepath.c (strip_trailing_slashes): Likewise.
6097 * path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH):
6099 * rename.c (strip_trailing_slashes): Likewise.
6100 * same.c (base_name): Likewise.
6101 * stripslash.c (ISSLASH): Likewise.
6103 * addext.c: Include <dirname.h> after size_t is defined.
6104 * backupfile.c: Likewise.
6106 * addext.c (addext): Use base_len to trim redundant
6107 trailing slashes instead of doing it ourselves.
6108 But do not trim the last slash if it is not redundant.
6110 * backupfile.c (find_backup_file_name,
6111 max_backup_version): Use base_len instead of rolling it ourselves.
6112 Handle the case of "" and (on DOS) "C:" correctly.
6114 * basename.c: Do not include <stdio.h>, <assert.h>; no longer needed.
6115 Include <string.h>, <dirname.h>.
6116 (base_name): Allow file names ending in slashes, other than names
6117 that are all slashes. In this case, return the basename followed
6118 by the slashes. This is more general, and can be used in places
6119 where the original base_name purposely had an assertion failure.
6120 (base_len): New function.
6122 * dirname.c: Include <string.h> instead of <stdlib.h>.
6123 Do not include <assert.h>; no longer needed.
6125 (memrchr): Remove decl.
6126 (dir_name_r): Remove.
6127 (dir_len): Renamed from dirlen. All callers changed.
6128 Rewrite in terms of base_name, for simplicity and consistency.
6129 (dir_name): Never return NULL. All callers changed.
6130 Do not include <stdlib.h> in test program; no longer needed.
6131 return 0; is fine for test program.
6133 * dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
6135 (base_name, base_len, dir_len, strip_trailing_slashes): New decls.
6137 * path-concat.c (path_concat): Use base_len to compute
6138 base length, not strlen; this means we cannot rely on memcpy
6141 * same.c (STREQ): Remove.
6142 (same_name): Handle the case where the basename ends in trailing '/'.
6144 * stripslash.c (strip_trailing_slashes): Return nonzero if
6145 a slash was stripped. Do not strip the last slash after a
6148 2001-04-08 Jim Meyering <meyering@lucent.com>
6150 * getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
6151 recomputed; that's necessary when the offset spans a DST transition.
6152 Patch by David J. MacKenzie. Reported by Hon-Yin Kok.
6154 2001-04-02 Jim Meyering <meyering@lucent.com>
6156 * regex.h, regex.c: Update from GNU libc.
6158 2001-03-19 Paul Eggert <eggert@twinsun.com>
6160 * version-etc.c (version_etc_copyright): Update to 2001.
6162 2001-03-16 Paul Eggert <eggert@twinsun.com>
6164 * tempname.c (uint64_t): Define to uintmax_t if
6165 not defined, and if UINT64_MAX is not defined.
6166 Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
6167 Reported by John David Anglin.
6169 2001-03-10 Bruno Haible <haible@clisp.cons.org>
6171 * localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
6172 alias if codeset is empty.
6173 * config.charset (BeOS): Use wildcard syntax.
6175 2001-03-13 Jim Meyering <meyering@lucent.com>
6177 * path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
6178 Don't insert a backslash when concatenating e.g., `C:' and `foo'.
6181 2001-03-06 Bruno Haible <haible@clisp.cons.org>
6183 * localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).
6185 * unicodeio.c (print_unicode_char): Simplify accordingly.
6187 2001-03-06 Bruno Haible <haible@clisp.cons.org>
6189 * config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
6190 support for DOS/DJGPP.
6192 2001-02-28 Paul Eggert <eggert@twinsun.com>
6194 * Makefile.am (libfetish_a_SOURCES):
6195 Add dup-safer.c, fopen-safer.c.
6196 (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
6198 * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
6200 2001-02-25 Paul Eggert <eggert@twinsun.com>
6202 The mkstemp replacement is taken from glibc 2.2.2, with some
6203 portability fixes for use outside glibc, as follows:
6205 * tempname.c (struct_stat64): New macro.
6206 (direxists, __gen_tempname): Use it.
6207 This avoids a portability problem with Solaris 8.
6209 * tempname.c (<config.h>): Include if HAVE_CONFIG_H.
6210 (<stddef.h>, <stdint.h>, <string.h>):
6211 Include only if STDC_HEADERS || _LIBC.
6212 (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
6213 (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
6214 (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
6215 (__set_errno): Define this macro if <errno.h> doesn't.
6216 (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
6217 Define these macros if <stdio.h> doesn't.
6218 (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
6219 Define these macros if <sys/stat.h>
6220 doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
6221 (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
6222 __xstat64): Define if not _LIBC.
6223 (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
6224 (__gen_tempname): Invoke gettimeofday only if
6225 HAVE_GETTIMEOFDAY || _LIBC;
6226 otherwise, fall back on plain "time".
6227 Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
6229 * mkstemp.c (__GT_FILE): Define to zero if not defined.
6231 * mkstemp.c, tempname.c: New files, taken from glibc 2.2.2.
6233 2001-02-17 Jim Meyering <meyering@lucent.com>
6235 * strtoul.c: Sync from GNU libc. Use double quotes, not <...>
6236 around included file name.
6238 * strnlen.c (__strnlen): Merge in a change from GNU libc.
6240 * strftime.c: Update from GNU libc (the only changes were to comments).
6242 2001-02-13 Bruno Haible <haible@clisp.cons.org>
6244 * mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash.
6246 2001-02-17 Paul Eggert <eggert@twinsun.com>
6248 * mbswidth.c, quotearg.c (mbrtowc, mbsinit):
6249 Remove workaround macros for hosts that have mbrtowc but not
6250 mbstate_t, as we now insist on proper declarations for both
6251 before using mbrtowc.
6253 2001-02-17 Jim Meyering <meyering@lucent.com>
6255 * regex.c: Update from libc.
6257 2001-02-16 Paul Eggert <eggert@twinsun.com>
6259 * alloca.c (malloc): Undef before defining, since stdlib.h
6260 may have defined it. Needed for Encore Umax-3.0.9.16b systems.
6261 Reported by Mark Hounschell via Paul Eggert.
6263 2001-01-30 Bruno Haible <haible@clisp.cons.org>
6265 * config.charset: Update for FreeBSD 4.2.
6267 2001-01-26 Jim Meyering <meyering@lucent.com>
6269 * quotearg.c: Include stddef.h.
6270 * quote.c: Include stddef.h.
6271 Reported by Axel Kittenberger.
6273 * xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
6274 line in double quotes so that it evokes a better diagnostic.
6275 [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
6276 Reported by Axel Kittenberger.
6278 2001-01-15 Bruno Haible <haible@clisp.cons.org>
6280 * unicodeio.c (print_unicode_char): Cast the second iconv() arg,
6281 to avoid a warning. Add back 'const' to inptr.
6283 2001-01-16 Jim Meyering <meyering@lucent.com>
6285 * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
6288 2001-01-14 Jim Meyering <meyering@lucent.com>
6290 * rename.c: New file. From Volker Borchert.
6291 Include stdlib.h, string.h or strings.h, and xalloc.h.
6292 Use strip_trailing_slashes rather than open-coding it.
6294 2001-01-03 Paul Eggert <eggert@twinsun.com>
6296 * strftime.c: Sync with glibc time/strftime.c 1.81.
6298 2001-01-03 Jim Meyering <meyering@lucent.com>
6300 * unicodeio.c (print_unicode_char): Remove `const' from declaration of
6301 local `inptr' to avoid warning with some system declarations of iconv.
6303 2000-12-29 Paul Eggert <eggert@twinsun.com>
6305 * modechange.c: Do not assume that mode_t uses the
6306 traditional octal encoding. E.g. "chmod 1 FOO" should set
6307 the other-execute bit of FOO even if S_IXOTH != 1.
6309 (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
6310 WOTH, XOTH, ALLM): New macros.
6311 (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
6312 S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
6314 (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
6315 (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
6317 No need to use uintmax_t; unsigned long is long enough.
6318 Don't bother to get suffix since we don't use it.
6320 2000-12-24 Jim Meyering <meyering@lucent.com>
6322 * hash.c (is_prime): Return explicit boolean values.
6323 (hash_get_first): Return NULL to appease Irix5.6's 89.
6324 Reported by Nelson Beebe.
6326 2000-10-31 Bruno Haible <haible@clisp.cons.org>
6328 * localcharset.c (locale_charset): Add support for Win32.
6330 2000-12-18 Paul Eggert <eggert@twinsun.com>
6332 * physmem.h, physmem.c: New files.
6334 * Makefile.am (libfetish_a_SOURCES): Add physmem.c.
6335 (noinst_HEADERS): Add physmem.h.
6337 * xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
6338 't' for compatibility with Solaris 8 sort.
6340 2000-12-18 Bruno Haible <haible@clisp.cons.org>
6342 * config.charset: Add support for BeOS.
6344 2000-12-16 Jim Meyering <meyering@lucent.com>
6346 * getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
6347 SHELLS_FILE to a file name that's useful on djgpp systems.
6349 (ADDITIONAL_DEFAULT_SHELLS): Define.
6350 (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
6351 Based mostly on a patch from Prashant TR.
6353 2000-12-16 Jim Meyering <meyering@lucent.com>
6355 This bug had a serious impact on chown: `chown N:M FILE' (for integer
6356 N and M) would have treated it like `chown N:N FILE'.
6358 * userspec.c (parse_user_spec): Fix typo: s/u/g/.
6360 2000-10-31 Bruno Haible <haible@clisp.cons.org>
6362 * config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
6363 CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
6364 to the list of canonical encodings. Rename EUC-CN to GB2312.
6366 2000-12-08 Andreas Schwab <schwab@suse.de>
6368 * mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
6369 invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
6371 2000-12-07 Jim Meyering <meyering@lucent.com>
6373 * stripslash.c (ISSLASH): Define.
6374 (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
6377 * dirname.c (FILESYSTEM_PREFIX_LEN): Define.
6378 (dir_name_r): Declare this function as static.
6379 [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
6380 manifest itself on a name containing a mix of slashes and
6382 Make this function work with names starting with a DOS-style
6383 drive letter and colon prefix.
6384 (dir_name): Append `.' if necessary.
6385 Based mostly on patches from Prashant TR and Eli Zaretskii.
6387 * dirname.h (dir_name_r): Remove prototype.
6389 2000-12-05 Jim Meyering <meyering@lucent.com>
6391 * dirname.c (dir_name_r): Add `const' in a few local declarations.
6393 2000-12-04 Jim Meyering <meyering@lucent.com>
6395 * path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
6396 Also include memory.h, stdlib.h, unistd.h if appropriate.
6397 Reported by Andreas Jaeger (conflicting declaration of malloc).
6399 2000-12-02 Jim Meyering <meyering@lucent.com>
6401 * closeout.h: Make idempotent, to avoid some obscure warnings.
6403 2000-12-01 Paul Eggert <eggert@twinsun.com>
6405 * memrchr.c: Include <config.h> before any system include file.
6407 2000-11-29 Paul Eggert <eggert@twinsun.com>
6409 * dirname.c (dir_name_r): Fix typo: int -> size_t.
6411 2000-11-26 Jim Meyering <meyering@lucent.com>
6413 * memcoll.c: Include sys/types.h. From Werner Almesberger.
6415 2000-11-22 Paul Eggert <eggert@twinsun.com>
6417 * strftime.c (my_strftime): Do not invoke mbrlen with a
6418 size of (size_t) -1; it's not portable.
6420 2000-11-17 Akim Demaille <akim@epita.fr>
6422 * obstack.h: Formatting changes.
6423 (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
6424 prevent type checking.
6425 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
6426 cast the value to (void *): assigning a `foo *' to a `void *'
6428 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
6430 2000-11-17 Jim Meyering <meyering@lucent.com>
6432 * strstr.c: Update from GNU libc.
6434 2000-11-16 Jim Meyering <meyering@lucent.com>
6436 * strverscmp.c: Incorporate weak-alias-related changes from glibc.
6438 2000-11-11 Jim Meyering <meyering@lucent.com>
6440 * error.c: Add a couple #includes, merging from GNU libc version.
6442 2000-11-10 Jim Meyering <meyering@lucent.com>
6444 * obstack.h: Update from GNU libc.
6445 * obstack.c: Likewise.
6447 2000-11-06 Paul Eggert <eggert@twinsun.com>
6449 * getusershell.c (setusershell): Use rewind rather than
6450 fseek/fseeko, to avoid configuration hassles with fseeko.
6451 Don't bother opening SHELLS_FILE if shellstream is NULL;
6454 2000-11-05 Jim Meyering <meyering@lucent.com>
6456 * makepath.h (make_dir): Declare.
6457 * makepath.c (make_dir): Remove `static' attribute.
6460 2000-11-04 Alexandre Duret-Lutz <duret_g@epita.fr>
6462 * hash.c (hash_get_next): Fix a thinko: when ENTRY is the
6463 last one in a bucket, advance to the next bucket.
6465 2000-11-02 Vesselin Atanasov <vesselin@bgnet.bg>
6467 * fnmatch.c: Do not comment out all the code if we are using
6468 the GNU C library, because in some cases we are replacing buggy
6469 code in the GNU C library itself.
6471 2000-10-30 Paul Eggert <eggert@twinsun.com>
6473 * error.h, getline.h, modechange.h:
6474 Remove "2000" from Copyright line, as the file hasn't been
6475 changed this year other than in the copyright notice.
6477 * xalloc.h: Add "2000" to Copyright line, as this file
6478 was changed this year.
6480 2000-10-30 Paul Eggert <eggert@twinsun.com>
6482 * fnmatch.c (FOLD): Do not assume that characters are unsigned.
6483 (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
6484 e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
6486 2000-10-29 Greg Louis <glouis@dynamicro.on.ca>
6488 * regex.h (__restrict_arr): Move definition out of #ifndef block.
6489 Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
6490 doesn't define __restrict_arr.
6492 2000-10-29 Jim Meyering <meyering@lucent.com>
6494 * xstat.in: Fix grammar in comment.
6496 2000-10-28 Jim Meyering <meyering@lucent.com>
6498 * memchr.c: Update from libc.
6499 Adjust for portability:
6500 [HAVE_STDLIB_H]: Include stdlib.h.
6501 [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
6502 Undef __memchr, too.
6503 [!weak_alias]: Define __memchr to memchr.
6505 * regex.c: Update from libc.
6506 * regex.h: Likewise.
6507 * getopt1.c: Likewise.
6508 * memcmp.c: Likewise.
6510 * getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
6511 Avoid using fseek, when possible -- it's broken by design.
6512 Patch by Ulrich Drepper.
6514 2000-10-26 Jim Meyering <meyering@lucent.com>
6516 * strftime.c: Update from libc.
6518 2000-10-25 Jim Meyering <meyering@lucent.com>
6520 * obstack.c: Update from libc.
6522 2000-10-23 Jim Meyering <meyering@lucent.com>
6524 * hard-locale.c (hard_locale): Revert last change -- it was simply
6525 wrong. That set_locale call must not have any side effects.
6528 2000-10-22 Jim Meyering <meyering@lucent.com>
6530 * md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
6531 [CYCLIC]: Remove now-unused definition.
6533 * save-cwd.c (O_DIRECTORY): Define, if needed.
6534 (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
6535 Suggestion from Ulrich Drepper.
6537 2000-10-21 Jim Meyering <meyering@lucent.com>
6539 * dirname.c (dir_name_r): New function, factored out of dir_name.
6540 (dir_name): Use dir_name_r.
6541 * dirname.h (dir_name_r): Declare it.
6543 2000-10-21 Jim Meyering <meyering@lucent.com>
6545 * dirname.c (memrchr): Declare if necessary.
6546 (dir_name): Remove the restriction that there be no
6547 trailing slashes. Now, this code skips past them, effectively
6549 [TEST_DIRNAME] (main): New unit tests.
6551 * memrchr.c: New file from GNU libc.
6552 Undef __memrchr, too.
6553 [!weak_alias]: Define __memrchr to memrchr.
6554 Guard weak_alias use with `#ifdef weak_alias'.
6556 2000-10-17 Jim Meyering <meyering@lucent.com>
6558 * quote.h (PARAMS): Define and use.
6559 Reported by Akim Demaille.
6561 * getopt.c: Update from libc.
6563 2000-10-16 Jim Meyering <meyering@lucent.com>
6565 * hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale.
6568 2000-09-25 Jim Meyering <meyering@lucent.com>
6570 * md5.h (rol): Define (from GnuPG).
6572 * sha.c: Give credit (GnuPG) where due.
6573 (M): Use rol rather than open-coding it.
6574 Add a FIXME comment.
6576 2000-09-21 Jim Meyering <meyering@lucent.com>
6578 * userspec.c (parse_user_spec): Remove debugging printf I'd added.
6579 Reported by Michael Stone.
6581 2000-09-20 Jim Meyering <meyering@lucent.com>
6583 * Makefile.am (libfetish_a_SOURCES): Add sha.c.
6584 (noinst_HEADERS): Add sha.h.
6585 Based on code from Scott G. Miller and from GnuPG.
6587 2000-09-15 Jim Meyering <meyering@lucent.com>
6589 * regex.c: Update from libc.
6591 2000-09-10 Jim Meyering <meyering@lucent.com>
6593 * getopt.c (_getopt_internal): Update from glibc.
6595 2000-09-09 Jim Meyering <meyering@lucent.com>
6597 * quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
6598 think it should be used as a general replacement for isascii.
6599 * fnmatch.c: Likewise.
6600 * mbswidth.c: Likewise
6601 * regex.c: Likewise.
6604 * userspec.c: Include sys/param.h and limits.h.
6606 (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
6607 (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
6608 (parse_user_spec): Use xstrtoul, not atoi when converting numeric
6609 UID, GID. Check range.
6611 2000-09-06 Jim Meyering <meyering@lucent.com>
6613 * getopt.c (_getopt_internal): Update from glibc.
6615 2000-08-30 Jim Meyering <meyering@lucent.com>
6617 * strftime.c: Merge in changes from GNU libc.
6619 2000-08-26 Jim Meyering <meyering@lucent.com>
6621 * closeout.c: Include "__fpending.h".
6622 (close_stdout_status): Return right away if there's nothing to flush.
6624 * Makefile.am (noinst_HEADERS): Add __fpending.h.
6625 * __fpending.c: New file.
6626 * __fpending.h: New file.
6628 2000-08-07 Paul Eggert <eggert@twinsun.com>
6630 Standardize on "memory exhausted" instead of "Memory exhausted"
6631 or "virtual memory exhausted".
6632 * obstack.c (print_and_abort): Use "memory exhausted", not
6633 "virtual memory exhausted".
6634 * same.c (same_name): Invoke xalloc_die instead of printing
6636 * userspec.c (parse_user_spec): Likewise.
6637 * bumpalloc.h: comment fix
6638 * same.c, userspec.c: Include xalloc.h.
6640 * xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
6641 not char *const and pointing to a constant array.
6642 * xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
6643 (xrealloc): Comment fix.
6645 * userspec.c (parse_user_spec):
6646 Don't translate a message until just before returning,
6647 to avoid unnecessary translation.
6649 2000-08-07 Jim Meyering <meyering@lucent.com>
6651 * addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
6652 chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
6653 fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
6654 getgroups.c, gethostname.c, getopt.h, group-member.c,
6655 hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
6656 linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
6657 memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
6658 pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
6659 stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
6660 strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
6661 utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
6662 yesno.c: Back out Copyright date changes for each file with no change
6663 this year. This eases coordination with other programs using the same
6664 source code modules. From Paul Eggert.
6666 2000-08-03 Greg McGary <greg@mcgary.org>
6668 * regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
6669 ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
6670 (EXTEND_BUFFER): Use them.
6672 2000-08-01 Jim Meyering <meyering@lucent.com>
6674 * dirname.c (ISSLASH): Define.
6675 (BACKSLASH_IS_PATH_SEPARATOR): Define.
6676 (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
6677 both `\' and `/' may be use as path separators.
6678 Based on a patch from Prashant TR.
6680 2000-07-31 Paul Eggert <eggert@twinsun.com>
6682 * quotearg.c (quotearg_n_options): Don't make the initial
6683 slot vector a constant, since it might get modified.
6685 2000-07-31 Jim Meyering <meyering@lucent.com>
6687 * xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'.
6688 * obstack.c (print_and_abort): Likewise.
6690 2000-07-30 Paul Eggert <eggert@twinsun.com>
6692 * quotearg.c (quotearg_n_options): Preallocate a slot 0
6693 buffer, so that the caller can always quote one small
6694 component of a "memory exhausted" message in slot 0.
6695 From a suggestion by Jim Meyering.
6697 2000-07-30 Jim Meyering <meyering@lucent.com>
6699 * makepath.c (make_path): Quote the other instance, too.
6701 * quotearg.c (N_STATIC_SLOTVECS): Define.
6702 (STATIC_BUF_SIZE): Define.
6703 (quotearg_n_options): Use only statically allocated storage when
6704 N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
6705 than STATIC_BUF_SIZE.
6707 2000-07-29 Jim Meyering <meyering@lucent.com>
6709 * diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
6710 * dirname.c (dir_name): Likewise.
6712 * basename.c (base_name): Use ISSLASH rather than comparing against `/'.
6714 * dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
6715 (dir_name): Assert that there are no trailing slashes.
6717 2000-07-18 Bruno Haible <haible@clisp.cons.org>
6719 * mbswidth.h (mbswidth): Add a flags argument.
6720 (mbswidth): New declaration.
6721 (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
6722 * mbswidth.c (mbswidth): Add a flags argument.
6723 (mbsnwidth): New function.
6725 2000-07-24 Jim Meyering <meyering@lucent.com>
6727 * mbswidth.c: Remove useless #else. From Bruno Haible.
6729 2000-07-23 Paul Eggert <eggert@twinsun.com>
6731 * mbswidth.c (_XOPEN_SOURCE):
6732 Don't define; this causes problems on Solaris 7.
6733 (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
6735 2000-07-23 Paul Eggert <eggert@twinsun.com>
6738 Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
6739 so that mbstate_t is always defined.
6741 Do not inspect MB_LEN_MAX, since it's incorrectly defined to
6742 be 1 in at least one GCC installation, and this configuration
6743 error is likely to be common. Ignoring MB_LEN_MAX hurts
6744 performance on hosts that have mbrtowc but have only unibyte
6745 locales, but I assume these hosts are rare.
6747 2000-07-23 Paul Eggert <eggert@twinsun.com>
6749 * quotearg.c: Streamline by invoking multibyte code only if needed.
6750 <wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
6751 (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
6752 (quotearg_buffer_restyled): If a unibyte locale, don't bother to
6753 invoke multibyte primitives.
6755 2000-07-23 Jim Meyering <meyering@lucent.com>
6757 * basename.c (base_name): Add an assertion.
6759 2000-07-15 Bruno Haible <clisp.cons.org>
6761 * quotearg.c: When the system forces us to redefine mbstate_t,
6762 shadow its mbsinit function.
6764 2000-07-16 Bruno Haible <haible@clisp.cons.org>
6766 * mbswidth.h: New file.
6767 * mbswidth.c: New file.
6768 * Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
6769 (noinst_HEADERS): Add mbswidth.h.
6771 2000-07-17 Bruno Haible <haible@clisp.cons.org>
6773 * config.charset: Add support for FreeBSD. Improve support for HP-UX
6776 2000-07-15 Jim Meyering <meyering@lucent.com>
6778 * makepath.c: Include quote.h.
6779 (make_path): Convert "`%s'" in format strings to "%s", and wrap each
6780 corresponding argument in a `quote (...)' call.
6781 Give better diagnostics.
6783 * Makefile.am (libfetish_a_SOURCES): Add quote.c.
6784 (noinst_HEADERS): Add quote.h.
6786 * quote.c (quote, quote_n): New file. Two functions taken verbatim
6787 from tar's src/misc.c.
6788 * quote.h: New file. Prototypes for same.
6790 2000-07-10 Paul Eggert <eggert@twinsun.com>
6792 From a suggestion by Bruno Haible.
6793 * quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
6794 Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
6795 to decide whether to define the BeOS workaround macro;
6796 this adjusts to the change to AC_MBSTATE_T.
6798 2000-07-13 Paul Eggert <eggert@twinsun.com>
6800 * quotearg.h (enum quoting style): New enum clocale_quoting_style.
6802 * quotearg.c (quoting_style_args, quoting_style_vals,
6803 quotearg_buffer_restyled): Add support for
6804 clocale_quoting_style. Undo previous change to
6805 locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
6806 and "{RIGHT QUOTATION MARK}" msgids.
6808 2000-07-05 Paul Eggert <eggert@twinsun.com>
6810 The old behavior of quoting `like this' doesn't look good with
6811 newer, ISO-style fonts. See:
6812 http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
6814 Instead, quote "like this" by default. Let the translator
6815 tailor the locale-specific quoting behavior by providing
6816 translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
6818 * quotearg.c (N_): New macro.
6819 (gettext_default): New function.
6820 (quotearg_buffer_restyled): Use
6821 gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
6822 gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
6824 2000-07-09 Jim Meyering <meyering@lucent.com>
6826 * Most files: Update copyright dates to include 2000.
6828 2000-07-08 Jim Meyering <meyering@lucent.com>
6830 * xgethostname.c (ENAMETOOLONG): Define to an unlikely value
6832 (xgethostname): Remove now-unnecessary #ifdef.
6833 Move declaration of `err' into loop where it's used.
6835 2000-07-05 Bruno Haible <haible@clisp.cons.org>
6837 * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
6838 by allocating a larger buffer. Test the gethostname return value for
6839 being >= 0, not == 0, for BeOS. Don't exhaust memory if gethostname
6840 returns an error and ENAMETOOLONG isn't defined.
6842 2000-07-05 Paul Eggert <eggert@twinsun.com>
6843 and Bruno Haible <haible@clisp.cons.org>
6845 * quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
6847 2000-07-05 Bruno Haible <haible@clisp.cons.org>
6849 * quotearg.c (struct quoting_options): Simplify quote_these_too
6852 2000-07-03 Jim Meyering <meyering@lucent.com>
6854 * strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
6855 Reported by Bruno Haible.
6857 2000-07-04 Jim Meyering <meyering@lucent.com>
6859 * quotearg.c: Make inclusion of <wchar.h> independent of whether
6860 HAVE_MBRTOWC is set. Required at least for irix-5.6, which
6863 2000-07-03 Paul Eggert <eggert@twinsun.com>
6864 and Bruno Haible <haible@clisp.cons.org>
6866 * quotearg.c (mbrtowc):
6867 Assign to *pwc, and return 1 only if result is nonzero.
6868 (iswprint): Use ISPRINT when substituting our own mbrtowc.
6870 2000-07-03 Jim Meyering <meyering@lucent.com>
6872 * readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
6873 This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
6876 2000-07-02 Jim Meyering <meyering@lucent.com>
6878 * quotearg.c (mbstate_t): Don't define here.
6880 2000-07-02 Jim Meyering <meyering@lucent.com>
6882 * nanosleep.c (SIGCONT): Define if not already defined.
6884 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6886 * mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
6887 per change in ../m4/ls-mntd-fs.m4.
6888 (read_filesystem_list): Ignore symbolic links.
6890 2000-06-29 Jim Meyering <meyering@lucent.com>
6892 * same.c: Include <string.h> or <strings.h>, as appropriate,
6893 for declaration of strcmp.
6895 * long-options.c: Include <stdlib.h>, for declaration of exit.
6897 * mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
6898 Avoid warning by casting result to `char *' to remove `const'.
6900 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6902 * Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
6904 2000-06-26 Paul Eggert <eggert@twinsun.com>
6906 savedir now sets errno on failure and invokes xmalloc to get memory.
6907 Fix a couple of other minor bugs while we're at it.
6909 * savedir.c (<unistd.h>): Do not include; there's no need.
6910 (NAMLEN): Remove macro.
6911 (malloc, realloc): Remove decls.
6913 ("xalloc.h"): Include.
6914 (NAME_SIZE_DEFAULT): New macro.
6915 (savedir): Use xmalloc / xrealloc to allocate memory.
6916 Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
6917 Skip "" directory entries.
6918 Use strlen to calculate directory entry length, since the old method
6919 is rarely used these days and isn't worth supporting.
6920 Don't use a pointer after freeing it.
6921 Check for integer overflow when calculating allocation size.
6922 Use memcpy to copy entries, instead of stpcpy.
6923 Set errno properly when returning NULL.
6924 Check for readdir error.
6926 2000-06-26 Jim Meyering <meyering@lucent.com>
6928 * posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
6930 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6932 * getusershell.c (xmalloc, xrealloc): Remove functions.
6934 Don't include <stdlib.h>. Don't declare malloc, realloc.
6936 2000-06-23 Bruno Haible <haible@clisp.cons.org>
6938 * unicodeio.c (print_unicode_char): Work around ansi2knr deficiency.
6940 2000-06-24 Jim Meyering <meyering@lucent.com>
6942 * error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
6944 2000-06-21 Jim Meyering <meyering@lucent.com>
6946 * getpass.c: New file, from Bruno Haible. Required for BeOS.
6948 2000-06-19 Paul Eggert <eggert@twinsun.com>
6950 * quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
6951 (mbrtowc, mbstate_t): Define substitutes if
6952 HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
6953 (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
6954 not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
6956 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6958 * xgetcwd.c (xgetcwd): If the required pathname length is smaller
6959 than 1024, return a memory chunk of least possible size, instead
6960 of size PATH_MAX + 2. In the loop, increment the size proportionally.
6961 Use free/xmalloc instead of xrealloc to avoid copying for very long
6964 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6966 * canon-host.c (canon_host): Use malloc and memcpy to copy an
6967 address, not strdup. Include <stdlib.h> and don't declare free().
6969 2000-06-17 Bruno Haible <haible@clisp.cons.org>
6971 * path-concat.c (path_concat): Don't access dir[-1] if dir is
6974 2000-06-21 Jim Meyering <meyering@lucent.com>
6976 * Makefile.am (libfetish_a_SOURCES): Add getstr.c.
6977 (noinst_HEADERS): Add getstr.h.
6979 * getline.c (getstr): Move into a separate file.
6980 * getstr.c (getstr): New file, extracted from getline.c, with
6981 the following changes: new parameter, delim2; both delim[12]
6982 parameters have type `int', not `char'. The latter would lose
6983 with 8-bit delimiters.
6984 * getstr.h: New file.
6986 2000-06-19 Jim Meyering <meyering@lucent.com>
6988 * getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
6990 2000-06-18 Jim Meyering <meyering@lucent.com>
6992 * mkdir.c: Remove file, due mainly to copyright incompatibility.
6993 Besides, these days every porting target provides a mkdir function.
6995 * strnlen.c: Include memory.h, string.h, and/or strings.h as needed.
6996 (this snippet comes from src/system.h).
6998 2000-06-15 Paul Eggert <eggert@twinsun.com>
7000 * human.c (adjust_value): New function.
7001 (human_readable_inexact): Apply rounding style even when
7002 printing approximate values.
7004 2000-06-14 Paul Eggert <eggert@twinsun.com>
7006 * human.c (human_readable_inexact): Allow an input block
7007 size that is not a multiple of the output block size, and vice versa.
7008 Reported by Piergiorgio Sartor.
7010 2000-06-14 Paul Eggert <eggert@twinsun.com>
7012 * getdate.y (get_date): Apply relative times after time
7013 zone indicator, not before. Reported by Todd A. Jacobs.
7015 2000-06-13 Jim Meyering <meyering@lucent.com>
7017 * Makefile.am (all-local): Depend on lstat.c and stat.c.
7019 * xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
7021 2000-06-12 Paul Eggert <eggert@twinsun.com>
7023 * xstat.in: Include <stdlib.h> in lstat, to declare "free".
7025 2000-06-04 Paul Eggert <eggert@twinsun.com>
7027 * strnlen.c: Include <config.h> if HAVE_CONFIG_H.
7029 2000-06-04 Jim Meyering <meyering@lucent.com>
7031 * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
7032 SunOS 4.1.4 for which gid_t is an unsigned type.
7034 2000-06-03 Jim Meyering <meyering@lucent.com>
7036 * strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
7038 2000-05-26 Bruno Haible <haible@clisp.cons.org>
7040 * Makefile.am (install-exec-local): On systems with glibc-2.1 or
7041 newer, don't install charset.alias.
7042 * config.charset: Change the Linux/glibc rules so they become empty
7043 on glibc-2.1 or newer.
7045 2000-06-02 Jim Meyering <meyering@lucent.com>
7047 * mountlist.c: Back out last change. Instead, do this...
7048 * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
7049 member using the same `ignore'-testing code.
7050 * mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
7054 2000-05-29 Jim Meyering <meyering@lucent.com>
7056 * mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
7057 with the `ignore' attribute. Based on a patch from Mark D. Roth.
7059 2000-05-22 Jim Meyering <meyering@lucent.com>
7061 * makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
7063 2000-05-18 Jim Meyering <meyering@lucent.com>
7065 * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
7066 back, too, since it may have been modified by allocate_entry.
7067 (hash_delete): Rewrite to use neither the assignment operator
7068 nor the comma operator in an if-expression.
7070 2000-05-15 Paul Eggert <eggert@twinsun.com>
7073 <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
7074 Remove; no longer needed.
7075 "quotearg.h": Add include.
7076 (file_name): Do not bother to explicitly initialize to NULL; it's less
7077 efficient on some hosts.
7078 (close_stdout_status): Remove test as to whether stdout was already
7079 closed; it breaks for the case "echo x | sort >&-".
7080 Quote file name colons.
7081 Do not assume that _("write error") lacks format strings.
7083 2000-05-15 Jim Meyering <meyering@lucent.com>
7085 * version-etc.c (version_etc_copyright): Update the copyright string
7086 used in all --version output.
7088 2000-05-14 Jim Meyering <meyering@lucent.com>
7090 * closeout.c (close_stdout_set_file_name): New function.
7091 (close_stdout_status): Use new file-scoped global.
7092 Return right away if fstat says the stdout file descriptor is invalid.
7093 * closeout.h (close_stdout_set_file_name): Declare.
7095 2000-05-10 Jim Meyering <meyering@lucent.com>
7097 * closeout.c [default_exit_status]: New file-scoped variable.
7098 (close_stdout_set_status): New function.
7099 * closeout.h (close_stdout_set_status): Declare.
7101 2000-05-08 Jim Meyering <meyering@lucent.com>
7103 * long-options.c: Don't include closeout.h.
7104 (parse_long_options): Don't call close_stdout for --version.
7106 2000-05-06 Jim Meyering <meyering@lucent.com>
7108 * strnlen.c: Undefine __strnlen and strnlen.
7109 [!weak_alias]: Define __strnlen to strnlen.
7111 * atexit.c: New file, from libiberty.
7113 2000-05-06 Jim Meyering <meyering@lucent.com>
7115 * closeout.c (close_stdout_status): Also check for errors on the
7118 2000-05-05 Bruno Haible <haible@clisp.cons.org>
7120 * localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy
7121 instead of xmalloc, xrealloc, path_concat.
7122 (locale_charset): Treat empty environment variables as absent.
7123 (DIRECTORY_SEPARATOR, ISSLASH): New macros.
7125 2000-05-04 Jim Meyering <meyering@lucent.com>
7127 * getopt.c: Update from glibc.
7128 * obstack.c: Likewise.
7129 * obstack.h: Likewise.
7130 * regex.c: Likewise. NB: K&R compiler support is dropped for this file
7132 * regex.h: Likewise.
7133 * strndup.c: Likewise.
7134 * strnlen.c: New file, from glibc.
7136 2000-05-01 Jim Meyering <meyering@lucent.com>
7138 * full-write.c (full_write): Remove `FIXME' part of comment.
7140 2000-04-29 Jim Meyering <meyering@lucent.com>
7142 * path-concat.c: Declare strdup only if it's not defined.
7143 * canon-host.c: Likewise.
7145 2000-04-28 Jim Meyering <meyering@lucent.com>
7147 * rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
7148 redefinition warning on some systems (HPUX). Otherwise, regex.h is
7149 included first, then limits.h is included by locale.h by libintl.h.
7150 From John David Anglin.
7152 2000-04-25 Jim Meyering <meyering@lucent.com>
7154 * makepath.c (S_IRWXUGO): Define.
7155 (make_path): Always perform explicit chmod if MODE specifies any
7156 of the `special' permission bits. Prompted by a bug report against
7157 install from Mate Wierdl and Joost van Baal.
7159 2000-04-18 Jim Meyering <meyering@lucent.com>
7163 * getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
7164 getpagesize. For BeOS. Based on a patch from Bruno Haible.
7166 2000-04-17 Jim Meyering <meyering@lucent.com>
7168 * strftime.c (my_strftime) [strftime]: Declare strftime here, since
7169 the definition of it to rpl_strftime also defined-away the system's
7172 2000-04-15 Jim Meyering <meyering@lucent.com>
7174 Use `C' to denote so-called `contiguous' files, the same way
7176 * filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
7177 (ftypelet): Use S_ISCTG.
7178 From Michael Deutschmann.
7180 2000-04-14 Jim Meyering <meyering@lucent.com>
7182 * strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
7184 2000-04-08 Jim Meyering <meyering@lucent.com>
7186 * Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
7187 names don't conflict. Reported by Eli Zaretskii.
7189 2000-03-28 Bruno Haible <haible@clisp.cons.org>
7191 * unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
7192 bug. Deal with the different error behavior of Irix iconv.
7194 2000-04-07 Jim Meyering <meyering@lucent.com>
7196 * putenv.c: Move inclusion of errno.h so it follows that of sys/types.h,
7197 to work around system header problems on AIX 3.2.5. From Bruno Haible.
7199 2000-04-05 Jim Meyering <meyering@lucent.com>
7201 Portability tweaks required for ultrix4.3.
7202 * readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
7203 * readutmp.c: Include sys/types.h before sys/stat.h.
7204 * canon-host.c: Declare strdup.
7205 * path-concat.c: Likewise.
7206 From John David Anglin.
7208 2000-04-04 Jim Meyering <meyering@lucent.com>
7210 Be more DOS 8.3-friendly.
7211 * ref-add.sin: Renamed from ref-add.sed.in.
7212 * ref-del.sin: Renamed from ref-del.sed.in.
7213 * Makefile.am: Reflect renaming.
7214 Reported by Eli Zaretskii.
7216 Use a temporary file name that won't clash with `charset.alias'
7217 in the DOS 8.3 name space.
7218 * Makefile.am (charset_tmp): Define.
7219 (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
7220 (uninstall-local): Likewise.
7221 Reported by Eli Zaretskii.
7223 2000-03-29 Paul Eggert <eggert@twinsun.com>
7225 * time/strftime.c (my_strftime): Make sure we call the system
7226 strftime, not ourselves, when invoking the underlying strftime.
7228 2000-03-24 Jim Meyering <meyering@lucent.com>
7230 * Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
7231 (charset_alias): Define.
7232 (install-exec-local): Factor out common code.
7233 (uninstall-local): Split lines longer than 80.
7234 (ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
7236 (.sed.in.sed): New rule. Don't redirect directly to $@.
7237 (CLEANFILES): Add ref-add.sed and ref-del.sed.
7239 2000-03-19 Bruno Haible <haible@clisp.cons.org>
7241 * config.charset: Output a line containing "Packages using this file".
7242 * ref-add.sed.in, ref-del.sed.in: New files.
7243 * Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
7244 ref-del.sed): New rules.
7246 2000-03-17 Jim Meyering <meyering@lucent.com>
7248 * unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
7249 Otherwise, include <strings.h>
7251 2000-03-17 Bruno Haible <haible@clisp.cons.org>
7253 * unicodeio.c (utf8_wctomb): New function.
7254 (print_unicode_char): Pass the Unicode character to iconv in UTF-8
7255 format instead of in UCS-4 with platform dependent endianness.
7257 2000-03-07 Paul Eggert <eggert@twinsun.com>
7259 * savedir.c (savedir): Work even if directory size is
7260 negative; this can happen with some screwy NFS configurations.
7262 2000-03-06 Jim Meyering <meyering@lucent.com>
7264 * localcharset.c (get_charset_aliases): Don't try to free file_name
7265 if it's NULL (because we ran out of memory). From Bruno Haible.
7267 2000-03-05 Jim Meyering <meyering@lucent.com>
7269 * localcharset.c ("path-concat.h"): Include.
7270 (get_charset_aliases): Use path_concat instead of ANSI string
7273 * unicodeio.h (PARAMS): Define.
7274 Use it to guard prototype.
7276 2000-03-04 Jim Meyering <meyering@lucent.com>
7278 * Makefile.am (install-exec-local): Create $(libdir) before installing
7280 (uninstall-local): Uncomment this rule so `make distcheck' works
7283 * unicodeio.c (<errno.h>): Include it.
7284 (errno): Declare if not defined.
7286 * localcharset.c: Add Bruno's comment justifying use of volatile.
7288 * config.charset: New version, incorporating remarks from a linux
7289 i18n mailing list. From Bruno Haible.
7291 2000-03-02 Jim Meyering <meyering@lucent.com>
7293 * Makefile.am (EXTRA_DIST): Add config.charset.
7295 2000-03-01 Jim Meyering <meyering@lucent.com>
7297 * localcharset.c: Guard some #includes with `#if HAVE_...'.
7298 * unicodeio.c: Likewise.
7300 2000-02-02 Bruno Haible <haible@clisp.cons.org>
7302 * config.charset: New file.
7303 * localcharset.c: New file.
7304 * unicodeio.h, unicodeio.c: New files.
7305 * Makefile.am (DEFS): Add -DLIBDIR=...
7306 (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
7307 (noinst_HEADERS): Add unicodeio.h.
7308 (all-local, install-exec-local, charset.alias): New targets.
7310 2000-02-28 Paul Eggert <eggert@twinsun.com>
7312 * quotearg.c (ALERT_CHAR): New macro.
7313 (quotearg_buffer_restyled): Use it.
7315 2000-02-27 Jim Meyering <meyering@lucent.com>
7317 * strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
7318 Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
7320 * backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
7321 not `#if STDC_HEADERS'.
7322 Declare malloc if needed.
7324 * backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
7325 now that autoconf always defines the HAVE_DECL_ symbols.
7326 * human.c: Likewise.
7328 * strtoumax.c: Likewise.
7330 * backupfile.c: Arrange for cpp to fail if the configure-time
7331 declaration check was not run.
7333 * human.c: Likewise.
7335 * strtoumax.c: Likewise.
7337 * userspec.c (parse_user_spec): If there is no `:' but there is a `.',
7338 then first look up the entire `.'-containing string as a login name.
7340 2000-02-18 Paul Eggert <eggert@twinsun.com>
7342 * getdate.y: Handle two-digit years with leading zeros correctly.
7343 (textint): New typedef.
7344 (parser_control): Member year changed from int to textint.
7346 (YYSTYPE): Removed; replaced by %union with int and textint members.
7347 (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
7348 tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
7349 tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
7350 (tSNUMBER, tUNUMBER): Now of type <textintval>.
7351 (date, number, to_year): Use width of number in digits, not its value,
7352 to determine whether it's a 2-digit year, or a 2-digit time.
7353 (yylex): Store number of digits of numeric tokens.
7354 Reported by John Kendall.
7356 (parser_control): Changed from struct parser_control to typedef (for
7357 consistency). All uses changed.
7359 (tID): Removed; not used.
7360 (yylex): Return '?' for unknown identifiers, rather than (unused) tID.
7362 2000-02-14 Paul Eggert <eggert@twinsun.com>
7364 * getpagesize.h (getpagesize): Port to VMS for Alpha;
7365 adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
7367 2000-02-12 Jim Meyering <meyering@lucent.com>
7369 * userspec.c (ISDIGIT): Define it.
7370 (isdigit): Remove definition.
7371 (is_number): Use ISDIGIT, not isdigit.
7372 <libintl.h>: Include.
7374 (parse_user_spec): Mark translatable strings.
7376 2000-02-10 Jim Meyering <meyering@lucent.com>
7378 With these changes, nanosleep.[ch] are finally enough like the other
7379 lib/* replacement files to compile on a few more losing systems.
7381 * nanosleep.h: Don't include config.h.
7382 Remove prototype from declaration of nanosleep.
7383 (PARAMS): Remove now-unneeded definition.
7384 * nanosleep.c: #undef nanosleep.
7385 (rpl_nanosleep): Rename from nanosleep.
7387 2000-02-03 Jim Meyering <meyering@lucent.com>
7389 * readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
7390 rather than with `#if HAVE_UTMPNAME'.
7392 2000-02-01 Jim Meyering <meyering@lucent.com>
7394 * readutmp.h (UT_USER): Add parens. From Andreas Schwab.
7396 2000-01-31 Jim Meyering <meyering@lucent.com>
7398 * nanosleep.h (nanosleep): Guard declaration with
7399 `#if ! HAVE_DECL_NANOSLEEP'.
7400 Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
7401 the declaration in that vendor's sys/timers.h.
7402 Reported by Christian Krackowizer.
7404 * quotearg.c (ISASCII): Add #undef and move definition to follow
7405 inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
7406 (ISPRINT): Likewise.
7407 Reported by Tom Tromey.
7409 2000-01-30 Jim Meyering <meyering@lucent.com>
7411 * readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
7412 uses of ->ut_name. The latter doesn't work with new Linux header files
7413 where only utmpx.ut_user is declared.
7415 * readutmp.h (UT_USER): Define.
7417 2000-01-23 Jim Meyering <meyering@lucent.com>
7419 * Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
7422 2000-01-22 Jim Meyering <meyering@lucent.com>
7424 * strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
7425 [! HAVE_DECL_STRTOULL]: Declare strtoull.
7426 Required for some AIX systems. Reported by Christian Krackowizer.
7427 [TESTING] (main): New function.
7429 1997-10-17 Eli Zaretskii <eliz@is.elta.co.il>
7430 * dirname.c (dir_name): Support for DOS-style file names with drive
7433 * quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
7435 * strverscmp.c (ISDIGIT): Define.
7436 (strverscmp): Use ISDIGIT, not isdigit.
7438 2000-01-17 Paul Eggert <eggert@twinsun.com>
7440 * nanosleep.c (nanosleep):
7441 Don't use SA_INTERRUPT to decide whether to call sigaction, as
7442 POSIX.1 doesn't require SA_INTERRUPT and some systems
7443 (e.g. Solaris 7) don't define it. Use SA_NOCLDSTOP instead;
7444 it's been part of POSIX.1 since day 1 (in 1988).
7446 2000-01-17 Jim Meyering <meyering@lucent.com>
7448 * interlock: Remove unused file. Reported by François Pinard.
7450 2000-01-16 Paul Eggert <eggert@twinsun.com>
7452 * quotearg.c (quotearg_buffer_restyled): Do not quote
7453 alert, backslash, formfeed, and vertical tab unnecessarily in
7454 shell quoting style.
7457 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
7458 Free Software Foundation, Inc.
7459 Copying and distribution of this file, with or without modification,
7460 are permitted provided the copyright notice and this notice are preserved.