[Gnucash-changes] r14198 - gnucash/trunk - Merge 'misc-backend' -r 14160:14184 into trunk.

Chris Shoemaker chris at cvs.gnucash.org
Thu May 25 20:10:37 EDT 2006


Author: chris
Date: 2006-05-25 20:10:35 -0400 (Thu, 25 May 2006)
New Revision: 14198
Trac: http://svn.gnucash.org/trac/changeset/14198

Modified:
   gnucash/trunk/ChangeLog
   gnucash/trunk/lib/libqof/backend/file/Makefile.am
   gnucash/trunk/lib/libqof/backend/file/qof-backend-qsf.h
   gnucash/trunk/lib/libqof/backend/file/qsf-backend.c
   gnucash/trunk/lib/libqof/qof/guid.c
   gnucash/trunk/lib/libqof/qof/qof.h
   gnucash/trunk/lib/libqof/qof/qofbackend-p.h
   gnucash/trunk/lib/libqof/qof/qofbackend.c
   gnucash/trunk/lib/libqof/qof/qofbackend.h
   gnucash/trunk/lib/libqof/qof/qofbook.c
   gnucash/trunk/lib/libqof/qof/qofsession-p.h
   gnucash/trunk/lib/libqof/qof/qofsession.c
   gnucash/trunk/lib/libqof/qof/qofsession.h
   gnucash/trunk/lib/libqof/qof/qofutil.c
   gnucash/trunk/lib/libqof/qof/qofutil.h
   gnucash/trunk/src/backend/file/gnc-backend-file.c
   gnucash/trunk/src/backend/file/gnc-backend-file.h
   gnucash/trunk/src/backend/file/test/test-load-backend.c
   gnucash/trunk/src/backend/file/test/test-load-xml2.c
   gnucash/trunk/src/backend/postgres/Makefile.am
   gnucash/trunk/src/backend/postgres/PostgresBackend.c
   gnucash/trunk/src/backend/postgres/PostgresBackend.h
   gnucash/trunk/src/backend/postgres/test/test-db.c
   gnucash/trunk/src/backend/postgres/test/test-load-backend.c
   gnucash/trunk/src/backend/postgres/test/test-period.c
   gnucash/trunk/src/engine/Account.c
   gnucash/trunk/src/engine/Makefile.am
   gnucash/trunk/src/engine/Period.c
   gnucash/trunk/src/engine/Transaction.c
   gnucash/trunk/src/engine/gnc-commodity.h
   gnucash/trunk/src/engine/gnc-engine.c
   gnucash/trunk/src/engine/gnc-engine.h
   gnucash/trunk/src/engine/gnc-pricedb.c
   gnucash/trunk/src/engine/gnc-session-scm.c
   gnucash/trunk/src/engine/gnc-session-scm.h
   gnucash/trunk/src/engine/gw-engine-spec.scm
   gnucash/trunk/src/gnome-utils/gnc-file.c
   gnucash/trunk/src/gnome-utils/gnc-html-graph-gog.c
   gnucash/trunk/src/gnome-utils/gnc-main-window.c
Log:
   Merge 'misc-backend' -r 14160:14184 into trunk.
   This includes the now semi-functional postgres backend.


Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/ChangeLog	2006-05-26 00:10:35 UTC (rev 14198)
@@ -15,12 +15,125 @@
 	* configure.in: Deactivate --enable-sql because PostgreSQL backend
 	is still broken and we can't fix it before 2.0.0; bug#332251.
 
+r14181 | chris | 2006-05-24 18:57:43 -0400 (Wed, 24 May 2006) | 3 lines
+
+   M /gnucash/branches/misc-backend/lib/libqof/qof/guid.c
+
+   The postgres backend depends on the value of the null guid, so revert it
+   to its 1.8 value.
+
 r14180 | chris | 2006-05-24 18:54:03 -0400 (Wed, 24 May 2006) | 2 lines
 
    M /gnucash/trunk/lib/libqof/qof/gnc-date.c
 
    Consistently pad date formats with zeros instead of spaces.
 
