summaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2014-02-15 08:36:49 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-02-14 22:45:07 -0800
commit4b949936c26d5689c331d7c7e25b8c130e97c0e5 (patch)
tree2ea19c1e71239ef7b7f3e433cae7d76d49a307ce /file.c
parente49bd86f5e6d96161eb2518f23ce64f7969a4375 (diff)
downloadsubsurface-4b949936c26d5689c331d7c7e25b8c130e97c0e5.tar.gz
Refactoring sqlite import support
Move the opening of DB connection to occur before DC dependent code. This way we can try to detect log software before calling the DC dependent import function. This prepares for adding support for Shearwater sqlite database. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'file.c')
-rw-r--r--file.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/file.c b/file.c
index 8157e9a60..b218a13e2 100644
--- a/file.c
+++ b/file.c
@@ -153,7 +153,20 @@ static int try_to_xslt_open_csv(const char *filename, struct memblock *mem, char
static int try_to_open_db(const char *filename, struct memblock *mem, char **error)
{
- return parse_dm4_buffer(filename, mem->buffer, mem->size, &dive_table, error);
+ sqlite3 *handle;
+ int retval;
+
+ retval = sqlite3_open(filename, &handle);
+
+ if (retval) {
+ fprintf(stderr, translate("gettextFromC","Database connection failed '%s'.\n"), filename);
+ return 1;
+ }
+
+ retval = parse_dm4_buffer(handle, filename, mem->buffer, mem->size, &dive_table, error);
+ sqlite3_close(handle);
+
+ return retval;
}
timestamp_t parse_date(const char *date)