Use intmax_t, not size_t, for input line numbers

This works better on platforms where SIZE_MAX < OFF_MAX.
* src/common.h (struct common locus):
* src/names.c (struct name_elt):
Use intmax_t for line numbers.  All uses changed.
This commit is contained in:
Paul Eggert
2024-08-12 16:18:16 -07:00
parent 9b69d17e24
commit 09aec02e32
3 changed files with 6 additions and 6 deletions

View File

@@ -853,7 +853,7 @@ struct option_locus
{
enum option_source source; /* Option origin */
char const *name; /* File or variable name */
size_t line; /* Number of input line if source is OPTS_FILE */
intmax_t line; /* Number of input line if source is OPTS_FILE */
struct option_locus *prev; /* Previous occurrence of the option of same
class */
};

View File

@@ -206,8 +206,8 @@ names_parse_opt (int key, char *arg, struct argp_state *state)
struct tar_args *args = state->input;
if (args->loc->source == OPTS_FILE)
{
error (0, 0, _("%s:%lu: unrecognized option"), args->loc->name,
(unsigned long) args->loc->line);
error (0, 0, _("%s:%jd: unrecognized option"), args->loc->name,
args->loc->line);
set_exit_status (TAREXIT_FAILURE);
}
return ARGP_ERR_UNKNOWN;
@@ -651,7 +651,7 @@ struct name_elt /* A name_array element. */
struct /* File, if type == NELT_FILE */
{
const char *name;/* File name */
size_t line; /* Input line number */
intmax_t line; /* Input line number */
int term; /* File name terminator in the list */
bool verbatim; /* Verbatim handling of file names: no white-space
trimming, no option processing */

View File

@@ -2224,8 +2224,8 @@ parse_opt (int key, char *arg, struct argp_state *state)
case ARGP_KEY_ERROR:
if (args->loc->source == OPTS_FILE)
error (0, 0, _("%s:%lu: location of the error"), args->loc->name,
(unsigned long) args->loc->line);
error (0, 0, _("%s:%jd: location of the error"), args->loc->name,
args->loc->line);
else if (args->loc->source == OPTS_ENVIRON)
error (0, 0, _("error parsing %s"), args->loc->name);
exit (EX_USAGE);