[Gnucash-changes] Rewrite this module's book-opened-hook into C.
David Hampton
hampton at cvs.gnucash.org
Thu Jul 7 20:03:44 EDT 2005
Log Message:
-----------
Rewrite this module's book-opened-hook into C.
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash/src/import-export/binary-import:
Makefile.am
druid-commodity.c
druid-commodity.h
gncmod-binary-import.c
Removed Files:
-------------
gnucash/src/import-export/binary-import:
binary-import.scm
gw-binary-import-spec.scm
Revision Data
-------------
Index: druid-commodity.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/binary-import/druid-commodity.h,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -Lsrc/import-export/binary-import/druid-commodity.h -Lsrc/import-export/binary-import/druid-commodity.h -u -r1.2 -r1.2.4.1
--- src/import-export/binary-import/druid-commodity.h
+++ src/import-export/binary-import/druid-commodity.h
@@ -32,6 +32,7 @@
#include "gnc-commodity.h"
#include "gnc-engine.h"
+#include "qofsession.h"
typedef struct _commoditydruid CommodityDruid;
@@ -42,5 +43,8 @@
/* invoke import druid modally */
void gnc_import_legacy_commodities(const char * filename);
+/* book-opened callback hook */
+void gnc_import_commodities(QofSession *session, gpointer data);
+
#endif
Index: druid-commodity.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/binary-import/druid-commodity.c,v
retrieving revision 1.8.4.6
retrieving revision 1.8.4.7
diff -Lsrc/import-export/binary-import/druid-commodity.c -Lsrc/import-export/binary-import/druid-commodity.c -u -r1.8.4.6 -r1.8.4.7
--- src/import-export/binary-import/druid-commodity.c
+++ src/import-export/binary-import/druid-commodity.c
@@ -42,6 +42,7 @@
#include "gnc-file.h"
#include "gnc-gui-query.h"
#include "gnc-pricedb-p.h"
+#include "gnc-session.h"
#include "gnc-ui-util.h"
#include "gnc-ui.h"
@@ -507,3 +508,12 @@
/* destroy the dialog */
gnc_ui_commodity_druid_destroy(cd);
}
+
+
+void gnc_import_commodities(QofSession *session, gpointer unused)
+{
+ const gchar *book_url;
+
+ book_url = gnc_session_get_url(session);
+ gnc_import_legacy_commodities(book_url);
+}
Index: Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/binary-import/Makefile.am,v
retrieving revision 1.15.4.3
retrieving revision 1.15.4.4
diff -Lsrc/import-export/binary-import/Makefile.am -Lsrc/import-export/binary-import/Makefile.am -u -r1.15.4.3 -r1.15.4.4
--- src/import-export/binary-import/Makefile.am
+++ src/import-export/binary-import/Makefile.am
@@ -1,7 +1,7 @@
SUBDIRS = . test
PWD := $(shell pwd)
-pkglib_LTLIBRARIES = libgncmod-binary-import.la libgw-binary-import.la
+pkglib_LTLIBRARIES = libgncmod-binary-import.la
AM_CFLAGS = \
-I${top_srcdir}/src/gnc-module \
@@ -13,7 +13,6 @@
-I${top_srcdir}/src/gnome \
${GUILE_INCS} \
${GLADE_CFLAGS} \
- ${G_WRAP_COMPILE_ARGS} \
${GLIB_CFLAGS} \
${GNOME_CFLAGS}
@@ -27,8 +26,7 @@
gncincludedir = ${GNC_INCLUDE_DIR}
gncinclude_HEADERS = \
- druid-commodity.h \
- gw-binary-import.h
+ druid-commodity.h
libgncmod_binary_import_la_LDFLAGS = -module
@@ -44,53 +42,9 @@
${GNOME_LIBS} \
${GLIB_LIBS}
-libgw_binary_import_la_SOURCES = gw-binary-import.c
-libgw_binary_import_la_LDFLAGS = -module
-libgw_binary_import_la_LIBADD = libgncmod-binary-import.la
-
-gncmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash/import-export
-gncmod_DATA = binary-import.scm
-
-gwmoddir = ${GNC_GWRAP_LIBDIR}
-gwmod_DATA = gw-binary-import-spec.scm gw-binary-import.scm
-
-noinst_DATA = .scm-links
-
gladedir = $(GNC_GLADE_DIR)
glade_DATA = binary-import.glade
EXTRA_DIST = \
.cvsignore \
- ${gncmod_DATA} \
- ${gwmod_DATA} \
${glade_DATA}
-
-if GNUCASH_SEPARATE_BUILDDIR
-#Only needed when srcdir and builddir are different
-SCM_FILE_LINKS = gw-binary-import-spec.scm
-endif
-
-.scm-links:
- rm -f import-export gnucash g-wrapped
- ln -sf . import-export
- ln -sf . gnucash
- ln -sf . g-wrapped
-if GNUCASH_SEPARATE_BUILDDIR
- for X in ${SCM_FILE_LINKS} ; do \
- ln -sf ${srcdir}/$$X . ; \
- done
-endif
- touch .scm-links
-
-gw-binary-import.scm gw-binary-import.c gw-binary-import.h: \
- .scm-links gw-binary-import-spec.scm ${top_builddir}/config.status
- FLAVOR=gnome guile -c \
- "(set! %load-path (cons \"${G_WRAP_MODULE_DIR}\" %load-path)) \
- (set! %load-path (cons \"${PWD}\" %load-path)) \
- (primitive-load \"./gw-binary-import-spec.scm\") \
- (gw:generate-wrapset \"gw-binary-import\")"
-
-BUILT_SOURCES = gw-binary-import.scm gw-binary-import.c gw-binary-import.h
-DISTCLEANFILES = gnucash g-wrapped import-export .scm-links ${SCM_FILE_LINKS} \
- gw-binary-import.html
-
--- src/import-export/binary-import/binary-import.scm
+++ /dev/null
@@ -1,12 +0,0 @@
-
-(define-module (gnucash import-export binary-import))
-(use-modules (g-wrapped gw-binary-import))
-(use-modules (gnucash app-utils))
-(use-modules (gnucash gnc-module))
-(gnc:module-load "gnucash/engine" 0)
-
-(define (import-commodities session)
- (let ((book-url (gnc:session-get-url session)))
- (gnc:import-legacy-commodities book-url)))
-
-(gnc:hook-add-dangler gnc:*book-opened-hook* import-commodities)
Index: gncmod-binary-import.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/binary-import/gncmod-binary-import.c,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -Lsrc/import-export/binary-import/gncmod-binary-import.c -Lsrc/import-export/binary-import/gncmod-binary-import.c -u -r1.5.4.1 -r1.5.4.2
--- src/import-export/binary-import/gncmod-binary-import.c
+++ src/import-export/binary-import/gncmod-binary-import.c
@@ -10,8 +10,10 @@
#include <glib.h>
#include <libguile.h>
+#include "gnc-hooks.h"
#include "gnc-module.h"
#include "gnc-module-api.h"
+#include "druid-commodity.h"
/* version of the gnc module system interface we require */
int libgncmod_binary_import_LTX_gnc_module_system_interface = 0;
@@ -38,14 +40,6 @@
return g_strdup("Utilities importing GnuCash binary files");
}
-static void
-lmod(char * mn)
-{
- char * form = g_strdup_printf("(use-modules %s)\n", mn);
- scm_c_eval_string(form);
- g_free(form);
-}
-
int
libgncmod_binary_import_LTX_gnc_module_init(int refcount) {
/* load the engine (we depend on it) */
@@ -68,11 +62,9 @@
return FALSE;
}
- /* publish g-wrapped bindings */
- /* load the scheme code */
- lmod("(g-wrapped gw-binary-import)");
- lmod("(gnucash import-export binary-import)");
-
+ if (refcount == 0) {
+ gnc_hook_add_dangler(HOOK_BOOK_OPENED, (GFunc)gnc_import_commodities, NULL);
+ }
return TRUE;
}
--- src/import-export/binary-import/gw-binary-import-spec.scm
+++ /dev/null
@@ -1,29 +0,0 @@
-
-(define-module (g-wrapped gw-app-utils-spec))
-
-(debug-set! maxdepth 100000)
-(debug-set! stack 2000000)
-
-(use-modules (g-wrap))
-
-(use-modules (g-wrap gw-standard-spec))
-
-(let ((ws (gw:new-wrapset "gw-binary-import")))
-
- (gw:wrapset-depends-on ws "gw-standard")
-
- (gw:wrapset-set-guile-module! ws '(g-wrapped gw-binary-import))
-
- (gw:wrapset-add-cs-declarations!
- ws
- (lambda (wrapset client-wrapset)
- "#include <druid-commodity.h>\n"))
-
- (gw:wrap-function
- ws
- 'gnc:import-legacy-commodities
- '<gw:void>
- "gnc_import_legacy_commodities"
- '(((<gw:mchars> caller-owned const) filename))
- "Launch the legacy-commodity import druid")
-)
More information about the gnucash-changes
mailing list