+r14170 | chris | 2006-05-23 23:55:35 -0400 (Tue, 23 May 2006) | 2 lines
+
+   M /gnucash/branches/misc-backend/src/backend/postgres/Makefile.am
+   M /gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c
+   M /gnucash/branches/misc-backend/src/engine/Account.c
+   M /gnucash/branches/misc-backend/src/engine/gnc-commodity.h
+
+   Trivial comments/cleanups.
+
+r14169 | chris | 2006-05-23 23:53:52 -0400 (Tue, 23 May 2006) | 2 lines
+
+   M /gnucash/branches/misc-backend/src/gnome-utils/gnc-html-graph-gog.c
+
+   Clarify unused parameters.
+
+r14168 | chris | 2006-05-23 23:48:00 -0400 (Tue, 23 May 2006) | 3 lines
+
+   M /gnucash/branches/misc-backend/src/gnome-utils/gnc-file.c
+
+   There's no need to rerun the book-saved callbacks in gnc_file_save_as()
+   because they've already been run in gnc_file_save()
+
+r14167 | chris | 2006-05-23 23:44:50 -0400 (Tue, 23 May 2006) | 6 lines
+
+   M /gnucash/branches/misc-backend/src/gnome-utils/gnc-file.c
+   M /gnucash/branches/misc-backend/src/gnome-utils/gnc-main-window.c
+
+   Use the session URL instead of file path for 
+     1) determining if we have something open
+     2) determining if we're saving exactly what we have open
+     3) updating the title bar
+
+r14166 | chris | 2006-05-23 23:34:18 -0400 (Tue, 23 May 2006) | 2 lines
+
+   M /gnucash/branches/misc-backend/lib/libqof/backend/file/Makefile.am
+   M /gnucash/branches/misc-backend/lib/libqof/backend/file/qof-backend-qsf.h
+   M /gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qof.h
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c
+
+   Move the QSF backend from custom init to GModule init.
+
+r14165 | chris | 2006-05-23 23:21:09 -0400 (Tue, 23 May 2006) | 18 lines
+
+   M /gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofbackend-p.h
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.c
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.h
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofsession-p.h
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofsession.h
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofutil.c
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofutil.h
+   M /gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.c
+   M /gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.h
+   M /gnucash/branches/misc-backend/src/backend/file/test/test-load-backend.c
+   M /gnucash/branches/misc-backend/src/backend/file/test/test-load-xml2.c
+   M /gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c
+   M /gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.h
+   M /gnucash/branches/misc-backend/src/backend/postgres/test/test-db.c
+   M /gnucash/branches/misc-backend/src/backend/postgres/test/test-load-backend.c
+   M /gnucash/branches/misc-backend/src/backend/postgres/test/test-period.c
+   M /gnucash/branches/misc-backend/src/engine/Period.c
+   M /gnucash/branches/misc-backend/src/engine/Transaction.c
+   M /gnucash/branches/misc-backend/src/engine/gnc-engine.c
+   M /gnucash/branches/misc-backend/src/engine/gnc-engine.h
+   M /gnucash/branches/misc-backend/src/engine/gnc-pricedb.c
+   M /gnucash/branches/misc-backend/src/engine/gnc-session-scm.c
+   M /gnucash/branches/misc-backend/src/engine/gnc-session-scm.h
+   M /gnucash/branches/misc-backend/src/engine/gw-engine-spec.scm
+
+   Decrease coupling between backends and engine:
+   - do not include the (supposedly) private qofbackend-p.h in qofutil.h,
+       instead, include it explictly in only the places that need it.
+   - since backends are GModules, use the GModule module init hook, instead 
+       of rolling our own and using a different function for each backend
+   - loop over a list of backends for the engine to try to load 
+   - include the postgres backend in that list of backends
+   - move qof_session_export() from gnc-engine.c to qofsession.c
+   - publicize qof_backend_set_error() and qof_backend_get_error()
+   - privatize QofBookFileType to gnc-backend-file.c
+
+   Incidental:
+   - Plug a string leak in qofsession.c
+   - drop the unused gnc_session_scm_export code
+   - Drop unimplemented prototype gncBackendInit_file()
+   - Formatting cleanups.
+
+r14164 | chris | 2006-05-23 23:18:14 -0400 (Tue, 23 May 2006) | 2 lines
+
+   M /gnucash/branches/misc-backend/lib/libqof/qof/qofbook.c
+
+   Recognize unequal books as unequal.
+
+r14163 | chris | 2006-05-23 23:16:19 -0400 (Tue, 23 May 2006) | 2 lines
+
+   M /gnucash/branches/misc-backend/src/engine/Makefile.am
+
+   Make sure GNC_LIBDIR is updated when the installation dir changes.
+
+r14161 | chris | 2006-05-23 21:40:39 -0400 (Tue, 23 May 2006) | 2 lines
+
+   A /gnucash/branches/misc-backend (from /gnucash/trunk:14160)
+
+   Branched from trunk at r14160, hoping postgres will work again someday... 
+
 r14159 | chris | 2006-05-23 21:25:30 -0400 (Tue, 23 May 2006) | 4 lines
 
    M /gnucash/trunk/lib/guile-www/cgi.scm

Modified: gnucash/trunk/lib/libqof/backend/file/Makefile.am
===================================================================
--- gnucash/trunk/lib/libqof/backend/file/Makefile.am	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/backend/file/Makefile.am	2006-05-26 00:10:35 UTC (rev 14198)
@@ -14,6 +14,7 @@
   qsf-xml-map.c \
   qsf-xml.c
 
+libgncqof_backend_qsf_la_LDFLAGS = -module
 libgncqof_backend_qsf_la_LIBADD = \
  ${QOF_LIBS} \
  ${GLIB_LIBS} \

Modified: gnucash/trunk/lib/libqof/backend/file/qof-backend-qsf.h
===================================================================
--- gnucash/trunk/lib/libqof/backend/file/qof-backend-qsf.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/backend/file/qof-backend-qsf.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -139,6 +139,7 @@
 #ifndef _QOF_BACKEND_QSF_H
 #define _QOF_BACKEND_QSF_H
 
+#include <gmodule.h>
 #include "qoflog.h"
 #include "qofbackend.h"
 
@@ -162,7 +163,8 @@
 Calls gettext because QofBackendOption
 strings are translatable.
 */
-void qsf_provider_init(void);
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module);
 
 /** \name Supported backend configurations
 @{

Modified: gnucash/trunk/lib/libqof/backend/file/qsf-backend.c
===================================================================
--- gnucash/trunk/lib/libqof/backend/file/qsf-backend.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/backend/file/qsf-backend.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -24,6 +24,7 @@
 #include "config.h"
 #include <glib.h>
 #include "qof.h"
+#include "qofbackend-p.h"
 #include "qof-backend-qsf.h"
 #include <libxml/xmlmemory.h>
 #include <libxml/tree.h>
@@ -1269,17 +1270,11 @@
 	g_free (prov);
 }
 
-void
-qsf_provider_init(void)
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module)
 {
 	QofBackendProvider *prov;
 
-/*	#ifdef ENABLE_NLS
-	setlocale (LC_ALL, "");
-	bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
-	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-	textdomain (GETTEXT_PACKAGE);
-	#endif*/
 	prov = g_new0 (QofBackendProvider, 1);
 	prov->provider_name = "QSF Backend Version 0.2";
 	prov->access_method = "file";
@@ -1288,4 +1283,5 @@
 	prov->check_data_type = qsf_determine_file_type;
 	prov->provider_free = qsf_provider_free;
 	qof_backend_register_provider (prov);
+	return NULL;
 }

Modified: gnucash/trunk/lib/libqof/qof/guid.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/guid.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/guid.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -122,16 +122,13 @@
   static int null_inited = 0;
   static GUID null_guid;
 
