(getargs): When there are too few operands, report the last one. When

there are too many, report the first extra one.  This is how diffutils
does it.
This commit is contained in:
Paul Eggert
2002-10-21 18:15:13 +00:00
parent 92a060fd6a
commit a4b6efd473

View File

@@ -1,5 +1,5 @@
/* Parse command line arguments for bison. /* Parse command line arguments for bison.
Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002 Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -410,11 +410,12 @@ getargs (int argc, char *argv[])
exit (1); exit (1);
} }
if (optind != argc - 1) if (argc - optind != 1)
{ {
error (0, 0, if (argc - optind < 1)
(optind == argc error (0, 0, _("missing operand after `%s'"), argv[argc - 1]);
? _("too few arguments") : _("too many arguments"))); else
error (0, 0, _("extra operand `%s'"), argv[optind + 1]);
usage (EXIT_FAILURE); usage (EXIT_FAILURE);
} }