1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-18 01:40:06 +02:00
Commit Graph

150 Commits

Author SHA1 Message Date
Paul Eggert
197b96d069 Adjust to today's renaming changes in system.h. 2006-07-09 17:08:55 +00:00
Paul Eggert
7e17831f0a Clear the RE_NO_EMPTY_RANGES re syntax option, as this is a less intrusive
change from the old (Emacs) behavior, and POSIX allows us to treat [z-a]
as an empty range.
2006-04-12 07:37:11 +00:00
Paul Eggert
2a75bb4ae0 (extract_regexp): Set re_syntax_options to a
value that is compatible with what POSIX requires.
2006-04-12 07:14:53 +00:00
Paul Eggert
87bd526828 Update copyright year. 2006-04-11 00:50:33 +00:00
Paul Eggert
ff652937b0 (struct control): Put re_compiled member at the
end, since it's large.  Change regexpr member from char * to bool;
all uses changed.  Add new member fastmap.
(extract_regexp): regexp arg is now char const *, not char *.
Don't bother duplicating the regular expression; it's not needed.
Set fastmap from new fastmap member.  Don't bother allocating
a buffer, as the regexp code does a better job than we do.
2006-04-11 00:49:59 +00:00
Jim Meyering
2729563f6b csplit could produce corrupt output, given input lines longer than 8KB
(load_buffer): Don't read from free'd memory
when handling lines longer than the initial buffer length.
(save_to_hold_area): Don't leak the previous hold_area buffer.
Reported by Tristan Miller and Luke Kendall.
* NEWS: Mention this.

