[Gnucash-changes] r14206 - gnucash/trunk - force-exit gnucash if a
required library can't be loaded.
Derek Atkins
warlord at cvs.gnucash.org
Fri May 26 15:45:27 EDT 2006
Author: warlord
Date: 2006-05-26 15:45:26 -0400 (Fri, 26 May 2006)
New Revision: 14206
Trac: http://svn.gnucash.org/trac/changeset/14206
Modified:
gnucash/trunk/ChangeLog
gnucash/trunk/src/engine/gnc-engine.c
Log:
force-exit gnucash if a required library can't be loaded.
Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog 2006-05-26 15:41:38 UTC (rev 14205)
+++ gnucash/trunk/ChangeLog 2006-05-26 19:45:26 UTC (rev 14206)
@@ -2,6 +2,9 @@
* src/engine/gnc-engine.c: load the qsf backend from the right place.
+ * src/engine/gnc-engine.c:
+ force-exit gnucash if a required library can't be loaded.
+
2006-05-26 Christian Stimming <stimming at tuhh.de>
* src/import-export/hbci/druid-hbci-initial.c: Simplify calling
Modified: gnucash/trunk/src/engine/gnc-engine.c
===================================================================
--- gnucash/trunk/src/engine/gnc-engine.c 2006-05-26 15:41:38 UTC (rev 14205)
+++ gnucash/trunk/src/engine/gnc-engine.c 2006-05-26 19:45:26 UTC (rev 14206)
@@ -78,12 +78,13 @@
static struct {
const gchar* dir;
const gchar* lib;
+ gboolean required;
} libs[] = {
- { QOF_LIB_DIR, QSF_BACKEND_LIB },
- { GNC_LIBDIR, GNC_LIB_NAME },
+ { QOF_LIB_DIR, QSF_BACKEND_LIB, FALSE },
+ { GNC_LIBDIR, GNC_LIB_NAME, TRUE },
/* shouldn't the PG gnc-module do this instead of US doing it? */
- { GNC_LIBDIR, "gnc-backend-postgres" },
- { NULL, NULL } }, *lib;
+ { GNC_LIBDIR, "gnc-backend-postgres", FALSE },
+ { NULL, NULL, FALSE } }, *lib;
gnc_engine_init_hook_t hook;
GList * cur;
@@ -103,11 +104,23 @@
/* Now register our core types */
cashobjects_register();
- for (lib = libs; lib->dir && lib->lib ; lib++) {
+ for (lib = libs; lib->dir && lib->lib ; lib++)
+ {
if (qof_load_backend_library(lib->dir, lib->lib))
+ {
engine_is_initialized = 1;
+ }
else
- g_message("failed to load %s from %s", lib->lib, lib->dir);
+ {
+ g_message("failed to load %s from %s\n", lib->lib, lib->dir);
+ /* If this is a required library, stop now! */
+ if (lib->required)
+ {
+ g_message("required library %s not found. Exiting.\n",
+ lib->lib);
+ g_assert(FALSE);
+ }
+ }
}
/* call any engine hooks */
More information about the gnucash-changes
mailing list