diff --git a/c_src/esqlite_nif.c b/c_src/esqlite_nif.c index b4019c3..007ae2f 100644 --- a/c_src/esqlite_nif.c +++ b/c_src/esqlite_nif.c @@ -6,6 +6,31 @@ #include "sqlite3.h" +#define MAX_PATHNAME 512 /* unfortunately not in sqlite.h */ + +/* + * Open database. Expects utf-8 input +*/ +static ERL_NIF_TERM eisqlite_open_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) +{ + int rc; + char filename[MAX_PATHNAME]; + sqlite3 + + /* TODO ignore the utf-8 stuff for now */ + if(!enif_get_string(env, argv[0], filename, MAX_PATHNAME, ERL_NIF_LATIN1)) + return enif_make_badarg(env); + + + rc = sqlite3_open(filename, &db); + if( rc ) { + fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); + sqlite3_close(db); + /* maak een error tuple */ + } + +} + static int on_load(ErlNifEnv* env, void** priv, ERL_NIF_TERM info) { diff --git a/rebar.config b/rebar.config index 26d8ce6..4bf4d0d 100644 --- a/rebar.config +++ b/rebar.config @@ -1,3 +1,3 @@ -{vrequire_otp_vsn, "R14"}. +{require_otp_vsn, "R14"}. {port_sources, ["c_src/*.c"]}. {so_name, "esqlite_nif.so"}.