Looking carefully at the switch () {...} structure in main.c it seems that the option "-f" requires an argument: iff the argument to "-f" is optional I would write:
awk [-sae] [-V] [-d[n]] [-F fs] [-v var=value] [prog | -f [progfile]] file ... But it does not look as an optional argument, the case block for "-f" decrements the argument counter and increments the argument vector. I think that the synopsis for awk(1) should be awk [-sae] [-V] [-d[n]] [-F fs] [-v var=value] [prog | -f progfile] file ... instead. Am I wrong? I will be glad to provide a patch for this small bug. Just awaiting for some feedback. Igor.