diff --git a/websh.c b/websh.c index 742adc7..d17c114 100644 --- a/websh.c +++ b/websh.c @@ -17,6 +17,10 @@ static const char *pname; +static int eFlag = 0; +static int hFlag = 0; +static int sFlag = 0; + static const char *word; static const char *tag; @@ -26,12 +30,26 @@ void usage(void) exit(EXIT_FAILURE); } +void parsesArg(char *sArg) +{ + char *token; + int i = 0; + while ((token = strsep(&sArg, ":"))) { + if (strcmp(token, "") == 0) + usage(); + if (i == 2) + usage(); + if (i == 0) { + word = token; + } else { + tag = token; + } + i++; + } +} + void parse(int argc, char *argv[]) { - int eFlag = 0; - int hFlag = 0; - int sFlag = 0; - int optInd = 0; char *sArg; @@ -57,6 +75,7 @@ void parse(int argc, char *argv[]) } else { sFlag = 1; sArg = optarg; + parsesArg(sArg); } break; case '?': @@ -67,19 +86,6 @@ 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]; }