diff options
Diffstat (limited to 'usr.bin/getopt/getopt.c')
-rw-r--r-- | usr.bin/getopt/getopt.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/usr.bin/getopt/getopt.c b/usr.bin/getopt/getopt.c new file mode 100644 index 000000000000..09036a34b657 --- /dev/null +++ b/usr.bin/getopt/getopt.c @@ -0,0 +1,41 @@ +#include <sys/cdefs.h> +/* + * This material, written by Henry Spencer, was released by him + * into the public domain and is thus not subject to any copyright. + */ + +#include <capsicum_helpers.h> +#include <err.h> +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +int +main(int argc, char *argv[]) +{ + int c; + int status = 0; + + if (caph_limit_stdio() < 0 || caph_enter() < 0) + err(1, "capsicum"); + + 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"); + return status; +} |