xref: /freebsd/usr.bin/getopt/getopt.c (revision 62f882d620bdfa783c01626012d69f468ba34e28)
162f882d6SWarner Losh /* $FreeBSD$ */
262f882d6SWarner Losh 
3b37b9a6dSNate Williams #include <stdio.h>
462f882d6SWarner Losh #include <unistd.h>
5b37b9a6dSNate Williams 
6b37b9a6dSNate Williams main(argc, argv)
7b37b9a6dSNate Williams int argc;
8b37b9a6dSNate Williams char *argv[];
9b37b9a6dSNate Williams {
10b37b9a6dSNate Williams 	int c;
11b37b9a6dSNate Williams 	int status = 0;
12b37b9a6dSNate Williams 
13b37b9a6dSNate Williams 	optind = 2;	/* Past the program name and the option letters. */
141c8af878SWarner Losh 	while ((c = getopt(argc, argv, argv[1])) != -1)
15b37b9a6dSNate Williams 		switch (c) {
16b37b9a6dSNate Williams 		case '?':
17b37b9a6dSNate Williams 			status = 1;	/* getopt routine gave message */
18b37b9a6dSNate Williams 			break;
19b37b9a6dSNate Williams 		default:
20b37b9a6dSNate Williams 			if (optarg != NULL)
210ab2a7aeSMartin Cracauer 				printf(" -%c %s", c, optarg);
22b37b9a6dSNate Williams 			else
23b37b9a6dSNate Williams 				printf(" -%c", c);
24b37b9a6dSNate Williams 			break;
25b37b9a6dSNate Williams 		}
26b37b9a6dSNate Williams 	printf(" --");
27b37b9a6dSNate Williams 	for (; optind < argc; optind++)
28b37b9a6dSNate Williams 		printf(" %s", argv[optind]);
29b37b9a6dSNate Williams 	printf("\n");
30b37b9a6dSNate Williams 	exit(status);
31b37b9a6dSNate Williams }
32