From 8ea9beca90c410e12593fedfb6e741dbdf8795d0 Mon Sep 17 00:00:00 2001 From: Mystery Man Date: Tue, 15 Jun 2004 16:50:22 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'mandrakesoft'. --- mdk-stage1/dietlibc/libcruft/getopt_long_only.c | 108 ------------------------ 1 file changed, 108 deletions(-) delete mode 100644 mdk-stage1/dietlibc/libcruft/getopt_long_only.c (limited to 'mdk-stage1/dietlibc/libcruft/getopt_long_only.c') diff --git a/mdk-stage1/dietlibc/libcruft/getopt_long_only.c b/mdk-stage1/dietlibc/libcruft/getopt_long_only.c deleted file mode 100644 index f12f9f184..000000000 --- a/mdk-stage1/dietlibc/libcruft/getopt_long_only.c +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include - -static void getopterror(int which) { - static char error1[]="Unknown option `-x'.\n"; - static char error2[]="Missing argument for `-x'.\n"; - if (opterr) { - if (which) { - error2[23]=optopt; - write(2,error2,28); - } else { - error1[17]=optopt; - write(2,error1,22); - } - } -} - -int getopt_long_only(int argc, char * const argv[], const char *optstring, - const struct option *longopts, int *longindex) { - static int lastidx=0,lastofs=0; - char *tmp,*arg; - if (optind==0) optind=1; /* whoever started setting optind to 0 should be shot */ -again: - if (optind>argc || !argv[optind] || *argv[optind]!='-' || argv[optind][1]==0) - return -1; - if (argv[optind][1]=='-' && argv[optind][2]==0) { - ++optind; - return -1; - } - if (argv[optind][1]=='-') - arg=argv[optind]+2; - else - arg=argv[optind]+1; - { - char* max=strchr(arg,'='); - const struct option* o; - if (!max) max=arg+strlen(arg); - for (o=longopts; o->name; ++o) { - if (!strncmp(o->name,arg,(size_t)(max-arg))) { /* match */ - if (longindex) *longindex=o-longopts; - if (o->has_arg>0) { - if (*max=='=') - optarg=max+1; - else { - optarg=argv[optind+1]; - if (!optarg && o->has_arg==1) { /* no argument there */ - if (*optstring==':') return ':'; - write(2,"argument required: `",20); - write(2,arg,(size_t)(max-arg)); - write(2,"'.\n",3); - ++optind; - return '?'; - } - ++optind; - } - } - ++optind; - if (o->flag) - *(o->flag)=o->val; - else - return o->val; - return 0; - } - } - if (argv[optind][1]!='-') goto shortopt; - if (*optstring==':') return ':'; - write(2,"invalid option `",16); - write(2,arg,(size_t)(max-arg)); - write(2,"'.\n",3); - ++optind; - return '?'; - } -shortopt: - if (lastidx!=optind) { - lastidx=optind; lastofs=0; - } - optopt=argv[optind][lastofs+1]; - if ((tmp=strchr(optstring,optopt))) { - if (*tmp==0) { /* apparently, we looked for \0, i.e. end of argument */ - ++optind; - goto again; - } - if (tmp[1]==':') { /* argument expected */ - if (tmp[2]==':' || argv[optind][lastofs+2]) { /* "-foo", return "oo" as optarg */ - if (!*(optarg=argv[optind]+lastofs+2)) optarg=0; - goto found; - } - optarg=argv[optind+1]; - if (!optarg) { /* missing argument */ - ++optind; - if (*optstring==':') return ':'; - getopterror(1); - return ':'; - } - ++optind; - } else { - ++lastofs; - return optopt; - } -found: - ++optind; - return optopt; - } else { /* not found */ - getopterror(0); - ++optind; - return '?'; - } -} -- cgit v1.2.1