diff --git a/websh.c b/websh.c index 9d62820..742adc7 100644 --- a/websh.c +++ b/websh.c @@ -10,12 +10,16 @@ #include #include #include +#include #include #include static const char *pname; +static const char *word; +static const char *tag; + void usage(void) { fprintf(stderr, "Usage: websh [-e] [-h] [-s WORD:TAG]\n"); @@ -29,6 +33,7 @@ void parse(int argc, char *argv[]) int sFlag = 0; int optInd = 0; + char *sArg; while ((optInd = getopt(argc, argv, "ehs:")) != -1) { switch (optInd) { @@ -51,7 +56,7 @@ void parse(int argc, char *argv[]) usage(); } else { sFlag = 1; - char *sArg = optarg; + sArg = optarg; } break; case '?': @@ -61,7 +66,19 @@ void parse(int argc, char *argv[]) } } - + + char *token; + int i = 0; + while ((token = strsep(&sArg, ":"))) { + if (i == 2) + usage(); + if (i == 0) { + word = token; + } else { + tag = token; + } + i++; + } pname = argv[0]; }