diff --git a/src/args-parser.c b/src/args-parser.c new file mode 100644 index 0000000..0ec2b83 --- /dev/null +++ b/src/args-parser.c @@ -0,0 +1,20 @@ +#include +#include "args-parser.h" + +int parse_arg(const char *arg) { + // Argumento iniciado com '-'... + if (arg[0] == '-') { + if (strcmp(arg, "-a") == 0) { + return OPT_APPEND; + } else if (strcmp(arg, "-o") == 0) { + return OPT_OVERWRITE; + } else if (strcmp(arg, "-h") == 0) { + return OPT_HELP; + } else { + // Argumento inválido! + return OPT_ERROR; + } + } + // Sem traço é nome de arquivo... + return OPT_NAME; +} diff --git a/src/args-parser.h b/src/args-parser.h new file mode 100644 index 0000000..c00ee72 --- /dev/null +++ b/src/args-parser.h @@ -0,0 +1,17 @@ +/* + * Strings definidas em messages.c + */ +#ifndef ARGS_PARSER_H +#define ARGS_PARSER_H + +typedef enum { + OPT_ERROR = -1, + OPT_NAME, + OPT_OVERWRITE, + OPT_APPEND, + OPT_HELP +} Option; + +int parse_arg(const char *arg); + +#endif // ARGS_PARSER_H diff --git a/src/hdoc.c b/src/hdoc.c index 60e2e9b..98e97ec 100644 --- a/src/hdoc.c +++ b/src/hdoc.c @@ -1,22 +1,12 @@ /* - * Compilar com: gcc -Wall hdoc.c messages.c -o hdoc + * Compilar com: gcc -Wall hdoc.c messages.c args-parser.c -o hdoc */ #include #include -#include #include #include "messages.h" - -typedef enum { - OPT_ERROR = -1, - OPT_NAME, - OPT_OVERWRITE, - OPT_APPEND, - OPT_HELP -} Option; - -int parse_arg(char *arg); +#include "args-parser.h" int main(int argc, char **argv) { char *file = NULL; @@ -77,21 +67,3 @@ int main(int argc, char **argv) { return EXIT_SUCCESS; } - -int parse_arg(char *arg) { - // Argumento iniciado com '-'... - if (arg[0] == '-') { - if (strcmp(arg, "-a") == 0) { - return OPT_APPEND; - } else if (strcmp(arg, "-o") == 0) { - return OPT_OVERWRITE; - } else if (strcmp(arg, "-h") == 0) { - return OPT_HELP; - } else { - // Argumento inválido! - return OPT_ERROR; - } - } - // Sem traço é nome de arquivo... - return OPT_NAME; -}