diff --git a/src/mysql_backend/Makefile b/src/mysql_backend/Makefile index eb3b9b4..2bbada0 100644 --- a/src/mysql_backend/Makefile +++ b/src/mysql_backend/Makefile @@ -1,18 +1,16 @@ -CFLAGS=-D_WITH_INTERACTIVE_TERMINAL -ggdb -Wall +CFLAGS=-D_WITH_INTERACTIVE_TERMINAL `pkg-config --cflags mysqlclient` -ggdb -Wall +LDFLAGS=`pkg-config --libs mysqlclient` -all: test +all: test mysql_backend.a clean: - rm -f *.o mysql_backend_test + rm -f *.o *.a mysql_backend_test test: mysql_backend_test -mysql_backend.o: mysql_backend.c - $(CC) $(CFLAGS) `pkg-config --cflags mysqlclient` -c -o $@ $? +mysql_backend.a: mysql_backend.o mysql_backend_utils.o + $(AR) -rcv $@ $? -mysql_backend_utils.o: mysql_backend_utils.c - $(CC) $(CFLAGS) `pkg-config --cflags mysqlclient` -c -o $@ $? - -mysql_backend_test: mysql_backend.c mysql_backend_utils.o +mysql_backend_test: mysql_backend.c mysql_backend_utils.c $(CC) $(CFLAGS) -D_TEST `pkg-config --cflags --libs mysqlclient` -o $@ $? diff --git a/src/mysql_backend/mysql_backend.c b/src/mysql_backend/mysql_backend.c index f364ec2..31f0fa2 100644 --- a/src/mysql_backend/mysql_backend.c +++ b/src/mysql_backend/mysql_backend.c @@ -79,7 +79,7 @@ int mysql_backend_write_record(void *ctx, char **error, ...) { mysql_backend_ctx_t *c; char *record = NULL; - int ret=0, size=0; + int size=0; va_list ap; if (!ctx) { diff --git a/src/mysql_backend/mysql_backend.h b/src/mysql_backend/mysql_backend.h index ad675e4..5626025 100644 --- a/src/mysql_backend/mysql_backend.h +++ b/src/mysql_backend/mysql_backend.h @@ -7,7 +7,7 @@ void *mysql_backend_init(char **error); int mysql_backend_open_records_base(void *ctx, char **error, const char *uri); int mysql_backend_write_record(void *ctx, char **error, va_list ap); -int mysql_backend_set_format(void *ctx, char **error, char *format); +int mysql_backend_set_format(void *ctx, char **error, const char *format); int mysql_backend_close_records_base(void *ctx); #endif diff --git a/src/mysql_backend/mysql_backend_utils.c b/src/mysql_backend/mysql_backend_utils.c index 3a721b9..503c202 100644 --- a/src/mysql_backend/mysql_backend_utils.c +++ b/src/mysql_backend/mysql_backend_utils.c @@ -122,7 +122,7 @@ failed: return NULL; } -#ifdef _TEST +#ifdef _TEST_URI char *tests[7][2] = { { "Every info provided", "mysql://leon:bruxelles@lafrite:1024/STOCK_PATATE.avril" }, diff --git a/src/smart_records.c b/src/smart_records.c index 8f3da98..07b644e 100644 --- a/src/smart_records.c +++ b/src/smart_records.c @@ -6,7 +6,7 @@ #include "smart_records_internals.h" #ifdef _HAS_MYSQL -#include "mysql_backend.h" +#include "mysql_backend/mysql_backend.h" #endif #ifdef _HAS_SQLITE @@ -18,7 +18,7 @@ #endif #ifdef _HAS_CSV -#include "csv_backend.h" +#include "csv_backend/csv_backend.h" #endif @@ -42,11 +42,10 @@ int smart_records_open_base(smart_records_ctx_t *ctx, char **error, const char * ctx->write_record = mysql_backend_write_record; ctx->set_format = mysql_backend_set_format; ctx->close_records_base = mysql_backend_close_records_base; - if ((ctx->backend_ctx = mysql_backend_init(error) == NULL) + if (!(ctx->backend_ctx = mysql_backend_init(error))) goto failed; #else set_error_and_fails("built without support for mysql:// URIs"); - goto failed; #endif } @@ -66,6 +65,12 @@ int smart_records_open_base(smart_records_ctx_t *ctx, char **error, const char * else if(!strncmp("csv://", uri, len_uri < 8 ? len_uri : 8)) { #ifdef _HAS_CSV + ctx->backend_ctx = NULL; + ctx->write_record = csv_backend_write_record; + ctx->set_format = csv_backend_set_format; + ctx->close_records_base = csv_backend_close_records_base; + if (!(ctx->backend_ctx = csv_backend_init(error))) + goto failed; #else set_error_and_fails("built without suppor fort csv:// URIs"); #endif @@ -93,3 +98,8 @@ int smart_records_write(smart_records_ctx_t *ctx, char **error, va_list ap) { return ctx->write_record(ctx, error, ap); } + +int main(int ac, char **av) +{ + printf("coucouĀ !\n"); +} diff --git a/src/smart_records_internals.h b/src/smart_records_internals.h index 0c7bb83..2515821 100644 --- a/src/smart_records_internals.h +++ b/src/smart_records_internals.h @@ -7,10 +7,10 @@ #define set_error_and_fails(x) { if (error) *error = strdup(x); goto failed; } typedef struct smart_records_ctx_t { - void *CTX; - int (*set_format) (struct smart_records_ctx_t *ctx, char **error, const char *fmt); - int (*write_record) (struct smart_records_ctx_t *ctx, char **error, va_list ap); - int (*close_records_base) (struct smart_records_ctx_t *ctx); + void *backend_ctx; + int (*set_format) (void *ctx, char **error, const char *fmt); + int (*write_record) (void *ctx, char **error, va_list ap); + int (*close_records_base) (void *ctx); } smart_records_ctx_t ; #endif