-  if (!null_inited)
-  {
-    int i;
-    char *tmp = "NULLGUID.EMPTY.";
+  if (!null_inited) {
+      int i;
 
-      /* 16th space for '\O' */
-	  for (i = 0; i < GUID_DATA_SIZE; i++)
-      null_guid.data[i] = tmp[i];
+      for (i = 0; i < GUID_DATA_SIZE; i++)
+          null_guid.data[i] = '\0';
 
-    null_inited = 1;
+      null_inited = 1;
   }
 
   return &null_guid;

Modified: gnucash/trunk/lib/libqof/qof/qof.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qof.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qof.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -106,8 +106,6 @@
 /** allow easy logging of QSF debug messages */
 #define QOF_MOD_QSF "gncqof-backend-qsf"
 /** allow easy loading of the QSF backend */
-#define QSF_BACKEND_LIB "libgncqof-backend-qsf"
-/** allow easy loading of the QSF backend */
-#define QSF_MODULE_INIT "qsf_provider_init"
+#define QSF_BACKEND_LIB "gncqof-backend-qsf"
 
 #endif /* QOF_H_ */

Modified: gnucash/trunk/lib/libqof/qof/qofbackend-p.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofbackend-p.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofbackend-p.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -182,7 +182,7 @@
  *    pointer to the second book, where the results of the query
  *    should go.
  *
- *    Cann the book commit() to complete the book partitioning.
+ *    Call the book commit() to complete the book partitioning.
  *
  *    After the begin(), there will be a call to run_query(), followed
  *    probably by a string of object calls, and completed by commit().  
@@ -367,15 +367,6 @@
  */
 void qof_backend_register_provider (QofBackendProvider *);
 
-/** The qof_backend_set_error() routine pushes an error code onto the error
- *  stack. (FIXME: the stack is 1 deep in current implementation).
- */
-void qof_backend_set_error (QofBackend *be, QofBackendError err);
-
-/** The qof_backend_get_error() routine pops an error code off the error stack.
- */
-QofBackendError qof_backend_get_error (QofBackend *be);
-
 /** The qof_backend_set_message() assigns a string to the backend error message.
  */
 void qof_backend_set_message(QofBackend *be, const char *format, ...);

Modified: gnucash/trunk/lib/libqof/qof/qofbackend.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofbackend.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofbackend.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -128,7 +128,7 @@
     be->run_query = NULL;
 
     be->sync = NULL;
-	be->load_config = NULL;
+    be->load_config = NULL;
 
     be->events_pending = NULL;
     be->process_events = NULL;
@@ -137,11 +137,11 @@
     if (be->error_msg) g_free (be->error_msg);
     be->error_msg = NULL;
     be->percentage = NULL;
-	be->backend_configuration = kvp_frame_new();
-	
-	/* to be removed */
-	be->price_lookup = NULL;
-	be->export = NULL;
+    be->backend_configuration = kvp_frame_new();
+
+    /* to be removed */
+    be->price_lookup = NULL;
+    be->export = NULL;
 }
 
 void
@@ -384,30 +384,19 @@
 }
 
 gboolean
-qof_load_backend_library (const char *directory, 
-				const char* filename, const char* init_fcn)
+qof_load_backend_library (const char *directory, const char* module_name)
 {
 	gchar *fullpath;
-	typedef void (* backend_init) (void);
 	GModule *backend;
-	backend_init gmod_init;
-	gpointer g;
 
 	g_return_val_if_fail(g_module_supported(), FALSE);
-	fullpath = g_module_build_path(directory, filename);
+	fullpath = g_module_build_path(directory, module_name);
 	backend = g_module_open(fullpath, G_MODULE_BIND_LAZY);
-	if(!backend) { 
+	if (!backend) { 
 		g_message ("%s: %s\n", PACKAGE, g_module_error ());
 		return FALSE;
 	}
-	g = &gmod_init;
-	if (!g_module_symbol (backend, init_fcn, g))
-	{
-		g_message ("%s: %s\n", PACKAGE, g_module_error ());
-		return FALSE;
-	}
 	g_module_make_resident(backend);
-	gmod_init();
 	return TRUE;
 }
 

Modified: gnucash/trunk/lib/libqof/qof/qofbackend.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofbackend.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofbackend.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -177,6 +177,15 @@
 gboolean qof_backend_commit_exists(QofBackend *be);
 //@}
 
+/** The qof_backend_set_error() routine pushes an error code onto the error
+ *  stack. (FIXME: the stack is 1 deep in current implementation).
+ */
+void qof_backend_set_error (QofBackend *be, QofBackendError err);
+
+/** The qof_backend_get_error() routine pops an error code off the error stack.
+ */
+QofBackendError qof_backend_get_error (QofBackend *be);
+
 /** @name Backend Configuration using KVP
 
 The backend uses qof_backend_get_config to pass back a KvpFrame of QofBackendOption
@@ -254,16 +263,14 @@
 /** \brief Load a QOF-compatible backend shared library.
 
 \param directory Can be NULL if filename is a complete path.
-\param filename  Name of the .la file that describes the
+\param module_name  Name of the .la file that describes the
 	shared library. This provides platform independence,
 	courtesy of libtool.
-\param init_fcn  The QofBackendProvider init function.
 
 \return FALSE in case or error, otherwise TRUE.
 */
 gboolean
-qof_load_backend_library (const gchar *directory, 
-			const gchar* filename, const gchar* init_fcn);
+qof_load_backend_library(const gchar *directory, const gchar* module_name);
 
 /** \brief Retrieve the backend used by this book */
 QofBackend* qof_book_get_backend (QofBook *book);

Modified: gnucash/trunk/lib/libqof/qof/qofbook.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofbook.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofbook.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -139,7 +139,7 @@
 {
   if (book_1 == book_2) return TRUE;
   if (!book_1 || !book_2) return FALSE;
-  return TRUE;
+  return FALSE;
 }
 
 /* ====================================================================== */

Modified: gnucash/trunk/lib/libqof/qof/qofsession-p.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofsession-p.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofsession-p.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -70,7 +70,4 @@
 
 void qof_session_push_error (QofSession *session, QofBackendError err,
                              const char *message);
-
-QofBackend* gncBackendInit_file(const char *book_id, void *data);
-
 #endif

Modified: gnucash/trunk/lib/libqof/qof/qofsession.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofsession.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofsession.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -843,7 +843,6 @@
 {
 	const char *libdir;
 	const char *filename;
-	const char *init_fcn;
 };
 
 /* All available QOF backends need to be described here
@@ -851,11 +850,11 @@
 Remember: Use the libdir from the current build environment
 and use JUST the module name without .so - .so is not portable! */
 struct backend_providers backend_list[] = {
-	{ QOF_LIB_DIR, QSF_BACKEND_LIB, QSF_MODULE_INIT },
+	{ QOF_LIB_DIR, QSF_BACKEND_LIB },
 #ifdef HAVE_DWI
-	{ QOF_LIB_DIR, "libqof_backend_dwi", "dwiend_provider_init" },
+	{ QOF_LIB_DIR, "libqof_backend_dwi"},
 #endif
-	{ NULL, NULL, NULL }
+	{ NULL, NULL }
 };
 
 static void
@@ -876,11 +875,10 @@
 	{
 		for (num = 0; backend_list[num].filename != NULL; num++) {
 			if(!qof_load_backend_library(backend_list[num].libdir,
-				backend_list[num].filename, backend_list[num].init_fcn))
+				backend_list[num].filename))
 			{
-				PWARN (" failed to load %s from %s using %s",
-				backend_list[num].filename, backend_list[num].libdir,
-				backend_list[num].init_fcn);
+				PWARN (" failed to load %s from %s",
+				backend_list[num].filename, backend_list[num].libdir);
 			}
 		}
 	}
