summaryrefslogtreecommitdiff
path: root/src/user/lib/vendor/getopt/getopt.c
diff options
context:
space:
mode:
authordzwdz2023-08-14 18:51:07 +0200
committerdzwdz2023-08-14 18:51:07 +0200
commit642b5fb0007b64c77d186fcb018d571152ee1d47 (patch)
tree1c466461f3602d306be309a053edae558ef2568e /src/user/lib/vendor/getopt/getopt.c
parent8050069c57b729c18c19b1a03ab6e4bf63b4735e (diff)
reorganization: first steps
Diffstat (limited to 'src/user/lib/vendor/getopt/getopt.c')
-rw-r--r--src/user/lib/vendor/getopt/getopt.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/user/lib/vendor/getopt/getopt.c b/src/user/lib/vendor/getopt/getopt.c
deleted file mode 100644
index 63c9b51..0000000
--- a/src/user/lib/vendor/getopt/getopt.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Adapted from https://github.com/skeeto/getopt by Chris Wellons */
-
-/* A minimal POSIX getopt() implementation in ANSI C
- *
- * This is free and unencumbered software released into the public domain.
- *
- * This implementation supports the convention of resetting the option
- * parser by assigning optind to 0. This resets the internal state
- * appropriately.
- *
- * Ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/getopt.html
- */
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#include "getopt.h"
-
-int optind;
-int opterr = 1;
-int optopt;
-char *optarg;
-
-int
-getopt(int argc, char * const argv[], const char *optstring)
-{
- static int optpos = 1;
- const char *arg;
-
- /* Reset? */
- if (optind == 0) {
- optind = !!argc;
- optpos = 1;
- }
-
- arg = argv[optind];
- if (arg && strcmp(arg, "--") == 0) {
- optind++;
- return -1;
- } else if (!arg || arg[0] != '-' || !isalnum(arg[1])) {
- return -1;
- } else {
- const char *opt = strchr(optstring, arg[optpos]);
- optopt = arg[optpos];
- if (!opt) {
- if (opterr && *optstring != ':')
- fprintf(stderr, "%s: illegal option: %c\n", argv[0], optopt);
- return '?';
- } else if (opt[1] == ':') {
- if (arg[optpos + 1]) {
- optarg = (char *)arg + optpos + 1;
- optind++;
- optpos = 1;
- return optopt;
- } else if (argv[optind + 1]) {
- optarg = (char *)argv[optind + 1];
- optind += 2;
- optpos = 1;
- return optopt;
- } else {
- if (opterr && *optstring != ':')
- fprintf(stderr,
- "%s: option requires an argument: %c\n",
- argv[0], optopt);
- return *optstring == ':' ? ':' : '?';
- }
- } else {
- if (!arg[++optpos]) {
- optind++;
- optpos = 1;
- }
- return optopt;
- }
- }
-}
-