r12956 - gnucash/trunk/src - Major step in extraction of
application startup from guile.
Chris Shoemaker
chris at cvs.gnucash.org
Mon Jan 23 12:38:14 EST 2006
Author: chris
Date: 2006-01-23 12:38:13 -0500 (Mon, 23 Jan 2006)
New Revision: 12956
Trac: http://svn.gnucash.org/trac/changeset/12956
Modified:
gnucash/trunk/src/bin/gnucash-bin.c
gnucash/trunk/src/gnome/Makefile.am
gnucash/trunk/src/gnome/gw-gnc-spec.scm
gnucash/trunk/src/gnome/top-level.c
gnucash/trunk/src/gnome/top-level.h
gnucash/trunk/src/scm/Makefile.am
gnucash/trunk/src/scm/build-config.scm.in
gnucash/trunk/src/scm/main-window.scm
gnucash/trunk/src/scm/main.scm
Log:
Major step in extraction of application startup from guile.
Details:
Remove the last bits of libguile from top-level.[ch].
Change the gui initialization funtions so they can be called from C.
Drop some gwrappers for gui initialization functions.
Process the --nofile and filename command-line options from C.
Drastic simpilification of main.scm.
Initialize the gui and enter the gtk event-loop from C.
Even though there's some more clean-up to do, this patch does mark
a certain milestone: A developer seeking to understand and/or modify
GnuCash's startup process can now essentially ignore the guile portion.
Most parts of our startup now look pretty typical for a gnome-2 app.
The parts that remain firmly in guile are initialization of the report
menus and the installation of price-quote sources.
Caveat: We have multiple mechanisms for handling the filename
argument string -- some in guile and some in C. The C-side mechanisms
(in engine/gnc-filepath-utils.c) seem a little nicer than the guile
ones (in main.scm). They have slightly different behavior (e.g. which
paths they'll search for data files.) They both handle URIs and
making absolute paths out of relative ones. This patch switches from
using the guile functions to the C function. I've tested that the common
cases are handled the same way, but it wouldn't surprise me if some
corner-cases are not.
More information about the gnucash-patches
mailing list