From 0082116cf08c0d44c7e31f3c38ad5b3df24d8073 Mon Sep 17 00:00:00 2001 From: Blau Araujo Date: Fri, 20 Jun 2025 09:16:56 -0300 Subject: [PATCH] =?UTF-8?q?limpeza=20do=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hdoc.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/hdoc.c b/src/hdoc.c index 84182be..60e2e9b 100644 --- a/src/hdoc.c +++ b/src/hdoc.c @@ -16,67 +16,50 @@ typedef enum { OPT_HELP } Option; -// Trata argumentos recebidos int parse_arg(char *arg); int main(int argc, char **argv) { - char *file = NULL; char *mode = NULL; - // Verificação do número de argumentos... - if (argc < 2 || argc > 3) { - // Só pode haver 2 ou 3 argumentos... - return print_error_usage(MSG_ARGC_ERROR, argv[0]); - } else if (argc == 2) { - // Invocação com 2 argumentos... + if (argc == 2) { switch (parse_arg(argv[1])) { case OPT_HELP: - // Imprime ajuda e termina... return print_usage(EXIT_SUCCESS, argv[0]); case OPT_NAME: - // Arquivo existe? if (access(argv[1], F_OK) == 0) { - // Sem opções, só arquivos novos! return print_error_usage(MSG_FILE_EXISTS, argv[0]); } - // Nome do novo arquivo... file = argv[1]; mode = "w"; break; default: - // Nome do arquivo não pode começar com '-'! return print_error_usage(MSG_INVALID_ARG, argv[0]); } - } else { - // Invocação com 3 argumentos... + } else if (argc == 3) { for (int i = 1; argv[i] != NULL; i++) { switch (parse_arg(argv[i])) { case OPT_NAME: - // Só pode haver uma definição de nome... if (file == NULL) file = argv[i]; break; case OPT_OVERWRITE: - // Só pode haver uma definição de modo... if (mode == NULL) mode = "w"; break; case OPT_APPEND: - // Só pode haver uma definição de modo... if (mode == NULL) mode = "a"; break; case OPT_HELP: - // Exibe ajuda e termina com sucesso... return print_usage(EXIT_SUCCESS, argv[0]); case OPT_ERROR: - // Algum dos argumentos é inválido... print_error_fmt(MSG_INVALID_FMT, argv[i]); return print_usage(EXIT_FAILURE, argv[0]); } } - // Tem que haver um nome e um modo depois do loop... if (file == NULL || mode == NULL) { return print_error_usage(MSG_INCORRECT_ALL, argv[0]); } + } else { + return print_error_usage(MSG_ARGC_ERROR, argv[0]); } FILE *fstr = fopen(file, mode);