The meaning of line.

This commit is contained in:
Chris Cromer 2016-10-17 11:31:42 -03:00
parent c1e9a02032
commit 9c97e62e04
5 changed files with 35 additions and 10 deletions

15
README
View File

@ -1,11 +1,14 @@
Este programa necesita: Este programa necesita:
libxml2 libxml2
glibc compilado con iconv glibc compilado con iconv
gcc compilado con C11 gcc compilado con C11
Para compilar el programa: Para compilar el programa:
./configure ./configure
make make
Para instalar el programa: Para instalar el programa:
make install make install
Uso del programa:
generarxml --config <archivo>

View File

@ -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 CC=gcc
BINDIR=out BINDIR=out

View File

@ -2,6 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <libxml/tree.h> #include <libxml/tree.h>
#include <stdbool.h>
#include "main.h" #include "main.h"
#include "readconfig.h" #include "readconfig.h"
#include "readfile.h" #include "readfile.h"
@ -15,6 +16,7 @@ int main(int argc, char **argv) {
char *config_file = NULL; char *config_file = NULL;
int status; int status;
int i; int i;
bool meaning = false;
atexit(cleanup); atexit(cleanup);
@ -32,11 +34,11 @@ int main(int argc, char **argv) {
#ifdef DEBUG #ifdef DEBUG
printf("\targ %d: %s\n", i, argv[i]); printf("\targ %d: %s\n", i, argv[i]);
#endif #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) { if (argc > i + 1) {
i++; i++;
config_file = (char *) malloc((strlen(argv[2]) + 1) * sizeof(char *)); config_file = (char *) malloc((strlen(argv[i]) + 1) * sizeof(char *));
strcpy(config_file, argv[2]); strcpy(config_file, argv[i]);
#ifdef DEBUG #ifdef DEBUG
printf("\targ %d: %s\n", i, argv[i]); printf("\targ %d: %s\n", i, argv[i]);
#endif #endif
@ -48,6 +50,9 @@ int main(int argc, char **argv) {
printusage(1); printusage(1);
return 1; return 1;
} }
}
else if ((strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--significado") == 0) && meaning == false) {
meaning = true;
} }
else { else {
/* Incorrect usage */ /* 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 = (CONFIG *) malloc(sizeof(CONFIG));
config->file = NULL; config->file = NULL;
config->bible = NULL; config->bible = NULL;
@ -147,4 +161,5 @@ void printusage(int error) {
printf("usage: generarxml [opciones] \n"); printf("usage: generarxml [opciones] \n");
printf(" -c, --config <archivo> archivo de configuración\n"); printf(" -c, --config <archivo> archivo de configuración\n");
printf(" -s, --significado imprimir el significado de la vida\n");
} }

View File

@ -1,3 +1,5 @@
#define MEANING 42
struct configuration { struct configuration {
char *file; char *file;
char *bible; char *bible;

View File

@ -35,6 +35,11 @@ int readfile(CONFIG *config) {
printf("Start chapter: %d\nEnd chapter: %d\n", start, end); printf("Start chapter: %d\nEnd chapter: %d\n", start, end);
#endif #endif
if (end != 0 && start > end) {
printf("Archivo de configuración invalido!");
return 1;
}
i = 0; i = 0;
file = fopen("Biblia.txt", "r"); file = fopen("Biblia.txt", "r");