(load_buffer): Avoid integer overflow in buffer
size calculations for very long lines.
2005-09-10 13:56:45 +00:00
Paul Eggert
1bd916412d (process_regexp): Store match length in regoff_t,
not int.  Assume that negative return values less than -2
represent regoff_t overflow.
2005-09-09 21:08:19 +00:00
Jim Meyering
0b08c38152 Cosmetic: use X2NREALLOC (only two arguments) rather than x2nrealloc (with three). 2005-08-12 07:16:25 +00:00
Paul Eggert
580d1e6d6d Don't include stdio.h; no longer needed. 2005-07-09 22:10:38 +00:00
Paul Eggert
d54f92ab0d Include fd-reopen.h.
Include stdio--.h, not stdio-safer.h.
(input_desc): Remove.  All uses changed to STDIN_FILENO.
(set_input_file): Reopen stdin, to simplify code.
(create_output_file): Use fopen, not fopen_safer.
2005-07-03 07:17:12 +00:00
Jim Meyering
3787d01a51 Don't embed `this'-style quotes in format strings.
Rather than this: error (..., "...`%s'...", arg);
do this:          error (..., "...%s...", quote (arg));
2005-06-16 21:33:43 +00:00
Jim Meyering
44d59bb168 Update FSF postal mail address. 2005-05-14 07:58:31 +00:00
Jim Meyering
c0c815af8d Update FSF postal mail address. 2005-05-14 06:57:06 +00:00
Paul Eggert
329448f75e Include stdio-safer.h.
(input_desc): Remove unnecessary static initialization.
(set_input_file): Use STDIN_FILENO, not 0.
(create_output_file): Use fopen_safer.
2005-04-11 20:07:00 +00:00
Paul Eggert
f33b6dab82 (SA_NOCLDSTOP): Define to 0 if not defined.
All uses changed.
(siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
(delete_all_files): New arg IN_SIGNAL_HANDLER, to avoid undefined
behavior when called from a signal handler.  All uses changed.
(main) [!defined SA_NOCLDSTOP]:
Use siginterrupt to specify that system calls should be interrupted.
2005-04-09 04:55:05 +00:00
Jim Meyering
d8c14fc15e (extract_regexp): Use NULL, not `0'. 2005-03-28 17:57:57 +00:00
Jim Meyering
e03c1883fc (usage): Say the default names are xx00, xx01, ...', not xx01, xx02, ...'.
Reported by Matt Kraai in http://bugs.debian.org/286605
2004-12-21 09:58:38 +00:00
Jim Meyering
9b838f64c8 (xalloc_die): Declare to be extern', not static'
to avoid a warning from gcc-3.4.1.  Reported by Paul Eggert.
2004-09-24 06:34:43 +00:00
Jim Meyering
470e384363 (xalloc_die): Declare to be static. 2004-09-22 20:09:41 +00:00
Paul Eggert
81ca57a91d Remove unused "case 0". 2004-09-21 22:26:42 +00:00
Paul Eggert
884a7c36eb (xalloc_die): New function.
(main): Remove now-obsolete initialization of xalloc_fail_func.
2004-08-09 18:45:10 +00:00
Paul Eggert
846cb63700 (struct line): Use size_t for sizes.
(main): Remove unnecessary cast.
2004-08-03 05:58:49 +00:00
Jim Meyering
1ce7b61d0e (main): Standardize on the diagnostics given when someone gives
too few operands ("missing operand after `xxx'") or
too many operands ("extra operand `xxx'").
Include "quote.h" and/or "error.h" if it wasn't already being included.
2004-06-21 15:03:35 +00:00
Jim Meyering
8ab60c41be - csplit sometimes failed to remove files when interrupted.
- csplit didn't clean up if two signals arrived nearly simultaneously.

(sigprocmask, sigset_t) [!defined SA_NOCLDSTOP]: Define.
(filename_space, prefix, suffix, digits, files_created, remove_files): Now volatile.
(caught_signals): New var.
(cleanup): Block signals while deleting all files.
(cleanup_fatal, handle_line_error, regexp_error):
Mark with ATTRIBUTE_NORETURN.
(create_output_file, close_output_file, interrupt_handler):
Block signals while changing the number of output files,
to fix some race conditions.
(delete_all_files): Do nothing if remove_files is zero.
Clear files_created.
(main): Don't mess with signals until after argument processing is done.

(main): Rewrite signal-catching code to make it
similar to other coreutils programs.  When processing signals,
block all signals that we catch, but do not block signals that we
don't catch.  Avoid problems with unsigned int warnings.

(interrupt_handler): Use void, not (obsolete) RETSIGTYPE.

(interrupt_handler) [defined SA_NOCLDSTOP]:
Use simpler "signal (sig, SIG_DFL)" rather than sigaction equivalent.
2004-04-21 12:57:33 +00:00
Jim Meyering
a8fd56864e (usage): Use EXIT_SUCCESS, not 0, for clarity.
(usage): Don't bother normalizing exit status
since the arg is already the correct exit status now.
2004-01-21 22:49:36 +00:00
Jim Meyering
986b0ecbdf (new_control_record): Use x2nrealloc rather than xrealloc. 2004-01-04 21:08:47 +00:00
Jim Meyering
51ab3265f8 Fix read-from-free'd-buffer error detected by valgrind.
(remove_line): Don't return a pointer to data in
a freed buffer.  Instead, arrange to free the buffer on the
subsequent call.
2003-11-16 12:25:35 +00:00
Jim Meyering
cf4fdf373f Most .c files (AUTHORS): Revert the WRITTEN_BY/AUTHORS change
of 2003-09-19.  Now, AUTHORS is a comma-separated list of strings.
Update the call to parse_long_options so that `AUTHORS, NULL' are the
last parameters.

* src/true.c (main): Append NULL to version_etc argument list.
* src/sys2.h (case_GETOPT_VERSION_CHAR): Likewise.
2003-10-18 10:05:47 +00:00
Jim Meyering
20fd309527 (main): Remove obsolete FIXME. 2003-10-08 18:24:04 +00:00
Jim Meyering
0b693b7d02 csplit cleanup.
Be more careful about int widths.  For example, remove some
arbitrary limits by replacing 'unsigned' with 'size_t',
'uintmax_t', etc.  Use standard bool rather than a homegrown type.

(FALSE, TRUE, boolean): Remove.  All uses changed
to <stdbool.h> usage.
(struct control): offset is now intmax_t, not int.
repeat_forever is now bool, not int.
(struct cstring): len is now size_t, not unsigned int.
(struct buffer_record): bytes_alloc, bytes_used, num_lines are now
size_t, not unsigned.  start_line, first_available are now
uintmax_t, not unsigned.
(hold_count, control_used): Now size_t, not unsigned.
(last_line_number, current_line, bytes_written):
Now uintmax_t, not unsigned.
(save_to_hold_area, red_input, keep_new_line, record_line_starts,
create_new_buffer, get_new_buffer, load_buffer, find_line,
process_regexp, split_file, new_control_record, extract_regexp,
get_format_width, get_format_prec, max_out):
size args, locals, and returned values are now size_t, not unsigned
or int.
(get_first_line_in_buffer, find_line, write_to_file,
handle_line_error, process_line_count, regexp_error, process_regexp,
split_file):
File line, byte, and repetition counts are now uintmax_t, not unsigned.
(check_for_offset): Don't require a sign before the offset.
Use xstrtoimax to do the real work.
(extract_regexp): Remove harmful cast of size to unsigned.
256 -> 1<<CHAR_BIT, for clarity.
(get_format_flags): Return at most 3, to avoid worries about overflow.

(bytes_to_octal_digits): Remove.

(cleanup): Don't check whether output_stream is NULL, since
close_output_file does that for us.

(new_line_control, create_new_buffer): Use "foo *p = xmalloc
(sizeof *p);" instead of the more long-winded alternatives.

(get_new_buffer): Use O(1) algorithm for resizing a buffer
to a much larger size, instead of an O(N) algorithm.

(process_regexp): Use plain NULL rather than casted 0.

(make_filename): Use %u, not %d, to format unsigned file number.

(new_control_record): Use xrealloc exclusively, since it handles
NULL reliably,

(extract_regexp): Change misspelled word in diagnostic.

(get_format_width): Even if a minimum field width is specified,
allow room for enough octal digits to represent the value of
the maximum representible integer.  This fixes a potential
buffer overrun.  Calculate this room at compile-time, not
at run-time; this removes the need for bytes_to_octal_digits.
Check for overflow; this removes a FIXME.

(get_format_prec): Don't allow precision to be signed; it's
not ANSI.  Check for overflow.  Remove hardcoded "11" as
default precision; this fixes a potential buffer overrun
on hosts with wider size_t.

(get_format_conv_type): Change local variable to be of type
unsigned char, not int; this removes a potential subscript
violation on hosts where char is signed.

(max_out): Replace "for (;*p;)" with more-standard "while (*p)".
Allow "%%" in format.  Don't overflow when
counting lots of percents.

(usage): Default sprintf format is %02u, not %d.
2003-10-08 17:54:19 +00:00
Jim Meyering
6ab7d9e425 Don't exhaust virtual memory when processing large inputs.
Fix this by removing csplit's internal free-list management;
instead rely on malloc for that.

(free_list): Remove global.
(clear_all_line_control): Remove function.
(get_new_buffer): Always use create_new_buffer to obtain a
new buffer, rather than searching free_list.
(free_buffer): Just call free.
2003-09-27 06:57:07 +00:00
Jim Meyering
93bf700a94 (close_output_file): Don't report bogus errno value
after ferror discovers an output error.  We don't know the proper
errno value, since it might have been caused by any of a whole
bunch of calls, and it might have been trashed in the meantime.
Fixing this problem will require much more extensive changes;
in the meantime just say "write error".
2003-09-23 21:57:13 +00:00
Jim Meyering
bafd927f03 (WRITTEN_BY): Rename from AUTHORS.
Begin each WRITTEN_BY string with `Written by ' and end it with `.'.
Mark each WRITTEN_BY string as translatable.
2003-09-18 22:19:03 +00:00
Jim Meyering
c6ec144494 revert previous change 2003-09-18 19:39:12 +00:00
Jim Meyering
3280bf4b55 Update AUTHORS definition to be a comma-separated list of strings and/or update
the call to parse_long_options so that `AUTHORS, NULL' are the last parameters.
2003-09-18 18:22:23 +00:00
Jim Meyering
4f4e9aa8e1 Don't include headers already included by system.h:
Don't include closeout.h.
2003-07-23 07:29:54 +00:00
Jim Meyering
6bcd4b08ba (main): Call initialize_main. 2003-06-17 18:13:23 +00:00
Jim Meyering
6c93bdeeaa Remove anachronistic casts of xmalloc,
xrealloc, and xcalloc return values and of xrealloc's first argument.
2003-04-11 10:51:56 +00:00
Jim Meyering
a5f14f167e Remove all uses of `PARAMS'. 2002-12-15 20:54:29 +00:00
Jim Meyering
faf852d2dd (interrupt_handler): Use raise, rather than kill+getpid. 2002-11-10 09:54:37 +00:00
Jim Meyering
1e583af98a (handle_line_error, parse_patterns):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:14:41 +00:00
Jim Meyering
b7fbfec375 (struct cstring) [len]: Declare to be unsigned int,
since that's how it's always used and avoids a new warning from gcc.
(read_input): Adapt to new safe_read ABI.
2002-10-12 09:44:06 +00:00
Jim Meyering
1ea1325068 Don't include stdlib.h here. It's already included via system.h. 2002-09-30 21:20:08 +00:00
Jim Meyering
d50e1a86b7 add a FIXME comment 2002-09-26 08:25:44 +00:00
Jim Meyering
f4c8df3d37 (get_format_width): Add cast to avoid
warning about `signed and unsigned type in conditional expression'.
2002-09-15 07:23:08 +00:00
Jim Meyering
4006f4e672 Change exit (0)' to exit (EXIT_SUCCESS)',
`exit (1)' to `exit (EXIT_FAILURE)', and
`usage (1)' to `usage (EXIT_FAILURE)'.
2002-08-31 08:52:10 +00:00
Jim Meyering
5a731510b2 (usage): Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it. 2002-07-02 09:06:33 +00:00
Jim Meyering
c5c6647f22 Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:49:24 +00:00
Jim Meyering
3a0a028c8c Reflect renaming to, and new usage of these macros:
HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION.
2001-12-01 17:41:25 +00:00
Jim Meyering
afa12bc912 (usage): Use new macros, EMIT_HELP_DESCRIPTION and EMIT_VERSION_DESCRIPTION
instead of hard-coding --help and --version descriptions.
2001-12-01 17:21:56 +00:00