diff --git a/README b/README index 95226de..d785040 100644 --- a/README +++ b/README @@ -1,11 +1,14 @@ Este programa necesita: -libxml2 -glibc compilado con iconv -gcc compilado con C11 + libxml2 + glibc compilado con iconv + gcc compilado con C11 Para compilar el programa: -./configure -make + ./configure + make Para instalar el programa: -make install + make install + +Uso del programa: + generarxml --config diff --git a/src/Makefile b/src/Makefile index 1119d8f..407c3a4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,4 +1,4 @@ -# Este makefile es el antiguo y mas limitado +# Este makefile es el antiguo y mas limitado, no puede detectar el entorno para verificar que la compilación va a funcionar CC=gcc BINDIR=out diff --git a/src/main.c b/src/main.c index cb1c0e0..cabe45a 100644 --- a/src/main.c +++ b/src/main.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "main.h" #include "readconfig.h" #include "readfile.h" @@ -15,6 +16,7 @@ int main(int argc, char **argv) { char *config_file = NULL; int status; int i; + bool meaning = false; atexit(cleanup); @@ -32,11 +34,11 @@ int main(int argc, char **argv) { #ifdef DEBUG printf("\targ %d: %s\n", i, argv[i]); #endif - if ((strcmp(argv[1], "-c") == 0 || strcmp(argv[1], "--config") == 0) && config_file == NULL) { + if ((strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--config") == 0) && config_file == NULL) { if (argc > i + 1) { i++; - config_file = (char *) malloc((strlen(argv[2]) + 1) * sizeof(char *)); - strcpy(config_file, argv[2]); + config_file = (char *) malloc((strlen(argv[i]) + 1) * sizeof(char *)); + strcpy(config_file, argv[i]); #ifdef DEBUG printf("\targ %d: %s\n", i, argv[i]); #endif @@ -48,6 +50,9 @@ int main(int argc, char **argv) { printusage(1); return 1; } + } + else if ((strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--significado") == 0) && meaning == false) { + meaning = true; } else { /* Incorrect usage */ @@ -59,6 +64,15 @@ int main(int argc, char **argv) { } } + if (meaning == true) { + if (config_file != NULL) { + free(config_file); + config_file = NULL; + } + printf("El significado de la vida es: %d\n", MEANING); + return 0; + } + config = (CONFIG *) malloc(sizeof(CONFIG)); config->file = NULL; config->bible = NULL; @@ -147,4 +161,5 @@ void printusage(int error) { printf("usage: generarxml [opciones] \n"); printf(" -c, --config archivo de configuración\n"); + printf(" -s, --significado imprimir el significado de la vida\n"); } diff --git a/src/main.h b/src/main.h index 18a6b32..f3f5e98 100644 --- a/src/main.h +++ b/src/main.h @@ -1,3 +1,5 @@ +#define MEANING 42 + struct configuration { char *file; char *bible; diff --git a/src/readfile.c b/src/readfile.c index 12a0194..c75d320 100644 --- a/src/readfile.c +++ b/src/readfile.c @@ -35,6 +35,11 @@ int readfile(CONFIG *config) { printf("Start chapter: %d\nEnd chapter: %d\n", start, end); #endif + if (end != 0 && start > end) { + printf("Archivo de configuración invalido!"); + return 1; + } + i = 0; file = fopen("Biblia.txt", "r");