Jim Meyering [Fri, 9 Jan 2004 16:05:36 +0000 (16:05 +0000)]
Use `bool' (not int) as the type for a few
global variables.
(collapse_escapes): Rewrite to set globals rather than modifying
its parameter.
Use size_t (not int) for all counters and related index variables.
(paste_parallel): Remove needless complexity of
using xrealloc in the loop; just allocate the buffers up front.
Free the two temporary buffers.
Move declarations of locals `down' into scope where used.
(paste_serial): Remove `register' attributes.
(main): Simplify delim-related code.
Free `delims', now that it's malloc'd.
Jim Meyering [Thu, 8 Jan 2004 14:19:55 +0000 (14:19 +0000)]
(TESTS_ENVIRONMENT): Remove `/vg' (prerelease test
remnant) from PATH component. That would cause tests in this directory
not to run the just-built binaries, but rather whatever happened
to be in one's PATH. Reported by Christian Krackowizer.
Jim Meyering [Sun, 4 Jan 2004 21:12:00 +0000 (21:12 +0000)]
(add_temp_dir): Use x2nrealloc rather than xrealloc.
(fillbuf): Use x2nrealloc rather than xrealloc.
(sort): Use xnmalloc rather than xmalloc.
(main): Likewise.
Jim Meyering [Sun, 4 Jan 2004 20:25:46 +0000 (20:25 +0000)]
Include "quote.h".
(CHROOT_FOUND_BUT_CANNOT_INVOKE, CHROOT_FAILURE): Define.
(main): Exit with status of 127, not 1, for too-few-args,
chroot failure, or chdir failure.
Give a better diagnostic upon execvp failure.
Jim Meyering [Tue, 30 Dec 2003 08:26:58 +0000 (08:26 +0000)]
Include posixver.h.
(obsolete_usage): New var.
(longopts): Put obsolete options first.
(OBSOLETE_LONG_OPTIONS): New constant.
(get_option, add_file_name): New functions.
(main): Use them to support new behavior.
(usage): Remove documentation for -j1 FIELD and -j2 FIELD.
Do not mark -j FIELD as obsolescent; it is longstanding
UNIX tradition and is a valid extension to POSIX.
Jim Meyering [Tue, 30 Dec 2003 08:24:26 +0000 (08:24 +0000)]
(add_field_list): Don't use alloca with unbounded
size; just modify the argument, which is no longer const *.
Various other minor cleanups, mostly to avoid the need for casts.
(extract_field): Renamed from ADD_FIELD, as it's now a function.
(struct field.beg): Now char *, not unsigned char const *. All
uses changed. It shouldn't be const since xmemcoll writes on its
arguments.
(extract_field): Likewise, for 2nd arg.
(keycmp): Remove now-unnecessary cast of xmemcoll args.
(is_blank): New function, to avoid need to cast arg to unsigned char.
(extract_field): Use it.
(xfields): Rewrite pretty much from scratch.
(hard_LC_COLLATE): Now bool, not int.
(get_line, getseq, add_field_list): Now returns bool, not int.
(decode_field_spec, add_field_list): Return true on success (not
false), for consistency with the rest of the code. All uses changed.
(tab): Now char, not unsigned char. This wasn't 100% necessary
but is slightly cleaner.
(prjoin): Hoist (tab ? tab : ' ') expression, to help the compiler.
(empty_filler): Now const *.
(make_blank): Remove; wasn't needed. Remove all calls.
(main): Don't set uni_blank.nfields; zero is fine.
Jim Meyering [Sat, 27 Dec 2003 14:36:26 +0000 (14:36 +0000)]
Include "quote.h".
(min, max): Remove definitions.
Make a few function parameters and corresponding
locals `const'. Use bool for boolean variables.
Use size_t (not int) for all counters and related index variables.
(prjoin): Remove now-useless assertion.
(string_to_join_field): New function.
(main): Accept join fields as large as SIZE_MAX.
(keycmp): Rename `min' to MIN and max to MAX.
Jim Meyering [Sat, 27 Dec 2003 09:55:11 +0000 (09:55 +0000)]
fold -s didn't work on e.g., alpha-based systems.
* src/fold.c (fold_file): Adjust types (int->size_t) so that using
x2nrealloc works properly on systems with differing sizes for int
and size_t. Reported by Nelson Beebe.
* src/fold.c: Use `bool' (not int) as the type for a few
global variables.
Jim Meyering [Wed, 24 Dec 2003 16:38:36 +0000 (16:38 +0000)]
(length_of_file_names_and_frills):
Remove forward decl; not needed.
(print_file_name_and_frills, length_of_file_name_and_frills):
With -m, don't output spaces before inum or size.
(print_with_commas): Don't output space just before newline.
Jim Meyering [Fri, 19 Dec 2003 12:50:33 +0000 (12:50 +0000)]
Don't include <search.h>.
[HAVE_INTTYPES_H]: Include <inttypes.h>.
(tdestroy, tfind, tsearch): Remove definitions.
(struct Active_dir): Rename from `known_object'.
(AD_compare, AD_hash): New functions.
(enter_dir, leave_dir): Rewrite to manipulate a hash table
rather than a tree.
(fts_open): Initialize hash table or cycle_state buffer.
(free_node): Remove function.
(find_matching_ancestor): Renamed/rewritten from look_up_active_dir.
(fts_cross_check): Adapt to use new data structure.
Jim Meyering [Fri, 19 Dec 2003 12:40:05 +0000 (12:40 +0000)]
Include hash.h and cycle-check.h.
(FTS_TIGHT_CYCLE_CHECK): New value.
(FTS_OPTIONMASK): Adjust to include the new value.
(FTS_NAMEONLY, FTS_STOP): Increase to allow room for new value.
(struct FTS) [active_dir_ht]: New member. Replaces fts_dir_signatures.
(struct FTS) [cycle_state]: New member.
Jim Meyering [Thu, 18 Dec 2003 21:11:11 +0000 (21:11 +0000)]
Rewrite cycle detection code to work properly.
Add some framework (compiled out by default) to test it.
(Dprintf, ENTER_DIR, LEAVE_DIR): Define.
(add_object): Remove function. Rewritten as...
(enter_dir): New function.
(leave_dir, free_node): New functions.
(fts_read): Ensure that we call ENTER_DIR or LEAVE_DIR,
as appropriate, before returning.
(look_up_active_dir, fts_cross_check) [FTS_DEBUG]: New functions.
(fts_stat): Don't perform the cycle check here.
Now it's done via enter_dir.
Jim Meyering [Thu, 18 Dec 2003 17:15:38 +0000 (17:15 +0000)]
(format_user): Increment dired_pos via two statements,
`dired_pos += width; dired_pos++;' rather than one,
`dired_pos += width + 1;' since the latter could conceivably overflow.
(format_group): Likewise.
Jim Meyering [Thu, 18 Dec 2003 10:08:32 +0000 (10:08 +0000)]
(AC_SEARCH_LIBS): Remove file/macro, now that
this replacement is no longer needed. Besides, this macro has
no effect with autoconf-2.58, since its `undefine' is not honored.