@@ -894,13 +892,14 @@
 			/* More than one backend could provide this
 			access method, check file type compatibility. */
 			type_check = (gboolean (*)(const char*)) prov->check_data_type;
-			prov_type = (type_check)(session->book_id);
-			if(!prov_type)
-			{
+			if (type_check) {
+                            prov_type = (type_check)(session->book_id);
+                            if (!prov_type) {
 				PINFO(" %s not usable", prov->provider_name);
 				p = p->next;
 				continue;
-			}
+                            }
+                        }
 			PINFO (" selected %s", prov->provider_name);
 			if (NULL == prov->backend_new) 
 			{
@@ -985,12 +984,12 @@
     return;
   }
 
+  /* destroy the old backend */
+  qof_session_destroy_backend(session);
+
   /* Store the session URL  */
   session->book_id = g_strdup (book_id);
 
-  /* destroy the old backend */
-  qof_session_destroy_backend(session);
-
   /* Look for something of the form of "file:/", "http://" or 
    * "postgres://". Everything before the colon is the access 
    * method.  Load the first backend found for that access method.
@@ -1000,7 +999,7 @@
   {
     access_method = g_strdup (book_id);
     p = strchr (access_method, ':');
-    *p = 0;
+    *p = '\0';
     qof_session_load_backend(session, access_method);
     g_free (access_method);
   }
@@ -1013,6 +1012,8 @@
   /* No backend was found. That's bad. */
   if (NULL == session->backend)
   {
+    g_free(session->book_id);
+    session->book_id = NULL;
     qof_session_push_error (session, ERR_BACKEND_BAD_URL, NULL);
     LEAVE (" BAD: no backend: sess=%p book-id=%s", 
          session,  book_id ? book_id : "(null)");
@@ -1207,7 +1208,7 @@
 		{
 			for (num = 0; backend_list[num].filename != NULL; num++) {
 				qof_load_backend_library(backend_list[num].libdir,
-					backend_list[num].filename, backend_list[num].init_fcn);
+					backend_list[num].filename);
 			}
 		}
 		p = g_slist_copy(provider_list);
@@ -1418,4 +1419,45 @@
   return session->backend->process_events (session->backend);
 }
 
+/* XXX This exports the list of accounts to a file.  It does not
+ * export any transactions.  It's a place-holder until full
+ * book-closing is implemented.
+ */
+gboolean
+qof_session_export (QofSession *tmp_session,
+                    QofSession *real_session,
+                    QofPercentageFunc percentage_func)
+{
+  QofBook *book, *book2;
+  QofBackend *be;
+
+  if ((!tmp_session) || (!real_session)) return FALSE;
+
+  book = qof_session_get_book (real_session);
+  ENTER ("tmp_session=%p real_session=%p book=%p book_id=%s", 
+         tmp_session, real_session, book,
+         qof_session_get_url(tmp_session)
+         ? qof_session_get_url(tmp_session) : "(null)");
+
+  /* There must be a backend or else.  (It should always be the file
+   * backend too.)
+   */
+  book2 = qof_session_get_book(tmp_session);
+  be = qof_book_get_backend(book2);
+  if (!be)
+    return FALSE;
+
+  be->percentage = percentage_func;
+  if (be->export) {
+      int err;
+
+      (be->export)(be, book);
+      err = qof_backend_get_error(be);
+    
+      if (ERR_BACKEND_NO_ERR != err) { return FALSE; }
+  }
+
+  return TRUE;
+}
+
 /* =================== END OF FILE ====================================== */

Modified: gnucash/trunk/lib/libqof/qof/qofsession.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofsession.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofsession.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -431,5 +431,9 @@
  *  @param session A pointer to the session being closed. */
 void qof_session_call_close_hooks (QofSession *session);
 
+gboolean qof_session_export (QofSession *tmp_session,
+                             QofSession *real_session,
+                             QofPercentageFunc percentage_func);
+
 #endif /* QOF_SESSION_H */
 /** @} */

Modified: gnucash/trunk/lib/libqof/qof/qofutil.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofutil.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofutil.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "qof.h"
+#include "qofbackend-p.h"
 
 static QofLogModule log_module = QOF_MOD_UTIL;
 

Modified: gnucash/trunk/lib/libqof/qof/qofutil.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofutil.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/lib/libqof/qof/qofutil.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -36,7 +36,8 @@
 #include "qof.h"
 #include "qoflog.h"
 #include "qofutil.h"
-#include "qofbackend-p.h"
+#include "qofbackend.h"
+#include "qofclass.h"
 #include "qofbook.h"
 #include "qofinstance.h"
 

Modified: gnucash/trunk/src/backend/file/gnc-backend-file.c
===================================================================
--- gnucash/trunk/src/backend/file/gnc-backend-file.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/file/gnc-backend-file.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -66,6 +66,18 @@
 
 static QofLogModule log_module = GNC_MOD_BACKEND;
 
