[Gnucash-changes]
r12882 - gnucash/trunk/src - Exit gnucash from C, not guile.
Chris Shoemaker
chris at cvs.gnucash.org
Thu Jan 19 00:54:16 EST 2006
Author: chris
Date: 2006-01-19 00:54:16 -0500 (Thu, 19 Jan 2006)
New Revision: 12882
Trac: http://svn.gnucash.org/trac/changeset/12882
Modified:
gnucash/trunk/src/bin/Makefile.am
gnucash/trunk/src/bin/gnucash-bin.c
gnucash/trunk/src/scm/main.scm
Log:
Exit gnucash from C, not guile.
Modified: gnucash/trunk/src/bin/Makefile.am
===================================================================
--- gnucash/trunk/src/bin/Makefile.am 2006-01-19 05:18:27 UTC (rev 12881)
+++ gnucash/trunk/src/bin/Makefile.am 2006-01-19 05:54:16 UTC (rev 12882)
@@ -4,6 +4,8 @@
AM_CFLAGS = -I${top_builddir} ${GLIB_CFLAGS} ${GNOME_CFLAGS} ${GTK_CFLAGS} \
${QOF_CFLAGS} \
-I${top_srcdir}/src/gnome-utils \
+-I${top_srcdir}/src/engine \
+-I${top_srcdir}/src/gnome \
-I${top_builddir}/src/gnome-utils \
-I${top_srcdir}/src/gnc-module
@@ -11,6 +13,8 @@
gnucash_bin_SOURCES = gnucash-bin.c
gnucash_bin_LDADD = ${GUILE_LIBS} ${GLIB_LIBS} ${GNOME_LIBS} ${GTK_LIBS} \
${QOF_LIBS} \
+${top_builddir}/src/engine/libgncmod-engine.la \
+${top_builddir}/src/gnome/libgncgnome.la \
${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
${top_builddir}/src/gnc-module/libgncmodule.la
Modified: gnucash/trunk/src/bin/gnucash-bin.c
===================================================================
--- gnucash/trunk/src/bin/gnucash-bin.c 2006-01-19 05:18:27 UTC (rev 12881)
+++ gnucash/trunk/src/bin/gnucash-bin.c 2006-01-19 05:54:16 UTC (rev 12882)
@@ -35,6 +35,8 @@
#include "i18n.h"
#include "gnc-version.h"
#include "gnc-file.h"
+#include "gnc-hooks.h"
+#include "top-level.h"
static int gnucash_show_version;
/* GNUCASH_SVN is defined whenever we're building from an SVN tree */
@@ -131,6 +133,25 @@
}
static void
+shutdown(int status)
+{
+ if (gnucash_ui_is_running()) {
+ if (!gnucash_ui_is_terminating()) {
+ if (gnc_file_query_save()) {
+ gnc_hook_run(HOOK_UI_SHUTDOWN, NULL);
+ gnc_gui_shutdown();
+ }
+ }
+ } else {
+ gnc_gui_destroy();
+ gnc_hook_run(HOOK_SHUTDOWN, NULL);
+ gnc_engine_shutdown();
+ exit(status);
+ }
+}
+
+
+static void
inner_main (void *closure, int argc, char **argv)
{
SCM main_mod;
@@ -160,6 +181,7 @@
gnc_module_load_optional("gnucash/business-gnome", 0);
scm_c_eval_string("(gnc:main)");
+ shutdown(0);
return;
}
Modified: gnucash/trunk/src/scm/main.scm
===================================================================
--- gnucash/trunk/src/scm/main.scm 2006-01-19 05:18:27 UTC (rev 12881)
+++ gnucash/trunk/src/scm/main.scm 2006-01-19 05:54:16 UTC (rev 12882)
@@ -563,4 +563,5 @@
;; command line
(map handle-batch-mode-item (reverse gnc:*batch-mode-things-to-do*)))
- (gnc:shutdown 0))
+ ;;return to C
+)
More information about the gnucash-changes
mailing list