Paul Eggert [Mon, 30 May 2005 07:34:23 +0000 (07:34 +0000)]
Include sys/param.h if it exists, not if _POSIX_VERSION
isn't defined.
Don't include <sys/file.h>; no longer needed.
(getegid, geteuid): Remove no-longer-necessary decls.
Paul Eggert [Sat, 28 May 2005 04:22:26 +0000 (04:22 +0000)]
(skip): Return the number of records that were not
skipped due to encountering EOF.
(dd_copy): If the file wasn't seekable and EOF was encountered,
write zeros past EOF until the desired offset is reached.
Paul Eggert [Sat, 28 May 2005 00:00:06 +0000 (00:00 +0000)]
Don't worry about debugging on pre-C99-comopatible hosts;
the configuration hassle isn't worth it.
Include inttypes.h and stdint.h unconditionally if FTS_DEBUG.
(LONGEST_MODIFIER, PRIuMAX): Remove.
Paul Eggert [Fri, 27 May 2005 20:36:58 +0000 (20:36 +0000)]
Include inttostr.h, strnumcmp.h.
(whitespace, digit, digit_value, integer_expected_error): Remove.
(is_int): Remove; replaced by...
(find_int): New function.
(binary_operator): Don't let integers overflow in comparisons;
return the correct answer instead. Simplify the code.
(unary_operator): Convert the integer ourself, since find_int
no longer does so.
Paul Eggert [Fri, 27 May 2005 20:36:40 +0000 (20:36 +0000)]
Refactor so that others can use large-integer
comparison functions.
Include "strnumcmp.h".
(NEGATION_SIGN, NUMERIC_ZERO, fraccompare):
Remove; moved to strnumcmp.
(decimal_point): Now int, to simplify converison overhead with
new API. All uses changed.
(thousands_sep): Now -1 if there isn't one, as per new API.
All uses changed.
(numcompare): Move contents to strnumcmp module, except for
skipping blanks.
Paul Eggert [Fri, 27 May 2005 20:36:20 +0000 (20:36 +0000)]
Include strnumcmp.h, xstrtol.h.
(looks_like_integer): New function.
(toarith): Use it. Also, use xstrtoimax rather than rolling our
own diagnostics.
(eval2): Don't look for trouble if !evaluate; this simplifies things.
Compare numbers using string comparison, so that overflow is
not possible.
Paul Eggert [Fri, 27 May 2005 20:31:59 +0000 (20:31 +0000)]
expr and test now correctly compare integers of unlimited size.
(Also, correct a comment that claimed that expr detects integer
overflow; it does so only when converting from strings.)
Paul Eggert [Fri, 20 May 2005 22:34:19 +0000 (22:34 +0000)]
Don't include "cycle-check.h" or "hash.h".
(setup_dir, free_dir): New functions.
(enter_dir, leave_dir): Define trivial
alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE.
(HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed.
(LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir.
(struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir):
Move to fts-cycle.c.
(fts_open): Use setup_dir.
(fts_close): Use free_dir.
(fts_read): Have just one copy of the ENTER_DIR code rather than three.
This adds a label and some gotos, but the alternatives were messier.
Check for memory allocation failure when entering a dir.
(fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code.
Paul Eggert [Fri, 20 May 2005 22:33:59 +0000 (22:33 +0000)]
(_LGPL_PACKAGE) [defined _LIBC]: New macro.
(FTS): New member fts_cycle, that is a union that contains the
old active_dir_ht and cycle_state. All uses changed to mention
fts_cycle.ht and fts_cycle.state.
Paul Eggert [Fri, 20 May 2005 22:32:50 +0000 (22:32 +0000)]
New file, containing GPL'ed code migrated out of
fts.c, with the following changes:
(setup_dir, free_dir): New functions.
(enter_dir): Now returns bool. Return true if successful, false
if memory exhausted. All callers changed.
Do not bother partly cleaning up on
memory allocation failure; that is free_dir's job.
However, free ad if hash_insert fails, to avoid memory leak.
(enter_dir, leave_dir): Accommodate change to FTS by inspecting
fts->fts_options to see which union member to use.
Paul Eggert [Wed, 18 May 2005 19:31:20 +0000 (19:31 +0000)]
lib-check.m4: Add copyright notice.
(cu_LIB_CHECK): Renamed from gl_LIB_CHECK.
Don't check for sqrt; factor no longer needs it.
Revamp tests for floor, modf, rint, to define SEQ_LIBM.
Redo tests for fesetround to act like the other wons.
Use "cu_saved_libs" for local var name, not "ac_su_saved_lib".
Paul Eggert [Wed, 18 May 2005 19:31:00 +0000 (19:31 +0000)]
(gl_MACROS): Require AC_FUNC_LSTAT.
Don't check for memcpy, strchr, strerror, strrchr, float.h.
Use AC_REQUIRE on AM_LANGINFO_CODESET and gl_GLIBC21 rather
than invoking them directly.
(gl_CHECK_ALL_HEADERS): Don't check for errno.h, float.h,
limits.h, stddef.h, since we assume C89 now.
Paul Eggert [Wed, 18 May 2005 19:30:06 +0000 (19:30 +0000)]
(gl_FUNC_FTS): Don't require AC_HEADER_STDC, as we
don't use its results.
Don't check for fcntl.h, stddef.h, stdlib.h, string.h, unistd.h,
since we include them unconditionally. Don't require
AM_STDBOOL_H, since stdbool is a prerequisite.
Don't require AC_C_CONST, AC_TYPE_SIZE_T or check for ptrdiff_t
since we assume C89 or better.
Don't require AC_FUNC_CLOSEDIR_VOID, AC_FUNC_LSTAT, or AC_FUNC_STAT,
as we don't use their results.
Don't check for fchdir, memmove, memset, strrchr, as we use
them unconditionally.
Paul Eggert [Wed, 18 May 2005 19:29:11 +0000 (19:29 +0000)]
Do not include hash.h or cycle-check.h; no longer needed.
(FTS): Use struct hash_table * instead of Hash_table, so that
we no longer need to include hash.h here.
Paul Eggert [Wed, 18 May 2005 19:28:48 +0000 (19:28 +0000)]
Include fts_.h first, to check interface.
Do not include intprops.h; no longer needed.
Include cycle-check.h and hash.h, since fts_.h no longer does.
Remove unnecessary casts of closedir to void.
(fts_build): Use a simpler method (not involving TYPE_SIGNED) to
decide whether to decrement nlinks.
Paul Eggert [Wed, 18 May 2005 19:28:21 +0000 (19:28 +0000)]
Include canonicalize.h first, to test interface.
Include <stddef.h> unconditionally, since we assume C89 now.
All uses of PTR_INT_TYPE replaced by ptrdiff_t.