+typedef enum 
+{
+    GNC_BOOK_NOT_OURS,
+    GNC_BOOK_BIN_FILE,
+    GNC_BOOK_XML1_FILE,
+    GNC_BOOK_XML2_FILE,
+    GNC_BOOK_XML2_FILE_NO_ENCODING,
+    QSF_GNC_OBJECT,
+    QSF_OBJECT,
+    QSF_MAP,
+} QofBookFileType;
+
 /* ================================================================= */
 
 static gboolean
@@ -1024,8 +1036,8 @@
         g_free (prov);
 }
 
-void
-gnc_provider_init(void)
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module)
 {
 	QofBackendProvider *prov;
 #ifdef ENABLE_NLS
@@ -1042,6 +1054,7 @@
         prov->provider_free = gnc_provider_free;
 	prov->check_data_type = gnc_determine_file_type;
         qof_backend_register_provider (prov);
+        return NULL;
 }
 
 /* ========================== END OF FILE ===================== */

Modified: gnucash/trunk/src/backend/file/gnc-backend-file.h
===================================================================
--- gnucash/trunk/src/backend/file/gnc-backend-file.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/file/gnc-backend-file.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -32,7 +32,9 @@
 #define GNC_BACKEND_FILE_H_
 
 #include "qof.h"
+#include <gmodule.h>
 
+#include "qofbackend-p.h"
 struct FileBackend_struct
 {
   QofBackend be;
@@ -51,20 +53,9 @@
 
 typedef struct FileBackend_struct FileBackend;
 
-typedef enum 
-{
-    GNC_BOOK_NOT_OURS,
-    GNC_BOOK_BIN_FILE,
-    GNC_BOOK_XML1_FILE,
-    GNC_BOOK_XML2_FILE,
-    GNC_BOOK_XML2_FILE_NO_ENCODING,
-    QSF_GNC_OBJECT,
-    QSF_OBJECT,
-    QSF_MAP,
-} QofBookFileType;
-
 QofBackend * libgncmod_backend_file_LTX_gnc_backend_new(void);
 
-void gnc_provider_init(void);
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module);
 
 #endif /* GNC_BACKEND_FILE_H_ */

Modified: gnucash/trunk/src/backend/file/test/test-load-backend.c
===================================================================
--- gnucash/trunk/src/backend/file/test/test-load-backend.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/file/test/test-load-backend.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -29,17 +29,16 @@
 #include "cashobjects.h"
 #include "test-stuff.h"
 
-#define GNC_LIB_NAME "libgnc-backend-file.la"
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
 
 int main (int argc, char ** argv)
 {
-	qof_init();
-	cashobjects_register();
-	do_test(
-		qof_load_backend_library ("../", GNC_LIB_NAME, GNC_LIB_INIT),
-		" loading gnc-backend-file GModule failed");
+    qof_init();
+    cashobjects_register();
+    do_test(
+        qof_load_backend_library ("../", GNC_LIB_NAME),
+        " loading gnc-backend-file GModule failed");
     print_test_results();
-	qof_close();
-	return 0;
+    qof_close();
+    return 0;
 }

Modified: gnucash/trunk/src/backend/file/test/test-load-xml2.c
===================================================================
--- gnucash/trunk/src/backend/file/test/test-load-xml2.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/file/test/test-load-xml2.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -47,8 +47,7 @@
 #include "test-engine-stuff.h"
 #include "test-file-stuff.h"
 
-#define GNC_LIB_NAME "libgnc-backend-file.la"
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
 
 static void
 remove_files_pattern(const char *begining, const char *ending)
@@ -112,8 +111,7 @@
     g_type_init();
     qof_init();
     cashobjects_register();
-    do_test(
-            qof_load_backend_library ("../", GNC_LIB_NAME, GNC_LIB_INIT),
+    do_test(qof_load_backend_library ("../", GNC_LIB_NAME),
             " loading gnc-backend-file GModule failed");
 
     if (!location)

Modified: gnucash/trunk/src/backend/postgres/Makefile.am
===================================================================
--- gnucash/trunk/src/backend/postgres/Makefile.am	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/Makefile.am	2006-05-26 00:10:35 UTC (rev 14198)
@@ -2,8 +2,17 @@
 
 lib_LTLIBRARIES = libgnc-backend-postgres.la 
 
+AM_CFLAGS = \
+  -I.. -I../.. \
+  -I../../engine \
+  -I${srcdir}/../.. \
+  -I${top_srcdir}/src/backend \
+  -I${top_srcdir}/src/engine \
+  ${PGSQL_CFLAGS} \
+  ${QOF_CFLAGS} \
+  ${GLIB_CFLAGS}
+
 libgnc_backend_postgres_la_LDFLAGS = -module 
-
 libgnc_backend_postgres_la_LIBADD  =  ${PGSQL_LIBS} -lpq  \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${QOF_LIBS} \
@@ -91,14 +100,6 @@
 
 SUFFIXES = .sql
 
-AM_CFLAGS = \
-	-I.. -I${srcdir}/.. \
-	-I../.. -I${srcdir}/../.. \
-	-I../../engine -I${srcdir}/../../engine \
-	${PGSQL_CFLAGS} \
-	${QOF_CFLAGS} \
-	${GLIB_CFLAGS}
-
 $(M4_SRC): table.m4
 
 %-autogen.c: %-objects.m4  table.m4

Modified: gnucash/trunk/src/backend/postgres/PostgresBackend.c
===================================================================
--- gnucash/trunk/src/backend/postgres/PostgresBackend.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/PostgresBackend.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -253,7 +253,7 @@
 /* This routine finds the commodity by parsing a string
  * of the form NAMESPACE::MNEMONIC
  */
-
+/* FIXME: replace w/ gnc_commodity_table_lookup_unique */
 gnc_commodity *
 gnc_string_to_commodity (const char *str, QofBook *book)
 {
@@ -264,7 +264,7 @@
    comtab = gnc_book_get_commodity_table (book);
 
    space = g_strdup(str);
-   name = strchr (space, ':');
+   name = strchr (space, ':'); /* BUG */
 
    if (!name)
    {
@@ -2542,7 +2542,8 @@
         g_free (prov);
 }
 
-void pgend_provider_init(void)
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module)
 {
 	QofBackendProvider *prov;
 
@@ -2554,6 +2555,7 @@
 	prov->provider_free = pg_provider_free;
 	prov->check_data_type = NULL;
 	qof_backend_register_provider (prov);
+	return NULL;
 }
 
 /* ======================== END OF FILE ======================== */

Modified: gnucash/trunk/src/backend/postgres/PostgresBackend.h
===================================================================
--- gnucash/trunk/src/backend/postgres/PostgresBackend.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/PostgresBackend.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -34,6 +34,7 @@
 #ifndef POSTGRES_BACKEND_H
 #define POSTGRES_BACKEND_H
 
+#include <gmodule.h>
 #include <libpq-fe.h>
 
 #include "Group.h"
@@ -57,6 +58,7 @@
 
 #define MAX_VERSION_AGE 10
 
+#include "qofbackend-p.h"
 struct _pgend {
    QofBackend be;
 
@@ -132,6 +134,7 @@
 void pgendDisable (PGBackend *be);
 void pgendEnable (PGBackend *be);
 
-void pgend_provider_init(void);
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module);
 
 #endif /* POSTGRES_BACKEND_H */

Modified: gnucash/trunk/src/backend/postgres/test/test-db.c
===================================================================
--- gnucash/trunk/src/backend/postgres/test/test-db.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/test/test-db.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -32,8 +32,7 @@
 #include "test-stuff.h"
 #include "test-engine-stuff.h"
 
-#define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
+#define PG_LIB_NAME "gnc-backend-postgres"
 
 static QofLogModule log_module = GNC_MOD_TEST;
 
@@ -1095,9 +1094,8 @@
     DbInfo *dbinfo;
     
     qof_init();
-    do_test(
-	qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME, PG_LIB_INIT),
-	" loading gnc-backend-postgres GModule failed");
+    do_test(qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME),
+            " loading gnc-backend-postgres GModule failed");
 
     dbinfo = g_new0(DbInfo, 1);
     

