e2f34b81f1
Arguments with whitespaces are easy to fix, but in combination with shell metachars that should not be evaluated it is very hard, probably impossible to fix without going to a line-oriented solution. Next time I will believe Henry Spencer when he says "this looks easy to fix but isn't".
31 lines
556 B
C
31 lines
556 B
C
#include <stdio.h>
|
|
|
|
main(argc, argv)
|
|
int argc;
|
|
char *argv[];
|
|
{
|
|
extern int optind;
|
|
extern char *optarg;
|
|
int c;
|
|
int status = 0;
|
|
|
|
optind = 2; /* Past the program name and the option letters. */
|
|
while ((c = getopt(argc, argv, argv[1])) != -1)
|
|
switch (c) {
|
|
case '?':
|
|
status = 1; /* getopt routine gave message */
|
|
break;
|
|
default:
|
|
if (optarg != NULL)
|
|
printf(" -%c %s", c, optarg);
|
|
else
|
|
printf(" -%c", c);
|
|
break;
|
|
}
|
|
printf(" --");
|
|
for (; optind < argc; optind++)
|
|
printf(" %s", argv[optind]);
|
|
printf("\n");
|
|
exit(status);
|
|
}
|