Commit Graph

141 Commits

Author SHA1 Message Date
Jim Meyering bb0eb686fc (main): Fix off-by-one error.
pr -$(perl -e 'print "0"x63 . 1') would write one byte beyond the
end of a malloc'd buffer.
2005-04-03 13:12:53 +00:00
Jim Meyering 05613505e5 Correct indentation of the two just-split lines. 2005-04-01 22:29:15 +00:00
Jim Meyering 91377273e6 split two longer-than-80-column lines 2005-04-01 20:06:22 +00:00
Jim Meyering a76fbd821b (main): Free column_count_string when done with it. 2005-04-01 20:05:33 +00:00
Jim Meyering a21d9a21de Don't let pr treat +1:-1 like +1:18446744073709551615.
(strtoumax): Remove declaration.
(first_last_page): Use xstrtoumax in place of strtoumax,
so we don't interpret a negative page number (e.g., in an option
like --pages=1:-1) as valid.
2005-04-01 07:39:45 +00:00
Jim Meyering 129f0dca9d (print_sep_string):
Add `void' to make this an ANSI-style function declaration.
2005-03-28 19:29:54 +00:00
Jim Meyering 734cf53a3c (long_options): Use NULL, not `0'. 2005-03-28 18:21:13 +00:00
Jim Meyering 2168f7c7a1 (init_header): Use zero-filled .%09d' format, not space-filled .%9d'. 2005-03-20 19:53:30 +00:00
Jim Meyering b8c473b62e (init_header): Add missing `%' in format string. 2005-03-20 19:25:15 +00:00
Jim Meyering 3feaa088bd (parse_column_count): Adjust comment to match the code. 2005-03-20 18:40:40 +00:00
Paul Eggert 2bad486665 Include strftime.h, timespec.h.
(init_header): Obtain and format nanosecond part of time stamp.
2005-03-19 06:18:19 +00:00
Jim Meyering 6d9f816b5c Both pr -0' and e.g., pr -03' evoke `column count too large'.
`pr -0' should give a better diagnostic and `pr -03' should be
equivalent to `pr -3'.

(parse_column_count): Change return type to void.
Call error (EXIT_FAILURE, ... for an invalid string.
(main): Allocate space for column_count_string using malloc.
Accumulate all old-style column-count digits before converting.
When the number of columns is specified via both old-style,
(e.g., -3), and a long option (--columns=5), ensure that only
the last one specified takes effect.
2005-03-15 18:05:13 +00:00
Jim Meyering 82477b8efb Don't segfault for a long header date string, e.g.,
echo a|pr -D +%9999999A

(init_header): Use x2nrealloc, rather than alloca.
Don't bother with fixed-sized initial buffer;  always use x*alloc.
2005-03-10 08:51:49 +00:00
Jim Meyering 075a99ffcf (init_header): Use INT_BUFSIZE_BOUND in place of INT_STRLEN_BOUND + 1. 2005-03-10 07:58:34 +00:00
Jim Meyering 048a5ce26c Factor out column-count processing.
Include "inttostr.h".
(parse_column_count): New function.
(main): Use the new function for both old-style, -9, and long,
--columns=-9, options.
2005-03-06 19:34:07 +00:00
Jim Meyering 2a005547b7 Remove register keyword. 2005-03-06 16:23:27 +00:00
Jim Meyering 91fefc7f0d pr --columns=N' was not equivalent to pr -N' when also using
either -s or -w.

(main): Set `explicit_columns' for --columns=N,
not just for -N.  This bug has existed since the introduction
of the --columns=N option on 1998-08-15.
2005-01-08 12:01:40 +00:00
Jim Meyering aa7f16bda6 (main): Check for column count overflow with usages like "pr -2147483648". 2005-01-08 12:00:54 +00:00
Jim Meyering 7536049fb0 (init_fps): Use xnmalloc, rather than xmalloc. 2005-01-07 17:16:50 +00:00
Paul Eggert 48eaa73827 (strtoumax): Declare if not declared.
(skip_to_page, first_page_number, last_page_number, page_number,
first_last_page, print_header):
Use uintmax_t for page numbers.
(first_last_page): Remove unnecessary forward declaration.
Do not modify arg (it is now a const pointer).
Return a true if successful, false (without print a diagnostic)
otherwise.
(main): If +XXX does not specify a valid page range, treat it
as a file name.  This follows the response to Open Group XCU ERN 41
<http://www.opengroup.org/sophocles/show_mail.tpl?source=L&listname=austin-group-l&id=7717>,
which says the behavior is allowed.
(skip_to_page): When starting page number exceeds page count,
print both numbers in the diagnostic.
(print_header): Detect page number overflow.
2004-11-12 19:35:54 +00:00
Paul Eggert 81ca57a91d Remove unused "case 0". 2004-09-21 22:26:42 +00:00
Paul Eggert 8cc9e3ce8b Add a FIXME mentioning that there are many
unchecked integer overflows in this file.
(TRUE, FALSE): Remove.  All uses replaced by true and false.
(struct COLUMN, read_line, print_page, print_stored, open_file,
skip_to_page, init_fps, parallel_files, align_empty_cols,
empty_line, FF_only, explicit_columns, extremities, keep_FF,
print_a_FF, print_a_header, use_form_feed, have_read_stdin,
print_across_flag, storing_columns, balance_columns,
truncate_lines, join_lines, untabify_input, failed_opens,
numbered_lines, skip_count, use_esc_sequence, use_cntrl_prefix,
double_space, ignore_failed_opens, use_col_separator,
pad_vertically, last_line, main, init_parameters, skip_read,
read_line, print_stored):
Use bool for booleans.
(struct COLUMN, char_to_clump, store_char, print_char):
Use char for chars.
(clump_buff, print_clump): Use char[], not int[], for an array whose
elements are always chars.
(first_last_page, main, getoptarg, balance, add_line_number,
char_to_uclump): Remove unnecessary casts.
(init_parameters): Allocate chars, not ints, for clump_buff.
(print_char): Use to_uchar before invoking ISPRINT.
(char_to_clump): Convert to unsigned char before invoking ISPRINT.
2004-08-03 18:26:32 +00:00
Jim Meyering db2fa4fdcd Include "hard-locale.h".
(main): When in a non-POSIX locale, ignore POSIXLY_CORRECT, since
POSIX specifies the behavior only in the POSIX locale.
2004-06-15 18:00:20 +00:00
Jim Meyering bdb46518ee (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.
(FATAL_ERROR, main): Exit with status EXIT_FAILURE, not 2, on errors.
2004-01-22 19:49:47 +00:00
Jim Meyering 6ff0bf52e2 Change type of global, buff_allocated, to size_t. 2003-12-20 16:44:12 +00:00
Jim Meyering dfed7d19ac (store_char): Use x2nrealloc rather than xrealloc. 2003-11-04 09:32:16 +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 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 b78c9ccbd5 Don't include time.h; system.h already does it. 2003-07-23 07:07:07 +00:00
Jim Meyering 6bcd4b08ba (main): Call initialize_main. 2003-06-17 18:13:23 +00:00
Jim Meyering aeec25d170 shorten long line 2003-05-13 14:37:45 +00:00
Jim Meyering 038a9b42a6 (init_fps, init_store_cols): Don't apply cast to argument of free. 2003-05-13 14:37:33 +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 b1113d0168 (main): Don't ignore -COLUMN if it's the last option.
(usage): Clarify help text for the -COLUMN option.
2002-08-09 10:03:58 +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 e464e1da1c Avoid new warnings from gcc.
[struct COLUMN] <name>: Declare member to be const.
(init_fps): Declare local variable `firstname' to be const.
2002-04-28 21:07:01 +00:00
Jim Meyering 9cb0d2f448 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(short_options): Remove; no longer needed.
(COMMON_SHORT_OPTIONS): New macro.
(SEP_STRING_OPTION): Remove; no longer needed.
All uses changed to back to the corresponding short options.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 07:42:52 +00:00
Jim Meyering bf76cb368c Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document it.
(main): Check for obsolete options.
(short_options): New constant.
(SEP_STRING_OPTION): New enum value.
(long_options): Use it.
2002-02-02 09:35:43 +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
Jim Meyering 79d3f45d37 (usage): Indent --help and --version strings to start in the 7th column. 2001-11-25 14:37:18 +00:00
Jim Meyering 909dc8c01d Factor out some common strings to make translation easier.
Split usage strings so that --help and --version descriptions are alone
in their own string.
Likewise for the one that says:
  Mandatory arguments to long options are mandatory for short options too.
2001-11-23 19:58:23 +00:00
Jim Meyering 051550c21b (struct COLUMN) [print_func]: Declare as a protype.
(struct COLUMN) [char_func]: Declare as a protype.
2001-11-11 14:35:39 +00:00
Jim Meyering 2753d47434 (usage): Split --help output into smaller pieces.
Use fputs, not printf.
2001-11-11 14:34:28 +00:00
Jim Meyering ff4121e50e (usage): Say that
``Mandatory arguments to long options are mandatory for short options too.\n\''
2001-11-04 09:43:16 +00:00
Jim Meyering 41a201e991 (AUTHORS): Mark string for translation, since it contains the English word `and'. 2001-08-13 10:33:28 +00:00