Modified: gnucash/trunk/src/backend/postgres/test/test-load-backend.c
===================================================================
--- gnucash/trunk/src/backend/postgres/test/test-load-backend.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/test/test-load-backend.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -29,8 +29,7 @@
 #include "cashobjects.h"
 #include "test-stuff.h"
 
-#define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
+#define PG_LIB_NAME "gnc-backend-postgres"
 
 int main (int argc, char ** argv)
 {
@@ -38,8 +37,7 @@
 	cashobjects_register();
 	/* the test needs to run locally in case make install
 	 * has not yet been run. Use GNC_LIBDIR usually. */
-	do_test(
-		qof_load_backend_library ("../", PG_LIB_NAME, PG_LIB_INIT),
+	do_test(qof_load_backend_library ("../", PG_LIB_NAME),
 		" loading gnc-backend-postgres GModule failed");
 	print_test_results();
 	qof_close();

Modified: gnucash/trunk/src/backend/postgres/test/test-period.c
===================================================================
--- gnucash/trunk/src/backend/postgres/test/test-period.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/backend/postgres/test/test-period.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -35,7 +35,6 @@
 #include "Transaction.h"
 
 #define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
 
 static void
 run_test (void)
@@ -52,9 +51,8 @@
   Timespec tsfirst, tslast, tsmiddle;
   char * test_url;
   
-  do_test( qof_load_backend_library (QOF_LIB_DIR, 
-			PG_LIB_NAME, PG_LIB_INIT),
-			" loading gnc-backend-postgres GModule failed");
+  do_test(qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME),
+          " loading gnc-backend-postgres GModule failed");
 
   session = get_random_session ();
 

Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/Account.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -348,7 +348,7 @@
 xaccAccountCommitEdit (Account *acc) 
 {
   g_return_if_fail(acc);
-  if(!qof_commit_edit(&acc->inst)) { return;}
+  if (!qof_commit_edit(&acc->inst)) return;
 
   /* If marked for deletion, get rid of subaccounts first,
    * and then the splits ... */
@@ -385,7 +385,7 @@
     qof_collection_foreach(col, destroy_pending_splits_for_account, acc);
 
     /* the lots should be empty by now */
-    for (lp=acc->lots; lp; lp=lp->next)
+    for (lp = acc->lots; lp; lp = lp->next)
     {
       GNCLot *lot = lp->data;
       gnc_lot_destroy (lot);

Modified: gnucash/trunk/src/engine/Makefile.am
===================================================================
--- gnucash/trunk/src/engine/Makefile.am	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/Makefile.am	2006-05-26 00:10:35 UTC (rev 14198)
@@ -209,7 +209,7 @@
 CLEANFILES = gnucash g-wrapped .scm-links gncla-dir.h
 DISTCLEANFILES = ${SCM_FILE_LINKS} gw-engine.html gw-kvp.html
 
-gncla-dir.h: gncla-dir.h.in
+gncla-dir.h: gncla-dir.h.in ${top_builddir}/config.status
 	rm -f $@.tmp
 	sed < $< > $@.tmp \
                 -e 's:@-libdir-@:${libdir}:g'

Modified: gnucash/trunk/src/engine/Period.c
===================================================================
--- gnucash/trunk/src/engine/Period.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/Period.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -801,23 +801,27 @@
 static void 
 period_begin_edit (QofBook *src_book, QofBook *dest_book)
 {
+    /*
    QofBackend *be;
    be = qof_book_get_backend(src_book);
    if (be && be->begin)
    {
       // (*be->begin)(be, GNC_ID_PERIOD, dest_book);
    }
+    */
 }
    
 static void 
 period_commit_edit (QofBook *src_book, QofBook *dest_book)
 {
+    /*
    QofBackend *be;
    be = qof_book_get_backend(src_book);
    if (be && be->commit)
    {
       // (*be->commit)(be, GNC_ID_PERIOD, dest_book);
    }
+    */
 }
 
 /* ================================================================ */

Modified: gnucash/trunk/src/engine/Transaction.c
===================================================================
--- gnucash/trunk/src/engine/Transaction.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/Transaction.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -48,6 +48,7 @@
 #include "gnc-lot.h"
 #include "gnc-event.h"
 
+#include "qofbackend-p.h"
 
 /* Notes about xaccTransBeginEdit(), xaccTransCommitEdit(), and
  *  xaccTransRollback():

Modified: gnucash/trunk/src/engine/gnc-commodity.h
===================================================================
--- gnucash/trunk/src/engine/gnc-commodity.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-commodity.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -34,7 +34,7 @@
     handling and identification system (GUID's, Entities, etc.)
     that the other parts of GnuCash use.  The API really should be
     ported over.  This would allow us to get rid of the 
-    commodity table reoutines defined below. 
+    commodity table routines defined below. 
 
     @{ */
 /** @file gnc-commodity.h

Modified: gnucash/trunk/src/engine/gnc-engine.c
===================================================================
--- gnucash/trunk/src/engine/gnc-engine.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-engine.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -1,5 +1,5 @@
 /********************************************************************
- * gnc-engine.c  -- top-level initialization for Gnucash Engine     *
+ * gnc-engine.c  -- top-level initialization for GnuCash Engine     *
  * Copyright 2000 Bill Gribble <grib at billgribble.com>               *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
@@ -39,15 +39,14 @@
 #include "gnc-pricedb-p.h"
 
 /** gnc file backend library name */
-#define GNC_LIB_NAME "libgnc-backend-file"
-/** init_fcn for gnc file backend library. */
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
+
 /* gnc-backend-file location */
 #include "gncla-dir.h"
 
 static GList * engine_init_hooks = NULL;
 static int engine_is_initialized = 0;
-static QofLogModule log_module = GNC_MOD_ENGINE;
+//static QofLogModule log_module = GNC_MOD_ENGINE;
 
 /* GnuCash version functions */
 unsigned int
@@ -76,15 +75,18 @@
 void 
 gnc_engine_init(int argc, char ** argv)
 {
+  static gchar *names[] = {
+      GNC_LIB_NAME, QSF_BACKEND_LIB, "gnc-backend-postgres", 
+      NULL};
+  gchar **np;
   gnc_engine_init_hook_t hook;
-  GList                  * cur;
+  GList * cur;
 
   if (1 == engine_is_initialized) return;
 
   /* initialize logging to our file. */
   qof_log_init_filename("/tmp/gnucash.trace");
-  /* Only set the core log_modules here
-	the rest can be set locally.  */
+  /* Only set the core log_modules here the rest can be set locally.  */
   qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
   qof_log_set_level(GNC_MOD_IO, QOF_LOG_WARNING);
   qof_log_set_level(GNC_MOD_GUI, QOF_LOG_WARNING);
@@ -96,12 +98,11 @@
   /* Now register our core types */
   cashobjects_register();
 
-  g_return_if_fail((qof_load_backend_library 
-		(QOF_LIB_DIR, QSF_BACKEND_LIB, QSF_MODULE_INIT)));
-  g_return_if_fail((qof_load_backend_library
-		(GNC_LIBDIR, GNC_LIB_NAME, GNC_LIB_INIT)));
+  for (np = names; *np; np++) {
+      if (qof_load_backend_library(GNC_LIBDIR, *np))
+          engine_is_initialized = 1;
+  }
 
-  engine_is_initialized = 1;
   /* call any engine hooks */
   for (cur = engine_init_hooks; cur; cur = cur->next)
   {
@@ -138,10 +139,7 @@
 gboolean
 gnc_engine_is_initialized (void)
 {
-/*	if (engine_is_initialized == 1) return TRUE;
-	return FALSE;
-*/	
-	return (engine_is_initialized == 1) ? TRUE : FALSE;
+    return (engine_is_initialized == 1) ? TRUE : FALSE;
 }
 
 /* replicate old gnc-trace enum behaviour
@@ -176,46 +174,3 @@
 	qof_log_set_level(GNC_MOD_BUDGET, QOF_LOG_WARNING);
 }
 
-/* ====================================================================== */
-/* XXX This exports the list of accounts to a file.  It does not export
- * any transactions.  Its a place-holder until full book-closing is implemented.
- */
-
-gboolean
-qof_session_export (QofSession *tmp_session,
-                    QofSession *real_session,
-                    QofPercentageFunc percentage_func)
-{
-  QofBook *book, *book2;
-  QofBackend *be;
-  int err;
-
-  if ((!tmp_session) || (!real_session)) return FALSE;
-
-  book = qof_session_get_book (real_session);
-  ENTER ("tmp_session=%p real_session=%p book=%p book_id=%s", 
-         tmp_session, real_session, book,
-         qof_session_get_url(tmp_session)
-         ? qof_session_get_url(tmp_session) : "(null)");
-
-  /* There must be a backend or else.  (It should always be the file
-   * backend too.)
-   */
-  book2 = qof_session_get_book(tmp_session);
-  be = qof_book_get_backend(book2);
-  if (!be)
-    return FALSE;
-
-  be->percentage = percentage_func;
-  if (be->export)
-    {
-
-      (be->export)(be, book);
-      err = qof_backend_get_error(be);
-    
-      if (ERR_BACKEND_NO_ERR != err) { return FALSE; }
-    }
-
-  return TRUE;
-}
-

Modified: gnucash/trunk/src/engine/gnc-engine.h
===================================================================
--- gnucash/trunk/src/engine/gnc-engine.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-engine.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -103,7 +103,7 @@
 #define GNC_ID_SXTG           "SXTGroup"
 #define GNC_ID_SXTT           "SXTTrans"
 #define GNC_ID_TRANS          "Trans"
-                                                                                
+
 /* TYPES **********************************************************/
 
 /* CAS: ISTM, it would make more sense to put the typedefs in their
@@ -250,11 +250,5 @@
  * it will be called during the evaluation of gnc_engine_init */
 void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);
 
-gboolean
-qof_session_export (QofSession *tmp_session,
-                    QofSession *real_session,
-                    QofPercentageFunc percentage_func);
-
-
 #endif
 /** @} */

Modified: gnucash/trunk/src/engine/gnc-pricedb.c
===================================================================
--- gnucash/trunk/src/engine/gnc-pricedb.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-pricedb.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -27,6 +27,7 @@
 #include <glib.h>
 #include <string.h>
 #include "gnc-pricedb-p.h"
+#include "qofbackend-p.h"
 
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_PRICE;

Modified: gnucash/trunk/src/engine/gnc-session-scm.c
===================================================================
--- gnucash/trunk/src/engine/gnc-session-scm.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-session-scm.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -69,13 +69,6 @@
   qof_session_save (session, gnc_session_scm_gui_cb_helper);
 }
 
-gboolean
-gnc_session_scm_export (QofSession *tmp_session, QofSession *real_session)
-{
-  return qof_session_export(tmp_session, real_session,
-			    gnc_session_scm_gui_cb_helper);
-}
-
 /*
  * Set the callback that will be used for any calls to the session
  * load/save functions from the scheme side of the code.

Modified: gnucash/trunk/src/engine/gnc-session-scm.h
===================================================================
--- gnucash/trunk/src/engine/gnc-session-scm.h	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gnc-session-scm.h	2006-05-26 00:10:35 UTC (rev 14198)
@@ -43,8 +43,6 @@
 #include "gnc-engine.h"
 
 void gnc_session_scm_load (QofSession *session);
-gboolean gnc_session_scm_export (QofSession *tmp_session,
-                                 QofSession *real_session);
 void     gnc_session_scm_save (QofSession *session);
 void     gnc_session_scm_set_callback (SCM percentage_cb);
 

Modified: gnucash/trunk/src/engine/gw-engine-spec.scm
===================================================================
--- gnucash/trunk/src/engine/gw-engine-spec.scm	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/engine/gw-engine-spec.scm	2006-05-26 00:10:35 UTC (rev 14198)
@@ -1443,14 +1443,6 @@
 
 (gw:wrap-function
  ws
- 'gnc:session-export
- '<gw:bool>
- "gnc_session_scm_export"
- '((<gnc:Session*> tmp_session) (<gnc:Session*> real_session))
- "Export the accounts in the session.")
-
-(gw:wrap-function
- ws
  'gnc:session-set-callback
  '<gw:void>
  "gnc_session_scm_set_callback"

Modified: gnucash/trunk/src/gnome-utils/gnc-file.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-file.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/gnome-utils/gnc-file.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -960,7 +960,7 @@
   /* If we don't have a filename/path to save to get one. */
   session = gnc_get_current_session ();
 
-  if (!qof_session_get_file_path (session))
+  if (!qof_session_get_url(session))
   {
     gnc_file_save_as ();
     return;
@@ -977,10 +977,10 @@
 
   /* Make sure everything's OK - disk could be full, file could have
      become read-only etc. */
-  newfile = qof_session_get_file_path (session);
   io_err = qof_session_get_error (session);
   if (ERR_BACKEND_NO_ERR != io_err)
   {
+    newfile = qof_session_get_url(session);
     show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
 
     if (been_here_before) return;
@@ -1035,7 +1035,7 @@
   }
 
   session = gnc_get_current_session ();
-  oldfile = qof_session_get_file_path (session);
+  oldfile = qof_session_get_url(session);
   if (oldfile && (strcmp(oldfile, newfile) == 0))
   {
     g_free (newfile);
@@ -1045,7 +1045,7 @@
 
   /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
 
-  xaccLogSetBaseName(newfile);
+  xaccLogSetBaseName(newfile); //FIXME: This is premature.
   save_in_progress++;
   new_session = qof_session_new ();
   qof_session_begin (new_session, newfile, FALSE, FALSE);
@@ -1124,7 +1124,6 @@
   save_in_progress--;
 
   g_free (newfile);
-  gnc_hook_run(HOOK_BOOK_SAVED, new_session);
   LEAVE (" ");
 }
 
@@ -1136,7 +1135,7 @@
   gnc_set_busy_cursor (NULL, TRUE);
   session = gnc_get_current_session ();
 
-  /* disable events; otherwise the mass deletetion of accounts and
+  /* disable events; otherwise the mass deletion of accounts and
    * transactions during shutdown would cause massive redraws */
   qof_event_suspend ();
 

Modified: gnucash/trunk/src/gnome-utils/gnc-html-graph-gog.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-html-graph-gog.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/gnome-utils/gnc-html-graph-gog.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -306,7 +306,7 @@
  * legend_urls_[123]: ?
  */
 static gboolean
-handle_piechart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d)
+handle_piechart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer unused)
 {
   GogObject *graph, *chart;
   GogPlot *plot;
@@ -375,7 +375,7 @@
  * stacked:boolean
  **/
 static gboolean
-handle_barchart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d)
+handle_barchart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer unused)
 {
   GogObject *graph, *chart;
   GogPlot *plot;
@@ -499,7 +499,7 @@
 }
 
 static gboolean
-handle_scatter(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d)
+handle_scatter(gnc_html * html, GtkHTMLEmbedded * eb, gpointer unused)
 {
   GogObject *graph, *chart;
   GogPlot *plot;
@@ -550,7 +550,7 @@
 }
 
 static void
-draw_print_cb (GtkHTMLEmbedded *eb, GnomePrintContext *context, gpointer d)
+draw_print_cb(GtkHTMLEmbedded *eb, GnomePrintContext *context, gpointer unused)
 {
   GogGraph *graph = GOG_GRAPH (g_object_get_data (G_OBJECT (eb), "graph"));
 

Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.c	2006-05-25 13:51:22 UTC (rev 14197)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.c	2006-05-26 00:10:35 UTC (rev 14198)
@@ -906,7 +906,7 @@
 
   session = gnc_get_current_session();
   book = qof_session_get_book(session);
-  filename = qof_session_get_file_path(session);
+  filename = qof_session_get_url(session);
   if (filename == NULL)
     filename = _("<unknown>");
   if ((tmp = strrchr(filename, '/')) != NULL)



More information about the gnucash-changes mailing list