From: Paul Eggert Date: Mon, 21 Oct 2002 18:15:13 +0000 (+0000) Subject: (getargs): When there are too few operands, report the last one. When X-Git-Tag: BISON-1_875~417 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/a4b6efd473282a0f4bc949da790cadafe2791f1d?hp=92a060fd6a2f43ffe7270c8a41ae4fa1bf0bbd0a (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. --- diff --git a/src/getargs.c b/src/getargs.c index fc8ac9b9..450a9fa8 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -1,5 +1,5 @@ /* 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. This file is part of Bison, the GNU Compiler Compiler. @@ -410,11 +410,12 @@ getargs (int argc, char *argv[]) exit (1); } - if (optind != argc - 1) + if (argc - optind != 1) { - error (0, 0, - (optind == argc - ? _("too few arguments") : _("too many arguments"))); + if (argc - optind < 1) + error (0, 0, _("missing operand after `%s'"), argv[argc - 1]); + else + error (0, 0, _("extra operand `%s'"), argv[optind + 1]); usage (EXIT_FAILURE); }