Index: expr.y =================================================================== RCS file: /home/joerg/repo/netbsd/src/bin/expr/expr.y,v retrieving revision 1.34 diff -u -p -r1.34 expr.y --- expr.y 30 Apr 2008 13:39:13 -0000 1.34 +++ expr.y 20 Jan 2009 12:56:52 -0000 @@ -440,19 +440,25 @@ yyerror(const char *fmt, ...) va_end(arg); } +static void +usage(void) +{ + (void)fprintf(stderr, "usage: %s expression\n", getprogname()); + exit(2); +} + int main(int argc, const char * const *argv) { setprogname(argv[0]); (void)setlocale(LC_ALL, ""); - if (argc == 1) { - (void)fprintf(stderr, "usage: %s expression\n", - getprogname()); - exit(2); - } - - av = argv + 1; + if (argc > 1 && strcmp(argv[1], "--")) + av = argv + 1; + else if (argc > 2) + av = argv + 2; + else + usage(); exit(yyparse()); /* NOTREACHED */