[Gnucash-changes] Adding FreqSpec and SchedXaction to QOF Removing deprecated QOF date

Neil Williams codehelp at cvs.gnucash.org
Mon Apr 25 11:57:08 EDT 2005


Log Message:
-----------
Adding FreqSpec and SchedXaction to QOF
Removing deprecated QOF date handling shorthand.
Improved enum as string macro.
Support for INSERT statements in QOF SQL queries.
Doxygen fixes and additions.
Losing the qof/ directory prefix on included QOF files.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/app-utils:
        option-util.c
        option-util.h
    gnucash/src/backend/qsf:
        pilot-qsf-GnuCashInvoice.xml
        qsf-backend.c
        qsf-object.xsd.xml
        qsf-xml-map.c
        qsf-xml.h
    gnucash/src/business/business-core:
        gncEntry.c
        gncEntry.h
    gnucash/src/engine:
        FreqSpec.c
        FreqSpec.h
        FreqSpecP.h
        SchedXaction.c
        SchedXaction.h
        gnc-date.c
        gnc-date.h
        gnc-engine-util.h
        gnc-engine.c
        gnc-trace.c
        gw-engine-spec.scm
        kvp_frame.c
        kvp_frame.h
        qof-be-utils.h
        qof.h
        qof_book_merge.c
        qof_book_merge.h
        qofclass.c
        qofgobj.c
        qofgobj.h
        qofid.h
        qofquery-deserial.c
        qofquery-deserial.h
        qofquery-serialize.c
        qofquery-serialize.h
        qofquery.c
        qofquery.h
        qofquerycore.c
        qofquerycore.h
        qofsession-p.h
        qofsession.c
        qofsql.c
        qofsql.h
    gnucash/src/gnome:
        dialog-scheduledxaction.c
        dialog-sxsincelast.c
        druid-loan.c
        top-level.c
    gnucash/src/gnome-utils:
        QuickFill.h
        account-quickfill.h
        dialog-options.c
        gnc-date-edit.c
        gnc-date-format.c
        gnc-date-format.h
    gnucash/src/import-export:
        import-main-matcher.c
        import-match-picker.c
    gnucash/src/register/ledger-core:
        split-register-layout.h
        split-register.c
        split-register.h
    gnucash/src/register/register-gnome:
        datecell-gnome.c

Revision Data
-------------
Index: qofsql.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofsql.h,v
retrieving revision 1.4.2.2
retrieving revision 1.4.2.3
diff -Lsrc/engine/qofsql.h -Lsrc/engine/qofsql.h -u -r1.4.2.2 -r1.4.2.3
--- src/engine/qofsql.h
+++ src/engine/qofsql.h
@@ -21,7 +21,7 @@
 \********************************************************************/
 
 /** @addtogroup Query
-    @{ */
+@{ */
 /**
     @file qofsql.h
     @brief QOF client-side SQL parser.
@@ -32,11 +32,98 @@
 #define QOF_SQL_QUERY_H
 
 #include <glib.h>
-#include <qof/kvp_frame.h>
-#include <qof/qofbook.h>
-#include <qof/qofquery.h>
+#include <kvp_frame.h>
+#include <qofbook.h>
+#include <qofquery.h>
 
 /** @addtogroup SQL SQL Interface to Query
+
+The types of SQL queries that are allowed at this point are very 
+limited.  In general, only the following types of queries are 
+supported:
+  SELECT * FROM SomeObj WHERE (param_a < 10.0) AND (param_b = "asdf")
+         SORT BY param_c DESC;
+  INSERT INTO SomeObj (param_a, param_b, param_c) VALUES
+        ("value_a", true, "0/1");
+
+For SELECT, the returned list is a list of all of the instances of 'SomeObj' that
+match the query.  The 'SORT' term is optional. The 'WHERE' term is
+optional; but if you don't include 'WHERE', you will get a list of 
+all of the object instances.  The Boolean operations 'AND' and 'OR'
+together with parenthesis can be used to construct arbitrarily 
+nested predicates.
+
+For INSERT, the returned list is a list containing the newly created instance
+of 'SomeObj'.
+
+Joins are not supported directly.
+  SELECT * FROM ObjA,ObjB WHERE (ObjA.param_id = ObjB.param_other_id);
+The problem with the above is that the search requires a nested
+search loop, aka a 'join', which is not currently supported in the
+underlying QofQuery code.
+
+However, by repeating queries and adding the entities to a new session using
+::qof_entity_copy_list, a series of queries can be added to a single
+book. e.g. You can insert multiple entities and save out as a QSF XML
+file or use multiple SELECT queries to build a precise list - this
+can be used to replicate most of the functionality of a SQL join.
+
+SELECT * from ObjA where param_id = value;
+SELECT * from ObjB where param_other_id = value;
+
+Equivalent to:
+SELECT * from ObjA,ObjB where param_id = param_other_id and param_id = value;
+
+When combined with a foreach callback on the value of param_id for each
+entity in the QofBook, you can produce the effect of a join from running
+the two SELECT queries for each value of param_id held in 'value'.
+
+See ::QofEntityForeachCB and ::qof_object_foreach.
+
+Date queries handle full date and time strings, using the format
+exported by the QSF backend. To query dates and times, convert
+user input into UTC time using the ::QOF_UTC_DATE_FORMAT string.
+e.g. set the UTC date format and call ::qof_print_time_buff
+with a time_t obtained via ::timespecToTime_t.
+
+If the param is a KVP frame, then we use a special markup to 
+indicate frame values.  The markup should look like 
+/some/kvp/path:value. Thus, for example,
+  SELECT * FROM SomeObj WHERE (param_a < '/some/kvp:10.0')
+will search for the object where param_a is a KVP frame, and this
+KVP frame contains a path '/some/kvp' and the value stored at that
+path is floating-point and that float value is less than 10.0.
+
+The following are types of queries are NOT supported:
+  SELECT a,b,c FROM ...
+I am thinking of implementing the above as a list of KVP's
+whose keys would be a,b,c and values would be the results of the
+search. (Linas)
+
+XXX (Neil W). Alternatively, I need to use something like this
+when converting QOF objects between applications by using the
+returned parameter values to create a second object. One application
+using QOF could register objects from two applications and convert
+data from one to the other by using SELECT a,b,c FROM ObjA;
+SELECT d,f,k FROM ObjB; qof_object_new_instance(); ObjC_set_a(value_c);
+ObjC_set_b(value_k) etc. What's needed is for the SELECT to return
+a complete object that only contains the parameters selected.
+
+ Also unsupported:  UPDATE. 
+ 
+Certain SQL commands can have no QOF equivalent and will
+generate a runtime parser error:
+ - ALTER
+ - CREATE
+ - DROP
+ - FLUSH
+ - GRANT
+ - KILL
+ - LOCK
+ - OPTIMIZE
+ - REVOKE
+ - USE
+
   @{ */
 typedef struct _QofSqlQuery QofSqlQuery;
 
@@ -51,57 +138,25 @@
  */
 void qof_sql_query_set_book (QofSqlQuery *q, QofBook *book);
 
-/** Perform the query, return the results.
+/** \brief Perform the query, return the results.
+
  *  The book must be set in order to be able to perform a query.
  *
- *  The returned list is a list of ... See below ... 
  *  The returned list will have been sorted using the indicated sort 
- *  order, (by default ascending order) and trimed to the
+ *  order, (by default ascending order) and trimmed to the
  *  max_results length.
  *  Do NOT free the resulting list.  This list is managed internally
  *  by QofSqlQuery.
  *
- * The types of SQL queries that are allowed at this point are very 
- * limited.  In general, only the following types of queries are 
- * supported:
- *   SELECT * FROM SomeObj WHERE (param_a < 10.0) AND (param_b = "asdf")
- *          SORT BY param_c DESC;
- * The returned list is a list of all of the instances of 'SomeObj' that
- * mathc the query.   The 'SORT' term is optional. The 'WHERE' term is
- * optional; but if you don't include 'WHERE', you will get a list of 
- * all of the object instances.  The Boolean operations 'AND' and 'OR'
- * together with parenthesis can be used to construct arbitrarily 
- * nested predicates.
- *
- * If the param is a KVP frame, then we use a special markup to 
- * indicate frame values.  The markup should look like 
- * /some/kvp/path:value. Thus, for example,
- *   SELECT * FROM SomeObj WHERE (param_a < '/some/kvp:10.0')
- * will search for the object where param_a is a KVP frame, and this
- * KVP frame contains a path '/some/kvp' and the value stored at that
- * path is floating-point and that float value is less than 10.0.
- *
- * The following are types of queries are NOT supported:
- *   SELECT a,b,c FROM ...
- * I am thinking of implementing the above as a list of KVP's
- * whose keys would be a,b,c and values would be the results of the
- * search.
- *
- * Also unsupported are joins:
- *   SELECT * FROM ObjA,ObjB WHERE (ObjA.thingy = ObjB.Stuff);
- * The problem with the above is that the search requires a nested
- * search loop, aka a 'join', which is not currently supported in the
- * underlying QofQuery code.
- *
- * Also unsupported:  UPDATE and INSERT. 
  */
 
 GList * qof_sql_query_run (QofSqlQuery *query, const char * str);
 
-/** Same as above, but just parse/pre-process the query; do
- *  not actually run it over the dataset.  The QofBook does not
- *  need to be set before calling this function.
- */
+/** Same ::qof_sql_query_run, but just parse/pre-process the query; do
+  not actually run it over the dataset.  The QofBook does not
+  need to be set before calling this function.
+*/
+
 void qof_sql_query_parse (QofSqlQuery *query, const char * str);
 
 /** Return the QofQuery form of the previously parsed query. */
Index: qofquery.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery.h,v
retrieving revision 1.5.2.5
retrieving revision 1.5.2.6
diff -Lsrc/engine/qofquery.h -Lsrc/engine/qofquery.h -u -r1.5.2.5 -r1.5.2.6
--- src/engine/qofquery.h
+++ src/engine/qofquery.h
@@ -114,8 +114,8 @@
 #define QOF_PARAM_VERSION "version" 
 
 /* --------------------------------------------------------- */
-/** @name Query Subsystem Initialization and Shudown  */
-/* @{ */
+/** \name Query Subsystem Initialization and Shudown  */
+// @{
 /** Subsystem initialization and shutdown. Call init() once 
  *  to initalize the query subsytem; call shutdown() to free
  *  up any resources associated with the query subsystem. 
@@ -124,11 +124,11 @@
 
 void qof_query_init (void);
 void qof_query_shutdown (void);
-/* @} */
+// @}
 
 /* --------------------------------------------------------- */
-/** @name Low-Level API Functions */
-/* @{ */
+/** \name Low-Level API Functions */
+// @{
 
 GSList * qof_query_build_param_list (char const *param, ...);
 
@@ -365,6 +365,6 @@
 /** Return the list of books we're using */
 GList * qof_query_get_books (QofQuery *q);
 
+// @}
 /* @} */
 #endif /* QOF_QUERYNEW_H */
-/* @} */
Index: qofquery.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery.c,v
retrieving revision 1.10.2.6
retrieving revision 1.10.2.7
diff -Lsrc/engine/qofquery.c -Lsrc/engine/qofquery.c -u -r1.10.2.6 -r1.10.2.7
--- src/engine/qofquery.c
+++ src/engine/qofquery.c
@@ -564,7 +564,6 @@
     ql->list = g_list_prepend (ql->list, object);
     ql->count++;
   }
-
   return;
 }
 
@@ -1809,8 +1808,8 @@
   {
     case QOF_DATE_MATCH_NORMAL:
       return "QOF_DATE_MATCH_NORMAL";
-    case QOF_DATE_MATCH_ROUNDED:
-      return "QOF_DATE_MATCH_ROUNDED";
+    case QOF_DATE_MATCH_DAY:
+      return "QOF_DATE_MATCH_DAY";
   }
   return "UNKNOWN MATCH TYPE";
 }                               /* qof_query_printDateMatch */
Index: qofid.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofid.h,v
retrieving revision 1.2.6.6
retrieving revision 1.2.6.7
diff -Lsrc/engine/qofid.h -Lsrc/engine/qofid.h -u -r1.2.6.6 -r1.2.6.7
--- src/engine/qofid.h
+++ src/engine/qofid.h
@@ -78,7 +78,6 @@
 #define QOF_ID_NULL           "null"
 
 #define QOF_ID_BOOK           "Book"
-#define QOF_ID_FREQSPEC       "FreqSpec"
 #define QOF_ID_SESSION        "Session"
 
 /** simple,cheesy cast but holds water for now */
@@ -155,7 +154,12 @@
 
 /** @name Collections of Entities 
  @{ */
+
+/** create a new collection of entities of type
+*/
 QofCollection * qof_collection_new (QofIdType type);
+
+/** destroy the collection */
 void qof_collection_destroy (QofCollection *col);
 
 /** return the type that the collection stores */
Index: qofquerycore.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquerycore.h,v
retrieving revision 1.5.2.4
retrieving revision 1.5.2.5
diff -Lsrc/engine/qofquerycore.h -Lsrc/engine/qofquerycore.h -u -r1.5.2.4 -r1.5.2.5
--- src/engine/qofquerycore.h
+++ src/engine/qofquerycore.h
@@ -70,22 +70,22 @@
 /** Comparisons for QOF_TYPE_DATE	
  * The QOF_DATE_MATCH_DAY comparison rounds the two time
  *     values to mid-day and then compares these rounded values.
- * The QOF_DATE_MATCH_TIME comparison matches teh time values,
+ * The QOF_DATE_MATCH_NORMAL comparison matches the time values,
  *     down to the second.
  */
 /* XXX remove these deprecated old names .. */
-#define QOF_DATE_MATCH_ROUNDED QOF_DATE_MATCH_DAY
-#define QOF_DATE_MATCH_NORMAL  QOF_DATE_MATCH_TIME
+//#define QOF_DATE_MATCH_ROUNDED QOF_DATE_MATCH_DAY
+//#define QOF_DATE_MATCH_NORMAL  QOF_DATE_MATCH_TIME
 typedef enum {
   QOF_DATE_MATCH_NORMAL = 1,
   QOF_DATE_MATCH_DAY
 } QofDateMatch;
 
-/* Comparisons for QOF_TYPE_NUMERIC, QOF_TYPE_DEBCRED	
+/** Comparisons for QOF_TYPE_NUMERIC, QOF_TYPE_DEBCRED
  *
  * XXX Should be deprecated, or at least wrapped up as a convnience
  * function,  this is based on the old bill gribble code, which assumed 
- * the amount was always positive, and the then specified a funds-flow 
+ * the amount was always positive, and then specified a funds-flow 
  * direction (credit, debit, or either).
  * 
  * The point being that 'match credit' is equivalent to the compound
@@ -182,8 +182,7 @@
 void qof_query_core_predicate_free (QofQueryPredData *pdata);
 
 /** Retrieve a predicate. */
-gboolean qof_query_date_predicate_get_date (QofQueryPredData *data, Timespec *date);
-
+gboolean qof_query_date_predicate_get_date (QofQueryPredData *pd, Timespec *date);
 /** Return a printable string for a core data object.  Caller needs
  *  to g_free() the returned string.
  */
Index: qofquerycore.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquerycore.c,v
retrieving revision 1.8.2.6
retrieving revision 1.8.2.7
diff -Lsrc/engine/qofquerycore.c -Lsrc/engine/qofquerycore.c -u -r1.8.2.6 -r1.8.2.7
--- src/engine/qofquerycore.c
+++ src/engine/qofquerycore.c
@@ -261,7 +261,8 @@
 static int 
 date_compare (Timespec ta, Timespec tb, QofDateMatch options)
 {
-  if (options == QOF_DATE_MATCH_ROUNDED) {
+
+  if (options == QOF_DATE_MATCH_DAY) {
     ta = timespecCanonicalDayTime (ta);
     tb = timespecCanonicalDayTime (tb);
   }
Index: qofsql.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofsql.c,v
retrieving revision 1.5.2.3
retrieving revision 1.5.2.4
diff -Lsrc/engine/qofsql.c -Lsrc/engine/qofsql.c -u -r1.5.2.3 -r1.5.2.4
--- src/engine/qofsql.c
+++ src/engine/qofsql.c
@@ -28,19 +28,20 @@
 */
 
 #include <stdlib.h>   /* for working atoll */
-
+#include <errno.h>
 #include <glib.h>
-#include <libsql/sql_parser.h>
-#include <qof/kvp_frame.h>
-#include <qof/gnc-date.h>
-#include <qof/gnc-numeric.h>
-#include <qof/gnc-trace.h>
-#include <qof/guid.h>
-#include <qof/qofbook.h>
-#include <qof/qofquery.h>
-#include <qof/qofquerycore.h>
-#include <qof/qofsql.h>
-#include <qof/gnc-engine-util.h>
+#include "sql_parser.h"
+#include "kvp_frame.h"
+#include "gnc-date.h"
+#include "gnc-numeric.h"
+#include "gnc-trace.h"
+#include "guid.h"
+#include "qofbook.h"
+#include "qofquery.h"
+#include "qofquerycore.h"
+#include "qofsql.h"
+#include "gnc-engine-util.h"
+#include "qofinstance-p.h"
 
 static short module = MOD_QUERY;
 
@@ -53,6 +54,8 @@
 	QofBook *book;
 	char * single_global_tablename;
 	KvpFrame *kvp_join;
+	GList *param_list;
+	QofEntity *inserted_entity;
 };
 
 /* ========================================================== */
@@ -147,7 +150,7 @@
 	char tmpbuff[128];
 	GSList *param_list;
 	GList *guid_list;
-	QofQueryPredData *pred_data = NULL;
+	QofQueryPredData *pred_data;
 	sql_field_item *sparam, *svalue;
 	char * qparam_name, *qvalue_name, *table_name, *param_name;
 	char *sep, *path,*str,*p;
@@ -156,11 +159,13 @@
 	KvpValueType kvt;
 	QofQueryCompare qop;
 	time_t exact;
+	struct tm utc;
 	int rc, len;
 	Timespec ts;
 	QofType param_type;
 	QofGuidMatch gm;
 	
+	pred_data = NULL;
 	if (NULL == cond)
 	{
 		PWARN("missing condition");
@@ -172,20 +177,20 @@
 	/* XXX fix this so it can be either left or right */
 	if (NULL == cond->d.pair.left)
 	{
-		PWARN("missing left paramter");
+		PWARN("missing left parameter");
 		return NULL;
 	}
 	sparam = cond->d.pair.left->item;
 	if (SQL_name != sparam->type)
 	{
-		PWARN("we support only paramter names at this time (parsed %d)",
+		PWARN("we support only parameter names at this time (parsed %d)",
           sparam->type);
 		return NULL;
 	}
 	qparam_name = sparam->d.name->data;
 	if (NULL == qparam_name)
 	{
-		PWARN ("missing paramter name");
+		PWARN ("missing parameter name");
 		return NULL;
 	}
 
@@ -194,7 +199,7 @@
 	/* XXX fix this so it can be either left or right */
 	if (NULL == cond->d.pair.right)
 	{
-		PWARN ("missing right paramter");
+		PWARN ("missing right parameter");
 		return NULL;
 	}
 	svalue = cond->d.pair.right->item;
@@ -261,7 +266,7 @@
 	}
 
 	/* -------------------------------- */
-	/* Now start building the QOF paramter */
+	/* Now start building the QOF parameter */
 	param_list = qof_query_build_param_list (qparam_name, NULL);
 
 	/* Get the where-term comparison operator */
@@ -345,20 +350,19 @@
 	}
 	else if (!strcmp (param_type, QOF_TYPE_DATE))
 	{
-		// XXX FIXME: this doesn't handle time strings, only date strings
-		// XXX should also see if we need to do a day-compare or time-compare.
-		/* work around highly bogus locale setting */
-		qof_date_format_set(QOF_DATE_FORMAT_US);
-
-		rc= qof_scan_date_secs (qvalue_name, &exact);
-		if (0 == rc) 
-		{
-			PWARN ("unable to parse date: %s", qvalue_name);
-			return NULL;
+		/* Use a timezone independent setting */
+		qof_date_format_set(QOF_DATE_FORMAT_UTC);
+		rc = 0;
+		if(FALSE == qof_scan_date_secs (qvalue_name, &exact))
+		{
+			char *tail;
+			exact = strtoll(qvalue_name, &tail, 0);
+//			PWARN ("unable to parse date: %s", qvalue_name);
+//			return NULL;
 		}
 		ts.tv_sec = exact;
 		ts.tv_nsec = 0;
-		pred_data = qof_query_date_predicate (qop, QOF_DATE_MATCH_DAY, ts);
+		pred_data = qof_query_date_predicate (qop, QOF_DATE_MATCH_NORMAL, ts);
 	}
 	else if (!strcmp (param_type, QOF_TYPE_NUMERIC))
 	{
@@ -542,7 +546,7 @@
 			/* Set the sort direction */
 			if (SQL_asc == sorder->order_type) direction[i] = TRUE;
 
-			/* Find the paramter name */
+			/* Find the parameter name */
 			qparam_name = NULL;
 			n = sorder->name;
 			if (n)
@@ -552,11 +556,11 @@
 				{
 					qsp[i] = qof_query_build_param_list (qparam_name, NULL);
 				}
-				n = n->next;   /* next paramter */
+				n = n->next;   /* next parameter */
 			}
 			else
 			{
-				/* if no next paramter, then next order-by */
+				/* if no next parameter, then next order-by */
 				sorder_list = sorder_list->next;
 			}
 		}
@@ -568,26 +572,250 @@
 }
 
 /* ========================================================== */
+static void
+qof_queryForeachParam( QofParam* param, gpointer user_data) 
+{
+	QofSqlQuery *q;
+	
+	g_return_if_fail(user_data != NULL);
+	q = (QofSqlQuery*)user_data;
+	g_return_if_fail(param != NULL);
+	if((param->param_getfcn != NULL)&&(param->param_setfcn != NULL)) {
+		q->param_list = g_list_append(q->param_list, param);
+	}
+}
+
+static const char*
+qof_sql_get_value(sql_insert_statement *insert)
+{
+	GList *walk, *cur;
+	const char *insert_string;
+	sql_field *field;
+	sql_field_item * item;
+
+	/* how to cope with multiple results? */
+	if (insert->values == NULL) { return NULL; }
+	for (walk = insert->values; walk != NULL; walk = walk->next) 
+	{
+		field = walk->data;
+		item = field->item;
+		for (cur = item->d.name; cur != NULL; cur = cur->next)
+		{
+			insert_string = g_strdup_printf("%s", (char*)cur->data);
+		}
+	}
+	return insert_string;
+}
+
+static const QofParam*
+qof_sql_get_param(QofIdTypeConst type, sql_insert_statement *insert)
+{
+	GList *walk, *cur;
+	const char *param_name;
+	const QofParam *param;
+	sql_field *field;
+	sql_field_item *item;
+
+	param = NULL;
+	if (insert->fields == NULL) { return NULL; }
+	for (walk = insert->fields; walk != NULL; walk = walk->next) 
+	{
+		field = walk->data;
+		item = field->item;
+		for (cur = item->d.name; cur != NULL; cur = cur->next)
+		{
+			param_name = g_strdup_printf("%s", (char*)cur->data);
+		}
+	}
+	param = qof_class_get_parameter(type, param_name);
+	return param;
+}
+
+static void
+qof_sql_insertCB( gpointer value, gpointer data)
+{
+	GList *param_list, *walk;
+	QofSqlQuery *q;
+	QofIdTypeConst type;
+	sql_insert_statement *sis;
+	const char *insert_string;
+	gboolean    registered_type;
+	QofEntity   *ent;
+	QofParam    *param;
+	struct tm   query_time;
+	time_t      query_time_t;
+	/* cm_ prefix used for variables that hold the data to commit */
+	gnc_numeric    cm_numeric;
+	double         cm_double;
+	gboolean       cm_boolean;
+	gint32         cm_i32;
+	gint64         cm_i64;
+	Timespec       cm_date;
+	char           cm_char, *tail;
+	GUID           *cm_guid;
+	KvpFrame       *cm_kvp;
+	KvpValue       *cm_value;
+	KvpValueType   cm_type;
+	QofSetterFunc  cm_setter;
+	const QofParam *cm_param;
+	void (*string_setter)    (QofEntity*, const char*);
+	void (*date_setter)      (QofEntity*, Timespec);
+	void (*numeric_setter)   (QofEntity*, gnc_numeric);
+	void (*double_setter)    (QofEntity*, double);
+	void (*boolean_setter)   (QofEntity*, gboolean);
+	void (*i32_setter)       (QofEntity*, gint32);
+	void (*i64_setter)       (QofEntity*, gint64);
+	void (*char_setter)      (QofEntity*, char);
+	void (*kvp_frame_setter) (QofEntity*, KvpFrame*);
+
+	q = (QofSqlQuery*)data;
+	ent = q->inserted_entity;
+	param = (QofParam*)value;
+	sis = q->parse_result->statement;
+	type = g_strdup_printf("%s", sis->table->d.simple);
+	insert_string = g_strdup(qof_sql_get_value(sis));
+	cm_param = qof_sql_get_param(type, sis);
+	param_list = g_list_copy(q->param_list);
+	while(param_list != NULL) {
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_STRING) == 0)  { 
+			string_setter = (void(*)(QofEntity*, const char*))cm_param->param_setfcn;
+			if(string_setter != NULL) { string_setter(ent, insert_string); }
+			registered_type = TRUE;
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_DATE) == 0) { 
+			date_setter = (void(*)(QofEntity*, Timespec))cm_setter;
+			strptime(insert_string, QOF_UTC_DATE_FORMAT, &query_time);
+			query_time_t = mktime(&query_time);
+			timespecFromTime_t(&cm_date, query_time_t);
+			if(date_setter != NULL) { date_setter(ent, cm_date); }
+		}
+		if((safe_strcmp(cm_param->param_type, QOF_TYPE_NUMERIC) == 0)  ||
+		(safe_strcmp(cm_param->param_type, QOF_TYPE_DEBCRED) == 0)) { 
+			numeric_setter = (void(*)(QofEntity*, gnc_numeric))cm_setter;
+			string_to_gnc_numeric(insert_string, &cm_numeric);
+			if(numeric_setter != NULL) { numeric_setter(ent, cm_numeric); }
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_GUID) == 0) { 
+			cm_guid = g_new(GUID, 1);
+			if(TRUE != string_to_guid(insert_string, cm_guid))
+			{
+				LEAVE (" string to guid failed for %s", insert_string);
+				return;
+			}
+/*			reference_type = xmlGetProp(node, QSF_OBJECT_TYPE);
+			if(0 == safe_strcmp(QOF_PARAM_GUID, reference_type)) 
+			{
+				qof_entity_set_guid(qsf_ent, cm_guid);
+			}
+			else {
+				reference = qof_entity_get_reference_from(qsf_ent, cm_param);
+				if(reference) {
+					params->referenceList = g_list_append(params->referenceList, reference);
+				}
+			}*/
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_INT32) == 0) { 
+			errno = 0;
+			cm_i32 = (gint32)strtol (insert_string, &tail, 0);
+			if(errno == 0) {
+				i32_setter = (void(*)(QofEntity*, gint32))cm_setter;
+				if(i32_setter != NULL) { i32_setter(ent, cm_i32); }
+			}
+//			else { qof_backend_set_error(params->be, ERR_QSF_OVERFLOW); }
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_INT64) == 0) { 
+			errno = 0;
+			cm_i64 = strtoll(insert_string, &tail, 0);
+			if(errno == 0) {
+				i64_setter = (void(*)(QofEntity*, gint64))cm_setter;
+				if(i64_setter != NULL) { i64_setter(ent, cm_i64); }
+			}
+//			else { qof_backend_set_error(params->be, ERR_QSF_OVERFLOW); }
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_DOUBLE) == 0) { 
+			errno = 0;
+			cm_double = strtod(insert_string, &tail);
+			if(errno == 0) {
+				double_setter = (void(*)(QofEntity*, double))cm_setter;
+				if(double_setter != NULL) { double_setter(ent, cm_double); }
+			}
+		}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_BOOLEAN) == 0){ 
+			if(0 == safe_strcmp(insert_string, "TRUE")) {
+				cm_boolean = TRUE;
+			}
+			else { cm_boolean = FALSE; }
+			boolean_setter = (void(*)(QofEntity*, gboolean))cm_setter;
+			if(boolean_setter != NULL) { boolean_setter(ent, cm_boolean); }
+		}
+			if(safe_strcmp(cm_param->param_type, QOF_TYPE_KVP) == 0) { 
+/*				cm_type = qsf_to_kvp_helper(xmlGetProp(node, QSF_OBJECT_VALUE));
+				if(!cm_type) { return; }
+				cm_value = string_to_kvp_value(xmlNodeGetContent(node), cm_type);
+				cm_kvp = kvp_frame_copy(cm_param->param_getfcn(qsf_ent, cm_param));
+				cm_kvp = kvp_frame_set_value(cm_kvp, xmlGetProp(node, QSF_OBJECT_KVP), cm_value);
+				kvp_frame_setter = (void(*)(QofEntity*, KvpFrame*))cm_setter;
+				if(kvp_frame_setter != NULL) { kvp_frame_setter(qsf_ent, cm_kvp); }*/
+			}
+		if(safe_strcmp(cm_param->param_type, QOF_TYPE_CHAR) == 0) { 
+			cm_char = *insert_string;
+			char_setter = (void(*)(QofEntity*, char))cm_setter;
+			if(char_setter != NULL) { char_setter(ent, cm_char); }
+		}
+		param_list = param_list->next;
+	}
+}
+
+static QofEntity*
+qof_query_insert(QofSqlQuery *query)
+{
+	QofIdType type;
+	QofInstance *inst;
+	sql_insert_statement *sis;
+
+	query->param_list = NULL;
+	sis = query->parse_result->statement;
+	switch(sis->table->type) {
+		case SQL_simple: {
+			query->single_global_tablename = g_strdup_printf("%s", sis->table->d);
+			type = g_strdup(query->single_global_tablename);
+			break;
+		}
+		default: {
+			fprintf(stderr, "default");
+		}
+	}
+	inst = (QofInstance*)qof_object_new_instance(type, query->book);
+	if(inst == NULL) { return; }
+	query->param_list = NULL;
+	query->inserted_entity = &inst->entity;
+	qof_class_param_foreach((QofIdTypeConst)type, qof_queryForeachParam, query);
+	g_list_foreach(query->param_list, qof_sql_insertCB, query);
+	return query->inserted_entity;
+}
 
 void 
 qof_sql_query_parse (QofSqlQuery *query, const char *str)
 {
 	GList *tables;
+	char *buf;
 	sql_select_statement *sss;
 	sql_where *swear;
 	
 	if (!query) return;
 
 	/* Delete old query, if any */
-   /* XXX FIXME we should also delete the parse_result as well */
 	if (query->qof_query)
 	{
 		qof_query_destroy (query->qof_query);
+		sql_destroy(query->parse_result);
 		query->qof_query = NULL;
 	}
 
 	/* Parse the SQL string */
-	query->parse_result = sql_parse (str);
+	buf = g_strdup(str);
+	query->parse_result = sql_parse (buf);
+	g_free(buf);
 
 	if (!query->parse_result) 
 	{
@@ -595,9 +823,9 @@
 		return;
 	}
 
-	if (SQL_select != query->parse_result->type)
+	if ((SQL_select != query->parse_result->type)&&(SQL_insert != query->parse_result->type))
 	{
-		PWARN("currently, only SELECT statements are supported, "
+		PWARN("currently, only SELECT or INSERT statements are supported, "
 		                     "got type=%d", query->parse_result);
 		return;
 	}
@@ -612,7 +840,11 @@
 	{
 		query->single_global_tablename = tables->data;
 	}
-
+	/* if this is an insert, we're done with the parse. */
+	if(SQL_insert == query->parse_result->type) {
+		query->qof_query = qof_query_create();
+		return;
+	}
 	sss = query->parse_result->statement;
 	swear = sss->where;
 	if (swear)
@@ -625,7 +857,6 @@
 	{
 		query->qof_query = qof_query_create();
 	}
-
 	/* Provide support for different sort orders */
 	handle_sort_order (query, sss->order);
 
@@ -650,8 +881,12 @@
 	if (NULL == query->qof_query) return NULL;
 
 	qof_query_set_book (query->qof_query, query->book);
-
-	// qof_query_print (query->qof_query);
+	if(SQL_insert == query->parse_result->type){
+		results = NULL;
+		results = g_list_append(results, qof_query_insert(query));
+		return results;
+	}
+	qof_query_print (query->qof_query);
 	results = qof_query_run (query->qof_query);
 
 	return results;
Index: qofquery-deserial.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery-deserial.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/engine/qofquery-deserial.c -Lsrc/engine/qofquery-deserial.c -u -r1.1.2.2 -r1.1.2.3
--- src/engine/qofquery-deserial.c
+++ src/engine/qofquery-deserial.c
@@ -413,7 +413,7 @@
 	xp = root->xmlChildrenNode;
 
 	how = QOF_COMPARE_EQUAL;
-	sm = QOF_DATE_MATCH_ROUNDED;
+	sm = QOF_DATE_MATCH_DAY;
 	date = (Timespec){0,0};
 
 	for (node=xp; node; node = node->next)
@@ -422,7 +422,7 @@
 
 		GET_HOW (how, "qofquery:compare", LT, LTE, EQUAL, GT, GTE, NEQ);
 		GET_MATCH2 (sm, "qofquery:date-match", 
-		            DATE_MATCH, NORMAL, ROUNDED);
+		            DATE_MATCH, NORMAL, DAY);
 		GET_DATE (0, date=, "qofquery:date");
 		{}
 	}
Index: qofquery-serialize.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery-serialize.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/engine/qofquery-serialize.h -Lsrc/engine/qofquery-serialize.h -u -r1.1.2.2 -r1.1.2.3
--- src/engine/qofquery-serialize.h
+++ src/engine/qofquery-serialize.h
@@ -30,7 +30,7 @@
 #ifndef QOF_QUERY_SERIALIZE_H
 #define QOF_QUERY_SERIALIZE_H
 
-#include <qof/qofquery.h>
+#include "qofquery.h"
 #include <libxml/tree.h>
 
 /** @addtogroup XML Serialize Queries to/from XML */
Index: qofquery-deserial.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery-deserial.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/engine/qofquery-deserial.h -Lsrc/engine/qofquery-deserial.h -u -r1.1.2.2 -r1.1.2.3
--- src/engine/qofquery-deserial.h
+++ src/engine/qofquery-deserial.h
@@ -30,7 +30,7 @@
 #ifndef QOF_QUERY_DESERIAL_H
 #define QOF_QUERY_DESERIAL_H
 
-#include <qof/qofquery.h>
+#include "qofquery.h"
 #include <libxml/tree.h>
 
 /** @addtogroup XML 
@@ -38,6 +38,9 @@
     can be sent from here to there. This file implements the
     routine needed to convert the XML back into a C struct.
 
+    \b Unfinished. XXX Why is this easier than reading a text/sql
+    file? 
+
  @{ */
 /** Given an XML tree, reconstruct and return the equivalent query. */
 QofQuery *qof_query_from_xml (xmlNodePtr);
Index: FreqSpec.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.c,v
retrieving revision 1.28.4.6
retrieving revision 1.28.4.7
diff -Lsrc/engine/FreqSpec.c -Lsrc/engine/FreqSpec.c -u -r1.28.4.6 -r1.28.4.7
--- src/engine/FreqSpec.c
+++ src/engine/FreqSpec.c
@@ -100,8 +100,11 @@
  * Strangely, most of the rest of glib does use const, so
  * perhaps this will change? When it does, just define this macro to
  * nothing and the compiler will check the constness of each pointer....
+ 
+ Done. NW 24/4/5.
  */
-#define CONST_HACK (GDate*)
+#define CONST_HACK 
+//(GDate*)
 
 static short module = MOD_SX;
 /* 
@@ -122,12 +125,18 @@
  
 /** PROTOTYPES ******************************************************/
 
+FROM_STRING_FUNC(UIFreqType, ENUM_LIST_UI)
+AS_STRING_FUNC(UIFreqType, ENUM_LIST_UI)
+
+FROM_STRING_FUNC(FreqType, ENUM_LIST_TYPE)
+AS_STRING_FUNC(FreqType, ENUM_LIST_TYPE)
+
 static int int_cmp( int a, int b );
 
-/**
+/*
  * Destroys all sub-FreqSpecs in a composite FreqSpec.
  * Assertion error if it's not a COMPOSITE FreqSpec.
- **/
+ */
 void xaccFreqSpecCompositesClear( FreqSpec *fs );
 
 void subSpecsListMapDelete( gpointer data, gpointer user_data );
@@ -167,12 +176,12 @@
   return month_name;
 }
 
-/**
+/*
  * Initializes a FreqSpec by setting it's to type INVALID.
  * Use this to initialise a stack object.
  * FreqSpec objects must be initalised before being used by
  * any other method.
- **/
+ */
 
 static void
 xaccFreqSpecInit( FreqSpec *fs, QofBook *book )
@@ -653,8 +662,6 @@
    return 0;
 }
 
-/* FIXME: add month-relative getter */
-
 GList*
 xaccFreqSpecCompositeGet( FreqSpec *fs )
 {
@@ -704,6 +711,18 @@
   return str;
 }
 
+static const char*
+qofFreqSpecPrintable (gpointer obj)
+{
+	FreqSpec *fs;
+	GString  *str;
+
+	fs = (FreqSpec*)obj;
+	g_return_val_if_fail(fs != NULL, NULL);
+	str = g_string_new("");
+	xaccFreqSpecGetFreqStr(fs, str);
+	return str->str;
+}
     
 void
 xaccFreqSpecGetFreqStr( FreqSpec *fs, GString *str )
@@ -996,9 +1015,9 @@
    return 1;
 }
 
-/**
+/*
  * Returns the "min" FreqSpec sub-element of a composite FreqSpec.
- **/
+ */
 static
 FreqSpec*
 _gnc_freq_spec_get_min( FreqSpec *fs )
@@ -1111,3 +1130,236 @@
    }
    return 0;
 }
+
+/*  QOF routines. */
+
+int
+qofFreqSpecGetMonthDay(FreqSpec *fs)
+{
+	int outDayOfMonth;
+
+	outDayOfMonth = 0;
+	if ( fs->type != MONTHLY ) { return outDayOfMonth; }
+	outDayOfMonth = fs->s.monthly.day_of_month;
+	return outDayOfMonth;
+}
+
+int
+qofFreqSpecGetMonthOffset(FreqSpec *fs)
+{
+	int outMonthOffset;
+
+	outMonthOffset = 0;
+	if ( fs->type != MONTHLY ) { return outMonthOffset; }
+	outMonthOffset = fs->s.monthly.offset_from_epoch;
+	return outMonthOffset;
+}
+
+Timespec
+qofFreqSpecGetBaseDate(FreqSpec *fs)
+{
+	GDate       *when;
+	struct tm   number;
+	time_t      start_t;
+	Timespec ts = {0,0};
+
+	g_return_val_if_fail( fs != NULL , ts);
+	when = g_date_new();
+	if(xaccFreqSpecGetOnce(fs, when) == -1) { return ts; }
+	g_date_to_struct_tm(when, &number);
+	start_t = mktime(&number);
+	timespecFromTime_t(&ts, start_t);
+	return ts;
+}
+
+char*
+qofFreqSpecGetUIType(FreqSpec *fs)
+{
+	char *type_string;
+
+	g_return_val_if_fail(fs, NULL);
+	type_string = g_strdup(UIFreqTypeasString(fs->uift));
+	return type_string;
+}
+
+int
+qofFreqSpecGetRepeat(FreqSpec *fs)
+{
+	int repeat, dump, dump2;
+
+	g_return_val_if_fail(fs != NULL, -1);
+	repeat = -1;
+	dump = dump2 = 0;
+	switch(xaccFreqSpecGetType(fs))
+	{
+		case INVALID: {
+			break;
+		}
+		case ONCE: {
+			repeat = 0;
+			break;
+		}
+		case DAILY: {
+			xaccFreqSpecGetDaily(fs, &repeat);
+			break;
+		}
+		case WEEKLY: {
+			xaccFreqSpecGetWeekly(fs, &repeat, &dump);
+			break;
+		}
+		case MONTHLY: {
+			xaccFreqSpecGetMonthly(fs, &repeat, &dump, &dump2);
+			break;
+		}
+		case MONTH_RELATIVE: {
+			repeat = 0;
+			break;
+		}
+		case COMPOSITE: {
+			repeat = 0;
+			break;
+		}
+		default: {
+			break;
+		}
+	}
+	return repeat;
+}
+
+/* QOF set routines - may look a little strange as QOF can set parameters in any order. */
+/* Initial state:  UIFREQ_ONCE, INVALID, union s memset to zero and value == 0 */
+
+static void 
+qofFreqSpecCalculate(FreqSpec *fs, gint value)
+{
+	GDate *when;
+
+	g_return_if_fail(fs != NULL);
+	/* If it's INVALID, nothing can be done until more data is set. */
+	if(xaccFreqSpecGetType(fs) == INVALID) { return; }
+	/* If it's still UIFREQ_ONCE, nothing needs to be done */
+	if(xaccFreqSpecGetUIType(fs) == UIFREQ_ONCE) { return; }
+	/* If value is zero, nothing needs to be done. */
+	if(value == 0) { return; }
+	when = g_date_new();
+	xaccFreqSpecGetOnce(fs, when);
+	switch (xaccFreqSpecGetUIType(fs)) {
+		case UIFREQ_NONE : {
+			xaccFreqSpecSetNone(fs);
+		}
+		break;
+		case UIFREQ_ONCE : {
+			/*  should be impossible but just to be sure. */
+			break;
+		}
+		case UIFREQ_DAILY : {
+			xaccFreqSpecSetDaily(fs, when, value);
+			break;
+		}
+		case UIFREQ_DAILY_MF : {
+			
+			break;
+		}
+		case UIFREQ_WEEKLY : {
+			xaccFreqSpecSetWeekly(fs, when, value);
+			break;
+		}
+		case UIFREQ_BI_WEEKLY : {
+			
+			break;
+		}
+		case UIFREQ_SEMI_MONTHLY : {
+			
+			break;
+		}
+		case UIFREQ_MONTHLY : {
+			 xaccFreqSpecSetMonthly(fs, when, value);
+			break;
+		}
+		case UIFREQ_QUARTERLY : {
+			
+			break;
+		}
+		case UIFREQ_TRI_ANUALLY : {
+			
+			break;
+		}
+		case UIFREQ_SEMI_YEARLY : {
+			
+			break;
+		}
+		case UIFREQ_YEARLY : {
+			
+			break;
+		}
+		default: { break; }
+	}
+}
+
+
+void
+qofFreqSpecSetUIType (FreqSpec *fs, const char *type_string)
+{
+	g_return_if_fail(fs != NULL);
+	xaccFreqSpecSetUIType(fs, UIFreqTypefromString(type_string));
+	qofFreqSpecCalculate(fs, fs->value);
+}
+
+void
+qofFreqSpecSetBaseDate(FreqSpec *fs, Timespec start_date)
+{
+	time_t      start_t;
+	FreqType    type;
+	GDate       *when;
+
+	g_return_if_fail( fs != NULL );
+	when = g_date_new();
+	type = xaccFreqSpecGetType(fs);
+	start_t = timespecToTime_t(start_date);
+	g_date_set_time(when, (GTime)start_t);
+	/* QOF sets this before a type is assigned. */
+	if(type == INVALID) {
+		fs->type = ONCE;
+	}
+	xaccFreqSpecSetOnceDate(fs, when);
+	/* Now we have a GDate available for the calculation. */
+	qofFreqSpecCalculate(fs, fs->value);
+}
+
+void
+qofFreqSpecSetRepeat(FreqSpec *fs, gint value)
+{
+	fs->value = value;
+	qofFreqSpecCalculate(fs, value);
+}
+
+static QofObject FreqSpecDesc = 
+{
+	interface_version : QOF_OBJECT_VERSION,
+	e_type            : QOF_ID_FREQSPEC,
+	type_label        : "Frequency Specification",
+	create            : (gpointer)xaccFreqSpecMalloc,
+	book_begin        : NULL,
+	book_end          : NULL,
+	is_dirty          : NULL,
+	mark_clean        : NULL,
+	foreach           : qof_collection_foreach,
+	printable         : qofFreqSpecPrintable,
+	version_cmp       : (int (*)(gpointer, gpointer)) qof_instance_version_cmp,
+};
+
+gboolean FreqSpecRegister (void)
+{
+	static QofParam params[] = {
+	 { FS_UI_TYPE, QOF_TYPE_STRING, (QofAccessFunc)qofFreqSpecGetUIType, (QofSetterFunc)qofFreqSpecSetUIType },
+	 { FS_REPEAT, QOF_TYPE_INT64, (QofAccessFunc)qofFreqSpecGetRepeat, (QofSetterFunc)qofFreqSpecSetRepeat },
+	 { FS_BASE_DATE, QOF_TYPE_DATE, (QofAccessFunc)qofFreqSpecGetBaseDate, 
+		 (QofSetterFunc)qofFreqSpecSetBaseDate },
+	 { FS_MONTH_DAY, QOF_TYPE_STRING, (QofAccessFunc)qofFreqSpecGetMonthDay, NULL },
+	 { QOF_PARAM_BOOK, QOF_ID_BOOK, (QofAccessFunc)qof_instance_get_book, NULL },
+	 { QOF_PARAM_GUID, QOF_TYPE_GUID, (QofAccessFunc)qof_instance_get_guid, NULL },
+	 { NULL },
+	};
+	qof_class_register(QOF_ID_FREQSPEC, (QofSortFunc)gnc_freq_spec_compare, params);
+	return qof_object_register(&FreqSpecDesc);
+}
Index: qofgobj.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofgobj.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/engine/qofgobj.h -Lsrc/engine/qofgobj.h -u -r1.1.2.2 -r1.1.2.3
--- src/engine/qofgobj.h
+++ src/engine/qofgobj.h
@@ -43,8 +43,8 @@
 
 
 #include <glib-object.h>
-#include <qof/qofbook.h>
-#include <qof/qofclass.h>
+#include "qofbook.h"
+#include "qofclass.h"
 
 /** Initalize and shut down this subsystem. */
 void qof_gobject_init(void);
Index: SchedXaction.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/SchedXaction.c,v
retrieving revision 1.41.4.4
retrieving revision 1.41.4.5
diff -Lsrc/engine/SchedXaction.c -Lsrc/engine/SchedXaction.c -u -r1.41.4.4 -r1.41.4.5
--- src/engine/SchedXaction.c
+++ src/engine/SchedXaction.c
@@ -46,7 +46,7 @@
 
 static short module = MOD_SX;
 
-/** Local Prototypes *****/
+/* Local Prototypes *****/
 
 void sxprivtransactionListMapDelete( gpointer data, gpointer user_data );
 
@@ -731,3 +731,40 @@
    return sx->deferredList;
 }
 
+static QofObject SXDesc = 
+{
+	interface_version : QOF_OBJECT_VERSION,
+	e_type            : GNC_SX_ID,
+	type_label        : "Scheduled Transaction",
+	create            : (gpointer)xaccSchedXactionMalloc,
+	book_begin        : NULL,
+	book_end          : NULL,
+	is_dirty          : NULL,
+	mark_clean        : NULL,
+	foreach           : qof_collection_foreach,
+	printable         : NULL,
+	version_cmp       : (int (*)(gpointer, gpointer)) qof_instance_version_cmp,
+};
+
+gboolean SXRegister (void)
+{
+	static QofParam params[] = {
+	 { GNC_SX_FREQ_SPEC, QOF_ID_FREQSPEC, (QofAccessFunc)xaccSchedXactionGetFreqSpec,
+		 (QofSetterFunc)xaccSchedXactionSetFreqSpec },
+	 { GNC_SX_NAME, QOF_TYPE_STRING, (QofAccessFunc)xaccSchedXactionGetName,
+		 (QofSetterFunc)xaccSchedXactionSetName },
+	 { GNC_SX_START_DATE, QOF_TYPE_DATE, (QofAccessFunc)xaccSchedXactionGetStartDate,
+		 (QofSetterFunc)xaccSchedXactionSetStartDate },
+	 { GNC_SX_LAST_DATE, QOF_TYPE_DATE, (QofAccessFunc)xaccSchedXactionGetLastOccurDate,
+		 (QofSetterFunc)xaccSchedXactionSetLastOccurDate },
+	 { GNC_SX_NUM_OCCUR, QOF_TYPE_INT64, (QofAccessFunc)xaccSchedXactionGetNumOccur,
+		 (QofSetterFunc)xaccSchedXactionSetNumOccur },
+	 { GNC_SX_REM_OCCUR, QOF_TYPE_INT64, (QofAccessFunc)xaccSchedXactionGetRemOccur,
+		 (QofSetterFunc)xaccSchedXactionSetRemOccur },
+	 { QOF_PARAM_BOOK, QOF_ID_BOOK, (QofAccessFunc)qof_instance_get_book, NULL },
+	 { QOF_PARAM_GUID, QOF_TYPE_GUID, (QofAccessFunc)qof_instance_get_guid, NULL },
+	 { NULL },
+	};
+	qof_class_register(GNC_SX_ID, NULL, params);
+	return qof_object_register(&SXDesc);
+}
Index: kvp_frame.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/kvp_frame.c,v
retrieving revision 1.30.4.8
retrieving revision 1.30.4.9
diff -Lsrc/engine/kvp_frame.c -Lsrc/engine/kvp_frame.c -u -r1.30.4.8 -r1.30.4.9
--- src/engine/kvp_frame.c
+++ src/engine/kvp_frame.c
@@ -409,7 +409,7 @@
 }
 
 void
-kvp_frame_set_gnc_numeric(KvpFrame * frame, const char * path, gnc_numeric nval) 
+kvp_frame_set_numeric(KvpFrame * frame, const char * path, gnc_numeric nval) 
 {
   KvpValue *value;
   value = kvp_value_new_gnc_numeric (nval);
@@ -418,7 +418,7 @@
 }
 
 void
-kvp_frame_set_str(KvpFrame * frame, const char * path, const char* str) 
+kvp_frame_set_string(KvpFrame * frame, const char * path, const char* str) 
 {
   KvpValue *value;
   value = kvp_value_new_string (str);
@@ -585,7 +585,7 @@
 }
 
 void
-kvp_frame_add_gnc_numeric(KvpFrame * frame, const char * path, gnc_numeric nval) 
+kvp_frame_add_numeric(KvpFrame * frame, const char * path, gnc_numeric nval) 
 {
   KvpValue *value;
   value = kvp_value_new_gnc_numeric (nval);
@@ -594,7 +594,7 @@
 }
 
 void
-kvp_frame_add_str(KvpFrame * frame, const char * path, const char* str) 
+kvp_frame_add_string(KvpFrame * frame, const char * path, const char* str) 
 {
   KvpValue *value;
   value = kvp_value_new_string (str);
@@ -1131,7 +1131,7 @@
 }
 
 KvpValue *
-kvp_value_new_gnc_numeric(gnc_numeric value) 
+kvp_value_new_numeric(gnc_numeric value) 
 {
   KvpValue * retval    = g_new0(KvpValue, 1);
   retval->type          = KVP_TYPE_NUMERIC;
@@ -1604,7 +1604,7 @@
     
     for(i = 0; i < size; i++)
     {
-        g_string_sprintfa(output, "%02x", (unsigned int) (data_str[i]));
+        g_string_append_printf(output, "%02x", (unsigned int) (data_str[i]));
     }
 
     return output->str;
Index: qof_book_merge.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qof_book_merge.c,v
retrieving revision 1.2.2.6
retrieving revision 1.2.2.7
diff -Lsrc/engine/qof_book_merge.c -Lsrc/engine/qof_book_merge.c -u -r1.2.2.6 -r1.2.2.7
--- src/engine/qof_book_merge.c
+++ src/engine/qof_book_merge.c
@@ -42,8 +42,7 @@
 */
 #define DEFAULT_MERGE_WEIGHT    1
 #define QOF_STRING_WEIGHT       3
-#define QOF_DATE_STRING_LENGTH  31
-#define QOF_UTC_DATE_FORMAT     "%Y-%m-%dT%H:%M:%SZ"
+#define QOF_DATE_STRING_LENGTH  MAX_DATE_LENGTH
 
 /* ================================================================ */
 /* API functions. */
@@ -173,13 +172,13 @@
 		if(safe_strcmp(paramType, QOF_TYPE_INT32) == 0) { 
 			int32_getter = (gint32 (*)(QofEntity*, QofParam*)) qtparam->param_getfcn;
 			param_i32 = int32_getter(qtEnt, qtparam);
-			param_string = g_strdup_printf("%u", param_i32);
+			param_string = g_strdup_printf("%d", param_i32);
 			return param_string;
 		}
 		if(safe_strcmp(paramType, QOF_TYPE_INT64) == 0) { 
 			int64_getter = (gint64 (*)(QofEntity*, QofParam*)) qtparam->param_getfcn;
 			param_i64 = int64_getter(qtEnt, qtparam);
-			param_string = g_strdup_printf("%llu", param_i64);
+			param_string = g_strdup_printf("%lld", param_i64);
 			return param_string;
 		}
 		if(safe_strcmp(paramType, QOF_TYPE_DOUBLE) == 0) { 
Index: gnc-date.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-date.h,v
retrieving revision 1.6.2.5
retrieving revision 1.6.2.6
diff -Lsrc/engine/gnc-date.h -Lsrc/engine/gnc-date.h -u -r1.6.2.5 -r1.6.2.6
--- src/engine/gnc-date.h
+++ src/engine/gnc-date.h
@@ -62,28 +62,19 @@
 #include <time.h>
 
 /** The maximum length of a string created by the date printers */
-#define MAX_DATE_LENGTH 11
-
-		/* Deprecated, backwards-compat defines; remove after gnome2 port */
-		#define getDateFormatString qof_date_format_get_string
-		#define getDateTextFormatString qof_date_format_get_format
-		#define getDateFormat qof_date_format_get
-		#define setDateFormat qof_date_format_set
-		#define DateFormat QofDateFormat
-		#define printDateSecs(B,S) qof_print_date_buff(B,MAX_DATE_LENGTH,S)
-		#define printDate(B,D,M,Y) qof_print_date_dmy_buff(B,MAX_DATE_LENGTH,D,M,Y)
-		#define printGDate(B,D) qof_print_gdate(B,MAX_DATE_LENGTH,D)
-		#define xaccPrintDateSecs qof_print_date
-		#define scanDate qof_scan_date
-
-		#define DATE_FORMAT_US QOF_DATE_FORMAT_US
-  		#define DATE_FORMAT_UK QOF_DATE_FORMAT_UK
-  		#define DATE_FORMAT_CE QOF_DATE_FORMAT_CE
-  		#define DATE_FORMAT_ISO QOF_DATE_FORMAT_ISO
-  		#define DATE_FORMAT_LOCALE QOF_DATE_FORMAT_LOCALE
-  		#define DATE_FORMAT_CUSTOM QOF_DATE_FORMAT_CUSTOM
+#define MAX_DATE_LENGTH 31
 
 /** Constants *******************************************************/
+/** \brief UTC date format string.
+
+Timezone independent, date and time inclusive, as used in the QSF backend.
+The T and Z characters are from xsd:dateTime format in coordinated universal time, UTC.
+You can reproduce the string from the GNU/Linux command line using the date utility:
+date -u +%Y-%m-%dT%H:M:SZ = 2004-12-12T23:39:11Z The datestring must be timezone independent 
+and include all specified fields. Remember to use gmtime() NOT localtime()! 
+*/
+
+#define QOF_UTC_DATE_FORMAT     "%Y-%m-%dT%H:%M:%SZ"
 
 /** Enum for determining a date format */
 typedef enum
@@ -92,6 +83,7 @@
   QOF_DATE_FORMAT_UK,       /**< Britain: dd/mm/yyyy */
   QOF_DATE_FORMAT_CE,       /**< Continental Europe: dd.mm.yyyy */
   QOF_DATE_FORMAT_ISO,      /**< ISO: yyyy-mm-dd */
+  QOF_DATE_FORMAT_UTC,      /**< UTC: 2004-12-12T23:39:11Z */
   QOF_DATE_FORMAT_LOCALE,   /**< Take from locale information */
   QOF_DATE_FORMAT_CUSTOM    /**< Used by the check printing code */
 } QofDateFormat;
@@ -111,28 +103,45 @@
 } GNCDateMonthFormat;
 
 
-/* The string->value versions return 0 on success and 1 on failure */
+/** \name String / DateFormat conversion. */
+//@{ 
+
+/** \brief The string->value versions return FALSE on success and TRUE on failure */
 const char* gnc_date_dateformat_to_string(QofDateFormat format);
+
+/** \brief Converts the date format to a printable string.
+
+Note the reversed return values!
+ at return FALSE on success, TRUE on failure.
+*/
 gboolean gnc_date_string_to_dateformat(const char* format_string,
 				       QofDateFormat *format);
 
-
 const char* gnc_date_monthformat_to_string(GNCDateMonthFormat format);
+
+/** \brief Converts the month format to a printable string.
+
+Note the reversed return values!
+ at return FALSE on success, TRUE on failure.
+*/
 gboolean gnc_date_string_to_monthformat(const char *format_string,
 					GNCDateMonthFormat *format);
+// @}
 
+/* Datatypes *******************************************************/
 
-/** Datatypes *******************************************************/
-
-/** struct timespec64 is just like the unix 'struct timespec' except
- * that we use a 64-bit signed int to store the seconds.  This should
- * adequately cover dates in the distant future as well as the distant
- * past, as long as they're not more than a couple dozen times the age
- * of the universe.  Note that both gcc and the IBM Toronto xlC
- * compiler (aka CSet, VisualAge, etc) correctly handle long long as a
- * 64 bit quantity, even on the 32-bit Intel x86 and PowerPC
- * architectures.  I'm assuming that all the other modern compilers
- * are clean on this issue too. */
+/** \brief Use a 64-bit signed int timespec
+ *
+ * struct timespec64 is just like the unix 'struct timespec' except 
+ * that we use a 64-bit
+ * signed int to store the seconds.  This should adequately cover
+ * dates in the distant future as well as the distant past, as long as
+ * they're not more than a couple dozen times the age of the universe.
+ * Note that both gcc and the IBM Toronto xlC compiler (aka CSet,
+ * VisualAge, etc) correctly handle long long as a 64 bit quantity,
+ * even on the 32-bit Intel x86 and PowerPC architectures.  I'm
+ * assuming that all the other modern compilers are clean on this
+ * issue too. */
 
 #ifndef SWIG   /* swig 1.1p5 can't hack the long long type */
 struct timespec64
@@ -142,22 +151,22 @@
 };
 #endif /* SWIG */
 
-/** The Timespec is just like the unix 'struct timespec' except that
- * we use a 64-bit signed int to store the seconds.  This should
- * adequately cover dates in the distant future as well as the distant
- * past, as long as they're not more than a couple dozen times the age
- * of the universe.  Note that both gcc and the IBM Toronto xlC
- * compiler (aka CSet, VisualAge, etc) correctly handle long long as a
- * 64 bit quantity, even on the 32-bit Intel x86 and PowerPC
- * architectures.  I'm assuming that all the other modern compilers
- * are clean on this issue too. */
+/** The Timespec is just like the unix 'struct timespec' 
+ * except that we use a 64-bit signed int to
+ * store the seconds.  This should adequately cover dates in the
+ * distant future as well as the distant past, as long as they're not
+ * more than a couple dozen times the age of the universe.  Note that
+ * both gcc and the IBM Toronto xlC compiler (aka CSet, VisualAge,
+ * etc) correctly handle long long as a 64 bit quantity, even on the
+ * 32-bit Intel x86 and PowerPC architectures.  I'm assuming that all
+ * the other modern compilers are clean on this issue too. */
 typedef struct timespec64 Timespec;
 
 
-/** Prototypes ******************************************************/
+/* Prototypes ******************************************************/
 
-/** @name Timespec functions */
-/*@{*/
+/** \name Timespec functions */
+// @{ 
 /** strict equality */
 gboolean timespec_equal(const Timespec *ta, const Timespec *tb);
 
@@ -227,8 +236,6 @@
 /** DOCUMENT ME! FIXME: Probably similar to xaccDMYToSec() this date
  * routine might return incorrect values for dates before 1970.  */
 void gnc_timespec2dmy (Timespec ts, int *day, int *month, int *year);
-/*@}*/
-
 
 /** Add a number of months to a time value and normalize.  Optionally
  * also track the last day of the month, i.e. 1/31 -> 2/28 -> 3/30. */
@@ -257,11 +264,11 @@
  * standardized and is a big mess.
  */
 long int gnc_timezone (struct tm *tm);
-
+// @}
 
 /* ------------------------------------------------------------------------ */
-/** @name QofDateFormat functions */
-/*@{*/
+/** \name QofDateFormat functions */
+// @{
 /** The qof_date_format_get routine returns the date format that
  *  the date printing will use when printing a date, and the scaning 
  *  routines will assume when parsing a date.
@@ -280,7 +287,7 @@
 const gchar *qof_date_format_get_string(QofDateFormat df);
 /** DOCUMENT ME! */
 const gchar *qof_date_format_get_format(QofDateFormat df);
-/*@}*/
+// @}
 
 /** dateSeparator
  *    Return the field separator for the current date format
@@ -293,15 +300,17 @@
  */
 char dateSeparator(void);
 
-/** @name Date Printing/Scanning functions 
- *
+/** \name Date Printing/Scanning functions 
+ */
+// @{
+/**
  * \warning HACK ALERT -- the scan and print routines should probably
  * be moved to somewhere else. The engine really isn't involved with
  * things like printing formats. This is needed mostly by the GUI and
  * so on.  If a file-io thing needs date handling, it should do it
  * itself, instead of depending on the routines here.
  */
-/*@{*/
+
 /** qof_print_date_dmy_buff
  *    Convert a date as day / month / year integers into a localized string
  *    representation
@@ -389,11 +398,11 @@
 /** as above, but returns seconds */
 gboolean qof_scan_date_secs (const char *buff, time_t *secs);
 
-
-/** @name Date Start/End Adjustment routines
+// @}
+/** \name Date Start/End Adjustment routines
  * Given a time value, adjust it to be the beginning or end of that day.
  */
-/** @{ */
+// @{
 
 /** The gnc_tm_set_day_start() inline routine will set the appropriate
  *  fields in the struct tm to indicate the first second of that day.
@@ -448,7 +457,7 @@
 void   gnc_tm_get_day_end(struct tm *tm, time_t time_val);
 
 /** The gnc_timet_get_day_start() routine will take the given time in
- *  seconds and adjust it to the first second of that day. */
+ *  seconds and adjust it to the last second of that day. */
 time_t gnc_timet_get_day_start(time_t time_val);
 
 /** The gnc_timet_get_day_end() routine will take the given time in
@@ -456,7 +465,7 @@
 time_t gnc_timet_get_day_end(time_t time_val);
 
 /** The gnc_timet_get_day_start() routine will take the given time in
- *  GLib GDate format and adjust it to the first second of that day. */
+ *  GLib GDate format and adjust it to the last second of that day. */
 time_t gnc_timet_get_day_start_gdate (GDate *date);
 
 /** The gnc_timet_get_day_end() routine will take the given time in
@@ -473,12 +482,12 @@
 int gnc_date_my_last_mday (int month, int year);
 /** DOCUMENT ME! Probably the same as date_get_last_mday() */
 int gnc_timespec_last_mday (Timespec ts);
-/*@}*/
+// @}
 
 /* ======================================================== */
 
-/** @name Today's Date */
-/*@{*/
+/** \name Today's Date */
+// @{
 /** The gnc_tm_get_today_start() routine takes a pointer to a struct
  *  tm and fills it in with the first second of the today. */
 void   gnc_tm_get_today_start(struct tm *tm);
@@ -501,7 +510,7 @@
  *  @note The caller owns this buffer and must free it when done. */
 char * xaccDateUtilGetStampNow (void);
 
-/*@}*/
-
+//@}
+//@}
 #endif /* GNC_DATE_H */
-/** @} */
+
Index: qof-be-utils.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qof-be-utils.h,v
retrieving revision 1.3.2.2
retrieving revision 1.3.2.3
diff -Lsrc/engine/qof-be-utils.h -Lsrc/engine/qof-be-utils.h -u -r1.3.2.2 -r1.3.2.3
--- src/engine/qof-be-utils.h
+++ src/engine/qof-be-utils.h
@@ -21,14 +21,15 @@
 /** @addtogroup Object
     @{ */
 /** @addtogroup Backend
- *  @{
- *  @file qof-be-utils.h 
- *  @brief QOF Backend Utilities
- *  @author Derek Atkins <derek at ihtfp.com>
- *    Common code used by objects to define begin_edit() and
- *    commit_edit() functions.
- *
- */
+   @{ */
+/**  @file qof-be-utils.h 
+   @brief QOF Backend Utilities
+   @author Derek Atkins <derek at ihtfp.com>
+
+  Common code used by objects to define begin_edit() and
+  commit_edit() functions.
+
+*/
 
 #ifndef QOF_BE_UTILS_H
 #define QOF_BE_UTILS_H
Index: SchedXaction.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/SchedXaction.h,v
retrieving revision 1.24.4.3
retrieving revision 1.24.4.4
diff -Lsrc/engine/SchedXaction.h -Lsrc/engine/SchedXaction.h -u -r1.24.4.3 -r1.24.4.4
--- src/engine/SchedXaction.h
+++ src/engine/SchedXaction.h
@@ -21,16 +21,17 @@
  * @addtogroup Engine
  * @{ */
 /**
- * @addtogroup SchedXaction Scheduled/Periodic/Recurring Transactions
-   Scheduled Transactions provides a framework for remembering
+   @addtogroup SchedXaction Scheduled/Periodic/Recurring Transactions
+
+   Scheduled Transactions provide a framework for remembering
    information about a transactions that are set to occur in the 
    future, either once or periodically.
- * @{ */
+ @{ */
 /**
  * @file SchedXaction.h
  * @brief Scheduled Transactions public handling routines.
  * @author Copyright (C) 2001 Joshua Sled <jsled at asynchronous.org>
- **/
+*/
 
 #ifndef XACC_SCHEDXACTION_H
 #define XACC_SCHEDXACTION_H
@@ -45,47 +46,32 @@
 #include "kvp_frame.h"
 #include "qofbook.h"
 
-/* 
- * #defines for KvpFrame strings
- * FIXME: Is this the right spot for them <rgmerk>?
- * FIXME: No, they should be private data and there should
- *        be an api for getting/setting the values <dave_p>
- */
-
-#define GNC_SX_ID                    "sched-xaction"
-#define GNC_SX_ACCOUNT               "account"
-#define GNC_SX_CREDIT_FORMULA        "credit-formula"
-#define GNC_SX_DEBIT_FORMULA         "debit-formula"
-#define GNC_SX_SHARES                "shares"
-#define GNC_SX_AMOUNT                "amnt"
-#define GNC_SX_FROM_SCHED_XACTION    "from-sched-xaction"
-
 /**
  * The SchedXaction data.
- **/
+*/
 typedef struct gncp_SchedXaction SchedXaction;
 
 /**
  * Creates and initializes a scheduled transaction.
- **/
+*/
 SchedXaction *xaccSchedXactionMalloc(QofBook *book);
 
 /**
  * Cleans up and frees a SchedXaction and it's associated data.
- **/
+*/
 void xaccSchedXactionFree( SchedXaction *sx );
 
 FreqSpec *xaccSchedXactionGetFreqSpec( SchedXaction *sx );
 /**
  * The FreqSpec is given to the SchedXaction for mem mgmt; it should
  * not be freed by the external code.
- **/
+*/
 void xaccSchedXactionSetFreqSpec( SchedXaction *sx, FreqSpec *fs );
 
 gchar *xaccSchedXactionGetName( SchedXaction *sx );
 /**
  * A copy of the name is made.
- **/
+*/
 void xaccSchedXactionSetName( SchedXaction *sx, const gchar *newName );
 
 GDate* xaccSchedXactionGetStartDate( SchedXaction *sx );
@@ -94,11 +80,11 @@
 int xaccSchedXactionHasEndDate( SchedXaction *sx );
 /**
  * Returns invalid date when there is no end-date specified.
- **/
+*/
 GDate* xaccSchedXactionGetEndDate( SchedXaction *sx );
 /**
  * Set to an invalid GDate to turn off 'end-date' definition.
- **/
+*/
 void xaccSchedXactionSetEndDate( SchedXaction *sx, GDate* newEnd );
 
 GDate* xaccSchedXactionGetLastOccurDate( SchedXaction *sx );
@@ -107,28 +93,29 @@
 /**
  * Returns true if the scheduled transaction has a defined number of
  * occurances, false if not.
- **/
+*/
 gboolean xaccSchedXactionHasOccurDef( SchedXaction *sx );
 gint xaccSchedXactionGetNumOccur( SchedXaction *sx );
 /**
  * Set to '0' to turn off number-of-occurances definition.
- **/
+*/
 void xaccSchedXactionSetNumOccur( SchedXaction *sx, gint numNum );
 gint xaccSchedXactionGetRemOccur( SchedXaction *sx );
 void xaccSchedXactionSetRemOccur( SchedXaction *sx, gint numRemain );
 
-/**
- * Set the instance count.  This is incremented by one for every created
+/** \brief Set the instance count.
+
+ *   This is incremented by one for every created
  * instance of the SX.  Returns the instance num of the SX unless stateData
  * is non-null, in which case it returns the instance num from the state
  * data.
  * @param stateData may be NULL.
- **/
+*/
 gint gnc_sx_get_instance_count( SchedXaction *sx, void *stateData );
 /**
  * Sets the instance count to something other than the default.  As the
  * default is the incorrect value '0', callers should DTRT here.
- **/
+*/
 void gnc_sx_set_instance_count( SchedXaction *sx, gint instanceNum );
 
 GList *xaccSchedXactionGetSplits( SchedXaction *sx );
@@ -147,31 +134,30 @@
 gint xaccSchedXactionGetAdvanceReminder( SchedXaction *sx );
 void xaccSchedXactionSetAdvanceReminder( SchedXaction *sx, gint reminderDays );
 
-///@{
-/**
- * Temporal state data.
+/** \name Temporal state data.
  *
  * These functions allow us to opaquely save the entire temporal state of
  * ScheduledTransactions.  This is used by the "since-last-run" dialog to
  * store the initial state of SXes before modification ... if it later
  * becomes necessary to revert an entire set of changes, we can 'revert' the
  * SX without having to rollback all the individual state changes.
- **/
+@{
+*/
 void *gnc_sx_create_temporal_state( SchedXaction *sx );
 void gnc_sx_incr_temporal_state( SchedXaction *sx, void *stateData );
 void gnc_sx_revert_to_temporal_state( SchedXaction *sx,
                                       void *stateData );
 void gnc_sx_destroy_temporal_state( void *stateData );
-/**
- * Allocates and returns a copy of the given temporal state.  Destroy with
- * gnc_sx_destroy_temporal_state(), as you'd expect.
- **/
+/** \brief Allocates and returns a copy of the given temporal state.
+
+ *   Destroy with gnc_sx_destroy_temporal_state(), as you'd expect.
+*/
 void *gnc_sx_clone_temporal_state( void *stateData );
-///@}
+/** @} */
 
-/**
- * Returns the next occurance of a scheduled transaction.  If the
- * transaction hasn't occured, then it's based off the start date.
+/** \brief Returns the next occurance of a scheduled transaction.
+
+ *   If the transaction hasn't occured, then it's based off the start date.
  * Otherwise, it's based off the last-occurance date.
  *
  * If state data is NULL, the current value of the SX is used for
@@ -179,49 +165,70 @@
  * allows the caller to correctly create a set of instances into the future
  * for possible action without modifying the SX state until action is
  * actually taken.
- **/
+*/
 GDate xaccSchedXactionGetNextInstance( SchedXaction *sx, void *stateData );
 GDate xaccSchedXactionGetInstanceAfter( SchedXaction *sx,
                                         GDate *date,
                                         void *stateData );
 
-/*
- * Set the schedxaction's template transaction.  t_t_list is a glist of
- * TTInfo's as defined in SX-ttinfo.h.  The edit dialog doesn't use this
- * mechanism; maybe it should.
- */
+/** \brief Set the schedxaction's template transaction.
+
+t_t_list is a glist of TTInfo's as defined in SX-ttinfo.h.
+The edit dialog doesn't use this mechanism; maybe it should.
+*/
 void xaccSchedXactionSetTemplateTrans( SchedXaction *sx,
                                        GList *t_t_list,
                                        QofBook *book );
 
-/**
- * Adds an instance to the deferred list of the SX.  Added instances are
- * added in date-sorted order.
- **/
+/** \brief Adds an instance to the deferred list of the SX.
+
+Added instances are added in date-sorted order.
+*/
 void gnc_sx_add_defer_instance( SchedXaction *sx, void *deferStateData );
 
-/**
- * Removes an instance from the deferred list.  If the instance is no longer
- * useful; gnc_sx_destroy_temporal_state() it.
- **/
+/** \brief Removes an instance from the deferred list.
+
+If the instance is no longer useful; gnc_sx_destroy_temporal_state() it.
+*/
 void gnc_sx_remove_defer_instance( SchedXaction *sx, void *deferStateData );
 
-/**
- * Returns the defer list from the SX; this is a date-sorted state-data
- * instance list.  The list should not be modified by the caller; use the
- * gnc_sx_{add,remove}_defer_instance() functions to modifiy the list.
- **/
+/** \brief Returns the defer list from the SX.
+
+ This is a date-sorted state-data instance list.
+ The list should not be modified by the caller; use the
+ gnc_sx_{add,remove}_defer_instance() functions to modifiy the list.
+*/
 GList *gnc_sx_get_defer_instances( SchedXaction *sx );
 
+/* #defines for KvpFrame strings and QOF */
+#define GNC_SX_ID                    "sched-xaction"
+#define GNC_SX_ACCOUNT               "account"
+#define GNC_SX_CREDIT_FORMULA        "credit-formula"
+#define GNC_SX_DEBIT_FORMULA         "debit-formula"
+#define GNC_SX_SHARES                "shares"
+#define GNC_SX_AMOUNT                "amnt"
+#define GNC_SX_FROM_SCHED_XACTION    "from-sched-xaction"
+#define GNC_SX_FREQ_SPEC             "scheduled-frequency"
+#define GNC_SX_NAME                  "sched-xname"
+#define GNC_SX_START_DATE            "sched-start-date"
+#define GNC_SX_LAST_DATE             "sched-last-date"
+#define GNC_SX_NUM_OCCUR             "sx-total-number"
+#define GNC_SX_REM_OCCUR             "sx-remaining-num"
+
+/** \brief QOF registration. */
+gboolean SXRegister (void);
 
-/** deprecated routines */
+/** \deprecated */
 #define xaccSchedXactionIsDirty(X) qof_instance_is_dirty (QOF_INSTANCE(X))
+/** \deprecated */
 #define xaccSchedXactionGetGUID(X) qof_entity_get_guid(QOF_ENTITY(X))
+/** \deprecated */
 #define xaccSchedXactionGetSlots(X) qof_instance_get_slots(QOF_INSTANCE(X))
 
-/** Deprecated, to be replaced with 'dirty' kvp's */
+/** \deprecated to be replaced with 'dirty' kvp's */
 KvpValue *xaccSchedXactionGetSlot( SchedXaction *sx, 
 				    const char *slot );
+/** \deprecated to be replaced with 'dirty' kvp's */
 void xaccSchedXactionSetSlot( SchedXaction *sx, 
 			      const char *slot,
 			      const KvpValue *value );
Index: gnc-trace.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-trace.c,v
retrieving revision 1.2.20.11
retrieving revision 1.2.20.12
diff -Lsrc/engine/gnc-trace.c -Lsrc/engine/gnc-trace.c -u -r1.2.20.11 -r1.2.20.12
--- src/engine/gnc-trace.c
+++ src/engine/gnc-trace.c
@@ -47,8 +47,8 @@
   GNC_LOG_WARNING,      /* IO */
   GNC_LOG_WARNING,      /* REGISTER */
   GNC_LOG_WARNING,      /* LEDGER */
-  GNC_LOG_INFO,      /* HTML */
-  GNC_LOG_INFO,      /* GUI */
+  GNC_LOG_WARNING,      /* HTML */
+  GNC_LOG_WARNING,      /* GUI */
   GNC_LOG_WARNING,      /* SCRUB */
   GNC_LOG_WARNING,      /* GTK_REG */
   GNC_LOG_WARNING,      /* GUILE */
Index: qof.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qof.h,v
retrieving revision 1.2.4.3
retrieving revision 1.2.4.4
diff -Lsrc/engine/qof.h -Lsrc/engine/qof.h -u -r1.2.4.3 -r1.2.4.4
--- src/engine/qof.h
+++ src/engine/qof.h
@@ -21,8 +21,8 @@
 
 #ifndef QOF_H_
 #define QOF_H_
-/** @defgroup QOF Query Object Framework */
-/** @{ */
+/** @defgroup QOF Query Object Framework 
+ @{ */
 
 /**
     @addtogroup Date Date:  Date and Time Printing, Parsing and Manipulation
@@ -63,21 +63,21 @@
 */
 /** @} */
 
-#include "qof/gnc-date.h"
-#include "qof/gnc-engine-util.h"
-#include "qof/gnc-numeric.h"
-#include "qof/gnc-event.h"
-#include "qof/gnc-trace.h"
-#include "qof/guid.h"
-#include "qof/kvp_frame.h"
-#include "qof/qofbackend.h"
-#include "qof/qofid.h"
-#include "qof/qofbook.h"
-#include "qof/qofclass.h"
-#include "qof/qofobject.h"
-#include "qof/qofquery.h"
-#include "qof/qofquerycore.h"
-#include "qof/qofsession.h"
-#include "qof/qofsql.h"
+#include "gnc-date.h"
+#include "gnc-engine-util.h"
+#include "gnc-numeric.h"
+#include "gnc-event.h"
+#include "gnc-trace.h"
+#include "guid.h"
+#include "kvp_frame.h"
+#include "qofbackend.h"
+#include "qofid.h"
+#include "qofbook.h"
+#include "qofclass.h"
+#include "qofobject.h"
+#include "qofquery.h"
+#include "qofquerycore.h"
+#include "qofsession.h"
+#include "qofsql.h"
 
 #endif /* QOF_H_ */
Index: qofsession-p.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofsession-p.h,v
retrieving revision 1.2.4.3
retrieving revision 1.2.4.4
diff -Lsrc/engine/qofsession-p.h -Lsrc/engine/qofsession-p.h -u -r1.2.4.3 -r1.2.4.4
--- src/engine/qofsession-p.h
+++ src/engine/qofsession-p.h
@@ -32,20 +32,18 @@
 #include "qofbook.h"
 #include "qofsession.h"
 
-/** \struct QofSession
-*/
 struct _QofSession
 {
-  /** A book holds pointers to the various types of datasets used
+  /* A book holds pointers to the various types of datasets used
    * by GnuCash.  A session may have open multiple books.  */
   GList *books;
 
-  /** The requested book id, in the form or a URI, such as
+  /* The requested book id, in the form or a URI, such as
    * file:/some/where, or sql:server.host.com:555
    */
   char *book_id;
 
-  /** If any book subroutine failed, this records the failure reason 
+  /* If any book subroutine failed, this records the failure reason 
    * (file not found, etc).
    * This is a 'stack' that is one deep.  (Should be deeper ??)
    * FIXME: Each backend has its own error stack. The session
@@ -56,7 +54,7 @@
   char *error_message;
 
   /* ---------------------------------------------------- */
-  /** Pointer to the backend that is actually used to move data
+  /* Pointer to the backend that is actually used to move data
    * between the persistant store and the local engine.  */
   QofBackend *backend;
 };
@@ -70,3 +68,4 @@
 QofBackend* gncBackendInit_file(const char *book_id, void *data);
 
 #endif
+
Index: gnc-engine-util.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-engine-util.h,v
retrieving revision 1.32.4.6
retrieving revision 1.32.4.7
diff -Lsrc/engine/gnc-engine-util.h -Lsrc/engine/gnc-engine-util.h -u -r1.32.4.6 -r1.32.4.7
--- src/engine/gnc-engine-util.h
+++ src/engine/gnc-engine-util.h
@@ -63,6 +63,35 @@
 #define SAFE_STRCMP(da,db) SAFE_STRCMP_REAL(strcmp,(da),(db))
 #define SAFE_STRCASECMP(da,db) SAFE_STRCMP_REAL(strcasecmp,(da),(db))
 
+#define ENUM_BODY(name, value)           \
+    name value,
+#define AS_STRING_CASE(name, value)      \
+    case name: return #name;
+#define FROM_STRING_CASE(name, value)    \
+    if (strcmp(str, #name) == 0) {       \
+        return name;                     \
+    }
+#define DEFINE_ENUM(name, list)          \
+    typedef enum {                       \
+        list(ENUM_BODY)                  \
+    }name;
+#define AS_STRING_DEC(name, list)        \
+    const char* name##asString(name n);
+#define AS_STRING_FUNC(name, list)       \
+    const char* name##asString(name n) {       \
+        switch (n) {                     \
+            list(AS_STRING_CASE)         \
+            default: return "";          \
+        }                                \
+    }
+#define FROM_STRING_DEC(name, list)      \
+    name name##fromString(const char* str);
+#define FROM_STRING_FUNC(name, list)     \
+    name name##fromString(const char* str) {   \
+        list(FROM_STRING_CASE)           \
+        return 0;                        \
+    }
+
 /* Define the long long int conversion for scanf */
 #if HAVE_SCANF_LLD
 # define GNC_SCANF_LLD "%lld"
Index: kvp_frame.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/kvp_frame.h,v
retrieving revision 1.22.4.9
retrieving revision 1.22.4.10
diff -Lsrc/engine/kvp_frame.h -Lsrc/engine/kvp_frame.h -u -r1.22.4.9 -r1.22.4.10
--- src/engine/kvp_frame.h
+++ src/engine/kvp_frame.h
@@ -73,9 +73,6 @@
  * KvpValueType enum. */
 typedef struct _KvpValue KvpValue;
 
-/* FIXME: fix annoying asymmetries: gnc_numeric vs numeric; str vs string */
-
- 
 /** Enum to enumerate possible types in the union KvpValue 
  *  XXX FIXME TODO: People have asked for boolean values, 
  *  e.g. in xaccAccountSetAutoInterestXfer
@@ -100,7 +97,10 @@
 } KvpValueType;
 
 
-/* Deprecated backwards compat tokens; do not use these in new code. */
+/** \deprecated Deprecated backwards compat tokens
+
+do \b not use these in new code.
+*/
 #define kvp_frame KvpFrame
 #define kvp_value KvpValue
 #define kvp_value_t KvpValueType
@@ -108,7 +108,7 @@
 
 /* -------------------------------------------------------- */
 /** @name KvpFrame Constructors */
-/*@{*/
+/** @{ */
 
 /** Return a new empty instance of KvpFrame */
 KvpFrame   * kvp_frame_new(void);
@@ -127,11 +127,11 @@
 /** Return TRUE if the KvpFrame is empty */
 gboolean     kvp_frame_is_empty(KvpFrame * frame);
 
-/*@}*/
+/** @} */
 
 /* -------------------------------------------------------- */
 /** @name KvpFrame Basic Value Storing */
-/*@{*/
+/** @{ */
 
 /** The kvp_frame_set_gint64() routine will store the value of the 
  *     gint64 at the indicated path. If not all frame components of 
@@ -143,12 +143,24 @@
  */
 void kvp_frame_set_gint64(KvpFrame * frame, const char * path, gint64 ival);
 void kvp_frame_set_double(KvpFrame * frame, const char * path, double dval);
-void kvp_frame_set_gnc_numeric(KvpFrame * frame, const char * path, gnc_numeric nval);
-#define kvp_frame_set_numeric kvp_frame_set_gnc_numeric
+
+/** \deprecated
+
+Use kvp_frame_set_numeric instead of kvp_frame_set_gnc_numeric
+*/
+#define kvp_frame_set_gnc_numeric kvp_frame_set_numeric
+void kvp_frame_set_numeric(KvpFrame * frame, const char * path, gnc_numeric nval);
 void kvp_frame_set_timespec(KvpFrame * frame, const char * path, Timespec ts);
 
-/** The kvp_frame_set_str() routine will store a copy of the string 
- *    at the indicated path. If not all frame components of the path 
+/** \deprecated
+
+Use kvp_frame_set_string instead of kvp_frame_set_str
+*/
+#define kvp_frame_set_str kvp_frame_set_string
+
+/** \brief Store a copy of the string at the indicated path.
+
+ *    If not all frame components of the path 
  *    exist, they are created.  If there was another string previously
  *    stored at that path, the old copy is deleted.
  *
@@ -158,8 +170,7 @@
  * The kvp_frame_set_frame_nc() routine works as above, but does 
  *    *NOT* copy the frame. 
  */
-void kvp_frame_set_str(KvpFrame * frame, const char * path, const char* str);
-#define kvp_frame_set_string kvp_frame_set_str
+void kvp_frame_set_string(KvpFrame * frame, const char * path, const char* str);
 void kvp_frame_set_guid(KvpFrame * frame, const char * path, const GUID *guid);
 
 void kvp_frame_set_frame(KvpFrame *frame, const char *path, KvpFrame *chld);
@@ -205,10 +216,10 @@
                                        KvpValue * new_value);
 
 
-/*@}*/
+/** @} */
 
 /** @name KvpFrame URL handling */
-/*@{*/
+/** @{ */
 /** The kvp_frame_add_url_encoding() routine will parse the
  *  value string, assuming it to be URL-encoded in the standard way,
  *  turning it into a set of key-value pairs, and adding those to the
@@ -222,10 +233,10 @@
  *    to perform any type-conversion.
  * */
 void     kvp_frame_add_url_encoding (KvpFrame *frame, const char *enc);
-/*@}*/
+/** @} */
 
 /** @name KvpFrame Glist Bag Storing */
-/*@{*/
+/** @{ */
 
 /** The kvp_frame_add_gint64() routine will add the value of the 
  *     gint64 to the glist bag of values at the indicated path. 
@@ -240,12 +251,24 @@
  */
 void kvp_frame_add_gint64(KvpFrame * frame, const char * path, gint64 ival);
 void kvp_frame_add_double(KvpFrame * frame, const char * path, double dval);
-void kvp_frame_add_gnc_numeric(KvpFrame * frame, const char * path, gnc_numeric nval);
-#define kvp_frame_add_numeric kvp_frame_add_gnc_numeric
+/** \deprecated
+
+Use kvp_frame_add_numeric instead of kvp_frame_add_gnc_numeric
+*/
+#define kvp_frame_add_gnc_numeric kvp_frame_add_numeric
+
+void kvp_frame_add_numeric(KvpFrame * frame, const char * path, gnc_numeric nval);
 void kvp_frame_add_timespec(KvpFrame * frame, const char * path, Timespec ts);
 
-/** The kvp_frame_add_str() routine will add a copy of the string 
- *    to the glist bag at the indicated path. If not all frame components 
+/** \deprecated
+
+Use kvp_frame_add_string instead of kvp_frame_add_str
+*/
+#define kvp_frame_add_str kvp_frame_add_string
+
+/** \brief Copy of the string to the glist bag at the indicated path.
+
+ *    If not all frame components 
  *    of the path exist, they are created.  If there was another 
  *    item previously stored at that path, then the path is converted
  *    to a bag, and the old value, along with the new value, is added
@@ -257,8 +280,7 @@
  * The kvp_frame_add_frame_nc() routine works as above, but does 
  *    *NOT* copy the frame. 
  */
-void kvp_frame_add_str(KvpFrame * frame, const char * path, const char* str);
-#define kvp_frame_add_string kvp_frame_add_str
+void kvp_frame_add_string(KvpFrame * frame, const char * path, const char* str);
 void kvp_frame_add_guid(KvpFrame * frame, const char * path, const GUID *guid);
 
 void kvp_frame_add_frame(KvpFrame *frame, const char *path, KvpFrame *chld);
@@ -280,11 +302,11 @@
 KvpFrame * kvp_frame_add_value_nc(KvpFrame * frame, const char * path, KvpValue *value);
 
 
-/*@}*/
+/** @} */
 
 /* -------------------------------------------------------- */
 /** @name KvpFrame Value Fetching */
-/*@{*/
+/** @{ */
 
 /** Value accessors.  These all take a unix-style slash-separated 
   path as an argument, and return the value stored at that location.
@@ -377,14 +399,14 @@
 KvpFrame    * kvp_frame_get_frame_slash (KvpFrame *frame,
                                           const char *path);
 
-/*@}*/
+/** @} */
 /* -------------------------------------------------------- */
 /** @name KvpFrame KvpValue low-level storing routines. */
-/*@{*/
+/** @{ */
 
-/** You probably shouldn't be using these low-level routines */
+/** \par You probably shouldn't be using these low-level routines */
 
-/** All of the kvp_frame_set_slot_*() routines set the slot values
+/** \par All of the kvp_frame_set_slot_*() routines set the slot values
  *    "destructively", in that if there was an old value there, that
  *    old value is destroyed (and the memory freed).  Thus, one 
  *    should not hang on to value pointers, as these will get 
@@ -441,12 +463,12 @@
                                               const KvpValue *value,
                                               GSList *key_path);
 
-/*@}*/
+/** @} */
 
 
 /** @name KvpFrame KvpValue Low-Level Retrieval Routines */
-/*@{*/
-/** You probably shouldn't be using these low-level routines */
+/** @{ */
+/** \par You probably shouldn't be using these low-level routines */
 
 /** Returns the KvpValue in the given KvpFrame 'frame' that is 
  *  associated with 'key'.  If there is no key in the frame, NULL
@@ -475,14 +497,14 @@
  * Similar returns as strcmp.
  **/
 gint          kvp_frame_compare(const KvpFrame *fa, const KvpFrame *fb);
-/*@}*/
+/** @} */
 
 
 gint          double_compare(double v1, double v2);
 
 /** @name KvpValue List Convenience Functions */
-/*@{*/
-/** You probably shouldn't be using these low-level routines */
+/** @{ */
+/** \par You probably shouldn't be using these low-level routines */
 
 /** kvp_glist_compare() compares <b>GLists of kvp_values</b> (not to
  *     be confused with GLists of something else):  it iterates over
@@ -503,12 +525,12 @@
  *     and then deleting the GList.
  */
 void        kvp_glist_delete(GList * list);
-/*@}*/
+/** @} */
 
 
 /** @name KvpValue Constructors */
-/*@{*/
-/** You probably shouldn't be using these low-level routines */
+/** @{ */
+/** \par You probably shouldn't be using these low-level routines */
 
 /** The following routines are constructors for kvp_value.
  *    Those with pointer arguments copy in the value.
@@ -517,8 +539,13 @@
  */
 KvpValue   * kvp_value_new_gint64(gint64 value);
 KvpValue   * kvp_value_new_double(double value);
-KvpValue   * kvp_value_new_gnc_numeric(gnc_numeric value);
-#define kvp_value_new_numeric kvp_value_new_gnc_numeric
+
+/** \deprecated
+
+Use kvp_value_new_numeric instead of kvp_value_new_gnc_numeric
+*/
+#define kvp_value_new_gnc_numeric kvp_value_new_numeric
+KvpValue   * kvp_value_new_numeric(gnc_numeric value);
 KvpValue   * kvp_value_new_string(const char * value);
 KvpValue   * kvp_value_new_guid(const GUID * guid);
 KvpValue   * kvp_value_new_timespec(Timespec timespec);
@@ -557,12 +584,12 @@
 /** Replace old glist value with new, return old glist */
 GList * kvp_value_replace_glist_nc(KvpValue *value, GList *newlist);
 
-/*@}*/
+/** @} */
 
 
 /** @name KvpValue Value access */
-/*@{*/
-/** You probably shouldn't be using these low-level routines */
+/** @{ */
+/** \par You probably shouldn't be using these low-level routines */
 
 KvpValueType kvp_value_get_type(const KvpValue * value);
 
@@ -596,10 +623,7 @@
 
 /** Returns the GList of kvp_frame's (not to be confused with GList's
  * of something else!) from the given kvp_frame.  This one is
- * non-copying -- the caller can modify the value directly.  
- * The returned GList is a list of  KvpValues of any type, including mixed. 
- * Cast each list gpointer to a KvpValue and use the KvpValue->type to
- * determine the type of value at each position in the list. */
+ * non-copying -- the caller can modify the value directly. */
 GList       * kvp_value_get_glist(const KvpValue * value);
 
 /** Value accessor. This one is non-copying -- the caller can modify
@@ -612,7 +636,7 @@
  **/
 gint          kvp_value_compare(const KvpValue *va, const KvpValue *vb);
 
-/*@}*/
+/** @} */
 
 /** \brief General purpose function to convert any KvpValue to a string.
 
@@ -633,7 +657,7 @@
 gboolean kvp_value_binary_append(KvpValue *v, void *data, guint64 size);
 
 /** @name  Iterators */
-/*@{*/
+/** @{ */
 /** Traverse all of the slots in the given kvp_frame.  This function
    does not descend recursively to traverse any kvp_frames stored as
    slot values.  You must handle that in proc, with a suitable
@@ -644,7 +668,7 @@
                                           gpointer data),
                              gpointer data);
 
-/*@}*/
+/** @} */
 
 /** Internal helper routines, you probably shouldn't be using these. */
 gchar* kvp_frame_to_string(const KvpFrame *frame);
Index: qofclass.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofclass.c,v
retrieving revision 1.1.6.4
retrieving revision 1.1.6.5
diff -Lsrc/engine/qofclass.c -Lsrc/engine/qofclass.c -u -r1.1.6.4 -r1.1.6.5
--- src/engine/qofclass.c
+++ src/engine/qofclass.c
@@ -252,11 +252,11 @@
 
 struct param_ref_list
 {
-	GList *ref_list;
+	GList *list;
 };
 
 static void
-find_reference_param(QofParam *param, gpointer user_data)
+find_reference_param_cb(QofParam *param, gpointer user_data)
 {
 	struct param_ref_list *b;
 
@@ -274,7 +274,7 @@
 	if(0 == safe_strcmp(param->param_type, QOF_TYPE_KVP))      { return; }
 	if(0 == safe_strcmp(param->param_type, QOF_TYPE_BOOLEAN))  { return; }
 	if(0 == safe_strcmp(param->param_type, QOF_ID_BOOK))       { return; }
-	b->ref_list = g_list_append(b->ref_list, param);
+	b->list = g_list_append(b->list, param);
 }
 
 GList*
@@ -284,11 +284,11 @@
 	struct param_ref_list b;
 
 	ref_list = NULL;
-	b.ref_list = NULL;
-	qof_class_param_foreach(type, find_reference_param, &b);
-	ref_list = g_list_copy(b.ref_list);
-	g_list_free(b.ref_list);
+	b.list = NULL;
+	qof_class_param_foreach(type, find_reference_param_cb, &b);
+	ref_list = g_list_copy(b.list);
 	return ref_list;
 }
 
+
 /* ============================= END OF FILE ======================== */
Index: qofgobj.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofgobj.c,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -Lsrc/engine/qofgobj.c -Lsrc/engine/qofgobj.c -u -r1.2.2.2 -r1.2.2.3
--- src/engine/qofgobj.c
+++ src/engine/qofgobj.c
@@ -20,9 +20,9 @@
  *                                                                  *
 \********************************************************************/
 
-#include <qof/gnc-trace.h>
-#include <qof/qof.h>
-#include <qof/qofgobj.h>
+#include "gnc-trace.h"
+#include "qof.h"
+#include "qofgobj.h"
 
 static short module = MOD_QUERY;
 
@@ -57,10 +57,12 @@
 void 
 qof_gobject_shutdown (void)
 {
+  GSList *n;
+  
   if (!initialized) return;
   initialized = FALSE;
                                                                                 
-  GSList *n;
+//  GSList *n;
   for (n=paramList; n; n=n->next) g_free(n->data);
   g_slist_free (paramList);
 
@@ -83,11 +85,14 @@
 void 
 qof_gobject_register_instance (QofBook *book, QofType type, GObject *gob)
 {
+  QofCollection *coll;
+  GSList *instance_list;
+  
   if (!book || !type) return;
 
-  QofCollection *coll = qof_book_get_collection (book, type);
+  coll = qof_book_get_collection (book, type);
 
-  GSList * instance_list = qof_collection_get_data (coll);
+  instance_list = qof_collection_get_data (coll);
   instance_list = g_slist_prepend (instance_list, gob);
   qof_collection_set_data (coll, instance_list);
 }
@@ -98,6 +103,7 @@
 qof_gobject_getter (gpointer data, QofParam *getter)
 {
   GObject *gob = data;
+  const char *str;
 
   GParamSpec *gps = getter->param_userdata;
 
@@ -110,37 +116,42 @@
     g_value_init (&gval, G_TYPE_STRING);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    const char * str = g_value_get_string (&gval);
+    str = g_value_get_string (&gval);
     return (gpointer) str;
   }
   else
   if (G_IS_PARAM_SPEC_INT(gps))
   {
+    int ival;
+    
     GValue gval = {G_TYPE_INVALID};
     g_value_init (&gval, G_TYPE_INT);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    int ival = g_value_get_int (&gval);
+    ival = g_value_get_int (&gval);
     return (gpointer) ival;
   }
   else
   if (G_IS_PARAM_SPEC_UINT(gps))
   {
+    int ival;
     GValue gval = {G_TYPE_INVALID};
     g_value_init (&gval, G_TYPE_UINT);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    int ival = g_value_get_uint (&gval);
+    ival = g_value_get_uint (&gval);
     return (gpointer) ival;
   }
   else
   if (G_IS_PARAM_SPEC_BOOLEAN(gps))
   {
+    int ival;
+    
     GValue gval = {G_TYPE_INVALID};
     g_value_init (&gval, G_TYPE_BOOLEAN);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    int ival = g_value_get_boolean (&gval);
+    ival = g_value_get_boolean (&gval);
     return (gpointer) ival;
   }
 
@@ -153,6 +164,7 @@
 qof_gobject_double_getter (gpointer data, QofParam *getter)
 {
   GObject *gob = data;
+   double fval;
 
   GParamSpec *gps = getter->param_userdata;
 
@@ -165,7 +177,7 @@
     g_value_init (&gval, G_TYPE_FLOAT);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    double fval = g_value_get_float (&gval);
+    fval = g_value_get_float (&gval);
     return fval;
   }
   else
@@ -175,7 +187,7 @@
     g_value_init (&gval, G_TYPE_DOUBLE);
     g_object_get_property (gob, getter->param_name, &gval);
 
-    double fval = g_value_get_double (&gval);
+    fval = g_value_get_double (&gval);
     return fval;
   } 
 
@@ -204,21 +216,25 @@
 void
 qof_gobject_register (QofType e_type, GObjectClass *obclass)
 {
+  int i;
+  int j;
+  QofParam *qof_param_list, *qpar;
+  QofObject *class_def;
+  GParamSpec **prop_list, *gparam;
+  int n_props;
 
   /* Get the GObject properties, convert to QOF properties */
-  GParamSpec **prop_list;
-  int n_props;
   prop_list = g_object_class_list_properties (obclass, &n_props);
 
-  QofParam * qof_param_list = g_new0 (QofParam, n_props);
+  qof_param_list = g_new0 (QofParam, n_props);
   paramList = g_slist_prepend (paramList, qof_param_list);
 
   PINFO ("object %s has %d props", e_type, n_props);
-  int i, j=0;
+  j=0;
   for (i=0; i<n_props; i++)
   {
-    GParamSpec *gparam = prop_list[i];
-    QofParam *qpar = &qof_param_list[j];
+    gparam = prop_list[i];
+    qpar = &qof_param_list[j];
 
     PINFO ("param %d %s is type %s", 
           i, gparam->name, G_PARAM_SPEC_TYPE_NAME(gparam));
@@ -288,7 +304,7 @@
 
   /* ------------------------------------------------------ */
    /* Now do the class itself */
-  QofObject *class_def = g_new0 (QofObject, 1);
+  class_def = g_new0 (QofObject, 1);
   classList = g_slist_prepend (classList, class_def);
 
   class_def->interface_version = QOF_OBJECT_VERSION;
Index: gw-engine-spec.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gw-engine-spec.scm,v
retrieving revision 1.53.4.7
retrieving revision 1.53.4.8
diff -Lsrc/engine/gw-engine-spec.scm -Lsrc/engine/gw-engine-spec.scm -u -r1.53.4.7 -r1.53.4.8
--- src/engine/gw-engine-spec.scm
+++ src/engine/gw-engine-spec.scm
@@ -145,7 +145,7 @@
 
 (let ((wt (gw:wrap-enumeration ws '<gnc:date-match-how> "QofDateMatch")))
   (gw:enum-add-value! wt "QOF_DATE_MATCH_NORMAL" 'date-match-normal)
-  (gw:enum-add-value! wt "QOF_DATE_MATCH_ROUNDED" 'date-match-rounded)
+  (gw:enum-add-value! wt "QOF_DATE_MATCH_DAY" 'date-match-rounded)
   #t)
 
 (let ((wt (gw:wrap-enumeration ws '<gnc:numeric-match-how> "QofNumericMatch")))
Index: qofsession.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofsession.c,v
retrieving revision 1.2.4.15
retrieving revision 1.2.4.16
diff -Lsrc/engine/qofsession.c -Lsrc/engine/qofsession.c -u -r1.2.4.15 -r1.2.4.16
--- src/engine/qofsession.c
+++ src/engine/qofsession.c
@@ -313,6 +313,8 @@
    return session->book_id;
 }
 
+/* =============================================================== */
+
 typedef struct qof_entity_copy_data {
 	QofEntity *from;
 	QofEntity *to;
@@ -569,7 +571,7 @@
 	qecd->to = &inst->entity;
 	g = qof_entity_get_guid(original);
 	qof_entity_set_guid(qecd->to, g);
-	if(qecd->param_list != NULL) { g_slist_free(qecd->param_list); }
+//	if(qecd->param_list != NULL) { g_slist_free(qecd->param_list); }
 	qof_class_param_foreach(original->e_type, qof_entity_param_cb, qecd);
 	if(qsf_check_error(qecd)) { return; }
 	g_slist_foreach(qecd->param_list, qof_entity_foreach_copy, qecd);
Index: FreqSpecP.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/FreqSpecP.h,v
retrieving revision 1.5.6.2
retrieving revision 1.5.6.3
diff -Lsrc/engine/FreqSpecP.h -Lsrc/engine/FreqSpecP.h -u -r1.5.6.2 -r1.5.6.3
--- src/engine/FreqSpecP.h
+++ src/engine/FreqSpecP.h
@@ -22,7 +22,7 @@
  *                                                                  *
 \********************************************************************/
 
-/********************************************************************\
+/* *******************************************************************\
 This file contains private definitions and should not be used by
 other parts of the engine. This is private data and is subject to
 change.
@@ -36,28 +36,6 @@
 #include "FreqSpec.h"
 #include "qofid.h"
 
-/**
- * Scheduled transactions have a frequency defined by a frequency
- * specifier.  This specifier, given a start date, end date [present
- * in the scheduled transaction] and last occurance date [possibly not
- * present] can be used to determine that a s.transaction should be
- * instantiated on a given date [the given query date].
- *
- * There is a split between the UIFreqType and the 'internal' FreqType
- * to reduce the complexity of some of the code involved.
- *
- * Hmmm... having this in the private header file actually prevents
- * client code from allocating this 'class' on the stack.
- * Is that a problem?
- *
- * This still needs to deal with:
- * . exceptions
- * . 13 periods: (4 weeks/period 4x13=52 weeks/year)
- * . yearly 360/365?
- * . re-based frequencies [based around a non-standard [read:
- *   not-Jan-1-based/fiscal] year]
- * . "business days" -- m-f sans holidays [per-user list thereof]
- **/
 struct gncp_freq_spec 
 {
         QofEntity       entity;
@@ -65,13 +43,13 @@
         UIFreqType      uift;
         union u {
                 struct {
-                         /** The date on which the single event occurs. */
+                         /* The date on which the single event occurs. */
                         GDate date;
                 } once;
                 struct {
-                         /** number of days from one repeat to the next. */
+                         /* number of days from one repeat to the next. */
                         guint interval_days;
-                         /** epoch is defined by glib to be 1/1/1. Offset
+                         /* epoch is defined by glib to be 1/1/1. Offset
                              measured in days. 0 <= offset < interval */
                         guint offset_from_epoch;
                 } daily;
@@ -79,16 +57,16 @@
                         /* A week here is measured as 7 days. The first week starts at epoch.
                          * 1/1/1 was a ?. */
 
-                        /** number of weeks from one repeat to the next. */
+                        /* number of weeks from one repeat to the next. */
                         guint interval_weeks;
                          /* offset measured in days.  This combines the week
                           * offset and the day of the week offset.  */
                         guint offset_from_epoch;
-/*                        guint offset_from_epoch;*/ /* offset measured in weeks, 0 <= offset < interval */
-/*                        guint day_of_week;*/ /* I'm not sure what days each value represents, but it's not important. */
+                         /* guint offset_from_epoch;*/ /* offset measured in weeks, 0 <= offset < interval */
+                         /* guint day_of_week;*/ /* I'm not sure what days each value represents, but it's not important. */
                 } weekly;
                 struct {
-                         /** number of months from one repeat to the next. */
+                         /* number of months from one repeat to the next. */
                         guint interval_months;
                          /* offset measured in months */
                         guint offset_from_epoch;
@@ -96,7 +74,7 @@
                         guint day_of_month;
                 } monthly;
                 struct {
-                         /** Number of months from one repeat to the next. */
+                         /* Number of months from one repeat to the next. */
                         guint interval_months;
                          /* offset measured in months */
                         guint offset_from_epoch;
@@ -106,10 +84,12 @@
                         guint occurrence;
                 } month_relative;
                 struct {
-                        /** A list of specs for a composite freq. */
+                        /* A list of specs for a composite freq. */
                         GList *subSpecs;
                 } composites;
         } s;
+        /* temporary storage for QOF */
+        gint            value;
 };
 
 #endif /* XACC_FREQSPECP_H */
Index: qof_book_merge.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qof_book_merge.h,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -Lsrc/engine/qof_book_merge.h -Lsrc/engine/qof_book_merge.h -u -r1.2.2.2 -r1.2.2.3
--- src/engine/qof_book_merge.h
+++ src/engine/qof_book_merge.h
@@ -73,7 +73,7 @@
 */
 
 #include <glib.h>
-#include "qof/gnc-engine-util.h"
+#include "gnc-engine-util.h"
 #include "qofbook.h"
 #include "qofclass.h"
 #include "qofobject.h"
Index: gnc-date.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-date.c,v
retrieving revision 1.6.2.4
retrieving revision 1.6.2.5
diff -Lsrc/engine/gnc-date.c -Lsrc/engine/gnc-date.c -u -r1.6.2.4 -r1.6.2.5
--- src/engine/gnc-date.c
+++ src/engine/gnc-date.c
@@ -87,6 +87,8 @@
     return "ce";
   case QOF_DATE_FORMAT_ISO:
     return "iso";
+  case QOF_DATE_FORMAT_UTC:
+   return "utc";
   case QOF_DATE_FORMAT_LOCALE:
     return "locale";
   case QOF_DATE_FORMAT_CUSTOM:
@@ -108,6 +110,8 @@
     *format = QOF_DATE_FORMAT_UK;
   else if (!strcmp(fmt_str, "ce"))
     *format = QOF_DATE_FORMAT_CE;
+  else if (!strcmp(fmt_str, "utc"))
+    *format = QOF_DATE_FORMAT_UTC;
   else if (!strcmp(fmt_str, "iso"))
     *format = QOF_DATE_FORMAT_ISO;
   else if (!strcmp(fmt_str, "locale"))
@@ -232,8 +236,8 @@
   return retval;
 }
 
-/**
- * timespecCanonicalDayTime
+/** \brief Converts any time on a day to midday that day.
+
  * given a timepair contains any time on a certain day (local time)
  * converts it to be midday that day.  
  */
@@ -270,39 +274,42 @@
   return days_in_month[is_leap][month-1];
 }
 
-/**
- * date_get_last_mday
- * Retrieve the last nomerical day for the month specified in the
- * tm_year and tm_mon fields.
- * Args:  tm: the time value in question
- * returns: T/F
- **/
+/* Retrieve the last numerical day of the month
+
+ Retrieve the last numerical day for the month specified in the
+ tm_year and tm_mon fields.
+
+param  tm: the time value in question
+return the last day of the month, integer.
+*/
 int date_get_last_mday(struct tm *tm)
 {
   return gnc_date_my_last_mday (tm->tm_mon+1, tm->tm_year+1900);
 }
 
-/**
- * date_is_last_mday
- * Determines whether the tm_mday field contains the last day of the
- * month as specified in the tm_year and tm_mon fields.
- * Args:  tm: the time value in question
- * returns: T/F
- **/
+/* Determines if tm_mday is the last day of the month.
+
+ Determines whether the tm_mday field contains the last day of the
+ month as specified in the tm_year and tm_mon fields.
+param  tm: the time value in question
+return TRUE if tm_mday matches the last day of the month, else FALSE.
+*/
 gboolean date_is_last_mday(struct tm *tm)
 {
   return(tm->tm_mday == date_get_last_mday(tm));
 }
 
-/**
- * date_add_months
- * Add a number of months to a time value, and normalize.  Optionally
- * also track the last day of hte month, i.e. 1/31 -> 2/28 -> 3/30.
- * Args:  tm: base time value
- *        months: The number of months to add to this time
- *        track_last_day: Coerce the date value if necessary.
- * returns: nothing
- **/
+/* Add a number of months to a time value
+
+ Add a number of months to a time value, and normalize.  Optionally
+ also track the last day of the month, i.e. 1/31 -> 2/28 -> 3/30.
+
+param  tm: base time value
+param  months: The number of months to add to this time
+param  track_last_day: Coerce the date value if necessary.
+
+return void
+*/
 void date_add_months (struct tm *tm, int months, gboolean track_last_day)
 {
   gboolean was_last_day;
@@ -327,27 +334,28 @@
     tm->tm_mday = new_last_mday;
 }
 
-/**
- * qof_date_format_get
- * Args: nothing
- * returns: QofDateFormat: enumeration indicating preferred format
- *
- * Globals: dateFormat
- **/
+/* Return the set dateFormat.
+
+return QofDateFormat: enumeration indicating preferred format
+
+Global: dateFormat
+*/
 QofDateFormat qof_date_format_get (void)
 {
   return dateFormat;
 }
 
-/**
- * qof_date_format_set
- * set date format to one of US, UK, CE, OR ISO
- * checks to make sure it's a legal value
- * Args: QofDateFormat: enumeration indicating preferred format
- * returns: nothing
- *
- * Globals: dateFormat
- **/
+/* set date format
+
+set date format to one of US, UK, CE, ISO OR UTC
+checks to make sure it's a legal value
+
+param QofDateFormat: enumeration indicating preferred format
+
+return void
+
+Globals: dateFormat
+*/
 void qof_date_format_set(QofDateFormat df)
 {
   if(df >= DATE_FORMAT_FIRST && df <= DATE_FORMAT_LAST)
@@ -356,20 +364,22 @@
     dateFormat = df;
   }
   else
-  {    /* hack alert - is this what we should be doing here? */
-    PERR("non-existent date format set");
+  {    /* hack alert - Use a neutral default. */
+    PERR("non-existent date format set attempted. Setting ISO default");
+    prevQofDateFormat = dateFormat;
+    dateFormat = QOF_DATE_FORMAT_ISO;
   }
 
   return;
 }
 
-/**
- * qof_date_format_get_string
- * get the date format string for the current format
- * returns: string
- *
- * Globals: dateFormat
- **/
+/*
+ qof_date_format_get_string
+ get the date format string for the current format
+ returns: string
+
+ Globals: dateFormat
+*/
 const gchar *qof_date_format_get_string(QofDateFormat df)
 {
   switch(df) {
@@ -379,6 +389,8 @@
     return "%d/%m/%y";
    case QOF_DATE_FORMAT_CE:
     return "%d.%m.%y";
+   case QOF_DATE_FORMAT_UTC:
+    return "%Y-%m-%dT%H:%M:%SZ";
    case QOF_DATE_FORMAT_ISO:
     return "%y-%m-%d";
    case QOF_DATE_FORMAT_LOCALE:
@@ -387,13 +399,15 @@
   };
 }
 
-/**
- * qof_date_format_get_format
- * get the date format string for the current format
- * returns: string
- *
- * Globals: dateFormat
- **/
+/* get the date format string for the current format
+
+get the date format string for the current format
+
+param df Required date format.
+return string
+
+Globals: dateFormat
+*/
 const gchar *qof_date_format_get_format(QofDateFormat df)
 {
   switch(df) {
@@ -402,6 +416,8 @@
    case QOF_DATE_FORMAT_UK:
    case QOF_DATE_FORMAT_CE:
     return "%d %b, %y";
+   case QOF_DATE_FORMAT_UTC:
+    return "%Y-%m-%dT%H:%M:%SZ";
    case QOF_DATE_FORMAT_ISO:
     return "%y-%b-%d";
    case QOF_DATE_FORMAT_LOCALE:
@@ -410,21 +426,21 @@
   };
 }
 
-/**
- * qof_print_date_dmy_buff
- *    Convert a date as day / month / year integers into a localized string
- *    representation
- *
- * Args:   buff - pointer to previously allocated character array; its size
- *                must be at lease MAX_DATE_LENTH bytes.
- *         day - day of the month as 1 ... 31
- *         month - month of the year as 1 ... 12
- *         year - year (4-digit)
- *
- * Return: nothing
- *
- * Globals: global dateFormat value
- */
+/* Convert day, month and year values to a date string
+
+  Convert a date as day / month / year integers into a localized string
+  representation
+
+param   buff - pointer to previously allocated character array; its size
+         must be at lease MAX_DATE_LENTH bytes.
+param   day - value to be set with the day of the month as 1 ... 31
+param   month - value to be set with the month of the year as 1 ... 12
+param   year - value to be set with the year (4-digit)
+
+return void
+
+Globals: global dateFormat value
+*/
 size_t
 qof_print_date_dmy_buff (char * buff, size_t len, int day, int month, int year)
 {
@@ -450,6 +466,17 @@
     case QOF_DATE_FORMAT_ISO:
       flen = g_snprintf (buff, len, "%04d-%02d-%02d", year, month, day);
       break;
+    case QOF_DATE_FORMAT_UTC:
+	{
+		struct tm tm_str;
+
+		tm_str.tm_mday = day;
+		tm_str.tm_mon = month - 1;
+		tm_str.tm_year = year - 1900;
+
+		flen = strftime(buff, MAX_DATE_LENGTH, "%Y-%m-%d", &tm_str);
+		break;
+	}
     case QOF_DATE_FORMAT_LOCALE:
       {
         struct tm tm_str;
@@ -600,7 +627,7 @@
 {
   int flen;
   int day, month, year, hour, min, sec;
-  struct tm ltm;
+  struct tm ltm, gtm;
   
   if (!buff) return 0;
 
@@ -622,22 +649,28 @@
   
   switch(dateFormat)
   {
-    case DATE_FORMAT_UK:
+    case QOF_DATE_FORMAT_UK:
       flen = g_snprintf (buff, len, "%2d/%2d/%-4d %2d:%02d", day, month, year, hour, min);
       break;
-    case DATE_FORMAT_CE:
+    case QOF_DATE_FORMAT_CE:
       flen = g_snprintf (buff, len, "%2d.%2d.%-4d %2d:%02d", day, month, year, hour, min);
       break;
-    case DATE_FORMAT_ISO:
+    case QOF_DATE_FORMAT_ISO:
       flen = g_snprintf (buff, len, "%04d-%02d-%02d %02d:%02d", year, month, day, hour, min);
       break;
-    case DATE_FORMAT_LOCALE:
+	case QOF_DATE_FORMAT_UTC:
+	{
+		gtm = *gmtime (&secs);
+		flen = strftime (buff, len, QOF_UTC_DATE_FORMAT, &gtm);
+		break;
+	}
+    case QOF_DATE_FORMAT_LOCALE:
       {
         flen = strftime (buff, len, GNC_D_T_FMT, &ltm);
       }
       break;
 
-    case DATE_FORMAT_US:
+    case QOF_DATE_FORMAT_US:
     default:
       flen = g_snprintf (buff, len, "%2d/%2d/%-4d %2d:%02d", month, day, year, hour, min);
       break;
@@ -649,9 +682,15 @@
 qof_print_time_buff (char * buff, size_t len, time_t secs)
 {
   int flen;
-  struct tm ltm;
+	struct tm ltm, gtm;
   
   if (!buff) return 0;
+	if(dateFormat == QOF_DATE_FORMAT_UTC)
+	{
+		gtm = *gmtime (&secs);
+		flen = strftime(buff, len, QOF_UTC_DATE_FORMAT, &gtm);
+		return flen;
+	}
   ltm = *localtime (&secs);
   flen = strftime (buff, len, GNC_T_FMT, &ltm);
 
@@ -675,37 +714,49 @@
 
 /* ============================================================== */
 
-/**
- * qof_scan_date
- *    Convert a string into  day / month / year integers according to
- *    the current dateFormat value.
- *
- *    This function will always parse a single number as the day of
- *    the month, regardless of the ordering of the dateFormat value.
- *    Two numbers will always be parsed as the day and the month, in
- *    the same order that they appear in the dateFormat value.  Three
- *    numbers are parsed exactly as specified in the dateFormat field.
- *
- * Args:   buff - pointer to date string
- *         day -  will store day of the month as 1 ... 31
- *         month - will store month of the year as 1 ... 12
- *         year - will store the year (4-digit)
- *
- * Return: TRUE if date appeared to be valid.
- *
- * Globals: global dateFormat value
- */
+/* Convert a string into  day, month and year integers
+
+    Convert a string into  day / month / year integers according to
+    the current dateFormat value.
+
+    This function will always parse a single number as the day of
+    the month, regardless of the ordering of the dateFormat value.
+    Two numbers will always be parsed as the day and the month, in
+    the same order that they appear in the dateFormat value.  Three
+    numbers are parsed exactly as specified in the dateFormat field.
+
+    Fully formatted UTC timestamp strings are converted separately.
+
+param   buff - pointer to date string
+param     day -  will store day of the month as 1 ... 31
+param     month - will store month of the year as 1 ... 12
+param     year - will store the year (4-digit)
+
+return TRUE if date appeared to be valid.
+
+ Globals: global dateFormat value
+*/
 static gboolean
 qof_scan_date_internal (const char *buff, int *day, int *month, int *year,
                   QofDateFormat which_format)
 {
    char *dupe, *tmp, *first_field, *second_field, *third_field;
    int iday, imonth, iyear;
-   struct tm *now;
+   struct tm *now, utc;
    time_t secs;
 
    if (!buff) return(FALSE);
 
+	if(which_format == QOF_DATE_FORMAT_UTC)
+	{
+		if(strptime(buff, QOF_UTC_DATE_FORMAT, &utc)) {
+			*day = utc.tm_mday;
+			*month = utc.tm_mon + 1;
+			*year = utc.tm_year + 1900;
+			return TRUE;
+		}
+		else { return FALSE; }
+	}
    dupe = g_strdup (buff);
 
    tmp = dupe;
@@ -818,7 +869,7 @@
       * Ack! Thppfft!  Someone just fed this routine a string in the
       * wrong date format.  This is known to happen if a register
       * window is open when changing the date format.  Try the
-      * previous date format.  If that doesn't work, se if we can
+      * previous date format.  If that doesn't work, see if we can
       * exchange month and day. If that still doesn't work,
       * bail and give the caller what they asked for (garbage) 
       * parsed in the new format.
@@ -871,16 +922,9 @@
   return rc;
 }
 
-/**
- * dateSeparator
- *    Return the field separator for the current date format
- *
- * Args:   none
- *
- * Return: date character
- *
- * Globals: global dateFormat value
- */
+/* Return the field separator for the current date format
+return date character
+*/
 char dateSeparator (void)
 {
   static char locale_separator = '\0';
@@ -890,6 +934,7 @@
     case QOF_DATE_FORMAT_CE:
       return '.';
     case QOF_DATE_FORMAT_ISO:
+    case QOF_DATE_FORMAT_UTC:
       return '-';
     case QOF_DATE_FORMAT_US:
     case QOF_DATE_FORMAT_UK:
@@ -921,11 +966,15 @@
 /********************************************************************\
 \********************************************************************/
                                                                                 
-/** The xaccDateUtilGetStamp() routine will take the given time in
- *  seconds and return a buffer containing a textual for the date.
- *  @param thyme The time in seconds to convert.
- *  @return A pointer to the generated string.
- *  @note The caller owns this buffer and must free it when done. */
+/* Convert time in seconds to a textual.
+
+The xaccDateUtilGetStamp() routine will take the given time in
+seconds and return a buffer containing a textual for the date.
+
+param thyme The time in seconds to convert.
+return A pointer to the generated string.
+The caller owns this buffer and must free it when done.
+*/
 char *
 xaccDateUtilGetStamp (time_t thyme)
 {
@@ -944,10 +993,15 @@
 }
                                                                                 
                                                                                 
-/** The xaccDateUtilGetStampNow() routine returns the current time in
- *  seconds in textual format.
- *  @return A pointer to the generated string.
- *  @note The caller owns this buffer and must free it when done. */
+/* Convert textual to time in seconds.
+
+The xaccDateUtilGetStampNow() routine returns the current time in
+seconds in textual format.
+
+return A pointer to the generated string.
+
+note The caller owns this buffer and must free it when done.
+*/
 char *
 xaccDateUtilGetStampNow (void)
 {
Index: qofquery-serialize.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery-serialize.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/engine/qofquery-serialize.c -Lsrc/engine/qofquery-serialize.c -u -r1.1.2.2 -r1.1.2.3
--- src/engine/qofquery-serialize.c
+++ src/engine/qofquery-serialize.c
@@ -282,7 +282,7 @@
 		pdata_d = (query_date_t) pd;
 		
 		PUT_MATCH2("qofquery:date-match", pdata_d->options,
-		                 DATE_MATCH, NORMAL, ROUNDED);
+		                 DATE_MATCH, NORMAL, DAY);
 
 		PUT_DATE ("qofquery:date", pdata_d->date);
 		return topnode;
Index: gnc-engine.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-engine.c,v
retrieving revision 1.17.4.3
retrieving revision 1.17.4.4
diff -Lsrc/engine/gnc-engine.c -Lsrc/engine/gnc-engine.c -u -r1.17.4.3 -r1.17.4.4
--- src/engine/gnc-engine.c
+++ src/engine/gnc-engine.c
@@ -35,6 +35,8 @@
 #include "TransactionP.h"
 #include "gnc-commodity.h"
 #include "gnc-lot-p.h"
+#include "SchedXactionP.h"
+#include "FreqSpecP.h"
 #include "gnc-pricedb-p.h"
 #include "qofbook.h"
 #include "qofbook-p.h"
@@ -96,6 +98,8 @@
   xaccAccountRegister ();
   xaccGroupRegister ();
   gnc_sxtt_register ();
+  FreqSpecRegister ();
+  SXRegister ();
   gnc_budget_register();
   gnc_pricedb_register ();
   gnc_commodity_table_register();
Index: FreqSpec.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.h,v
retrieving revision 1.10.4.4
retrieving revision 1.10.4.5
diff -Lsrc/engine/FreqSpec.h -Lsrc/engine/FreqSpec.h -u -r1.10.4.4 -r1.10.4.5
--- src/engine/FreqSpec.h
+++ src/engine/FreqSpec.h
@@ -17,14 +17,43 @@
  * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
  *                                                                  *
 \********************************************************************/
-/** @addtogroup QOF
+/** @addtogroup SchedXaction
     @{ */
 /** @addtogroup FreqSpec Specifying Recurring Dates (Periods)
-    @{ */
+
+ Frequency specifications include how to let an event recur on a
+ predictable frequency, from a core of once, daily, weekly, monthly or annually.
+ More complex frequencies like twice weekly, quarterly, bi-annually and
+ custom frequencies consisting of a series of distinct dates are built from
+ the core types.
+ 
+ Although defined, MONTH_RELATIVE is not yet supported.
+
+ Scheduled transactions have a frequency defined by a frequency
+ specifier.  This specifier, given a start date, end date [present
+ in the scheduled transaction] and last occurance date [possibly not
+ present] can be used to determine that a s.transaction should be
+ instantiated on a given date [the given query date].
+
+ There is a split between the UIFreqType and the 'internal' FreqType
+ to reduce the complexity of some of the code involved.
+
+ This still needs to deal with:
+ . exceptions
+ . 13 periods: (4 weeks/period 4x13=52 weeks/year)
+ . yearly 360/365?
+ . re-based frequencies [based around a non-standard [read:
+   not-Jan-1-based/fiscal] year]
+ . "business days" -- m-f sans holidays [per-user list thereof]
+
+ \todo  add month-relative getter 
+
+@{ */
 /** @file FreqSpec.h
     @brief Period / Date Frequency Specification
     @author Copyright (C) 2001 Joshua Sled <jsled at asynchronous.org>
     @author Copyright (C) 2001 Ben Stanley <bds02 at uow.edu.au>  
+    @author Copyright (c) 2005 Neil Williams <linux at codehelp.co.uk>
 */
 
 #ifndef XACC_FREQSPEC_H
@@ -37,45 +66,52 @@
 #include "qofid.h"
 #include "guid.h"
 #include "qofbook.h"
+#include "qofobject.h"
+#include "qofclass.h"
+#include "qofquery.h"
+#include "gnc-engine-util.h"
+
+#define ENUM_LIST_TYPE(_) \
+        _(INVALID,) \
+        _(ONCE,) \
+        _(DAILY,) \
+        _(WEEKLY,) /**< Hmmm... This is sort of DAILY[7]... */ \
+        _(MONTHLY,) \
+        _(MONTH_RELATIVE,) \
+        _(COMPOSITE,)
+
+DEFINE_ENUM(FreqType, ENUM_LIST_TYPE) /**< \enum Frequency specification.
+
+For BI_WEEKLY, use weekly[2] 
+ SEMI_MONTHLY, use composite 
+ YEARLY, monthly[12] */
+
+AS_STRING_DEC(FreqType, ENUM_LIST_TYPE)
+FROM_STRING_DEC(FreqType, ENUM_LIST_TYPE)
+
+#define ENUM_LIST_UI(_) \
+        _(UIFREQ_NONE,) /**< no frequency */ \
+        _(UIFREQ_ONCE,) /**< Just occurs once */ \
+        _(UIFREQ_DAILY,) /**< Repeat every day. */ \
+        _(UIFREQ_DAILY_MF,) /**< Repeat Monday to Friday, skip weekend. */ \
+        _(UIFREQ_WEEKLY,) /**< Repeat once each week. */ \
+        _(UIFREQ_BI_WEEKLY,) /**< Repeat twice a week. */ \
+        _(UIFREQ_SEMI_MONTHLY,) /**< Repeat twice a month. */ \
+        _(UIFREQ_MONTHLY,) /**< Repeat once a month. */ \
+        _(UIFREQ_QUARTERLY,) /**< Repeat every quarter. */ \
+        _(UIFREQ_TRI_ANUALLY,) /**< Repeat three times a year. */ \
+        _(UIFREQ_SEMI_YEARLY,) /**< Repeat twice a year. */ \
+        _(UIFREQ_YEARLY,) /**< Repeat once a year. */ \
+        _(UIFREQ_NUM_UI_FREQSPECS,) 
 
-/**
- * Frequency specification.
- *
- **/
-typedef enum gncp_FreqType {
-        INVALID,
-        ONCE,
-        DAILY,
-        WEEKLY, /* Hmmm... This is sort of DAILY[7]... */
-        /* BI_WEEKLY: weekly[2] */
-        /* SEMI_MONTHLY: use composite */
-        MONTHLY,
-        MONTH_RELATIVE,
-        /* YEARLY: monthly[12] */
-        COMPOSITE,
-} FreqType;
+DEFINE_ENUM( UIFreqType, ENUM_LIST_UI) /**< \enum UIFreqType
 
-/**
  * The user's conception of the frequency.  It is expected that this
- * list will grow, while the former [FreqType] will not.
- *
- * Ideally this is not here, but what can you do?
- **/
-typedef enum gncp_UIFreqType {
-        UIFREQ_NONE,
-        UIFREQ_ONCE,
-        UIFREQ_DAILY,
-        UIFREQ_DAILY_MF,
-        UIFREQ_WEEKLY,
-        UIFREQ_BI_WEEKLY,
-        UIFREQ_SEMI_MONTHLY,
-        UIFREQ_MONTHLY,
-        UIFREQ_QUARTERLY,
-        UIFREQ_TRI_ANUALLY,
-        UIFREQ_SEMI_YEARLY,
-        UIFREQ_YEARLY,
-        UIFREQ_NUM_UI_FREQSPECS
-} UIFreqType;
+ * list will grow, while the former ::FreqType will not. */
+
+AS_STRING_DEC(UIFreqType, ENUM_LIST_UI) 
+FROM_STRING_DEC(UIFreqType, ENUM_LIST_UI)
+
 
 /**
  * Forward declaration of FreqSpec type for storing
@@ -85,7 +121,6 @@
 struct gncp_freq_spec;
 typedef struct gncp_freq_spec FreqSpec;
 
-
 /** PROTOTYPES ******************************************************/
 
 /**
@@ -233,6 +268,83 @@
  **/
 int gnc_freq_spec_compare( FreqSpec *a, FreqSpec *b );
 
+/** \name QOF handling.
+
+QOF requires parameters to use get and set routines individually -
+one parameter, one set routine, one get routine. QOF also passes
+parameter values directly and expects to receive the parameter value
+directly. These functions provide this mechanism. Note that in each
+case, where the xacc.. function uses a *int, QOF uses the int.
+
+In keeping with the rest of QOF, dates are handled as Timespec.
+@{
+*/
+#define QOF_ID_FREQSPEC       "FreqSpec"
+#define FS_UI_TYPE            "fs-frequency"
+#define FS_REPEAT             "fs-repeat"
+#define FS_BASE_DATE          "fs-initial-date"
+#define FS_MONTH_DAY          "fs-day-of-month"
+#define FS_MONTH_OFFSET       "fs-month-offset"
+
+/** \brief Use a string for enum values.
+
+Uses a macro defined in gnc-engine-util.h to swap the enum value for
+the string equivalent. The string is a direct copy of the enum value
+in the source, so UIFREQ_SEMI_MONTHLY returns "UIFREQ_SEMI_MONTHLY"
+*/
+char* qofFreqSpecGetUIType(FreqSpec *fs);
+/** \brief Use a string for enum values. */
+void qofFreqSpecSetUIType (FreqSpec *fs, const char *type_string);
+/** \brief Single get routine for all types.
+
+This routine dumps the other calculated values from certain types
+and returns only the repeat interval.
+
+\return -1 on error or if the type in INVALID,
+otherwise the repeat interval for the current type.
+*/
+int qofFreqSpecGetRepeat(FreqSpec *fs);
+/** \brief Single set routine for all types.
+
+Store the value temporarily. When the repeat interval,
+base date and UIType are all set, QOF calculates the
+other FreqSpec parameters.
+*/
+void qofFreqSpecSetRepeat(FreqSpec *fs, gint value);
+/** \brief Get the base date.
+
+Uses Timespec for QOF.
+*/
+Timespec qofFreqSpecGetBaseDate(FreqSpec *fs);
+/** \brief Set the base date.
+
+Uses Timespec for QOF.
+*/
+void qofFreqSpecSetBaseDate(FreqSpec *fs, Timespec ts);
+/** \brief Get just the day of month for a monthly repeat.
+
+This isolates the one parameter value from the current object.
+
+\note QOF requires the value to be returned, not set via a pointer.
+
+ at return 0 if this is not a monthly FreqSpec.
+*/
+int qofFreqSpecGetMonthDay(FreqSpec *fs);
+/** \brief Get just the month offset for a monthly repeat.
+
+This isolates the one parameter value from the current object.
+
+\note QOF requires the value to be returned, not set via a pointer.
+
+ at return 0 if this is not a monthly FreqSpec.
+*/
+int qofFreqSpecGetMonthOffset(FreqSpec *fs);
+
+/** \todo Need support for monthly and weekly extra values and composite. */
+gboolean FreqSpecRegister(void);
+
+/** @} */
+/** @} */
+/** @} */
+
 #endif /* XACC_FREQSPEC_H */
-/**@}*/
-/**@}*/
Index: druid-loan.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/druid-loan.c,v
retrieving revision 1.17.4.6
retrieving revision 1.17.4.7
diff -Lsrc/gnome/druid-loan.c -Lsrc/gnome/druid-loan.c -u -r1.17.4.6 -r1.17.4.7
--- src/gnome/druid-loan.c
+++ src/gnome/druid-loan.c
@@ -2835,7 +2835,7 @@
                 if ( g_date_compare( &rrr->date, end ) > 0 )
                         continue; /* though we can probably return, too. */
 
-                printGDate( tmpBuf, &rrr->date );
+                qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, &rrr->date );
                 rowText[0] = g_strdup( tmpBuf );
 
                 for ( i=0; i<ldd->ld.revNumPmts; i++ )
Index: dialog-sxsincelast.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/dialog-sxsincelast.c,v
retrieving revision 1.65.4.9
retrieving revision 1.65.4.10
diff -Lsrc/gnome/dialog-sxsincelast.c -Lsrc/gnome/dialog-sxsincelast.c -u -r1.65.4.9 -r1.65.4.10
--- src/gnome/dialog-sxsincelast.c
+++ src/gnome/dialog-sxsincelast.c
@@ -1192,7 +1192,7 @@
                 /* add to the postponed list. */
                 { 
                         char tmpBuf[ MAX_DATE_LENGTH+1 ];
-                        printGDate( tmpBuf, tci->date );
+                        qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, tci->date );
                         DEBUG( "Adding defer instance on %s for %s",
                                tmpBuf,
                                xaccSchedXactionGetName( tci->parentTCT->sx ) );
@@ -1289,7 +1289,7 @@
                                               &allVarsBound );
                         if ( !allVarsBound ) {
                                 char tmpBuf[ MAX_DATE_LENGTH+1 ];
-                                printGDate( tmpBuf, tci->date );
+                                qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, tci->date );
                                 /* FIXME: this should be better-presented to the user. */
                                 DEBUG( "SX %s on date %s still has unbound variables.",
                                        xaccSchedXactionGetName(tci->parentTCT->sx), tmpBuf );
@@ -1856,7 +1856,7 @@
                         }
 
                         rowText[0] = g_new0( char, MAX_DATE_LENGTH+1 );
-                        printGDate( rowText[0], tci->date );
+                        qof_print_gdate( rowText[0], MAX_DATE_LENGTH, tci->date );
                         
 
                         switch ( tci->state ) {
@@ -1943,7 +1943,7 @@
                         rit = (reminderInstanceTuple*)instances->data;
 
                         rowText[0] = g_new0( gchar, MAX_DATE_LENGTH+1 );
-                        printGDate( rowText[0], rit->occurDate );
+                        qof_print_gdate( rowText[0], MAX_DATE_LENGTH, rit->occurDate );
                         rowText[1] = "";
                         rowText[2] = g_new0( gchar, 5 ); /* FIXME: appropriate size? */
                         sprintf( rowText[2], "%d",
@@ -3494,7 +3494,7 @@
 
         rit = (reminderInstanceTuple*)data;
         msg = (GString*)ud;
-        printGDate( tmpBuf, rit->occurDate );
+        qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, rit->occurDate );
         g_string_sprintfa( msg, tmpBuf );
         g_string_sprintfa( msg, "\n" );
 }
Index: top-level.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/top-level.c,v
retrieving revision 1.140.4.15
retrieving revision 1.140.4.16
diff -Lsrc/gnome/top-level.c -Lsrc/gnome/top-level.c -u -r1.140.4.15 -r1.140.4.16
--- src/gnome/top-level.c
+++ src/gnome/top-level.c
@@ -558,7 +558,7 @@
                                                     "Date Format",
                                                     "locale");
 
-  DateFormat df;
+  QofDateFormat df;
 
   if (gnc_date_string_to_dateformat(format_code, &df))
   {
@@ -568,7 +568,7 @@
     return;
   }
 
-  setDateFormat(df);
+  qof_date_format_set(df);
 
   if (format_code != NULL)
     free(format_code);
Index: dialog-scheduledxaction.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/dialog-scheduledxaction.c,v
retrieving revision 1.71.2.11
retrieving revision 1.71.2.12
diff -Lsrc/gnome/dialog-scheduledxaction.c -Lsrc/gnome/dialog-scheduledxaction.c -u -r1.71.2.11 -r1.71.2.12
--- src/gnome/dialog-scheduledxaction.c
+++ src/gnome/dialog-scheduledxaction.c
@@ -1642,7 +1642,7 @@
                 gd = xaccSchedXactionGetLastOccurDate( sxed->sx );
                 if ( g_date_valid( gd ) ) {
                         gchar dateBuf[ MAX_DATE_LENGTH+1 ];
-                        printGDate( dateBuf, gd );
+                        qof_print_gdate( dateBuf,MAX_DATE_LENGTH, gd );
                         gtk_label_set_text( sxed->lastOccurLabel, dateBuf );
                 } else {
                         gtk_label_set_text( sxed->lastOccurLabel, _( "(never)" ) );
@@ -2077,7 +2077,7 @@
                 char tmpBuf[ MAX_DATE_LENGTH+1 ];
                 char dowBuf[ 25 ]; /* <- FIXME: appropriate length? */
                 nextInstDate = (GDate*)instList->data;
-                printGDate( tmpBuf, nextInstDate );
+                qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, nextInstDate );
                 g_date_strftime( dowBuf, 25, "%A", nextInstDate );
                 g_string_sprintf( nextDate, "%s (%s)", tmpBuf, dowBuf );
         }
@@ -2478,5 +2478,3 @@
 gnc_sxed_cmd_edit_paste (GtkAction *action, SchedXactionEditorDialog *sxed)
 {
 }
-
-
Index: import-match-picker.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/import-match-picker.c,v
retrieving revision 1.3.4.3
retrieving revision 1.3.4.4
diff -Lsrc/import-export/import-match-picker.c -Lsrc/import-export/import-match-picker.c -u -r1.3.4.3 -r1.3.4.4
--- src/import-export/import-match-picker.c
+++ src/import-export/import-match-picker.c
@@ -103,7 +103,7 @@
   
   /*Date*/
   clist_text[DOWNLOADED_CLIST_DATE] = 
-    xaccPrintDateSecs 
+    qof_print_date 
     ( xaccTransGetDate
       ( gnc_import_TransInfo_get_trans(transaction_info) ) );
   
@@ -171,7 +171,7 @@
       
       /* Date */
       clist_text[MATCHER_CLIST_DATE]=
-	xaccPrintDateSecs 
+	qof_print_date 
 	( xaccTransGetDate
 	  ( xaccSplitGetParent
 	    ( gnc_import_MatchInfo_get_split(match_info) ) ));
Index: import-main-matcher.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/import-main-matcher.c,v
retrieving revision 1.13.2.6
retrieving revision 1.13.2.7
diff -Lsrc/import-export/import-main-matcher.c -Lsrc/import-export/import-main-matcher.c -u -r1.13.2.6 -r1.13.2.7
--- src/import-export/import-main-matcher.c
+++ src/import-export/import-main-matcher.c
@@ -564,7 +564,7 @@
   /*Date*/
 
   text[DOWNLOADED_CLIST_DATE] = 
-    xaccPrintDateSecs ( xaccTransGetDate( gnc_import_TransInfo_get_trans(info) ) );
+    qof_print_date ( xaccTransGetDate( gnc_import_TransInfo_get_trans(info) ) );
   gtk_clist_set_text (GTK_CLIST (gui->clist), row_number, 
 		      DOWNLOADED_CLIST_DATE, 
 		      text[DOWNLOADED_CLIST_DATE]);
Index: gnc-date-edit.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-date-edit.c,v
retrieving revision 1.5.4.12
retrieving revision 1.5.4.13
diff -Lsrc/gnome-utils/gnc-date-edit.c -Lsrc/gnome-utils/gnc-date-edit.c -u -r1.5.4.12 -r1.5.4.13
--- src/gnome-utils/gnc-date-edit.c
+++ src/gnome-utils/gnc-date-edit.c
@@ -253,7 +253,7 @@
 	struct tm mtm;
 
         /* This code is pretty much just copied from gtk_date_edit_get_date */
-      	scanDate (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
+        qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
                   &mtm.tm_mday, &mtm.tm_mon, &mtm.tm_year);
 
         mtm.tm_mon--;
@@ -770,7 +770,7 @@
 	g_assert(gde != NULL);
 	g_assert(GNC_IS_DATE_EDIT(gde));
 
-      	scanDate (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
+      qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
                   &tm.tm_mday, &tm.tm_mon, &tm.tm_year);
 
 	tm.tm_mon--;
Index: QuickFill.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/QuickFill.h,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.4
diff -Lsrc/gnome-utils/QuickFill.h -Lsrc/gnome-utils/QuickFill.h -u -r1.1.4.3 -r1.1.4.4
--- src/gnome-utils/QuickFill.h
+++ src/gnome-utils/QuickFill.h
@@ -19,16 +19,11 @@
  * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
  *                                                                  *
 \********************************************************************/
+/** @addtogroup GUI
+@{
+*/
+/** @addtogroup QuickFill
 
-#ifndef QUICKFILL_H
-#define QUICKFILL_H
-
-#include "config.h"
-
-#include <gdk/gdk.h>
-#include <glib.h>
-
-/** @addtogroup QuickFill Quick Fill: auto-complete typed user input.  
    QuickFill is meant to be used by the GUI to auto-complete 
    (e.g. tab-complete) typed user input.  
    Quickfill is implemented as a heirarchical tree 
@@ -43,7 +38,8 @@
    QuickFill works with national-language i18n'ed/l10n'ed multi-byte 
    and wide-char strings, as well as plain-old C-locale strings.
    @{
-  
+*/
+/**
    @file QuickFill.h
    @brief Quickfill is used to auto-complete typed user entries.
    @author Copyright (C) 1997 Robin D. Clark
@@ -51,6 +47,14 @@
    @author Copyright (C) 2000 Dave Peticolas
  */
 
+#ifndef QUICKFILL_H
+#define QUICKFILL_H
+
+#include "config.h"
+
+#include <gdk/gdk.h>
+#include <glib.h>
+
 typedef enum
 {
   QUICKFILL_LIFO,
@@ -119,5 +123,6 @@
 /** Add the string "text" to the collection of searchable strings. */
 void         gnc_quickfill_insert (QuickFill *root, const char *text,
                                    QuickFillSort sort_code);
-
+/** @} */
+/** @} */
 #endif /* QUICKFILL_H */
Index: gnc-date-format.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-date-format.h,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.2
diff -Lsrc/gnome-utils/gnc-date-format.h -Lsrc/gnome-utils/gnc-date-format.h -u -r1.3.2.1 -r1.3.2.2
--- src/gnome-utils/gnc-date-format.h
+++ src/gnome-utils/gnc-date-format.h
@@ -63,8 +63,8 @@
 GtkWidget *gnc_date_format_new_without_label (void);
 GtkWidget *gnc_date_format_new_with_label (const char *label);
 
-void      gnc_date_format_set_format      (GNCDateFormat *gdf, DateFormat format);
-DateFormat gnc_date_format_get_format     (GNCDateFormat *gdf);
+void      gnc_date_format_set_format      (GNCDateFormat *gdf, QofDateFormat format);
+QofDateFormat gnc_date_format_get_format     (GNCDateFormat *gdf);
 
 void      gnc_date_format_set_months      (GNCDateFormat *gdf,
 					   GNCDateMonthFormat months);
Index: account-quickfill.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/account-quickfill.h,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -Lsrc/gnome-utils/account-quickfill.h -Lsrc/gnome-utils/account-quickfill.h -u -r1.1.4.2 -r1.1.4.3
--- src/gnome-utils/account-quickfill.h
+++ src/gnome-utils/account-quickfill.h
@@ -19,10 +19,11 @@
  * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
  *                                                                  *
 \********************************************************************/
-/** @addtogroup QuickFill
+/** @addtogroup QuickFill auto-complete typed user input.
    @{
 */
 /** @addtogroup Account_QuickFill Account Names
+
     For systems with a large number of accounts (>500), the creation 
     of the account name quickfill can take a significant amount of 
     time (tens of seconds in bad cases).  This routine will build 
Index: gnc-date-format.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-date-format.c,v
retrieving revision 1.3.2.5
retrieving revision 1.3.2.6
diff -Lsrc/gnome-utils/gnc-date-format.c -Lsrc/gnome-utils/gnc-date-format.c -u -r1.3.2.5 -r1.3.2.6
--- src/gnome-utils/gnc-date-format.c
+++ src/gnome-utils/gnc-date-format.c
@@ -180,7 +180,7 @@
 				GTK_SIGNAL_FUNC(gnc_ui_date_format_changed_cb), gdf);
 
   /* Set initial format to gnucash default */
-  gnc_date_format_set_format(gdf, getDateFormat());
+  gnc_date_format_set_format(gdf, qof_date_format_get());
 
   /* pull in the dialog and table widgets and play the reconnect game */
   dialog = glade_xml_get_widget(xml, "GNC Date Format");
@@ -283,7 +283,7 @@
 }
 
 void
-gnc_date_format_set_format (GNCDateFormat *gdf, DateFormat format)
+gnc_date_format_set_format (GNCDateFormat *gdf, QofDateFormat format)
 {
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
@@ -292,11 +292,11 @@
   gnc_date_format_compute_format(gdf);
 }
 
-DateFormat
+QofDateFormat
 gnc_date_format_get_format (GNCDateFormat *gdf)
 {
-  g_return_val_if_fail (gdf, DATE_FORMAT_LOCALE);
-  g_return_val_if_fail (GNC_IS_DATE_FORMAT(gdf), DATE_FORMAT_LOCALE);
+  g_return_val_if_fail (gdf, QOF_DATE_FORMAT_LOCALE);
+  g_return_val_if_fail (GNC_IS_DATE_FORMAT(gdf), QOF_DATE_FORMAT_LOCALE);
 
   return gnc_option_menu_get_active(gdf->priv->format_omenu);
 }
@@ -455,18 +455,18 @@
   sel_option = gnc_option_menu_get_active(gdf->priv->format_omenu);
 
   switch (sel_option) {
-   case DATE_FORMAT_CUSTOM:
+   case QOF_DATE_FORMAT_CUSTOM:
     format = g_strdup(gtk_entry_get_text(GTK_ENTRY(gdf->priv->custom_entry)));
     enable_year = enable_month = check_modifiers = FALSE;
     enable_custom = TRUE;
     break;
 
-   case DATE_FORMAT_LOCALE:
-    format = g_strdup(getDateFormatString(DATE_FORMAT_LOCALE));
+   case QOF_DATE_FORMAT_LOCALE:
+    format = g_strdup(qof_date_format_get_string(QOF_DATE_FORMAT_LOCALE));
     enable_year = enable_month = check_modifiers = enable_custom = FALSE;
     break;
 
-   case DATE_FORMAT_ISO:
+   case QOF_DATE_FORMAT_ISO:
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gdf->priv->months_number), TRUE);
     enable_year = check_modifiers = TRUE;
     enable_month = enable_custom = FALSE;
@@ -486,9 +486,9 @@
   /* Update the format string based upon the user's preferences */
   if (check_modifiers) {
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_number))) {
-      format = g_strdup(getDateFormatString(sel_option));
+      format = g_strdup(qof_date_format_get_string(sel_option));
     } else {
-      format = g_strdup(getDateTextFormatString(sel_option));
+      format = g_strdup(qof_date_format_get_string(sel_option));
       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_name))) {
 	c = strchr(format, 'b');
 	if (c)
@@ -531,4 +531,3 @@
   /* Emit a signal that we've changed */
   g_signal_emit(G_OBJECT(gdf), date_format_signals[FORMAT_CHANGED], 0);
 }
-
Index: dialog-options.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/dialog-options.c,v
retrieving revision 1.22.2.17
retrieving revision 1.22.2.18
diff -Lsrc/gnome-utils/dialog-options.c -Lsrc/gnome-utils/dialog-options.c -u -r1.22.2.17 -r1.22.2.18
--- src/gnome-utils/dialog-options.c
+++ src/gnome-utils/dialog-options.c
@@ -2387,7 +2387,7 @@
 				    GtkWidget *widget, SCM value)
 {
   GNCDateFormat * gdf = GNC_DATE_FORMAT(widget);
-  DateFormat format;
+  QofDateFormat format;
   GNCDateMonthFormat months;
   gboolean years;
   char *custom;
@@ -2656,7 +2656,7 @@
 gnc_option_get_ui_value_dateformat (GNCOption *option, GtkWidget *widget)
 {
   GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
-  DateFormat format;
+  QofDateFormat format;
   GNCDateMonthFormat months;
   gboolean years;
   const char* custom;
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.196
retrieving revision 1.1487.2.197
diff -LChangeLog -LChangeLog -u -r1.1487.2.196 -r1.1487.2.197
--- ChangeLog
+++ ChangeLog
@@ -1,10 +1,96 @@
+2005-04-25  Neil Williams <linux at codehelp.co.uk>
+	* src/app-utils/option-util.c:
+	* src/app-utils/option-util.h: Removing deprecated QOF code
+	DateFormat.
+	* src/backend/qsf/pilot-qsf-GnuCashInvoice.xml:
+	Making allowance for FreqSpec in pilotqof.
+	* src/backend/qsf/qsf-backend.c: Support for
+	reporting write errors to the user from the backend.
+	* src/backend/qsf/qsf-object.xsd.xml: Typos and
+	requiring certain attributes in all QSF XML.
+	* src/backend/qsf/qsf-xml-map.c: minor.
+	* src/backend/qsf/qsf-xml.h: Doxygen.
+	* src/business/business-core/gncEntry.c: Increased
+	QOF support.
+	* src/business/business-core/gncEntry.h: QOF defines.
+	* src/engine/FreqSpec.c: Removing hack, using enum as
+	string macro, adding some QOF parameters and object
+	definition. More to follow.
+	* src/engine/FreqSpec.h: enum as string macro and
+	adding QOF handling. Doxygen.
+	* src/engine/FreqSpecP.h: Moving Doxygen comments to .h
+	where they can actually be read. Removing Doxygen markers
+	where unnecessary.
+	* src/engine/SchedXaction.c: QOF Object declaration,
+	QOF parameters.
+	* src/engine/SchedXaction.h: Doxygen and QOF handling.
+	* src/engine/gnc-date.c: Adding support for UTC time formatting
+	and parsing. Doxygen. Increased MAX_DATE_LENGTH to cope
+	with UTC strings.
+	* src/engine/gnc-date.h: Removing deprecated shorthand defines.
+	UTC support. Doxygen.
+	* src/engine/gnc-engine-util.h: enum as string macro improvements.
+	* src/engine/gnc-engine.c: FreqSpec and SchedXaction QOF object
+	registration.
+	* src/engine/gnc-trace.c: Tweak.
+	* src/engine/gw-engine-spec.scm: Removing deprecated
+	QOF_DATE_MATCH_ROUNDED and replacing with QOF_DATE_MATCH_DAY.
+	* src/engine/kvp_frame.c: Deprecating mis-matched function names
+	where gnc_numeric was mixed with numeric and str with string.
+	All now use numeric or string.
+	* src/engine/kvp_frame.h: Adding defines to support deprecated
+	names for time being. Doxygen.
+	* src/engine/qof-be-utils.h: Doxygen tweak.
+	* src/engine/qof.h: Removing qof/ directory prefix on included
+	header files.
+	* src/engine/qof_book_merge.c: Using MAX_DATE_LENGTH, swapping
+	unsigned int to signed int for printing.
+	* src/engine/qof_book_merge.h: Losing the qof/ prefix.
+	* src/engine/qofclass.c: Reference handling.
+	* src/engine/qofgobj.c: Losing the qof/ prefix. Moving variable
+	declarations to top of block.
+	* src/engine/qofgobj.h: Losing qof/ prefix.
+	* src/engine/qofid.h: Removing FreqSpec from QOF.
+	* src/engine/qofquery-deserial.c: Removing deprecated date handling
+	code.
+	* src/engine/qofquery-deserial.h: Losing qof/ prefix, doxygen.
+	* src/engine/qofquery-serialize.c: Removing deprecated date handling
+	code.
+	* src/engine/qofquery-serialize.h: Losing qof/ prefix.
+	* src/engine/qofquery.c: Removing deprecated date handling code.
+	* src/engine/qofquery.h: Doxygen.
+	* src/engine/qofquerycore.c: Removing deprecated date handling code.
+	* src/engine/qofquerycore.h: Removing deprecated date handling code.
+	* src/engine/qofsession-p.h: Doxygen.
+	* src/engine/qofsession.c: Tweak.
+	* src/engine/qofsql.c: Losing qof/ prefix. Support for INSERT SQL
+	statement and UTC date queries.
+	* src/engine/qofsql.h: Losing qof/ prefix. Doxygen.
+	* src/gnome-utils/QuickFill.h: Doxygen tweak.
+	* src/gnome-utils/account-quickfill.h: Doxygen tweak.
+	* src/gnome-utils/dialog-options.c:
+	* src/gnome-utils/gnc-date-edit.c:
+	* src/gnome-utils/gnc-date-format.c:
+	* src/gnome-utils/gnc-date-format.h:
+	* src/gnome/dialog-scheduledxaction.c:
+	* src/gnome/dialog-sxsincelast.c:
+	* src/gnome/druid-loan.c:
+	* src/gnome/top-level.c:
+	* src/import-export/import-main-matcher.c:
+	* src/import-export/import-match-picker.c:
+	* src/register/ledger-core/split-register-layout.h:
+	* src/register/ledger-core/split-register.c:
+	* src/register/ledger-core/split-register.h:
+	* src/register/register-gnome/datecell-gnome.c: Removing deprecated
+	date handling code.
+
 2005-04-24  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome/window-main-summarybar.c: Switch from using a gtk_select
 	with locally-defined widgets to a GtkListStore backing a standard
 	combo box.  Re-define the layout a bit, but it's still ugly.
 	* src/gnome-utils/gtkselect.[ch]: Dead.
-	
+
 2005-04-24  David Hampton  <hampton at employees.org>
 
 	* gnucash/src/core-utils/gnc-gconf-utils.[ch]:
@@ -75,12 +161,12 @@
 	* lib/goffice/ : Initial import of libgoffice "port".
 
  -- end gog-integ Changelog --
-	
+
 2005-04-22  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/scm/main.scm (gnc:main): Expose and use functionality to
 	update the main-window title after init-file load, plus collateral
-	changes. 
+	changes.
 
 2005-04-16  Derek Atkins <derek at ihtfp.com>
 
@@ -102,7 +188,7 @@
 	* src/app-file/gnc-file.h: Added prototype
 	for show_session_error() so that it can be called
 	to handle errors reported by any backend operation.
-	* src/backend/file/gnc-book-xml-v2.c: 
+	* src/backend/file/gnc-book-xml-v2.c:
 	* src/backend/file/io-gncxml-v2.c: Wrapping fprintf()
 	in error handler to catch failed write operations.
 	* src/backend/qsf/qsf-backend.c: Handling write errors
@@ -155,11 +241,11 @@
 	* src/engine/qofsession.c: Removing debug calls. Minor fix.
 	* src/gnome/dialog-chart-export.c: Adding references to
 	generated Transaction and Splits in Chart of Accounts export.
-	
+
 2005-03-21  Neil Williams <linux at codehelp.co.uk>
-	* src/backend/qsf/qsf-backend.c: 
+	* src/backend/qsf/qsf-backend.c:
 	* src/backend/qsf/qsf-xml.c:
-	* src/backend/qsf/qsf-xml.h: Reference handling improvements.		
+	* src/backend/qsf/qsf-xml.h: Reference handling improvements.
 	* src/business/business-gnome/gnc-plugin-business.c:
 	* src/business/business-gnome/ui/gnc-plugin-business-ui.xml:
 	  Adding export routines for business objects.
@@ -172,7 +258,7 @@
 	during copy to improve speed.
 	* src/gnome/dialog-chart-export.c:
 	* src/gnome/glade/chart-export.glade: Removing unnecessary
-	file chooser dialog, using a standard box instead.	
+	file chooser dialog, using a standard box instead.
 
 2005-03-13  Joshua Sled  <jsled at asynchronous.org>
 
@@ -185,7 +271,7 @@
 	(gnc_item_edit_draw_info): Turn off pango line wrapping.
 
 2005-03-07  Neil Williams <linux at codehelp.co.uk>
-	* ./src/engine/qofsession.c:Fixing references 
+	* ./src/engine/qofsession.c:Fixing references
 	and empty partial books
 
 2005-03-07  Neil Williams  <linux at codehelp.co.uk>
@@ -195,7 +281,7 @@
 	to direct users to merge QSF, not open directly.
 	* ./src/backend/file/gnc-backend-file.c: Debug
 	aids.
-	* ./src/backend/qsf/qsf-backend.c: Fix object 
+	* ./src/backend/qsf/qsf-backend.c: Fix object
 	count and validation; add to KVP read support.
 	* ./src/backend/qsf/qsf-xml.c: Fix object count
 	validation bug.
@@ -203,7 +289,7 @@
 	bug.
 	* ./src/engine/qofbackend.h: New error message
 	support.
-	* ./src/engine/qofsession.c: Fix entity copy 
+	* ./src/engine/qofsession.c: Fix entity copy
 	parameter list handling. Fix library name error.
 	* ./src/engine/qofsession.h: Doxygen update.
 	* ./src/gnome/Makefile.am: New dialog support.
@@ -219,7 +305,7 @@
 	file for Chart of Account export dialog.
 	* ./src/gnome/gnc-main-window.c: Menu commands for
 	new dialog.
-	* ./src/gnome/gnc-plugin-page-account-tree.c: 
+	* ./src/gnome/gnc-plugin-page-account-tree.c:
 	Minor tweak.
 	* ./src/gnome/ui/gnc-main-window-ui.xml: Adding
 	menu option for new dialog.
@@ -228,7 +314,7 @@
 
 
 2005-02-28  Neil Williams  <linux at codehelp.co.uk>
-	
+
 	* ./src/app-utils/gnc-ui-util.h:
 	* ./src/doc/doxygen_main_page.c:
 	* ./src/engine/Scrub2.c:
@@ -305,15 +391,15 @@
 
 2005-02-20  Neil Williams  <linux at codehelp.co.uk>
 
-	* src/app-file/gnc-file.c: Adding messages to handlers for 
+	* src/app-file/gnc-file.c: Adding messages to handlers for
 	new QSF backend errors.
 	* src/backend/qsf/pilot-qsf-GnuCashInvoice.xml: Correcting
 	the schema namespace URL.
-	* src/backend/qsf/qsf-backend.c: 
-	* src/backend/qsf/qsf-xml-map.c: 
+	* src/backend/qsf/qsf-backend.c:
+	* src/backend/qsf/qsf-xml-map.c:
 	* src/backend/qsf/qsf-xml.c: Re-organising and adding
 	references and almost complete KVP support to QSF backend.
-	* src/backend/qsf/qsf-map.xsd.xml: 
+	* src/backend/qsf/qsf-map.xsd.xml:
 	* src/backend/qsf/qsf-object.xsd.xml: Correcting attribute
 	declarations and schema namespace URL. Adding KVP, double
 	and char support to object schema.
@@ -326,11 +412,11 @@
         entities that cause xaccGroupGetNumSubAccounts to generate a
         segmentation fault.
         * src/engine/kvp_frame.c:
-        * src/engine/kvp_frame.h: Add kvp_value_to_bare_string to 
+        * src/engine/kvp_frame.h: Add kvp_value_to_bare_string to
 	generate strings without debug information.
 	* src/engine/qofbackend-p.h: Support for a partial QofBook.
-	The backend needs to handle external references to entities 
-	outside this book and save a QofBook that contains any mix of 
+	The backend needs to handle external references to entities
+	outside this book and save a QofBook that contains any mix of
 	QOF objects, whether or not any specific object exists in the book.
 	* src/engine/qofbackend.h: Adding a further QSF error code for
 	when a GUID string has been mangled and fails to convert to a GUID.
@@ -339,9 +425,9 @@
 	Note: Each function creates a partial QofBook! Only certain backends
 	{QSF} can handle partial books! Use for data export.
 	* src/engine/qofsession.h: Documenting copying entities between
-	sessions and using a partial QofBook. Also, allow a session book to 
+	sessions and using a partial QofBook. Also, allow a session book to
 	be printed to stdout.
-	
+
 
 2005-02-17  Derek Atkins  <derek at ihtfp.com>
 
@@ -353,7 +439,7 @@
 	  SCM_STRING_CHARS() instead of the older gh guile function.
 	  - removed comment, because the lookup_string_option() works
 	    just fine for text options.
-	
+
 2005-02-15  Derek Atkins  <derek at ihtfp.com>
 
 	Chris Shoemaker's patch: Avoid use of unitialized values in guid.c.
@@ -487,14 +573,14 @@
 
 	Stephen Evanchik's Double free bug in GncDenseCal:
         * src/gnome-utils/gnc-dense-cal.c:
-          Remove double calls to gdc_free_all_mark_data 
+          Remove double calls to gdc_free_all_mark_data
           in object cleanup,
 
 	Stephen Evanchik's patch to Update scheduled transaction dialog:
         * src/gnome/dialog-sx-from-trans.c:
-          - Removed per-button callbacks in favor of a 
+          - Removed per-button callbacks in favor of a
             dialog response callback
-	  - Changed per-button callback functions to 
+	  - Changed per-button callback functions to
 	    simple 'action' functions that are called
 	    in the response handler.
           - Migrated away from gtk_signal_connect
@@ -510,7 +596,7 @@
           In gnc_currency_edit_get_type added 'const' keyword and
           final NULL entry in currency_edit_info declaration
 
-          In gnc_currency_edit_new use g_type_class_ref and 
+          In gnc_currency_edit_new use g_type_class_ref and
           GNC_TYPE_CURRENCY_EDIT macro; move gtk_type_new to
           g_object_new
 
@@ -550,7 +636,7 @@
                 gnc_date_edit_get_type,
                 gnc_date_edit_class_init
           Renamed gnc_date_edit_destroy to gnc_date_edit_finalize
-          Added gnc_date_edit_dispose function that handles 
+          Added gnc_date_edit_dispose function that handles
           child widget destruction
           Explicit casts to GTK_WIDGET in create_children
 
@@ -581,7 +667,7 @@
 	text-selection-via-mouse-drag support [still buggy in multiple
 	ways; see GNOME2_STATUS for updates].
 
-	* GNOME2_STATUS: Update status. 
+	* GNOME2_STATUS: Update status.
 
 2004-12-14  Joshua Sled  <jsled at asynchronous.org>
 
@@ -705,7 +791,7 @@
 	* src/gnome/gnc-plugin-page-account-tree.c:
 	* src/gnome-utils/dialog-transfer.c:
 	* src/gnome-utils/gnc-query-list.c:
-	  Vitaly Lipatov's C-construct patch -- 
+	  Vitaly Lipatov's C-construct patch --
 	  During compiling CVS version of gnucash (tag gnucash-gnome2-dev)
 	  I have found some mistakes makes error with GCC compiler.
 
@@ -762,9 +848,9 @@
 	Fixes from Christian Neumair <chris at gnome-de.org>.
 
 	* src/gnome-search/search-date.c: Fix a crash.
-	
+
 	* src/gnome-utils/gnc-tree-model-account.c: Fix memory leaks.
-	
+
 	* src/register/register-gnome/gnucash-sheet.c: Fix popup menu.
 
 2004-05-02  David Hampton  <hampton at employees.org>
@@ -788,7 +874,7 @@
 	* src/report/report-gnome/report-gnome.scm
 	  (gnc:add-report-template-menu-items): Update menu path
 	  constructors to have the correct gnome2-ui-merging menu path
-	  value. 
+	  value.
 
 	* src/gnome-utils/gnc-menu-extensions.[ch]: Partially-completed
 	  changes for using the menu/UI merging code for setting up
@@ -799,7 +885,7 @@
 	  with gtkhtml3.
 
 	* src/gnome/ui/gnc-main-window-ui.xml: Add testing MiscAction,
-	  MiscTestAction. 
+	  MiscTestAction.
 
 	* src/gnome/gnc-main-window.c (gnc_main_window_cmd_test): Add test
 	  menu item for GtkHtml3-window display.
@@ -1057,7 +1143,7 @@
 	* src/business/business-core/gncVendor.h:
 	  Fix ...RetGUID() to check whether it was passed a NULL object
 	  and, if so, return the null GUID instead of crashing.
-	
+
 2004-01-01  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/qofinstance.c: return a "valid" GUID even if passed a NULL
@@ -1072,7 +1158,7 @@
 2003-11-30  David Hampton  <hampton at employees.org>
 
 	* lib/egg/eggtreemodelfilter.c: Fixes from upstream.
-	
+
 	* src/engine/qofsession.[ch]:
 	* src/gnome/gnc-main-window.c:
 	* src/app-file/gnc-file.c: Add support for callback hooks when a
@@ -1111,7 +1197,7 @@
 	* src/report/report-gnome/gw-report-gnome-spec.scm:
 	* src/report/report-gnome/report.glade: Rework the stylesheets
 	dialog to make it easier to implement in gtk2.
-	
+
 	* src/report/stylesheets/Makefile.am:
 	* src/report/stylesheets/gnc-plugin-stylesheets-ui.xml:
 	* src/report/stylesheets/gnc-plugin-stylesheets.[ch]:
@@ -1137,7 +1223,7 @@
 
 	* src/engine/gnc-event.c: Protect the generate_event function from
 	a handler unregistering itself during a callback.
-	
+
 	* src/gnome-utils/dialog-account.c: Don't access the account tree
 	model directly.  Use the view functions no new functionality can
 	easily be added to the view.
@@ -1154,7 +1240,7 @@
 
 2003-11-01  David Hampton  <hampton at employees.org>
 
-	* src/gnome/druid-hierarchy.c: 
+	* src/gnome/druid-hierarchy.c:
 	* src/gnome-utils/dialog-account.c:
 	* src/gnome-utils/gnc-tree-view-account.[ch]: Collapse knowledge
 	of the account tree model layering into one place.
@@ -1208,7 +1294,7 @@
 
 	* src/import-export/import-format-dialog.c:
 	* src/import-export/import-main-matcher.c:
-	* src/import-export/import-match-picker.c: 
+	* src/import-export/import-match-picker.c:
 	* src/import-export/qif-import/dialog-account-picker.c: Update for
 	gtk2 dialogs.
 
@@ -1301,7 +1387,7 @@
 
 	* src/gnome/glade/account.glade: Minor tweaks for druid overhaul.
 
-	
+
 2003-10-17  David Hampton  <hampton at employees.org>
 
 	* src/register/register-gnome/gnucash-sheet.c: Can now enter text
@@ -1327,7 +1413,7 @@
 
 	* src/gnome/gnc-embedded-window.c:
 	* src/gnome/gnc-main-window.c: Implement the new window interface.
-	
+
 	* src/gnome/gnc-plugin-page-register.c: Use the new window
 	interface to update the status bar when moving through the
 	register.
@@ -1378,7 +1464,7 @@
 	per-window basis.  Require all installed pages to specify what
 	books they reference.  Add an event handler to close pages when
 	books are deleted.
-	
+
 	* src/gnome/gnc-plugin-page-account-tree.c:
 	* src/gnome/gnc-plugin-page-register.c: Specify books in use by
 	the page.
@@ -1521,7 +1607,7 @@
 	* src/gnome/gnc-plugin-page-account-tree.c:
 	* src/gnome/gnc-plugin-page.[ch]: Add a new variable to the plugin
 	pages to hold a pointer to the enclosing window.
-	
+
 2003-09-20  David Hampton  <hampton at employees.org>
 
 	* src/gnome/dialog-scheduledxaction.c: Eliminate run time
@@ -1541,7 +1627,7 @@
 
 	* src/gnome-utils/dialog-utils.c:
 	* src/gnome-utils/gnc-html.c: Work around gcc 3.3.1 brokenness.
-	
+
 2003-09-19  David Hampton  <hampton at employees.org>
 
 	* configure.in:
@@ -1570,7 +1656,7 @@
 	* src/gnome-utils/Makefile.am:
 	* src/gnome-utils/gnc-gnome-utils.c: Update to use the gnome2
 	initialization routine.
-	
+
 	* src/gnome-utils/dialog-utils.[ch]:
 	* src/gnome-utils/druid-utils.c:
 	* src/gnome-utils/gnc-gnome-utils.[ch]:
@@ -1586,7 +1672,7 @@
 
 	* src/gnome-utils/gnc-tree-view-account.c: Fix reference counting
 	on the filter model.
-	
+
 	* src/gnome/gnc-plugin-page-account-tree.c: Destroy account tree
 	page when the corresponding session is closed.
 
@@ -1598,7 +1684,7 @@
 
 	* lib/egg/egg-menu-merge.[ch]: Back port the GTK2.4 UI description
 	language.
-	
+
 	* src/business/business-gnome/ui/gnc-plugin-business-ui.xml:
 	* src/gnome/ui/gnc-main-window-ui.xml:
 	* src/gnome/ui/gnc-plugin-account-tree-ui.xml:
@@ -1626,7 +1712,7 @@
 
 	* src/gnome/gnc-main-window.c: Always bring a new page to the top
 	of the stack.  Remove unused code.
-	
+
 	* src/gnome/gnc-plugin-page-account-tree.c:
 	* src/gnome/gnc-plugin-page-register.[ch]:
 	* src/gnome/gnc-plugin-register.c: Can now open arbitrary account
@@ -1663,7 +1749,7 @@
 	* src/business/business-gnome/gnc-plugin-business.[ch]:
 	* src/business/business-gnome/ui/gnc-plugin-business-ui.xml:
 	Migrate the main business menu from g1 style to g2 style.
-	
+
 2003-09-06  David Hampton  <hampton at employees.org>
 
 	* lib/egg/eggtreemodelfilter.c: Couple of bug fixes related to
@@ -1678,7 +1764,7 @@
 	* src/engine/Group.c:
 	* src/engine/gnc-event.[ch]: Add ADD/REMOVE events for updating
 	the account tree model.
-	
+
 	* src/gnome-search/search-*.c:
 	* src/gnome-search/gnc-general-search.c: Convert from gtk_object
 	style object initialization to g_object style initialization.
@@ -1716,7 +1802,7 @@
 	* src/gnome/gnc-plugin-page.[ch]: Add another function to the
 	plugin interface for deleting the ui widget.  Allows the page to
 	destroy/release anything it needs to.
-	
+
 	* src/gnome/gnc-plugin-page-register.c:
 	* src/gnome/gnc-split-reg.c: Correctly clean up when closing a
 	register.
@@ -1783,7 +1869,7 @@
 	* src/app-utils/global-options.c: Prevent a crash if there's no
 	callback attached to a register.  This case should only occur
 	during the g2 transition.
-		
+
 	* src/gnome/gnc-plugin-page-register.c: Add short labels for the
 	toolbar actions. Do more register initialization.
 
@@ -1803,7 +1889,7 @@
 
 	* lib/egg/egg-action.c: Fix problem connecting toolbar actions and
 	switching a proxy between actions.
-	
+
 	* lib/egg/egg-menu-merge.c: Make popup menus work.  Remove some
 	debug messages.
 
@@ -1836,7 +1922,7 @@
 	dialogs. Set the function to activate the default button the
 	gnome2 way (was editable_enters).  Remove some code not needed in
 	gnome2 widget setup.
-	
+
 2003-08-08  David Hampton  <hampton at employees.org>
 
 	* lots of files: Sync up at the gnome2-merge-2 tag.
@@ -1848,8 +1934,8 @@
 	* all glade files: Run through glade-2 to update syntax and
 	formatting.  The conversion tool and glade-2 itself don't produce
 	the same output.
- 
-	
+
+
 2003-07-16  David Hampton  <hampton at employees.org>
 
 	* most every file: Sync up at the gnome2-merge-1 tag.
@@ -2051,7 +2137,7 @@
 	(clear_all_clicked), (get_selected_account_list),
 	(balance_cell_data_func), (on_final_account_prepare):
 	* src/gnome/window-acct-tree.c: (gnc_acct_tree_window_new):
-	
+
 	Port dialogs to GNOME 2. Replace GtkCList by GtkTreeView.
 	Replace gtk_type by g_type, gtk_args by gtk_set/get_property, gtk_signal
 	by g_signal.
@@ -2215,7 +2301,7 @@
 	* src/gnome/gnc-main-window.h:
 	* src/gnome/top-level.c: (gnc_gui_init):
 
-	Add scrub commands to the account tree page and implement 
+	Add scrub commands to the account tree page and implement
 	most of the commands.
 	* src/gnome/gnc-plugin-page-account-tree.c:
 	(gnc_plugin_page_account_tree_cmd_open_account),
@@ -2464,7 +2550,7 @@
 
 	Add support for a virtual toplevel account into the account
 	tree model.
-	* src/gnome-utils/gnc-tree-model-account.c: 
+	* src/gnome-utils/gnc-tree-model-account.c:
 	(gnc_tree_model_account_init), (gnc_tree_model_account_set_root),
 	(gnc_tree_model_account_set_toplevel),
 	(gnc_tree_model_account_get_toplevel),
@@ -2496,66 +2582,66 @@
 	  Replace deprecated GTK_TREE by GTK_TREE_VIEW; Clear by using
           gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model()));
 
-	  Replace GTK_SIGNAL_FUNC by G_CALLBACK 
-	  gtk_object_set_data by g_object_set_data 
-	  Replace gtk_signal_connect by g_signal_connect 
+	  Replace GTK_SIGNAL_FUNC by G_CALLBACK
+	  gtk_object_set_data by g_object_set_data
+	  Replace gtk_signal_connect by g_signal_connect
 	  Rewrite on_final_account_tree_placeholder_toggled to use:
 	  Replace gtk_signal_handler_block_by_func
-	  by g_signal_handlers_block_by_func, 
+	  by g_signal_handlers_block_by_func,
  	  gtk_signal_handler_unblock_by_func by
 	  g_signal_handlers_unblock_by_func,
 	  Replace update_account_balance (GtkCTree *ctree, GtkCTreeNode *node)
 	  by update_account_balance (GNCTreeModelAccount *model,
 		 GtkTreeIter *iter).  In update_account_balance:
-	  Replace gtk_ctree_node_get_row_data 
+	  Replace gtk_ctree_node_get_row_data
 	  by gnc_tree_model_account_get_account,
 	  gnc_amount_edit_get_amount, xaccAccountGetPlaceholder,
 	  gnc_numeric_zero_p
 
-	  Replace gtk_ctree_node_set_text by 
+	  Replace gtk_ctree_node_set_text by
 	  gtk_tree_model_get_path, gtk_tree_model_row_changed,
 	  gtk_tree_path_free (path);
- 
+
 	  Use: GtkTreeView, GtkTreeSelection, GtkTreeModel, GtkTreeIter
  	  GTK_TREE_VIEW (hierarchy_get_widget ()), gtk_tree_view_get_selection,
 	  gtk_ctree_node_nth (ctree, GTK_CLIST()),
-	  gtk_tree_selection_get_selected, update_account_balance, 
+	  gtk_tree_selection_get_selected, update_account_balance,
 	  GNC_TREE_MODEL_ACCOUNT, g_object_set_data, G_OBJECT,
 	  GSList, get_example_account_list, GncExampleAccount, Account,
 	  g_new0, gnc_get_current_book, xaccMallocAccountGroup
 
-	  Rewrite account_types_tree_view_prepare, 
+	  Rewrite account_types_tree_view_prepare,
 	  on_choose_account_types_prepare,
 	  account_types_selection_changed, select_all_clicked,
 	  clear_all_clicked, get_selected_account_list,
 	  balance_cell_data_func, on_final_account_tree_placeholder_toggled,
 	  on_final_account_tree_selection_changed
 
-	  Commented out: struct FinalInsertData_struct, 
+	  Commented out: struct FinalInsertData_struct,
 	  generate_account_titles, free_account_titles,
 	  add_to_ctree_final_account, insert_final_accounts
 
 	  Rewrite on_final_account_prepare to use:
-	  GtkTreeView, GNCTreeModelAccount, GtkTreeSelection, GtkCellRenderer, 
+	  GtkTreeView, GNCTreeModelAccount, GtkTreeSelection, GtkCellRenderer,
 	  GtkTreeViewColumn, g_object_get_data, gnc_tree_model_account_new,
 	  gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (model));
-	  g_object_unref, gtk_tree_view_get_selection, 
-	  gtk_tree_selection_set_mode, g_signal_connect, G_CALLBACK, 
+	  g_object_unref, gtk_tree_view_get_selection,
+	  gtk_tree_selection_set_mode, g_signal_connect, G_CALLBACK,
 	  gtk_cell_renderer_text_new, gtk_tree_view_column_new_with_attributes,
-	  gtk_tree_view_append_column, gtk_tree_view_column_new_with_attributes, 
-	  gtk_cell_renderer_toggle_new, g_object_set, 
+	  gtk_tree_view_append_column, gtk_tree_view_column_new_with_attributes,
+	  gtk_cell_renderer_toggle_new, g_object_set,
 	  gtk_tree_view_column_set_cell_data_func, g_object_set_data,
-	  GNC_TREE_MODEL_ACCOUNT, gtk_tree_view_get_model, 
+	  GNC_TREE_MODEL_ACCOUNT, gtk_tree_view_get_model,
 	  gnc_suspend_gui_refresh, gnc_tree_model_account_set_root,
-	  delete_our_final_group, get_selected_account_list, 
-	  hierarchy_merge_groups, gnc_tree_model_account_set_root, 
+	  delete_our_final_group, get_selected_account_list,
+	  hierarchy_merge_groups, gnc_tree_model_account_set_root,
 	  gtk_tree_view_expand_all
 
 	  Rewrite on_final_account_tree_selection_changed to use:
-	  GtkTreeModel, GtkTreeIter, gboolean, Account, GNCAmountEdit, 
-	  GNCPrintAmountInfo, gnc_numeric, GtkWidget, 
-	  gtk_tree_selection_get_selected, get_balance_editor, 
-	  gnc_amount_edit_gtk_entry, gtk_entry_set_text, 
+	  GtkTreeModel, GtkTreeIter, gboolean, Account, GNCAmountEdit,
+	  GNCPrintAmountInfo, gnc_numeric, GtkWidget,
+	  gtk_tree_selection_get_selected, get_balance_editor,
+	  gnc_amount_edit_gtk_entry, gtk_entry_set_text,
 	  gtk_widget_set_sensitive, gnc_tree_model_account_get_account,
 	  get_final_balance, gnc_reverse_balance, gnc_numeric_neg,
 	  gnc_account_print_info, gnc_amount_edit_set_print_info,
@@ -2605,7 +2691,7 @@
 	* macros/autogen.sh: Add a AM_GLIB_GNU_GETTEXT section to generate a po/Makefile.in.in file.
 
 2003-05-16  Jan Arne Petersen  <jpetersen at uni-bonn.de>
-	
+
 	* configure.in: Add gnucash.desktop, and gnucash.keys to the AC_OUTPUT targets.
 
 	In the following:
@@ -2666,7 +2752,7 @@
 	* src/import-export/ofx/ofx.glade:
 	* src/import-export/qif-import/qif.glade:
 	* src/report/report-gnome/report.glade:
-	
+
 	In the following:
 	- Replace gtk_signal by g_signal
 	- Replace GNOME_DOCK by BONOBO_DOCK
@@ -2738,7 +2824,7 @@
 	(attach_element), (option_activate), (search_clear_criteria),
 	(get_element_widget), (gnc_search_dialog_add_criterion),
 	(gnc_search_dialog_init_widgets),
-	(gnc_search_dialog_connect_on_close): 
+	(gnc_search_dialog_connect_on_close):
 	* src/gnome-search/gnc-general-search.c:
 	(gnc_general_search_class_init), (create_children),
 	(gnc_general_search_set_selected):
@@ -2920,17 +3006,17 @@
 2003-05-15 TomF changes for gnucash-gnome2-dev, 15th batch
 	* src/gnome/druid-stock-split.c: gnc_stock_split_druid_create:
 	  Use gnome_druid_page_edge functions instead of gnc_druid
-	  Replace gnc_get_gdk_imlib_image by 	gdk_pixbuf_new_from_file  
-	* src/gnome-utils/druid-utils.c, src/gnome-utils/druid-utils.h:  
+	  Replace gnc_get_gdk_imlib_image by 	gdk_pixbuf_new_from_file
+	* src/gnome-utils/druid-utils.c, src/gnome-utils/druid-utils.h:
 	  Remove functions with < 2 callers:
-	  gnc_druid_set_logo_image, 
+	  gnc_druid_set_logo_image,
 	  gnc_druid_set_watermark_image, gnc_druid_set_title_image
-	  
+
 	  In the following, use new gnome_druid function names.
 	* src/gnome-utils/druid-utils.c: gnc_druid_set_colors:
 	* src/import-export/qif-import/druid-qif-import.c
 
-	 
+
 2003-05-12 TomF changes for gnucash-gnome2-dev, 14th batch
 	* TODO: Added items for conversion to Pango,
 	  druid, GnomeMDI
@@ -2941,7 +3027,7 @@
 	  Enable gnc_get_mdi_mode
 
 	  In the following, use GTK_CLASS_TYPE macro
-	* src/gnome/gnc-split-reg.c: 
+	* src/gnome/gnc-split-reg.c:
 	* src/gnome/mainwindow-account-tree.c
 	* src/gnome/reconcile-list.c:
 	* src/gnome-search/gnc-general-search.c
@@ -2954,8 +3040,8 @@
 	* src/register/register-gnome/gnucash-item-list
 	* src/register/register-gnome/gnucash-sheet.c
 
-	  In the following, use the 2.0 compatability function 
-	  gdk_font_from_description instead of the 2.2 compatability function 
+	  In the following, use the 2.0 compatability function
+	  gdk_font_from_description instead of the 2.2 compatability function
 	  gdk_font_from_description_for_display to correct error in 13th batch.
 	  Replace deprecated:
     	  gtk_editable_claim_selection( GTK_EDITABLE by
@@ -2972,14 +3058,14 @@
 	* src/gnome/dialog-commodities.c:
 
 2003-05-02  Christian Stimming  <stimming at tuhh.de>
- 
+
 	* configure.in: Add pkg-config test for libgnomeui-2.0.
 	* src/import-export/hbci/*.c: Port hbci import module to Gnome2,
 	sourcecode compiles now. Copy changes from HEAD branch.
 
 2003-05-02 TomF changes for gnucash-gnome2-dev, 13th batch
 	* src/gnome-utils/dialog-options.c:
-	  Replace deprecated gdk_font_from_description by 
+	  Replace deprecated gdk_font_from_description by
 	  gdk_font_from_description_for_display
 	  #include <gdk/gdk.h>
 
@@ -3001,11 +3087,11 @@
 
 
 	  In the following:
-	  Replace object_class->g_type by GTK_CLASS_TYPE(object_class) 
+	  Replace object_class->g_type by GTK_CLASS_TYPE(object_class)
 	  to use macro instead of inherited field reference.
-	* src/gnome/gnc-split-reg.c:                      
-	* src/gnome/gnc-split-reg.c:                    
-	* src/gnome/mainwindow-account-tree.c:		   
+	* src/gnome/gnc-split-reg.c:
+	* src/gnome/gnc-split-reg.c:
+	* src/gnome/mainwindow-account-tree.c:
 	* src/gnome/mainwindow-account-tree.c:
 	* src/gnome/mainwindow-account-tree.c:
 	* src/gnome/reconcile-list.c:
@@ -3013,57 +3099,57 @@
 	* src/gnome-search/gnc-general-search.c:
 	* src/gnome-utils/gnc-account-tree.c:
 	* src/gnome-utils/gnc-account-tree.c:
-	* src/gnome-utils/gnc-date-delta.c: 
-	* src/gnome-utils/gnc-date-delta.c: 
-	* src/gnome-utils/gnc-date-edit.c: 
-	* src/gnome-utils/gnc-date-edit.c: 
+	* src/gnome-utils/gnc-date-delta.c:
+	* src/gnome-utils/gnc-date-delta.c:
+	* src/gnome-utils/gnc-date-edit.c:
+	* src/gnome-utils/gnc-date-edit.c:
 	* src/gnome-utils/gnc-dense-cal.c:
 	* src/gnome-utils/gnc-frequency.c:
-	* src/gnome-utils/gnc-general-select.c:  
+	* src/gnome-utils/gnc-general-select.c:
+	* src/register/register-gnome/gnucash-date-picker.c:
 	* src/register/register-gnome/gnucash-date-picker.c:
-	* src/register/register-gnome/gnucash-date-picker.c: 
 	* src/register/register-gnome/gnucash-item-list.c:
 	* src/register/register-gnome/gnucash-item-list.c:
 	* src/register/register-gnome/gnucash-item-list.c:
 	* src/register/register-gnome/gnucash-item-list.c:
-	* src/register/register-gnome/gnucash-sheet.c:  
-	* src/register/register-gnome/gnucash-sheet.c: 
-	* src/register/register-gnome/gnucash-sheet.c:   
+	* src/register/register-gnome/gnucash-sheet.c:
+	* src/register/register-gnome/gnucash-sheet.c:
+	* src/register/register-gnome/gnucash-sheet.c:
+
 
 
 
-	  
 
 2003-04-29 TomF changes for gnucash-gnome2-dev, 12th batch
 	* src/gnome-utils/gnc-date-edit.c:gnc_date_edit_class_init:
-	  Replace object_class->type by object_class->g_type 
+	  Replace object_class->type by object_class->g_type
 	  to reflect change in GtkObjectClass
 	  Delete call of deprecated  gtk_object_class_add_signals
 	* src/gnome-utils/gnc-date-edit.c:date_accel_key_press
-	  Change declare to G_CONST_RETURN char *string; 
+	  Change declare to G_CONST_RETURN char *string;
 	  to reflect change in gtk_entry_get_text
 	* src/business/business-gnome/search-owner.c:gnc_search_owner_class_init:
 	  Delete call of deprecated  gtk_object_class_add_signals
-	* src/gnome/gnc-split-reg.c:gnc_split_reg_get_type:  
-	  GtkObjectClass *object_class; Replace object_class->type by 
+	* src/gnome/gnc-split-reg.c:gnc_split_reg_get_type:
+	  GtkObjectClass *object_class; Replace object_class->type by
 	  object_class->g_type to reflect change in GtkObjectClass
 	  Delete call of deprecated  gtk_object_class_add_signals
 	* src/gnome/mainwindow-account-tree.c:gnc_mainwin_account_tree_class_init:
-	  Replace object_class->type by object_class->g_type to 
+	  Replace object_class->type by object_class->g_type to
 	  reflect change in GtkObjectClass
 	  Delete call of deprecated  gtk_object_class_add_signals
 	* src/gnome/reconcile-list.c:gnc_reconcile_list_class_init
-	  Replace object_class->type by object_class->g_type to 
+	  Replace object_class->type by object_class->g_type to
 	  reflect change in GtkObjectClass
 	  Delete call of deprecated  gtk_object_class_add_signals
-	  
+
 	  In the following:
 	  Delete call of deprecated  gtk_object_class_add_signals
-	  Replace object_class->type by object_class->g_type to 
+	  Replace object_class->type by object_class->g_type to
 	  reflect change in GtkObjectClass
 	* src/gnome-search/gnc-general-search.c:gnc_general_search_class_init:
 	* src/gnome-utils/gnc-account-tree.c:gnc_account_tree_class_init:
-	* src/gnome-utils/gnc-date-delta.c:gnc_date_delta_class_init:	
+	* src/gnome-utils/gnc-date-delta.c:gnc_date_delta_class_init:
 	* src/gnome-utils/gnc-dense-cal.c: gnc_dense_cal_class_init:
 	* src/gnome-utils/gnc-frequency.c:  gnc_frequency_class_init:
 	* src/gnome-utils/gnc-general-select.c:gnc_general_select_class_init:
@@ -3073,7 +3159,7 @@
 
 	  In the following, Delete call of deprecated gtk_object_class_add_signals
 	* src/gnome-search/search-account.c:gnc_search_account_class_init:
-	* src/gnome-search/search-boolean.c:gnc_search_boolean_class_init: 
+	* src/gnome-search/search-boolean.c:gnc_search_boolean_class_init:
 	* src/gnome-search/search-core-type.c:gnc_search_core_type_class_init:
 	* src/gnome-search/search-date.c:gnc_search_date_class_init:
 	* src/gnome-search/search-double.c: gnc_search_double_class_init:
@@ -3086,30 +3172,30 @@
 
 
 	  In the following,
-	  Change declare to const char * 
+	  Change declare to const char *
 	  to reflect change in gtk_entry_get_text
 	* src/app-file/gnome/gnc-file-dialog.c:store_filename:
 	* src/business/business-gnome/business-gnome-utils.c:
 	  gnc_fill_account_select_combo:
 	* src/business/business-gnome/dialog-billterms.c:get_int, new_billterm_ok_cb:
-	* src/business/business-gnome/dialog-customer.c:  
+	* src/business/business-gnome/dialog-customer.c:
 	  gnc_customer_name_changed_cb:
-	* src/business/business-gnome/dialog-employee.c:  
+	* src/business/business-gnome/dialog-employee.c:
 	  gnc_employee_name_changed_cb:
 	* src/business/business-gnome/dialog-invoice.c:  gnc_invoice_id_changed_cb:
 	* src/business/business-gnome/dialog-job.c: gnc_job_name_changed_cb:
 	* src/business/business-gnome/dialog-payment.c:  gnc_payment_ok_cb:
-	* src/business/dialog-tax-table/dialog-tax-table.c:new_tax_table_ok_cb: 
+	* src/business/dialog-tax-table/dialog-tax-table.c:new_tax_table_ok_cb:
 	* src/gnome/dialog-print-check.c:   entry_to_double:
 	* src/gnome-search/search-string.c:  entry_changed:
-	* src/gnome-utils/dialog-transfer.c:  
-	  gnc_xfer_dialog_quickfill,gnc_xfer_dialog_ok_cb: 
+	* src/gnome-utils/dialog-transfer.c:
+	  gnc_xfer_dialog_quickfill,gnc_xfer_dialog_ok_cb:
 	* src/gnome-utils/window-help.c:  gnc_help_window_search_button_cb:
-	* src/import-export/binary-import/druid-commodity.c: 
+	* src/import-export/binary-import/druid-commodity.c:
 	  gnc_ui_commodity_druid_comm_check_cb
-	* src/import-export/qif-import/druid-qif-import.c:  
+	* src/import-export/qif-import/druid-qif-import.c:
 	  gnc_ui_qif_import_load_file_next_cb,
-	  gnc_ui_qif_import_convert, gnc_ui_qif_import_comm_check_cb, 
+	  gnc_ui_qif_import_convert, gnc_ui_qif_import_comm_check_cb,
 	  gnc_ui_qif_import_default_acct_next_cb:
 	* src/report/report-gnome/dialog-style-sheet.c:  gnc_style_sheet_new_cb:
 
@@ -3126,17 +3212,17 @@
 	* src/app-file/gnome/gnc-file-history.c:
 	  Replace calls of deprecated gtk_container_get_toplevels by
 	  gtk_window_list_toplevels
-	  
+
 	* src/gnome-utils/dialog-options.c:
-	  Move gnc_options_register_stocks call to gnc_options_ui_initialize, 
+	  Move gnc_options_register_stocks call to gnc_options_ui_initialize,
 	  to be called just once for all stock items at module initialization.
 	  Remove include gtk/gtktextview.h.  It is included under gnome.h
-	* src/gnome-search/dialog-search.c: attach_element, 
+	* src/gnome-search/dialog-search.c: attach_element,
 	  gnc_search_dialog_init_widgets:
-	  Replace deprecated gnome_stock_new_with_icon, gnome_pixmap_button 
+	  Replace deprecated gnome_stock_new_with_icon, gnome_pixmap_button
 	  by gtk_button_new_from_stock
 	* src/gnome-utils/gnc-date-edit.c: select_clicked:
-	  Remove inactivated block referencing deprecated gnome_stock_cursor_new  
+	  Remove inactivated block referencing deprecated gnome_stock_cursor_new
 
 
 2003-04-26 TomF changes for gnucash-gnome2-dev, 11th batch
@@ -3149,17 +3235,17 @@
 	* src/app-file/gnome/gnc-file-history.c:
           Replace calls of deprecated gtk_container_get_toplevels by
 	  gtk_window_list_toplevels
-	  
+
 	* src/gnome-utils/dialog-options.c:
-	  Move gnc_options_register_stocks call to gnc_options_ui_initialize, 
+	  Move gnc_options_register_stocks call to gnc_options_ui_initialize,
 	  to be called just once for all stock items at module initialization.
 	  Remove include gtk/gtktextview.h.  It is included under gnome.h
 	* src/gnome-search/dialog-search.c: attach_element,
 	  gnc_search_dialog_init_widgets:
-	  Replace deprecated gnome_stock_new_with_icon, gnome_pixmap_button 
+	  Replace deprecated gnome_stock_new_with_icon, gnome_pixmap_button
 	  by gtk_button_new_from_stock
 	* src/gnome-utils/gnc-date-edit.c: select_clicked:
-	  Remove inactivated block referencing deprecated gnome_stock_cursor_new  
+	  Remove inactivated block referencing deprecated gnome_stock_cursor_new
 
 
 2003-04-02 TomF changes for gnucash-gnome2-dev, 10th batch
@@ -3184,14 +3270,14 @@
 
 2003-04-01 TomF changes for gnucash-gnome2-dev, 9th batch
 
-	* src/gnome-utils/gnc-html.h 
+	* src/gnome-utils/gnc-html.h
 	  Replace gtkhtml/gtkhtml.h by libgtkhtml/gtkhtml.h
 	  Delete declare of gnc_html_register_object_handler	(FIXME)
 	  Delete typedef of GncHTMLObjectCB			(FIXME)
 	* src/gnome-utils/dialog-account.c
 	  cast assignment statements to char *
 
-	  In the following, replace glib macro wrappers GTK_CHECK* 
+	  In the following, replace glib macro wrappers GTK_CHECK*
 	  by G_TYPE_CHECK* and remove {BEGIN,END}_GNOME_DECLS
 
 	* src/gnome-utils/gnc-amount-edit.h
@@ -3217,7 +3303,7 @@
 
 2003-03-14 TomF changes for Gnome-2 branch, 7th batch
 
-	  Change gtk_*_ref to g_object_ref, same for unref, 
+	  Change gtk_*_ref to g_object_ref, same for unref,
 	  to replace deprecated functions in the following files.
 
 	* src/business/business-gnome/dialog-billterms.c
@@ -3264,9 +3350,9 @@
 
 2003-03-11 TomF changes for Gnome-2 branch, 5th batch
 
-	* src/network-utils/Makefile.am: add src/engine to allow 
-	  including gnc-engine-util.h 
-	* src/network-utils/gnc-http.c: Disable all functions to bypass 
+	* src/network-utils/Makefile.am: add src/engine to allow
+	  including gnc-engine-util.h
+	* src/network-utils/gnc-http.c: Disable all functions to bypass
 	  missing ghttp.
 	  Include "gnc-engine-util.h" to allow PERR warnings.
 	  Use long if 0 to make it easy to go back to the original to
@@ -3278,7 +3364,7 @@
 
 2003-03-09 TomF changes for Gnome-2 branch, 4th batch
 
-	* src/gnome-utils/dialog-utils.h: Disabled declarations of 
+	* src/gnome-utils/dialog-utils.h: Disabled declarations of
 	  functions not used in QuickFill to bypass missing typedef
 	  for GdkImlibImage
 	* Next make problems are in:
@@ -3383,7 +3469,7 @@
 	* src/engine/qof_book_merge.c: Fix double free of the targetList
 	entities that cause xaccGroupGetNumSubAccounts to generate a
 	segmentation fault.
-	* src/engine/kvp_frame.c: 
+	* src/engine/kvp_frame.c:
 	* src/engine/kvp_frame.h:
 	Add kvp_value_to_bare_string to
 	generate strings without debug information.
@@ -3435,7 +3521,7 @@
 	  qof_book_merge_param_as_string output strings that are
 	  compatible with QSF: using false instead of FALSE in string
 	  output and using the QSF_XSD_TIME for the datestrings.
-	
+
 	* src/engine/Account.c:
 	  - updated implementation of qofAccountSetParent().
 
@@ -3443,7 +3529,7 @@
 	* src/engine/Transaction.c:
 	  Add the transaction guid to some error warning messages.
 	  Fixes #165571.
-	
+
 2005-01-29  Derek Atkins  <derek at ihtfp.com>
 
 	David Montenegro's patch for bugs #95551, #124367.
@@ -3488,7 +3574,7 @@
 
 	* src/app-utils/gnc-ui-util.c: Modify tax option code to load
 	tax-de_DE module in the appropriate locale.
-	
+
 	* src/report/locale-specific/us/gncmod-locale-reports-us.c,
 	de_DE.scm: Add scheme module for locale-report/us
 	resp. locale-report/de_DE again because it seems to be required.
@@ -3537,7 +3623,7 @@
 	otherwise the conventional U.S. ones. This is the easiest method
 	to allow other (non-U.S.) tax categories to be selected in the
 	accounts' tax settings.
-	
+
 	* src/report/locale-specific/us/taxtxf-de_DE.scm: Add Tax report
 	for de_DE locale. If the current locale begins with de_DE, the new
 	German tax report will be loaded, otherwise the conventional
@@ -3671,7 +3757,7 @@
 2004-10-30  Christian Stimming  <stimming at tuhh.de>
 
 	* doc/README.HBCI: Updated HBCI readme.
-	
+
 	* src/import-export/hbci/hbci-interaction.c: Fix problems with
 	user messages.
 
@@ -3687,7 +3773,7 @@
 	  qof_book_merge.c
 	  qof_book_merge.h
 	  test-book-merge.c test routine
-	  New Account Hierarchy druid 
+	  New Account Hierarchy druid
 	  Sundry adjustments to QOF support.
 	  Tweaks to several Makefile.am files to support new files.
 	  Tweaks to window-main.c to support new menu item
@@ -3912,7 +3998,7 @@
 2004-07-04  Derek Atkins  <derek at ihtfp.com>
 
 	* acinclude.m4: create a SCANF_QD_CHECK and make sure both
-	  that and SCANF_LLD_CHECK are "long long" constant-safe 
+	  that and SCANF_LLD_CHECK are "long long" constant-safe
 	* configure.in: use the new SCANF_QD_CHECK and use it
 	  earlier in the configuration.
 
@@ -4009,7 +4095,7 @@
 	* src/scm/paths.scm: create gnc:current-saved-reports, as
 	  the file to store saved reports from cstim.  Autoload the
 	  saved-reports file at startup (after config.user/config.auto
-	  is loaded).	  
+	  is loaded).
 	* src/scm/main.scm: export gnc:current-saved-reports
 
 2004-05-29  Derek Atkins  <derek at ihtfp.com>
@@ -4240,9 +4326,9 @@
 
 2004-02-07  Joshua Sled  <jsled at asynchronous.org>
 
-	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
-	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
-	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
+	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
+	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state):
+	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler):
 	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
 	Adding "NONE" as an allowable FreqSpec [Bug#103968].
 
@@ -4298,7 +4384,7 @@
 
 	* configure.in, macros/openhbci2.m4: Add checking for new
 	openhbci2 library.
-	
+
 	* src/import-export/hbci/ all files: Switch HBCI code to the new
 	openhbci2 library. Should be working, but needs further testing.
 
@@ -4342,11 +4428,11 @@
 	* src/app-utils/global-options.h: add gnc_lookup_date_option()
 	  function
 	* src/app-utils/gnc-ui-util.c:
-	* src/app-utils/gnc-ui-util.h: add 
+	* src/app-utils/gnc-ui-util.h: add
 	  gnc_ui_account_get_balance_in_currency() function
 	* src/app-utils/prefs.scm: add preferences for summarybar
 	* src/engine/Account.c:
-	* src/engine/Account.h: add 
+	* src/engine/Account.h: add
 	  xaccAccountConvertBalanceToCurrencyAsOfDate() function
 	* src/gnome/window-main-summarybar.c: summarybar can now display
 	  a grand total of all commodities, profits of a period of time
@@ -4399,7 +4485,7 @@
 	* src/business/business-core/gncVendor.h:
 	  Fix ...RetGUID() to check whether it was passed a NULL object
 	  and, if so, return the null GUID instead of crashing.
-	
+
 	* README.cvs: make it even more explicit that you should not run configure
 	* src/engine/Makefile.am: remove the circular dependency I added earlier
 	* src/engine/gw-engine-spec.scm: don't include gnc-engine-util.h (it's
@@ -4425,11 +4511,11 @@
 	* src/engine/test/Makefile.am: add test-link, make libgw-engine
 	  depend on libgncmod-engine
 	* src/engine/test/test-link.c: add a source-file to test-link
-	
+
 	* src/engine/test-core/test-engine-stuff.c: don't test double
 	  KVPs, on the theory that they will soon be deprecated.
 	Fixes #127315
-	
+
 	* src/engine/test-core/test-engine-stuff.c: random queries only
 	  get up to 3 terms, not 4
 	* src/app-utils/test/test-scm-query-string.c: loop the test 1000
@@ -4665,9 +4751,9 @@
 	  - don't kill ourself if we're asked to set the value to our own value.
 
 	Description of the problem from Nigel:
-	
+
 	The problem is that the SX formula_cell stuff calls (via an
-	intermediate step) 
+	intermediate step)
 
 	gnc_basic_cell_set_value_internal (BasicCell *cell, const char *value)
 
@@ -4677,7 +4763,7 @@
 	g_free() writes memory management stuff in the first few bytes of the
 	value). This is what trashes the debit/credit value in the SX register
 	entry.
-	
+
 2003-08-29  David Hampton  <hampton at employees.org>
 
 	* src/engine/Account.c: Fix bug in computing cleared balance.  The
@@ -4713,21 +4799,21 @@
 
     * src/backend/postgres/table-audit.sql: Moved bookGuid in
       gncPriceTrail to be the second column.
-      
+
     * src/backend/postgres/table-create.sql: Moved bookGuid in
       gncPrice to be the second column.
 
     * src/backend/postgres/upgrade.c: (re)Added transaction control
       to each upgrade function.  Also, the following fixes came out
       of regression testing:
-    - add_multiple_book_support():  Removed the "NOT NULL" from the 
+    - add_multiple_book_support():  Removed the "NOT NULL" from the
       ADD COLUMN statements, and placed them in an ALTER TABLE...SET
       NULL construct.  The original is not supported in Postgresql
       and fails to execute.
     - Changed the stpcpy() to use g_strdup_printf() instead, for dynamic
       query assembly.
     - Made a few cosmetic changes to comparisons for readability.
-    
+
 2003-08-10  David Hampton  <hampton at employees.org>
 
 	* src/gnome/gnc-splash.[ch]:
@@ -4757,7 +4843,7 @@
       message argument to the internationalization format.
     - Changed the pgendUpgradeDB() call to come after a commit--the
       upgrade process uses its own transaction handling (now).
-      
+
     * src/backend/postgres/checkpoint.c:
     * src/backend/postgres/gncquery.c:
     * src/backend/postgres/gncquery.h:
@@ -4765,16 +4851,16 @@
     * src/backend/postgres/txnmass.c:
     * src/backend/postgres/events.c: Changed all the gncEntry
       references to gncSplit, and entryGuid to splitGuid.
-      
+
     * src/backend/postgres/functions.sql: Changed the TIMESTAMP args
       to TIMESTAMP WITH TIME ZONE args, and gncEntry args to gncSplit.
-    
+
     * src/backend/postgres/putil.c: Added the execQuery() function
     - sendQuery(): Added internationalization to the
       qof_backend_set_message() call.
 
     * src/backend/postgres/putil.h: Added the execQuery() prototype.
-    
+
     * src/backend/postgres/table-create.sql:
     * src/backend/postgres/table-audit.sql: Changed all the TIMESTAMP
       types to TIMESTAMP WITH TIME ZONE.  Change all the gncEntry refs
@@ -4921,7 +5007,7 @@
 	Fixes #117657
 
 2003-07-26  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/import-account-matcher.c: Fix bug #105293
 
 2003-07-23  Derek Atkins  <derek at ihtfp.com>
@@ -5002,7 +5088,7 @@
 2003-07-09  Christian Stimming  <stimming at tuhh.de>
 
 	* README: Added remark about gnucash-docs.
-	
+
 	* src/import-export/hbci/druid-hbci-initial.c: Clarify the part of
 	the HBCI setup about potentially adding HBCI accounts manually.
 
@@ -5073,7 +5159,7 @@
 
 	* src/app-utils/gnc-helpers.c: Update for changes in accessing
 	quote source information.
-	
+
 	* src/gnome-utils/commodity.glade:
 	* src/gnome-utils/dialog-commodity.c: Reorganize the dialog for
 	selection price quote information.
@@ -5135,7 +5221,7 @@
 	* src/gnome-utils/gnc-account-sel.c:
 	  change to match the new event API.  Remove the need for
 	  xaccGUIDType(), which means we no longer get the g_warning.
-	
+
 	* src/backend/postgres/events.c:
 	* src/business/business-core/gncAddress.c:
 	* src/business/business-core/gncAddress.h:
@@ -5177,7 +5263,7 @@
 	* src/scm/price-quotes.scm: Don't print the "handling-request"
 	messages when getting stock quotes. #110687
 
-	* src/report/report-system/html-document.scm: 
+	* src/report/report-system/html-document.scm:
 	* src/report/report-system/html-text.scm: Correctly quote
 	attribute values. #115244
 
@@ -5221,8 +5307,8 @@
 	limited strictly to currencies.
 
 	* src/gnome-utils/gnc-commodity-edit.c:
-	* src/import-export/binary-import/druid-commodity.c: 
-	* src/import-export/import-commodity-matcher.c: 
+	* src/import-export/binary-import/druid-commodity.c:
+	* src/import-export/import-commodity-matcher.c:
 	* src/import-export/qif-import/druid-qif-import.c: Updated for new
 	commodity dialog argument.
 
@@ -5323,7 +5409,7 @@
 	has been marked read-only.
 
 	* src/engine/Transaction.h: Documentation.
-	
+
 	* src/engine/Transaction.c: Create a couple of new functions by
 	extracting common code from existing functions.  New functions to
 	clone Splits and Transactions.  New debug functions to dump Splits
@@ -5337,12 +5423,12 @@
 	* src/engine/test/test-transaction-voiding.c: Add code to un-void
 	a transaction and check that all the values are restored to their
 	original state.
-	
+
 	* src/engine/test/test-transaction-reversal.c: Add a new test to
 	test the code that clones and reverses transactions.
 
-	* src/engine/Account.c: 
-	* src/backend/postgres/test/test-db.c: 
+	* src/engine/Account.c:
+	* src/backend/postgres/test/test-db.c:
 	* src/backend/file/test/test-xml-transaction.c: Changed function args.
 
 2003-06-15  Derek Atkins  <derek at ihtfp.com>
@@ -5566,9 +5652,9 @@
 	Fixes #113769.
 
 2003-05-29  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/engine/TransLog.c: Now log the transaction notes field (kvp actually).
-	* src/engine/kvp_frame.h: Docs 
+	* src/engine/kvp_frame.h: Docs
 	* src/import-export/log-replay/gnc-log-replay.c: Actually make it work:) Thanks Derek for pointing me to the private headers.  Support the new note field.
 
 2003-05-29  Christian Stimming  <stimming at tuhh.de>
@@ -5585,17 +5671,17 @@
 	  - use TRUE/FALSE, not true/false.
 
 2003-05-28  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/import-settings.c: Revert previous gettext macro addition.
-	* src/engine/TransLog.c,h: Change the log format to use GUID instead of 
+	* src/engine/TransLog.c,h: Change the log format to use GUID instead of
 	  C pointers and to use ISO8601 instead of proprietary format.
-	
-	* src/engine/gnc-numeric.h 
+
+	* src/engine/gnc-numeric.h
 	* src/import-export/import-match-map.c: Doxygen update
 
 	* configure.in
-	* src/scm/main.scm 
-	* src/import-export/Makefile.am 
+	* src/scm/main.scm
+	* src/import-export/Makefile.am
 	* src/import-export/log-replay/*: New log replay module.  This
 	  ALMOST works, except I forgot you can't set the GUID of
 	  gnucash's objects, and thus completely screwed up on the
@@ -5649,10 +5735,10 @@
 
 2003-05-26  Chris Lyttle  <chris at wilddev.net>
 
-	* src/scm/main.scm: Change stable version to 1.8.4 
+	* src/scm/main.scm: Change stable version to 1.8.4
 
 2003-05-26  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/import-settings.c: Fix pref page define to the
 	  proper page, should fix the problem of all prefs being ignored.
 	  Also make strings in the lookup code translatable so that the
@@ -5668,7 +5754,7 @@
 	    Just using gh_listify is wrong and causes a crash.
 	  - fix a bug that crashes gnucash if you remove the last entry
 	    and then add another entry.
-	
+
 	* src/business/business-reports/aging.scm:
 	  - Deal with the case where the first transaction found for a
 	    particular company is a payment (it used to just ignore it!
@@ -5720,10 +5806,10 @@
 	  This is an interim fix for #99574, at least until we can
 	  centralize the functionality.
 
-	* src/business/business-utils/business-prefs.scm: make the 
+	* src/business/business-utils/business-prefs.scm: make the
 	  Bill Due Days option selectable based on the setting of
 	  Notify Bills Due?
-	
+
 2003-05-23  Derek Atkins  <derek at ihtfp.com>
 
 	* src/gnome-utils/dialog-options.c: don't let the user do anything
@@ -5750,7 +5836,7 @@
 
 	* src/import-export/ofx/test/test-link.c: fix the test program
 	  to make sure it links on many weird platforms.
-	
+
 2003-05-22  Derek Atkins  <derek at ihtfp.com>
 
 	* src/business/business-reports/owner-report.scm:  Better fix for 108731
@@ -5767,7 +5853,7 @@
 	  Use the correct columns when printing the Gain column, don't
 	  reuse the same column as profit; we want to report different
 	  values.  Fixes #113096.
-	
+
 2003-05-21  Derek Atkins  <derek at ihtfp.com>
 
 	* src/report/standard-reports/advanced-portfolio.scm:
@@ -5780,7 +5866,7 @@
 	  This means the aging information will always be acurate through the
 	  end date (even if all the invoices and payments are not displayed).
 	  Fixes #108731.
-	
+
 2003-05-20  Derek Atkins  <derek at ihtfp.com>
 
 	* src/scm/printing/print-check.scm: some finer adjustments on
@@ -5792,7 +5878,7 @@
 	  without slib installed.
 	* configure.in: all the new gwrap check macro
 	  Fixes #113218
-	
+
 2003-05-19  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/QueryNew.[ch]: add gncQueryGetBooks() API to return
@@ -5838,7 +5924,7 @@
 	* src/engine/guid.c:
 	* src/engine/kvp-util.c:
 	  Fixes for 64-bit architectures.  Fixes bug #113231.
-	
+
 2003-05-18  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/gnc-lot.[ch]: add LOT_IS_CLOSED and LOT_BALANCE
@@ -5853,7 +5939,7 @@
 
 2003-05-16  David Hampton  <hampton at employees.org>
 
-	* src/gnome/window-main.c: 
+	* src/gnome/window-main.c:
 	* src/gnome-utils/gnc-mdi-utils.c:
 	* src/gnome-utils/gnc-mdi-utils.h: Fix the "View xxxbar" menu
 	items to track properly when a new data file is opened. #99598
@@ -5876,10 +5962,10 @@
 	* src/gnome-utils/gnc-query-list.c: we can't use a reversed list
 	  and prepend() because then we're always adding row 0 so the
 	  saved checkmarks fail.  So, use the slow way and use 'append()'.
-	
+
 2003-05-12  David Hampton  <hampton at employees.org>
 
-	* src/quotes/finance-quote-check.in: 
+	* src/quotes/finance-quote-check.in:
 	* src/quotes/update-finance-quote.in: Add HTML::Parser to the list
 	of items checked/installed. #104197
 
@@ -5906,10 +5992,10 @@
 	* src/gnome-search/dialog-search.c: Convert to use the new
 	  GNCQueryList to display the search results.
 	Fixes #106035
-	
+
 2003-05-11  David Hampton  <hampton at employees.org>
 
-	* src/gnome/dialog-commodities.c: 
+	* src/gnome/dialog-commodities.c:
 	* src/app-utils/prefs.scm: Remember the state of the "show
 	currencies" check box from one time to the next.
 
@@ -5954,9 +6040,9 @@
 	* src/engine/Scrub.c:
 	* src/engine/Scrub.h: Migrate price quote information when reading
 	in the data file.
-	
+
 	* src/app-utils/gnc-helpers.c:
-	* src/app-utils/gnc-helpers.h:	
+	* src/app-utils/gnc-helpers.h:
 	* src/app-utils/gw-app-utils-spec.scm:
 	* src/engine/gw-engine-spec.scm:
 	* src/scm/price-quotes.scm: The code to get quotes from F::Q now
@@ -5972,10 +6058,10 @@
 	* src/engine/Account.h: Deprecated a couple of functions.
 	Continue existing hack of automatically marking cross currency
 	accounts for automatic quote retrieval.
-	
+
 	* src/backend/file/io-gncbin-r.c: Update for the new names of
 	deprecated functions.
-	
+
 	* src/import-export/import-commodity-matcher.c: Update for changed
 	calling conventions.
 
@@ -6054,7 +6140,7 @@
 	* src/import-export/qif-import/druid-qif-import.c: Consolidate all
 	the tests for an ISO 4217 commodity into a pair of functions.  Use
 	these functions throughout the code.
-	
+
 2003-04-26  David Hampton  <hampton at employees.org>
 
 	* src/backend/file/gnc-commodity-xml-v2.c: Consolidate duplicate
@@ -6088,7 +6174,7 @@
 	* src/import-export/qif-import/qif-file.scm: Don't try to
 	  parse values that begin "..." because it is clearly not
 	  valid (regardless of the locale).  Fixes #109868.
-	
+
 2003-04-18  Herbert Thoma  <herbie at hthoma.de>
 
 	* src/engine/Account.c: move currency conversion to gnc-pricedb.c
@@ -6116,7 +6202,7 @@
 
 	* src/import-export/hbci/druid-hbci-initial.c,
 	src/import-export/hbci/hbci-interaction.c: Adapt to latest changes
-	in OpenHBCI CVS. 
+	in OpenHBCI CVS.
 
 2003-04-14  Christian Stimming  <stimming at tuhh.de>
 
@@ -6158,7 +6244,7 @@
 	  comparison between signed and unsigned and
 	  dereferencing type-punned pointer will break strict-aliasing rules
 	  fixes #110320
-	
+
         * src/engine/gnc-pricedb-p.h
         * src/engine/gnc-pricedb.c
         * src/engine/gnc-pricedb.h:
@@ -6183,7 +6269,7 @@
 	* src/gnome-search/search-date.c: Evaluate the date during
 	  get_predicate() in case the user just "hit return" (and the
 	  auto-evaluate didn't happen).  Fixes bug #106444.
-	
+
 2003-04-04  Derek Atkins  <derek at ihtfp.com>
 
 	* src/report/standard-report/transaction.scm: symbols are not
@@ -6198,17 +6284,17 @@
 	  (fixes debian bug #186188)
 
 2003-04-03  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/import-commodity-matcher.c: Fix debian bug #187061
 	Crash during import of investment accounts.
 
 2003-04-02  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* po/POTFILES.in,
 	src/import-export/ofx/Makefile.am,
 	src/import-export/ofx/ofx.glade: Remove obsolete ofx.glade
 	* po/fr.po: Update french translation again, 200 more messages handled
-	
+
 2003-04-01  Derek Atkins  <derek at ihtfp.com>
 
 	* src/business/business-core/gncEntry.h:  Move the definitions
@@ -6252,7 +6338,7 @@
 	* src/business/business-reports/aging-report.scm:
 	  Fix a couple strings to improve comments when owners and accounts
 	  are missing.  Direct the user to select them in the report options.
-	
+
 2003-04-01  Christian Stimming  <stimming at tuhh.de>
 
 	* src/report/report-system/options-utilities.scm: Fix missing i18n
@@ -6272,7 +6358,7 @@
 	off this data table instead of explicitly coding each field.  Add
 	new fields in the account tree window for present, cleared,
 	reconciled, and future minimum balances.  #95628
-	
+
 	* src/gnome-utils/dialog-account.c: Update for changes to function
 	parameters.
 
@@ -6282,7 +6368,7 @@
 	* src/engine/gnc-pricedb.h: new function
 	gnc_pricedb_lookup_latest_any_currency, return any available
 	prices for given commodity regardless of currency
-	
+
 	* src/app-utils/gnc-ui-util.c: do a "two stage" price lookup in
 	gnc_ui_convert_balance_to_currency if no price for the commodity
 	is found in the requested currency, then look for prices in any
@@ -6310,7 +6396,7 @@
 
 2003-03-23  Christian Stimming  <stimming at tuhh.de>
 
-	* src/import-export/hbci/hbci-interaction.c (GNCInteractor_hide): 
+	* src/import-export/hbci/hbci-interaction.c (GNCInteractor_hide):
 	Fix close-on-finished checkbutton.
 
 	* src/import-export/hbci/hbci-progressmon.c: Add descriptions of
@@ -6387,7 +6473,7 @@
 	Derek's fix for a crash when opening the Pref's dialog when using
 	guile-1.6.1.  Lost when converting to the scheme scm_xxx
 	interface.
-	
+
 2003-03-13  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/Makefile.am: make sure to add INTLLIBS in case
@@ -6407,7 +6493,7 @@
 	  the Account Separator option was moved to the Accounts page --
 	  reference is correctly.
 	Fixes #106673
-	
+
 2003-03-11  Derek Atkins  <derek at ihtfp.com>
 
 	* src/scm/main-window.scm:  turn off the report-total by default
@@ -6465,13 +6551,13 @@
 	  create an "employee report"
 	* src/business/business-utils/business-prefs.scm:
 	  save the voucher register width
-	Implements RFE #90371	
-	
+	Implements RFE #90371
+
 	* src/gnome-utils/gnc-account-sel.c:
 	  If the nameList == NULL then add a blank line, to make sure
 	  the selector list is really empty, rather than defaulting to all of
 	  the accounts in the tree if there are none matching.
-	
+
 2003-03-09  Derek Atkins  <derek at ihtfp.com>
 
 	* src/business/business-core/gncEmployee.[ch]: added APIs to
@@ -6530,7 +6616,7 @@
 	  add _some_ employee support.  Still doesn't contain the code
 	  to display an employee-owned invoice (expense voucher).
 	* src/business/business-utils/business-options.scm:
-	  create an employee option type	  
+	  create an employee option type
 	* src/business/business-core/gncInvoice.c:
 	* src/business/business-core/gncOwner.[ch]:
 	* src/business/business-core/file/gnc-owner-xml-v2.c:
@@ -6556,7 +6642,7 @@
 
 2003-02-26  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	* src/import-export/import-backend.c: 
+	* src/import-export/import-backend.c:
 	-Disable -3 punishment for transactions which have an online ID.  This punished credit card transfer yet added no tangible benefit.
 
 2003-02-22  Derek Atkins  <derek at ihtfp.com>
@@ -6588,10 +6674,10 @@
 	  "--enable-gui" to "--disable-gui", because the default is
 	  enabled.  Also changed "--enable-error-on-warning" for the
 	  same reason.
-	
+
 2003-02-18  David Hampton  <hampton at employees.org>
 
-	* acconfig.h: 
+	* acconfig.h:
 	* configure.in: Export the guile version number so it can be used
 	in the code.  Add new variable for conditionally including the
 	SRFI directory when doing 'make check'.  Should be null when using
@@ -6629,7 +6715,7 @@
 
 	* src/gnome-utils/gnc-account-tree.c:
 	  auto resize balance and total columns
-	
+
 2003-02-15  Derek Atkins  <derek at ihtfp.com>
 
 	* src/import-export/qif-import/qif-file.scm:
@@ -6650,7 +6736,7 @@
 
 2003-02-14  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	* src/import-export/import-backend.c: 
+	* src/import-export/import-backend.c:
 	-Remove unused code.
 	-Fix "destination account written to the matchmap even when
 	 autoselected" bug.
@@ -6687,7 +6773,7 @@
 	* src/gnome-utils/gnc-account-tree.c:
 	* src/gnome/window-acct-tree.c:
 	* src/scm/main-window.scm:
-	  recycle ACCOUNT_BALANCE_EURO and ACCOUNT_TOTAL_EURO account tree 
+	  recycle ACCOUNT_BALANCE_EURO and ACCOUNT_TOTAL_EURO account tree
 	  columns to display balance resp. total in default report currency
 
 	* src/import-export/import-backend.c: in
@@ -6702,7 +6788,7 @@
 
 2003-02-10  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	* src/import-export/import-backend.c,h: 
+	* src/import-export/import-backend.c,h:
 	* src/import-export/import-main-matcher.c: Apply most of cmorgan's
 	  patch for iterative destination account matching.  Optionally
 	  restricting to the transactions after the one being edited still
@@ -6714,7 +6800,7 @@
 
 	* src/import-export/import-main-matcher.c: freeze/thaw the clist
 	  around the iterator to ease the visual affects.
-	
+
 2003-02-09  Chris Lyttle  <chris at wilddev.net>
 
 	* rpm/gnucash.spec.in: fix info file not found.
@@ -6728,7 +6814,7 @@
   	* src/register/ledger-core/split-register-model.c
 	  Don't PERR() if we have no account -- this prevents annoying
 	  messages when handling multi-currency txns in the GL.  Note:
-	  all GL txns are displayed in the locale currency (if possible).	
+	  all GL txns are displayed in the locale currency (if possible).
 	* src/register/ledger-core/split-register.c
 	  AUTO_LEDGER and JOURNAL register types _ARE_ expanded -- return
 	  TRUE, not FALSE.
@@ -6742,7 +6828,7 @@
 	  as non-visible so the ledger get's sized properly
 	* src/gnome/dialog-scheduledxaction.c: resize the cal after the
 	  dialog is shown, so it get's sized properly.
-	
+
 	Move some files around in preparation for re-factoring the
 	reconcile-list code:
 	* src/gnome-search/Makefile.am: removed search-param.[ch]
@@ -6771,10 +6857,10 @@
 
 	* src/business/business-utils/Makefile.am: make scm-links so you
 	  can run gnucash from within the build tree
-	
+
 2003-02-04  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	* src/import-export/import-backend.c: Add heuristic for duplicate matching by check number.  
+	* src/import-export/import-backend.c: Add heuristic for duplicate matching by check number.
 	* doc/README.OFX: Update
 
 2003-02-04  Derek Atkins  <derek at ihtfp.com>
@@ -6783,7 +6869,7 @@
 	  to make sure the numbers are reflected appropriately.
 	* src/import-export/qif-import/qif-objects.scm: add a neg? value to
 	  a qif-split; use this when converting the split-amount.
-	Fixes bug #105179	
+	Fixes bug #105179
 
 2003-02-03  Derek Atkins  <derek at ihtfp.com>
 
@@ -6802,7 +6888,7 @@
 	  dates.
 
 	* src/scm/main.scm: fix "development version" message in head
-	
+
 2003-02-02  Chris Lyttle  <chris at wilddev.net>
 
 	* configure.in: change to 1.9.0 version
@@ -6816,8 +6902,8 @@
 
 	* doc/README.OFX: I've quickly put together some docs for the ofx module and transaction matching.  Also includes a FAQ. Not perfect, but should closebug 99478.
 	* doc/Makefile.am: Add README.OFX
-	* src/import-export/ofx/README: Remove obsolete file.  
-	
+	* src/import-export/ofx/README: Remove obsolete file.
+
 2003-02-02  Derek Atkins <derek at ihtfp.com>
 
 	* configure.in: re-enable -Werror, make sure it only is used with GCC,
@@ -6850,20 +6936,20 @@
 	* po/POTFILES.in:
 	* src/import-export/Makefile.am:
 	  Removed gnc-gen-transaction.[ch] "properly" for the dist.
-	
+
 2003-02-01  Benoit Grégoire  <bock at step.polymtl.ca>
 
 	* src/import-export/gnc-ofx-import.c: No longer assume that transaction with type OFX_OTHER are investement transactions.  Fixes bug reported by Rik harris.
-	* src/import-export/import-main-matcher.c: Fix unrelated display bug with balanced (typically investement) transactions.  
-	
+	* src/import-export/import-main-matcher.c: Fix unrelated display bug with balanced (typically investement) transactions.
+
 2003-02-02  Christian Stimming  <stimming at tuhh.de>
 
 	* configure.in: Disable error-on-warning by default because this
 	seriously breaks quite a number of configure tests. May be enabled
 	again for the development branch, but definitely not for
 	end-users.
-	
-	* configure.in: Fix libofx test. 
+
+	* configure.in: Fix libofx test.
 
 	* src/import-export/hbci/gnc-hbci-utils.c, po/de.po: Recognize
 	even more error codes from OpenHBCI. Yes, I know this breaks
@@ -6875,7 +6961,7 @@
 	* src/import-export/import-utilities.c: Build on Nigel's patch.
 	This hopefully permanently closes
 	http://bugzilla.gnome.org/show_bug.cgi?id=101705.
-	
+
 	* src/import-export/Makefile.am: No longuer compile Christian's
 	old matcher.
 
@@ -6929,7 +7015,7 @@
 
 	* src/register/ledger-core/split-register-module.c: only set ReadOnly
 	  status for Invoices, not Payments.  Fixes #105032
-	
+
 2003-02-01  Derek Atkins  <derek at ihtfp.com>
 
 	* src/gnome/window-register.c: fix the query code to use the correct
@@ -6966,7 +7052,7 @@
 
 	* src/gnome-utils/gnc-menu-extensions.c: dgettext() and gettext()
 	  return const char*.
-	
+
 2003-01-30  Derek Atkins  <derek at ihtfp.com>
 
 	* po/np.po -- add the proper "Plural" header so it builds again.
@@ -6983,9 +7069,9 @@
 	  the caller to set the default choice on "use-subaccounts", and
 	  change the cash-flow report to default to 'no'.  This will make
 	  sure that "Assets:A/P" is not included (since it shouldn't be).
-	
+
 2003-01-29  Matthew Vanecek <mevanecek at yahoo.com>
-	
+
 	* src/backend/postgres/Makefile.am: Changed the .sql.c target to
 	not echo the beginning and ending quotes.  This is part of the
 	gcc 3.x compatibility changes.
@@ -6997,7 +7083,7 @@
 	- (pgend_book_load_poll): added a gnc_session_set_book() call so that
 	  the session would have the correct book loaded (i.e., the book
 	  that's stored in the DB).
-	
+
 	* src/backend/postgres/*.sql: Enclosed each line in a set of
 	quotes "..".  The "multi-line literals" were causing compile errors
 	for gcc 3.x.
@@ -7040,13 +7126,13 @@
 	  connection to store in DbInfo.
 	- (test_raw_query): Added a call to gncQueryPrint() if
 	  gnc_should_log(MOD_TEST, GNC_LOG_DETAIL)
-	
+
 2003-01-29  Herbert Thoma  <herbie at hthoma.de>
 
 	* src/report/standard-reports/cash-flow.scm: only asset accounts
 	  are in the default account selection, tables use normal-row
 	  and alternate-row
-	
+
 2003-01-28  Derek Atkins  <derek at ihtfp.com>
 
 	* configure.in -- fix the PG test to deal properly with non-standard
@@ -7091,7 +7177,7 @@
 	we must let it through; fixes Bug#103955.
 
 	* src/backend/file/gnc-schedxaction-xml-v2.c
-	(gnc_schedXaction_dom_tree_create): Make output of the 
+	(gnc_schedXaction_dom_tree_create): Make output of the
 	deferred-instance last-date node optional on it's validity.
 
 	* src/gnome/dialog-sxsincelast.c (cancel_check): Change assertion
@@ -7155,12 +7241,12 @@
 	* src/business/business-gnome/glade/*.glade -- fix a tooltip to
 	  let the user know that they can (should?) leave the ID blank
 	  so the system will choose one for them.
-	
+
 2003-01-21  David Hampton  <hampton at employees.org>
 
 	* src/quotes/finance-quote-helper.in: Fix problem getting quotes
 	from trustnet.
-	
+
 2003-01-21  Derek Atkins  <derek at ihtfp.com>
 
 	* configure.in: be more liberal in the use of AS_SCRUB_INCLUDE
@@ -7194,7 +7280,7 @@
 
 	* src/app-utils/test/test-scm-query-string.c -- fix a memory leak
 	  in the test.
-	
+
 2003-01-19  John Pierce <john at killterm.org>
 
 	* doc/Makefile.am
@@ -7282,7 +7368,7 @@
 
 	* configure.in -- scrub the CFLAGS for postgres, as per Roland Roberts'
 	  report.
-	
+
 2003-01-18  Derek Atkins  <derek at ihtfp.com>
 
 	* src/business/business-core/gncTaxTable.[ch]: add functions to
@@ -7336,7 +7422,7 @@
 	  'invoice' portion anymore, so we don't need references to user
 	  name and user address preferences.  This removes the "User Info"
 	  page from the Global Preferences.
-	
+
 2003-01-16  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/commodity-table.scm: move gnc:commodity-is-currency? here
@@ -7355,7 +7441,7 @@
 	* qif-merge-groups.scm: Limit matches against only the accounts in
 	  the old group, so we don't match against ourselves.  This should
 	  limit the matches to only "reasonable" matches, and should fix #102463
-	
+
 2003-01-15  David Hampton  <hampton at employees.org>
 
 	* configure.in: Remove restriction on guile versions > 1.4.
@@ -7423,7 +7509,7 @@
 
 	* src/business/business-ledger/gncEntryLedgerLoad.c: add code to
 	  "show_range()" which should fix the page-up/page-down problem.
-	
+
 2003-01-14  Derek Atkins  <derek at ihtfp.com>
 
 	* src/engine/QueryNew.h: add QUERY_PARAM_ACTIVE
@@ -7442,7 +7528,7 @@
 
 	* src/gnome-search/dialog-search.c -- grey out the button if it
 	  has no meaning for this particular search-type.
-	
+
 2003-01-13  David Hampton  <hampton at employees.org>
 
 	* src/engine/engine-helpers.c: Make the gnc_scm_to_gint64()
@@ -7475,7 +7561,7 @@
 
 	* src/import-export/import-utilities.c -- applied Nigel Titley's
 	  patch for #101705
-	
+
 2003-01-12  Derek Atkins  <derek at ihtfp.com>
 
 	* src/app-utils/global-options.[ch]: add gnc_default_report_currency()
@@ -7538,13 +7624,13 @@
 	* src/engine/QueryCore.c: fix the algorithm to compute equality
 	  of numerics so it copes with numbers in the "wrong" order.
 	  Fixed bug #103341
-	
+
 2003-01-12  David Hampton  <hampton at employees.org>
 
 	* macros/openhbci.m4: Scrub hbci include paths to prevent gcc 3.x
 	compile errors.
 
-	* src/app-utils/option-util.c: 
+	* src/app-utils/option-util.c:
 	* src/app-utils/global-options.c: Add support for setting a string
 	option.
 
@@ -7595,7 +7681,7 @@
 	  wrap gncEntryGetBillTaxTable()
 	* src/business/business-reports/invoice.scm: only set the "taxable"
 	  value to 'T' if the value is true AND we've got an actual tax table.
-	
+
 2003-01-11  David Hampton  <hampton at employees.org>
 
 	* src/app-utils/gnc-ui-util.c: The "reverse balance" preference
@@ -7610,7 +7696,7 @@
 	  modifications, which had an unfortunate interaction with old
 	  debugging code, causing the score to be reversed, and making the
 	  matcher mostly unusable.
-	
+
 2003-01-09  Derek Atkins  <derek at ihtfp.com>
 
 	* src/register/ledger-core/split-register-model.c:
@@ -7629,7 +7715,7 @@
 
 	* src/business/business-core/gncInvoice.c: actually apply
 	  a payment to the proper transfer account.  Fixes bug #102893
-	
+
 2003-01-08  Christian Stimming  <stimming at tuhh.de>
 
 	* po/ru.po: Updated very complete (!) Russian translation by
@@ -7671,7 +7757,7 @@
 
 	* intl-scm/Makefile.am: applied John's patch to build guile-strings.c
 	  properly.
-	
+
 2003-01-05  Chris Lyttle  <chris at wilddev.net>
 
 	* configure.in: release 1.7.7
@@ -7688,21 +7774,21 @@
       Fix for non-srcdir builds.
 
     * src/app-utils/Makefile.am:
-    * src/business/business-core/Makefile.am: 
+    * src/business/business-core/Makefile.am:
     * src/business/dialog-tax-table/Makefile.am:
     * src/gnome/Makefile.am:
     * src/gnome-search/Makefile.am:
     * src/gnome-utils/Makefile.am:
     * src/business/business-gnome/Makefile.am:
-    * src/gnc-module/Makefile.am: 
+    * src/gnc-module/Makefile.am:
       Removed unneeded depends, they interfere with the auto-generated ones.
 
-    * src/gnc-module/test/mod-bar/Makefile.am: 
-    * src/gnc-module/test/mod-baz/Makefile.am: 
+    * src/gnc-module/test/mod-bar/Makefile.am:
+    * src/gnc-module/test/mod-baz/Makefile.am:
     * src/gnc-module/test/mod-foo/Makefile.am:
     * src/gnc-module/test/misc-mods/Makefile.am:
       Don't install test modules.
-        
+
     * src/backend/postgres/Makefile.am:
       Fixed auto-generation of sources out of srcdir.
       Moved auto-generation sources all to BUILT_SOURCES to generate
@@ -7723,21 +7809,21 @@
 
 2002-1-6  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/import-backend.c: Give a much higher importance
-	the date heuristics.   Exact date now worth +3, date within 
-	MATCH_DATE_THRESHOLD worth +2, and dates outside 
-	MATCH_DATE_NOT_THRESHOLD (now set to 25) are worth -100. 
-	The side effect it that any transaction outside a 25 day 
+	the date heuristics.   Exact date now worth +3, date within
+	MATCH_DATE_THRESHOLD worth +2, and dates outside
+	MATCH_DATE_NOT_THRESHOLD (now set to 25) are worth -100.
+	The side effect it that any transaction outside a 25 day
 	range can't be matched at all.
 	-Disable skipping transactions which already have an online id
-	during matching, untill a fix for the "transfer between two 
+	during matching, untill a fix for the "transfer between two
 	accounts" bug is properly fixed.
 	* src/import-export/generic-import.scm:
-	* src/import-export/import-settings.c:	
+	* src/import-export/import-settings.c:
 	-Disable EDIT action enabling, (it won't be complete for 1.8.0).
 	-Fix typos reported by Bill Wohler.
 	-Adjust default ADD and RECONCILE threshold to account for above
 	change.
-	
+
 2003-01-05  David Hampton  <hampton at employees.org>
 
 	* src/app-utils/gnc-component-manager.c: New functions for
@@ -7779,12 +7865,12 @@
 	* src/backend/file/io-example-account.c: fix a logic bug
 	* accounts/C/acctchrt_common.gnucash-xea: don't start selected
 	* accounts/C/acctchrt_checkbook.gnucash-xea: provide a simple checkbook
-	
+
 2003-01-04  David Hampton  <hampton at employees.org>
 
-	* src/backend/file/gnc-account-xml-v2.c: 
-	* src/backend/file/gnc-book-xml-v2.c: 
-	* src/backend/file/io-gncxml-v2.c: 
+	* src/backend/file/gnc-account-xml-v2.c:
+	* src/backend/file/gnc-book-xml-v2.c:
+	* src/backend/file/io-gncxml-v2.c:
 	* src/backend/file/io-utils.c:
 	* src/backend/file/test/test-xml-account.c: Don't export lots.
 
@@ -7820,7 +7906,7 @@
 	  all the time, instead of only in registers that needed to be corrected.
 	  Fix the code to only apply the multi-currency changes to the correct
 	  register types (e.g., NOT stock registers).  Fixes 102549.
-	
+
 2003-01-03  David Hampton  <hampton at employees.org>
 
 	* src/gnome/druid-hierarchy.c:
@@ -7869,7 +7955,7 @@
 
 	* src/backend/postgres/upgrade.c: Changed the "ALTER TABLE table
 	ADD COLUMN..." statements to conform to the current Postgres
-	implementation (and SQL 92) standard by putting the DEFAULT 
+	implementation (and SQL 92) standard by putting the DEFAULT
 	modifier in a separate ALTER statement.	 This was reported by
 	Christopher B. Browne.
 
@@ -7978,12 +8064,12 @@
 	* src/scm/command-line.scm: change the message to let people know that
 	  the rpc-server command-line option only works if gnucash was compiled
 	  with rpc enabled.
-	
+
 2002-12-30  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/hbci/druid-hbci-initial.c
 	* src/import-export/hbci/gnc-hbci-utils.c:
 	Fix a bunch of "warning: deprecated use of label at end of
-	compound statement" in gcc3 in select statements (added 
+	compound statement" in gcc3 in select statements (added
 	semicolons after default: so that I don't break anything,
 	but it should probably output an error instead).
 
@@ -7999,7 +8085,7 @@
 	* src/backend/postgres/upgrade.c: Changed all the DATETIME
 	SQL data types to TIMESTAMP.  DATETIME will not be in Postgresql
 	as of 7.3.
-	
+
 	* src/backend/postgres/functions.sql: Changed all the DATETIME
 	types in the DDL to TIMESTAMP.
 
@@ -8013,7 +8099,7 @@
 
 	* src/app-utils/prefs.scm, src/app-utils/global-options.c: Rename
 	"Default currency" option to "New Account default currency" since
-	*everybody* asks about that one.  Was reported in #102043, 
+	*everybody* asks about that one.  Was reported in #102043,
 	#100466, #99364, #87729.
 
 	* src/business/business-gnome/dialog-invoice.c
@@ -8050,7 +8136,7 @@
 
 	* src/bin/test/Makefile.am:
 	* src/doc/Makefile.am:
-	* src/import-export/hbci/Makefile.am: 
+	* src/import-export/hbci/Makefile.am:
 	* src/import-export/ofx/Makefile.am: Get 'make distcheck' working again.
 
 2002-12-28  Christian Stimming  <stimming at tuhh.de>
@@ -8093,7 +8179,7 @@
 	clueless software mismanagement.
 
 	* macros/autogen.sh: Enable -Werror for all builds.
-	
+
 
 	* src/app-file/gnc-file.c: Add missing error message.
 
@@ -8115,7 +8201,7 @@
 
 	* src/scm/price-quotes.scm: Add some additional checking.
 
-	
+
 	* src/gnome-utils/dialog-transfer.c: Change logic to multiply by
 	the exchange rate instead of divide.  Look for both both forward
 	and reverse currency quotes in the pricedb. Attempt to install
@@ -8128,7 +8214,7 @@
 
 	* src/register/ledger-core/split-register-control.c: Remove
 	function call to obsolete routine.
-	
+
 	* src/engine/gnc-pricedb.c:
 	* src/engine/gw-engine-spec.scm: Added a new function
 	(gnc_pricedb_lookup_day) to retrieve a price quote from a certain
@@ -8179,8 +8265,8 @@
 	* src/register/ledger-core/split-register-p.h:
 	* src/register/ledger-core/split-register.c: Add place to save the
 	list of splits used to fill the register.
-	
-	* src/register/ledger-core/split-register-load.c: 
+
+	* src/register/ledger-core/split-register-load.c:
 	If there is a transaction pending when updating the register, use
 	the saved list so that the transaction is guaranteed to remain in
 	the register until the user finishes editing it. Otherwise,
@@ -8232,7 +8318,7 @@
 
 2002-12-15  David Hampton  <hampton at employees.org>
 
-	* src/report/standard-reports/advanced-portfolio.scm: 
+	* src/report/standard-reports/advanced-portfolio.scm:
 	* src/report/standard-reports/portfolio.scm: Add an option for
 	changing the number of decimal places used in the shares
 	column. #87164
@@ -8279,7 +8365,7 @@
 
 	* src/gnome/glade/sched-xact.glade: Clarified some text, removed
 	unused widgets.
-	
+
 	* src/app-utils/gnc-ui-util.c (xaccSPrintAmount): Added useful comment.
 
 	* src/gnome/druid-loan.c (ld_create_sxes): Re-written; now a much
@@ -8312,7 +8398,7 @@
 	* src/engine/gw-kvp-spec.scm: use gslist-of where needed
 
 	NOTE: As of now you ABSOLUTELY REQUIRE G-WRAP >= 1.3.3
-	
+
 2002-12-11  David Hampton  <hampton at employees.org>
 
 	* src/gnc-ui.h: New help URLs for Wilddev.
@@ -8343,7 +8429,7 @@
 	  you change the date or an account after typing in a number it will
 	  over-write your change with the nearest pricedb entry.
 	  Fixed Bug #100284.
-	
+
 2002-12-11  Christian Stimming  <stimming at tuhh.de>
 
 	* accounts/el_GR/acctchrt_common.gnucash-xea: Greek account
@@ -8359,8 +8445,8 @@
 
 2002-12-10  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/*: Add user pref to allow HBCI users
-	to select if they want Christian's matcher or mine.  
-	Update OFX readme.   
+	to select if they want Christian's matcher or mine.
+	Update OFX readme.
 	Update column width in account-picker.
 
 2002-12-09  Christian Stimming  <stimming at tuhh.de>
@@ -8373,21 +8459,21 @@
 	* src/gnome/window-acct-tree.c: Disallow the deletion of accounts
 	  with ReadOnly Transactions in them.  You must first "delete" the
 	  RO Txns before you delete the account.  Fix for bug# 100727 (although
-	  it requires invoice unposting to work).	 
+	  it requires invoice unposting to work).
 
 2002-12-9  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/import-main-matcher.c:
-	* src/import-export/generic-import.glade: Change colors, remove 
+	* src/import-export/generic-import.glade: Change colors, remove
 	imbalance column and put it's info into the "Select action column",
-	 when appropriate.  Change many strings after discussion with 
+	 when appropriate.  Change many strings after discussion with
 	Wilddev.
 
 2002-12-8  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/import-account-matcher.c,h: Add param to 
+	* src/import-export/import-account-matcher.c,h: Add param to
 	 gnc_import_select_account():
 	@param ok_pressed A pointer to gboolean.  If non-NULL, whether or
     	not the picker dialog was closed by the user pressing ok will be
-    	stored in the parameter.  If no dialog was created by the  
+    	stored in the parameter.  If no dialog was created by the
     	gnc_import_select_account() call, TRUE is always returned.
 	* src/import-export/ofx/gnc-ofx-import.c: Fix for above change.
 	* src/import-export/gnc-gen-transaction.c: Take advantage of
@@ -8397,19 +8483,19 @@
 	taken" column.
 
 2002-12-8  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/import-backend.c: Make the auto-balance 
-	split have the correct amount in all cases by using 
+	* src/import-export/import-backend.c: Make the auto-balance
+	split have the correct amount in all cases by using
 	xaccTransGetImbalance() instead of the first split's value.
 	* src/import-export/import-account-matcher.c:
-	-Performance improvements in the display code, and skipping 
+	-Performance improvements in the display code, and skipping
 	lookup of the kvp frame when not needed.
 	-Expand the tree when a subaccount is selected
 	-Remove redundant selection lookup.
-	
+
 2002-12-08  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/engine/SchedXaction.h: Doxygen-related changes.
-	
+
 	* src/register/ledger-core/split-register-layout.c
 	(gnc_split_register_layout_add_cells): Change F(DEBT|CRED)_CELL
 	types to FORMULA_CELL from QUICKFILL_CELL.
@@ -8418,7 +8504,7 @@
 	(libgncmod_register_gnome_LTX_gnc_module_init): Add
 	formulacell-gnome override to gnc_register setup.
 
-	* src/register/register-core/formulacell.c: 
+	* src/register/register-core/formulacell.c:
 	* src/register/register-gnome/formulacell-gnome.c: Filled in a
 	long-thought of idea for a formula cell: can contain text unlike a
 	pricecell, but doesn't really want to do auto-complete like a
@@ -8455,20 +8541,20 @@
 	Range" window more intuitive by moving a button.
 
 	* src/scm/main.scm: Tweak the file name normalization code.
-	
+
 2002-12-7  Benoit Grégoire  <bock at step.polymtl.ca>
-	
-	* src/import-export/generic-import.glade:  Add user instructions, 
+
+	* src/import-export/generic-import.glade:  Add user instructions,
 	get rid of apply button.
-	* src/import-export/import-main-matcher.c: Speed optimizations, 
-	implement import status notification with background color.  
+	* src/import-export/import-main-matcher.c: Speed optimizations,
+	implement import status notification with background color.
 	Clarify strings.
 
-	Note:  The matcher is now feature complete, except for manual 
+	Note:  The matcher is now feature complete, except for manual
 	transaction editing.  (More optimizations and code review still
 	to be done)  I am awaiting comments about the matcher UI and
 	and investment transaction importing.
-	
+
 2002-12-07  David Hampton  <hampton at employees.org>
 
 	* src/app-utils/gnc-ui-util.c: Consolidate all knowledge about
@@ -8511,7 +8597,7 @@
 	    pop up the dialog, and what to put into it.
 	  - add an error dialog for corner cases where we want to force
 	    the user to expand the txn in order to get proper conversions.
-	
+
 	* src/register/ledger-core/split-register-model-save.c:
 	  - export "split_needs_amount()" for use elsewhere
 	  - fix the logic in handling debcred changes, in particular for
@@ -8530,16 +8616,16 @@
 	  gnc_commodity_equal(), because the average user doesn't need
 	  to know why commodities are not equal.
 
-2002-12-07  Benoit Grégoire  <bock at step.polymtl.ca>	
+2002-12-07  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	More Doxygenification.  Created an Engine module, and a 
+	More Doxygenification.  Created an Engine module, and a
 	Deprecated list.  Unfortunately, unless we turn on EXTRACT_ALL
-	(not very practical currently) not all functions will appear 
-	unless they are all documented. 
-	* src/engine/Transaction.h: More Doxygenification	
+	(not very practical currently) not all functions will appear
+	unless they are all documented.
+	* src/engine/Transaction.h: More Doxygenification
 	* src/engine/Account.h: Doxygenify
 	* src/doc/doxygen.cfg.in: Minor config change.
-	
+
 2002-12-07  Christian Stimming  <stimming at tuhh.de>
 
 	* configure.in: Require openhbci 0.9.4 for HBCI version choosing.
@@ -8569,12 +8655,12 @@
 	header entry.
 
 2002-12-06  Benoit Grégoire  <bock at step.polymtl.ca>
-	
-	* src/import-export/ofx/gnc-ofx-import.c:  Do the "right" 
+
+	* src/import-export/ofx/gnc-ofx-import.c:  Do the "right"
 	thing for setting split amount and value.
 	* src/import-export/import-main-matcher.c: Cosmetic
 	improvements for balance display and window resizing.
-	* All other affected files:  Doxygenify everything.  Take a 
+	* All other affected files:  Doxygenify everything.  Take a
 	look, run make doc, and open src/doc/html/index.html
 
 2002-12-06  Derek Atkins  <derek at ihtfp.com>
@@ -8583,63 +8669,63 @@
 	  by _value_ -- ALWAYS.
 
 	* po/nl.po -- don't use msgid_plural -- it fails to work.
-		
+
 2002-12-06  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/import-backend.c:  Fix for gcc2
 
 2002-12-06  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	Huge patch, this is the new generic import 
+	Huge patch, this is the new generic import
 	architecture/transaction matcher.  Many old
 	files were renamed, split or deleted.
-	
-	* src/engine/Transaction.c,h: 
-	- Add a DxaccSplitSetAmount function, 
-	- Fix a bug in xaccSplitsComputeValue (Split values were 
-	sometimes being summed, which is illogical) that caused 
+
+	* src/engine/Transaction.c,h:
+	- Add a DxaccSplitSetAmount function,
+	- Fix a bug in xaccSplitsComputeValue (Split values were
+	sometimes being summed, which is illogical) that caused
 	xaccTransGetImbalance to sometimes return incorrect values.
 	Somebody please review this.  Playing in the engine during
 	freeze isn't ideal.
-	
-	* src/import-export/import-backend.c,h: There is now a 
+
+	* src/import-export/import-backend.c,h: There is now a
 	real backend, completely independent of the GUI.
 
 	* src/import-export/gnc-gen-transaction.c: This is Christian's
-	old matcher, I tried to maintain compatibility, but couldn't 
-	really test.  Please note that there is some code 
-	simplification that could be done there now that there is a 
+	old matcher, I tried to maintain compatibility, but couldn't
+	really test.  Please note that there is some code
+	simplification that could be done there now that there is a
 	clean backend, and that some values passed between the functions
 	might no longer have any effect.
-	
-	* src/import-export/ofx/gnc-ofx-import.c:  Update for new 
-	matcher.  Use the currency reported by libofx and 
-	xaccSpiltSetBaseValue when adding a banking/credit card 
+
+	* src/import-export/ofx/gnc-ofx-import.c:  Update for new
+	matcher.  Use the currency reported by libofx and
+	xaccSpiltSetBaseValue when adding a banking/credit card
 	transaction.
 
 	* src/import-export/import-account-matcher.c,h: This is a
 	very generic and flexible account matcher/picker.
-	
+
 	* src/import-export/import-commodity-matcher.c,h: This is
 	a generic commodity matcher/picker.
 
-	* src/import-export/import-main-matcher.c,h: This is the 
+	* src/import-export/import-main-matcher.c,h: This is the
 	main transaction matcher GUI. It's mostly feature complete
 	and should be fairly stable, but probably leaks memory.
-	
+
 	* src/import-export/import-match-map.c,h: Derek Atkin's
 	generic string/account matching infrastructure.
-	
-	* src/import-export/import-match-picker.c,h:  This is the 
-	interface to pick a matching transaction.  It has been 
+
+	* src/import-export/import-match-picker.c,h:  This is the
+	interface to pick a matching transaction.  It has been
 	completely ripped from the backend.
-	
+
 	* src/import-export/import-settings.c,h:  All user
-	settings (or compiled-in settings) are now abstracted in 
+	settings (or compiled-in settings) are now abstracted in
 	an opaque structure with getter functions.
 
 	* src/import-export/import-utilities.c:	These are utility
-	functions to help import module writers. 
+	functions to help import module writers.
 
 2002-12-06  Christian Stimming  <stimming at tuhh.de>
 
@@ -8657,7 +8743,7 @@
 
 	* src/register/ledger-core/split-register-model-save.c -- Handle
 	  the case where only the exchrate changed.  Actually change it!
-	
+
 2002-12-06  David Hampton  <hampton at employees.org>
 
 	* src/quotes/finance-quote-helper.in: Add an additional module to
@@ -8668,7 +8754,7 @@
 2002-12-05  Derek Atkins  <derek at ihtfp.com>
 
 	* src/gnome-search/Makefile.am: add GDK_PIXBUF_CFLAGS because
-	  it is pulled in by gtkhtml, which is pulled in from window-help.	  
+	  it is pulled in by gtkhtml, which is pulled in from window-help.
 
 	* revert patch -- not needed.  Oops.
 
@@ -8685,7 +8771,7 @@
 	  set the "price" and the latter will set a (as of yet unused) flag.
 	* src/register/ledger-core/split-register-control.c: Don't pop up
 	  the exchange dialog when it is not needed, even when requested.
-	
+
 2002-12-04  David Hampton  <hampton at employees.org>
 
 	* src/quotes/finance-quote-helper.in (schemify_quote): Allow stock
@@ -8717,7 +8803,7 @@
 	  deal with broken QIF files that give broken bang-fields.  In
 	  particular, handle the case where it supplies "!Type Bank"
 	  instead of "!Type:Bank"
-	
+
 2002-12-03  Derek Atkins  <derek at ihtfp.com>
 
 	* src/register/ledger-core/split-register-control.c:
@@ -8735,7 +8821,7 @@
 	  this all.
 
 	  Closed bug # 97690
-	
+
 2002-12-03  David Hampton  <hampton at employees.org>
 
 	* src/scm/main.scm ((gnc:account-file-to-load)): Normalize the
@@ -8778,7 +8864,7 @@
 	* src/doc/doxygen.cfg: Removed.
 	* src/doc/doxygen.cfg.in: New file.
 
-	* src/gnome/gnc-split-reg.c (gsr_default_delete_handler): 
+	* src/gnome/gnc-split-reg.c (gsr_default_delete_handler):
 	Convert the delete dialogs to follow the existing gnucash standard
 	where the cancel button is the rightmost button in the dialog box.
 	#98291
@@ -8816,16 +8902,16 @@
 	* src/register/ledger-core/split-register-control.c:
 	  fill in the "exchange dialog" with entries from the current split/trans
 	  change the API to allow a menu-item to pop up the exchange dialog
-	
+
 2002-12-02  Chris Lyttle  <chris at wilddev.net>
-	
+
 	* src/doc/Makefile.am: fix for failure when building rpm
 
 2002-12-02  Chris Lyttle  <chris at wilddev.net>
 
 	* NEWS: update to new version 1.7.4
 	* configure.in: update to new version 1.7.4
-	
+
 2002-12-01  David Hampton  <hampton at employees.org>
 
 	* src/engine/Transaction.c (xaccTransOrder): The sort on the
@@ -8861,14 +8947,14 @@
 
 	* src/gnome-utils/gnc-menu-extensions.[hc]: Added
 	gnc_gnome_app_insert_menus to work around i18n problems with stock
-	gnome menus. This is now also used from window-acct-tree.c. 
+	gnome menus. This is now also used from window-acct-tree.c.
 
 2002-12-01  Derek Atkins <derek at ihtfp.com>
 
 	* move QuickFill and dialog-transfer into gnome-utils
 
 	* business-ledger/gncEntryLedger.c -- delay setting *new = FALSE until
-	  just before we call the "new account" dialog.	  
+	  just before we call the "new account" dialog.
 
 	* src/gnome-utils/dialog-transfer -- update the dialog to enable
 	  and "exchange dialog" -- limited use from the register.  This is
@@ -8881,7 +8967,7 @@
 	  (mostly).  Call out to the exchange (transfer) dialog when you
 	  create a split to an account different than the transaction
 	  currency.  This is a partial fix for 97690.
-	
+
 2002-12-01  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/app-utils/gnc-helpers.c (g_date_equals, g_date_hash): Added
@@ -8904,12 +8990,12 @@
 	  longer requires the pricedb for printing split values.  This will
 	  display all transactions in the currency of the current account,
 	  regardless of the number of splits in the transaction.
-	  
+
 2002-11-30  Herbert Thoma  <herbie at hthoma.de>
 
 	* src/report/standard-reports/cash-flow.scm: Added new option
 	for output formating, make the output "nicer"
- 
+
 2002-11-30  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/gnc-hbci-getbalance.c: More graceful
@@ -8955,7 +9041,7 @@
 	* src/report/report-system/report.scm: Move the busy cursor logic
 	so that it removes the busy cursor even after a report error.
 
-	* src/report/locale-specific/us/taxtxf.scm: 
+	* src/report/locale-specific/us/taxtxf.scm:
 	* src/report/standard-reports/transaction.scm: Provide progress updates
 	while creating reports. #94280
 
@@ -8979,7 +9065,7 @@
 	importer window.
 
 2002-11-27  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* Makefile.am configure.in src/doc/Makefile.am
 	src/doc/doxygen.cfg src/doc/doxygen_main_page.c: Added doxygen
 	documentation support, and integrated it into the build system.
@@ -8988,9 +9074,9 @@
 	tree will be included in the documentation if it follows doxygen
 	conventions.  The doc created in src/doc/html.  Doxygen is now
 	required for make dist.
-	
-	* src/import-export/:  Enable doxygen documentation.	
-	
+
+	* src/import-export/:  Enable doxygen documentation.
+
 2002-11-27  Christian Stimming  <stimming at tuhh.de>
 
 	* accounts/pt_BR/*: Added Brazilian Portugese account templates by
@@ -9011,7 +9097,7 @@
 	* src/report/report-system/html-utilities.scm:
 	* src/report/report-system/report-utilities.scm:
 	* src/report/report-system/report.scm:
-	* src/report/standard-reports/*.scm: 
+	* src/report/standard-reports/*.scm:
 	* src/business/business-reports/*.scm: Provide progress updates
 	while creating reports. #94280
 
@@ -9027,32 +9113,32 @@
 	  GUI events when building the template trans -- to make sure
 	  that refreshes don't happen until after the txn is inserted.
 	FIXES bug #99563
-	  
+
 2002-11-26  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/Transaction-matcher.c:
 	More code cleanup -- use getter functions instead of direct
 	structure access to make potential file split easier.
-	
+
 	* src/import-export/gnc-gen-transaction.[hc]
 	(gnc_gen_trans_get_fuzzy_amount): Add functions to get/set the
 	fuzzy amount matching threshold, so that this feature can be used
 	from gnc-ofx-import.c.
 
 2002-11-25  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/hbci/gnc-hbci-gettrans.c: Remove 
+	* src/import-export/hbci/gnc-hbci-gettrans.c: Remove
 	#include "gnc-generic-import.h"
 
 2002-11-25  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/Account-matcher.[c,h]: Minor changes to make
 	the matcher more generic:  Improved text handling, default account
-	support, enable account description, disable showing Online ID 
+	support, enable account description, disable showing Online ID
 	column if online_id isn't specified in the function call.
 	* src/import-export/generic-import.glade: Adjust text for above 		changes.
 	* src/import-export/gnc-gen-transaction.c:  Use the more feature		 complete Account-matcher.h from the generic import module instead
 	 of dialog-account-pick.h.  Christian, tell me you didn't implement
-	a fourth account picker from scratch. 
-	* src/import-export/ofx/gnc-ofx-import.c: Adapt text to 
+	a fourth account picker from scratch.
+	* src/import-export/ofx/gnc-ofx-import.c: Adapt text to
 	Account-matcher changes.
 
 2002-11-24  Joshua Sled  <jsled at asynchronous.org>
@@ -9063,14 +9149,14 @@
 	* src/gnome/dialog-scheduledxaction.c (putSchedXactionInDialog):
 	Don't double-free dates; fixes Bug#99452.
 
-	* src/gnome/gnc-split-reg.c (gnc_split_reg_jump_to_split) 
-	(gnc_split_reg_jump_to_split_amount, gnc_split_reg_record) 
-	(gsr_emit_include_date_signal): 
+	* src/gnome/gnc-split-reg.c (gnc_split_reg_jump_to_split)
+	(gnc_split_reg_jump_to_split_amount, gnc_split_reg_record)
+	(gsr_emit_include_date_signal):
 	* src/gnome/window-register.c (gnc_register_include_date_adapter):
 	Add back in support for including a date in the range
 	limited/viewed by the window-register.
-	
-	* src/gnome/gnc-split-reg.c (gnc_split_reg_get_read_only) 
+
+	* src/gnome/gnc-split-reg.c (gnc_split_reg_get_read_only)
 	* src/gnome/window-register.c (regWindowLedger): Change manner of
 	setting window-title in read-only-register case so the
 	gnc-split-reg isn't changing the window-titles of windows it has
@@ -9107,14 +9193,14 @@
 	  is not the same as the current account commodity.
 	* src/gnome/dialog-transfer.c -- Make sure the exchange rate stays
 	  a decimal number instead of converting to a fraction.
-	
+
 2002-11-24  David Hampton  <hampton at employees.org>
 
-	* src/app-file/gncmod-app-file.c: 
+	* src/app-file/gncmod-app-file.c:
 	* src/gnome-utils/gnc-mdi-utils.c:
 	* src/gnome-utils/gnc-mdi-utils.h: Rename the
 	gnc_mdi_file_percentage function to gnc_mdi_show_progress.
-	
+
 	* src/gnome-utils/gw-gnome-utils-spec.scm: Wrap the
 	gnc_mdi_show_progress function so it is accessible from scheme.
 
@@ -9127,10 +9213,10 @@
 	* src/app-utils/prefs.scm (gnc:make-number-range-option): Fix
 	wording of pref-widget hints; fixes Bug#99389.
 
-	* src/gnome/glade/sched-xact.glade: 
-	* src/gnome/dialog-sx-from-trans.c: 
-	* src/gnome/druid-loan.c (gnc_ui_sx_loan_druid_create): 
-	* src/gnome-utils/gnc-frequency.c (gnc_frequency_init): 
+	* src/gnome/glade/sched-xact.glade:
+	* src/gnome/dialog-sx-from-trans.c:
+	* src/gnome/druid-loan.c (gnc_ui_sx_loan_druid_create):
+	* src/gnome-utils/gnc-frequency.c (gnc_frequency_init):
 	* src/gnome/dialog-scheduledxaction.c
 	(gnc_ui_scheduled_xaction_editor_dialog_create):
 	GnomeDateEdit -> GNCDateEdit; Fixes Bug#99357.
@@ -9148,10 +9234,10 @@
 
 	* src/backend/postgres/PostgresBackend.c: Added messages.h to support
 	string internationalization.
-	
-	* src/backend/postgres/PostgresBackend.c (pgend_session_begin): 
+
+	* src/backend/postgres/PostgresBackend.c (pgend_session_begin):
 	an xaccBackendSetMessage() call was missing the Backend argument.
-	
+
 2002-11-23  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/gnc-hbci-gettrans.c: Use the new generic
@@ -9168,7 +9254,7 @@
 	between different possible duplicate matches.
 	(matchmap_find_destination): Add automatic destination guessing
 	and learning, based on the GncImportMatchMap.
-	
+
 	* po/POTFILES.in, de.po: Updated translations.
 
 	* src/engine/Account.h, src/import-export/gnc-import-match-map.h:
@@ -9181,7 +9267,7 @@
 	reconciliation window. Only set those the user identified as
 	reconciled. #95639
 
-	* src/register/ledger-core/gnc-ledger-display.c (refresh_handler): 
+	* src/register/ledger-core/gnc-ledger-display.c (refresh_handler):
 	If there is a current split, then ensure that the transaction
 	containing that split stays in the register.  This will make the
 	transaction being edited stay in the register until you move to
@@ -9193,7 +9279,7 @@
 	current split have been cleared, then delete this split. #98139
 	(gnc_split_register_old_split_empty_p): New function.
 
-	* src/engine/Account.c (xaccTransFixSplitDateOrder): 
+	* src/engine/Account.c (xaccTransFixSplitDateOrder):
 	(xaccTransFixSplitDateOrder): Prevent this routine from causing a
 	recursive call to itself.
 
@@ -9204,13 +9290,13 @@
 	* src/gnome/glade/register.glade: Update help menu items. #99169
 
 	* src/gnome/window-register.c (gnc_register_toolbar_cb): Remove
-	unused routine.	
+	unused routine.
 
 	* src/import-export/qif-import/qif-merge-groups.scm: Add a new
 	progress box for a function that takes forever and a day to
 	complete.
 
-	* src/import-export/qif-import/qif-to-gnc.scm: 
+	* src/import-export/qif-import/qif-to-gnc.scm:
 	* src/import-export/qif-import/qif-file.scm: Mark progress box
 	strings for i18n.
 
@@ -9255,19 +9341,19 @@
 
 	* README/README.cvs -- update to reference how to "properly" use
 	  autogen.sh
-	
+
 2002-11-21  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/Transaction-matcher.c: Tweak the matching
 	heuristics.
 	-Memo and description heuristics now both have a very primitive
 	fuzzy match worth +1:  Only the first half of the string is compared.
 	The rationale is that this will allow the matcher to skip the
-	transaction number sometimes appended after the description by 
-	some banks. 
+	transaction number sometimes appended after the description by
+	some banks.
 	* src/import-export/ofx/gnc-ofx-import.c:  Transaction memo is
-	always written in the split's memo. 
+	always written in the split's memo.
 	* src/doc/user-prefs-howto.txt:  Add new file, by Christian Stimming.
-	
+
 2002-11-21  Benoit Grégoire  <bock at step.polymtl.ca>
 	* src/import-export/generic-import.scm: New file, contains user
 	prefs for the Transaction matcher:
@@ -9277,8 +9363,8 @@
 	* src/import-export/Makefile.am: Add generic-import.scm
 	* src/import-export/Transaction-matcher.c:
 	-Use the new user prefs.
-	-Change the name of the actions to hopefully reflect better the 
-	action that will be taken.  RECONCILE is now CLEAR, and IGNORE is 
+	-Change the name of the actions to hopefully reflect better the
+	action that will be taken.  RECONCILE is now CLEAR, and IGNORE is
 	now SKIP.
 	-Disable numeric scoring.
 
@@ -9306,15 +9392,15 @@
 
 	* NEWS: update to new version 1.7.3
 	* configure.in: update to new version 1.7.3
-	
+
 2002-11-18  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/Transaction-matcher.c: Remove constant length 
-	strings and replace with moving pointers.  I wish _("string") 
+	* src/import-export/Transaction-matcher.c: Remove constant length
+	strings and replace with moving pointers.  I wish _("string")
 	could be used as a could initializer like "string" can...
 
 2002-11-17  Joshua Sled  <jsled at asynchronous.org>
 
-	* src/gnome/dialog-sxsincelast.c: 
+	* src/gnome/dialog-sxsincelast.c:
 	* src/gnome/dialog-scheduledxaction.c:
 	Use printGDate() when we need to print dates; fixes Bug#96477.
 
@@ -9350,7 +9436,7 @@
 	* configure.in: Add support for gtkhtml 1.1.
 
 	* various: Clean up compilation warnings.
-	
+
 	* src/gnome/window-reconcile.c: Fix a couple of functions that
 	were illegally casting pointers to the wrong type.  Use the new
 	gnc_split_reg_xxx functions instead of the old gnc_register_xxx
@@ -9373,13 +9459,13 @@
 2002-11-17  Matthew Vanecek <mevanecek at yahoo.com>
 	* src/backend/postgres/putil.c: Added needed header files to the c
 	file.
-	
+
 	* src/backend/postgres/PostgresBackend.c (pgend_session_begin): Added
 	xaccBackendSetMessage for an unknown mode or for a bad connection.
 
 	* src/engine/Backend.c (xaccBackendGetMessage): Allow function to
 	return null if Backend->error_msg is NULL.
-	
+
 	* src/engine/Account.c (xaccAccountCommitEdit): Handle a NULL return
 	from xaccBackendGetMessage().
 
@@ -9387,7 +9473,7 @@
 	error message onto the session error message (instead of NULL), if
 	it exists.  If it's just a warning message (denoted by having a
 	message, but ERR_BACKEND_NO_ERR is set), pop up a dialog.
-	
+
 2002-11-16  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
@@ -9446,12 +9532,12 @@
 	(regWindowAccGroup): Only return the GNCSplitReg, not the whole
 	regData.  Fixes a bunch of existing and potential crashes.
 
-	* src/gnome/window-main.c (gnc_main_window_gl_cb): 
+	* src/gnome/window-main.c (gnc_main_window_gl_cb):
 	* src/gnome/window-acct-tree.c
-	(gnc_acct_tree_window_toolbar_open_cb) 
-	(gnc_acct_tree_window_menu_open_subs_cb) 
-	(gnc_acct_tree_window_menu_open_cb) 
-	(gnc_acct_tree_window_activate_cb): 
+	(gnc_acct_tree_window_toolbar_open_cb)
+	(gnc_acct_tree_window_menu_open_subs_cb)
+	(gnc_acct_tree_window_menu_open_cb)
+	(gnc_acct_tree_window_activate_cb):
 	* src/gnome/top-level.c (gnc_html_register_url_cb):
 	Modify to not necessarily expect a RegWindow for creation of a
 	ledger view.  Fixes a bunch of existing and potential crashes.
@@ -9461,7 +9547,7 @@
 
 2002-11-14  David Hampton  <hampton at employees.org>
 
-	* src/register/ledger-core/split-register.c: 
+	* src/register/ledger-core/split-register.c:
 	(gnc_split_register_get_account_by_name): Fix register update bug.
 
 2002-11-14  Joshua Sled  <jsled at asynchronous.org>
@@ -9479,8 +9565,8 @@
 	recent serious register crashes.
 
 	* src/gnome/dialog-scheduledxaction.c
-	(scheduledxaction_editor_dialog_destroy): 
-	* src/gnome/dialog-sxsincelast.c (sxsincelast_destroy): 
+	(scheduledxaction_editor_dialog_destroy):
+	* src/gnome/dialog-sxsincelast.c (sxsincelast_destroy):
 	Close the ledger_display on window teardown.  Fixes sx-related
 	register crashes.
 
@@ -9493,39 +9579,39 @@
 	used to be stored under no.po but that is no longer.
 
 2002-11-13  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/Transaction-matcher.c: 
+	* src/import-export/Transaction-matcher.c:
 	-Don't show match with probability less than 1, so we don't
 	end up showing the whole account.
 	-Fix crash when importing a transaction twice
-	-Copy the online id to the reconciled transaction, so the 
+	-Copy the online id to the reconciled transaction, so the
 	match will be remembered.
 	-Do not consider transaction with an online_id kvp frame as
-	potential match, as they have previously been downloaded 
+	potential match, as they have previously been downloaded
 	online.
 	-Steal a better pixmap from gnome drop down menu.
 
 2002-11-13  Benoit Grégoire  <bock at step.polymtl.ca>
 
-	* src/import-export/ofx/gnc-ofx-import.c: MAJOR improvement to 
+	* src/import-export/ofx/gnc-ofx-import.c: MAJOR improvement to
 	investment support.  All transactions created from an investment
-	account are now already balanced.  Explicitly support Dividend 
-	Reinvestment transactions which will now directly create a 
-	income account -> stock account transaction, and Income 
+	account are now already balanced.  Explicitly support Dividend
+	Reinvestment transactions which will now directly create a
+	income account -> stock account transaction, and Income
 	transactions which will directly create a
 	income account -> cash account transaction.
-	Support memorizing the income account association.  Several 
+	Support memorizing the income account association.  Several
 	stock account can use the same income account if desired.
-	
+
 	* src/import-export/Transaction-matcher.c: Various bug fixes.
 
 	* src/import-export/Account-matcher.c and
 	src/import-export/gnc-generic-import.h: Support a new mode
 	of operation for the account matcher to allow selection of
-	an account without touching the online_id kvp frame. 
+	an account without touching the online_id kvp frame.
 	Currently used for income account selection or creation.
 
-	* src/import-export/generic-import.glade: Set default size 
-	to a more reasonable 800x600, since the Auto Shrink trick 
+	* src/import-export/generic-import.glade: Set default size
+	to a more reasonable 800x600, since the Auto Shrink trick
 	doesn't work for everyone.
 
 2002-11-12  Derek Atkins  <derek at ihtfp.com>
@@ -9542,7 +9628,7 @@
 	  change the readonly message to point to unposting invoices
 	  NOTE: This just adds the icon and some new strings..  Functionality
 	  to be added soon.
-	
+
 2002-11-12  David Hampton  <hampton at employees.org>
 
 	* src/register/ledger-core/split-register-control.c
@@ -9574,25 +9660,25 @@
 	accounts.  (gnc_split_register_get_account): Call the new function
 	to get the additional checks.  This solves #92157.
 
-	* src/business/business-ledger/gncEntryLedger.c: 
+	* src/business/business-ledger/gncEntryLedger.c:
 	* src/business/business-ledger/gncEntryLedgerControl.c: Implement
 	the equivalent fixes for the business ledger.
 
 2002-11-12  Benoit Grégoire  <bock at step.polymtl.ca>
-	* src/import-export/Transaction-matcher.c: Fix previous patch.  
+	* src/import-export/Transaction-matcher.c: Fix previous patch.
 	gcc 3.2 is too forgiving...
 
 	* src/import-export/Transaction-matcher.c: Dynamically generate
 	a pixmap to display match confidence graphically.
 
-	* src/import-export/ofx/gnc-ofx-import.c: Fix call to 
+	* src/import-export/ofx/gnc-ofx-import.c: Fix call to
 	g_strdup_printf in Christian's 2002-11-03 translation patch.
 
 	* src/import-export/Transaction-matcher.c
-	* src/import-export/generic-import.glade: First round of 
-	transaction matcher UI changes.  Create a pseudo-widget in first 
+	* src/import-export/generic-import.glade: First round of
+	transaction matcher UI changes.  Create a pseudo-widget in first
 	column to select the action to be taken with the transaction.
-	
+
 2002-11-12  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome/dialog-sxsincelast.c
@@ -9667,7 +9753,7 @@
 	  dialog.
 	* gnome/Makefile.am -- remove dependency on qif-import library.
 	* src/makefile.am -- re-order import-export after gnome
-	
+
 	* engine/Transaction.c -- allow deletion of a non-connected Splits
 	  (fixes a SEGV problem)
 
@@ -9691,7 +9777,7 @@
 	* gnome/window-reconcile.c: re-enable the 'jump to blank'
 	* gnome/window-register.c: re-enable the 'jump to blank' by calling into
 	  the split-reg's implementation.
-	  fixes bug #97680 
+	  fixes bug #97680
 
 2002-11-06  Christian Stimming  <stimming at tuhh.de>
 
@@ -9717,7 +9803,7 @@
 	(gncInvoicePostToAccount): Mark as read-only transactions that are
 	generated from an invoice.
 
-	* src/gnome/gnc-split-reg.c (gsr_default_delete_handler): 
+	* src/gnome/gnc-split-reg.c (gsr_default_delete_handler):
 	(gsr_default_reinit_handler): Honor the read-only setting on a
 	transaction.
 
@@ -9730,7 +9816,7 @@
 	* /src/report/standard-reports/cash-flow.scm: new report
 	which shows inflow and outflow of money to a set of accounts
 
-	* src/report/standard-reports/standard-reports.scm: add 
+	* src/report/standard-reports/standard-reports.scm: add
 	cash-flow.scm to gncscmmod_DATA
 
 2002-11-04  Derek Atkins  <derek at ihtfp.com>
@@ -9747,7 +9833,7 @@
 
 	* src/business/business-reports/invoice.scm: fix some strings
 	  "Invoice Terms" -> "Billing Terms"
-	
+
 2002-11-03  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome/dialog-sxsincelast.c: Use GNCSplitReg over
@@ -9796,7 +9882,7 @@
 
 	* business/business-ledger/gncEntryLedgerLoad.c -- set the account
 	  completion character for the account cells.  Fixes bug #97098
-	
+
 2002-11-03  Christian Stimming  <stimming at tuhh.de>
 
 	* src/gnome/dialog-sxsincelast.c, src/gnome/window-main.c,
@@ -9826,7 +9912,7 @@
 
 	* import-export/ofx/gnc-ofx-import.c: use gnc_timespec_to_iso8601_buff() instead of strftime()
 	* import-export/ofx/gncmod-ofx-import.c: "remove" two unused variables
-	
+
 2002-10-28  Christian Stimming  <stimming at tuhh.de>
 
 	* intl-scm/xgettext.scm: Add the file name of scheme files to
@@ -9852,8 +9938,8 @@
 
 2002-10-28  David Hampton  <hampton at employees.org>
 
-	* src/gnome-utils/gnc-html.c: 
-	* src/gnome/Makefile.am: 
+	* src/gnome-utils/gnc-html.c:
+	* src/gnome/Makefile.am:
 	* src/gnome/top-level.c (gnc_gui_init): Disable the gnucash
 	network code.
 
@@ -9875,7 +9961,7 @@
 	* gncInvoice.c -- implement GetTotal() -- fixes #96833
 
 	* invoice.glade -- add "View->SummaryBar" item to turn it off.
-	
+
 2002-10-27  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/*.c: add #include config.h for correct
@@ -9913,7 +9999,7 @@
 
 	* accounts/fr_FR/*: Frederic Lespez's fixes for the
 	French account templates.
-	
+
 	* src/import-export/qif-import/druid-qif-import.c: Add a working
 	directory for the qif-import code; defaults to user homedir. Use
 	the working directory in the file selection dialog and track any
@@ -9959,7 +10045,7 @@
 	the auto-create transactions if there are only auto-create,
 	no-notify SXes as a result of the since-last-run-dialog
 	invocation; fixes bug #96944.
-	
+
 	* src/gnome/dialog-sxsincelast.c (sxsincelast_populate): Changed
 	return-value from sxsincelast_populate to reflect all the possible
 	conditions, allowing...
@@ -9982,7 +10068,7 @@
 
 	* src/import-export/hbci/gnc-hbci-utils.c: Cache the created
 	HBCI_API for subsequent calls. Will also cache the user's
-	password. Also, make more meaningful error handling. 
+	password. Also, make more meaningful error handling.
 
 	* src/import-export/hbci/dialog-daterange.[hc]: Add a dialog
 	asking for the date range of transactions to retrieve.
@@ -10002,7 +10088,7 @@
 	* src/register/register-gnome/gnucash-sheet.c: Remove no longer
 	used function from first pass at the placeholder account code.
 
-	* src/gnc-ui.h: 
+	* src/gnc-ui.h:
 	* src/gnome/window-main.c: Add a new help menu item for Wilddev and
 	rename another one. #96821
 
@@ -10013,7 +10099,7 @@
 	for the one attached to the current register. This is now called
 	the "reinitialize" function. (Fixes 85904).
 
-	* src/register/ledger-core/split-register.h: 
+	* src/register/ledger-core/split-register.h:
 	* src/register/ledger-core/split-register-p.h: Make
 	gnc_split_register_get_current_trans_split() a public function.
 
@@ -10045,7 +10131,7 @@
 
 	* gnc-backend-file.c: make sure a file HAS a date before actually
 	  removing it.  Otherwise you will remove a foo.xac file by accident.
-	
+
 2002-10-22  Derek Atkins  <derek at ihtfp.com>
    Fix a bunch of compiler warnings:
 	* Transaction-matcher.c: use "=" not "==" to set a variable
@@ -10093,12 +10179,12 @@
 	* src/import-export/Trasaction-matcher.c: Fix compiler warnings.
 	* src/import-export/ofx/gnc-ofx-import.c: Give the user more information
 	  for account creation.
-	
+
 2002-10-20  Derek Atkins  <derek at ihtfp.com>
 	* configure.in -- remove -Wno-uninitialized -Wno-unused, in preparation
 	  for the "new g-wrap" which should output code that wont cause these
 	  warnings.
-	
+
 	* gnc-vendor-xml-v2.c, test-customer.c, test-vendor.c -- fix compiler
 	  warnings.
 	* dialog-options.c -- remove unused variable
@@ -10109,7 +10195,7 @@
 	  the modules.
 	  Also had to remove -Werror from hbci/Makefile.am due to darn cc
 	  warnings about order of includes.
-	
+
 2002-10-20  Benoit Grégoire  <bock at step.polymtl.ca>
 	* Investment transactions now create two accounts, one is for the stock,
 	  the other is the account defined by the FI, where the cash is swapped.
@@ -10146,7 +10232,7 @@
 	  the account-sel option.
 	* business/business-reports/*.scm -- change to using the new account-sel
 	  option type.  Fixes bug #96137
-	
+
 2002-10-19  Christian Stimming  <stimming at tuhh.de>
 
 	* po/POTFILES.in: Update potfile.in for upcoming translations.
@@ -10165,15 +10251,15 @@
 	  value and tax cells.
 
 	* Matthew Vanecek's gncQueryPrint() patch
-	
+
 2002-10-18  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* Implement a working commodity matcher for the generic import
 	module.
 	* src/gnome-utils/dialog-commodity.c,.h: Extend the API to allow
 	the user to be told what he is trying to match, and to fill in
 	default values for new commodities
-	* Use the new matcher in the ofx module.  The latest libofx CVS 
+	* Use the new matcher in the ofx module.  The latest libofx CVS
 	is needed.
 
 2002-10-17  Derek Atkins <derek at ihtfp.com>
@@ -10220,7 +10306,7 @@
 
 	* gnc-ledger-display.c -- fix a memory leak (you need to g_list_free()
 	  the returned list from xaccGroupGetSubAccounts(), according to the docs)
-	
+
 2002-10-16  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/app-utils/gnc-exp-parser.c (gnc_exp_parser_parse): This
@@ -10239,7 +10325,7 @@
 
 	* fix call to pgend_trans_rollback_edit()
 	* fix call to pgend_trans_commit_edit()
-	
+
 2002-10-15  Derek Atkins  <derek at ihtfp.com>
 	* Christian Krause's dialog-utils patch for style
 
@@ -10248,7 +10334,7 @@
 	  Fixes bug 94648.
 
 	* src/engine/engine-helpers.c: fix a compiler warning
-	
+
 2002-10-15  David Hampton  <hampton at employees.org>
 
 	* src/gnome-utils/dialog-utils.c (gnc_handle_date_accelerator): Be
@@ -10291,12 +10377,12 @@
 	  adjust those values based on the commodity.
 
 	* src/backend/file/test/test-file-stuff.c -- don't spew so much
-	
+
 	* src/test-core and src/engine/test-core should not be added to
 	  the gnucash-build-env (noinst_ is a static library)
 
 	* add library directories for "make check"
-	
+
 2002-10-14  Chris Lyttle  <chris at wilddev.net>
 
 	* src/import-export/Makefile.am: fix make dist breakage
@@ -10309,7 +10395,7 @@
 	* configure.in: change to version 1.7.1
 	* AUTHORS: moved Benoit to main developers
 	* NEWS: added section for 1.7.1 release.
-	
+
 2002-10-13  David Hampton  <hampton at employees.org>
 
 	* src/scm/printing/print-check.scm: The check printing setup
@@ -10375,10 +10461,10 @@
 	gnc-session.c. #94551
 
 2002-10-09  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/Account-matcher.c: Change "Account ID" text
-	to "Full account ID" and make it translatable. 
-	* src/import-export/ofx/gnc-ofx-import.c: Use the new account 
+	to "Full account ID" and make it translatable.
+	* src/import-export/ofx/gnc-ofx-import.c: Use the new account
 	name field of LibOFX to help the user identify the account.
 	Starting now, until further notice you 	need LibOFX CVS available
 	at http://sourceforge.net/cvs/?group_id=61170 to build the
@@ -10387,7 +10473,7 @@
 2002-10-08  Derek Atkins  <derek at ihtfp.com>
 	* books do not need to generate events
 	* however they should generate destroy events
-	
+
 2002-10-07  Derek Atkins  <derek at ihtfp.com>
 	* Rename "print invoice" to "printable invoice"
 
@@ -10395,12 +10481,12 @@
 
 	* created the backend-api document
 	* removed the old Query code (bug #94318)
-	
+
 2002-10-07  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/druid-hbci-initial.c: Fix and activate
 	the initialization functions again; therefore, the HBCI subsystem
-	is now open for testing (requires openhbci-CVS as of Oct 03). 
+	is now open for testing (requires openhbci-CVS as of Oct 03).
 
 	* src/import-export/hbci/hbci-interaction.[hc]: Close button
 	hides, not destroys.
@@ -10467,7 +10553,7 @@
 	function to check all descendants of an account to see if any of
 	them is a placeholder account.
 
-	* src/gnome/window-register.c (gnc_reg_get_placeholder): 
+	* src/gnome/window-register.c (gnc_reg_get_placeholder):
 	(regWindowDetermineReadOnly): New routines for determining if a
 	register contains a placeholder account, and putting up a nice
 	dialog about it.
@@ -10496,7 +10582,7 @@
 
 2002-10-05  David Hampton  <hampton at employees.org>
 
-	* src/engine/gnc-engine-util.c (gnc_set_xxx_message): 
+	* src/engine/gnc-engine-util.c (gnc_set_xxx_message):
 	(gnc_send_gui_xxx): New routines that let the engine display gui
 	warning/error messages.  The callbacks must be initialized by the
 	gui layer.
@@ -10517,7 +10603,7 @@
 2002-10-05  Derek Atkins <derek at ihtfp.com>
 	* Fix the autoconf-2.13/2.52/2.53 problems -- Gnucash should now
 	  work on all versions of auto-tools, although it now requires GnuMake.
-	
+
 	* configure.in -- just pass LIBOBJS directly to the Makefile; pass
 	  a sed script that uses '$U' (which is a 2.53ism, but works right
 	  on 2.13) to the Makefile.
@@ -10534,7 +10620,7 @@
 	* use the checkbox cell in the EntryLedger
 
 	* make the Invoiced? cell mutable under limited conditions
-	
+
 2002-10-03  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/gnc-hbci-gettrans.[hc]: Separate the
@@ -10577,7 +10663,7 @@
 	(based on the work of Martijn van Oosterhout and portfolio.scm
 	by Robert Merkel)
 
-	* src/report/standard-reports/standard-reports.scm: add 
+	* src/report/standard-reports/standard-reports.scm: add
 	advanced-portfolio.scm to gncscmmod_DATA
 
 	* doc/build-suse.txt: updated for GnuCash 1.7
@@ -10605,7 +10691,7 @@
 
 	* src/gnc-test-env: define LTDL_LIBRARY_PATH
 	* src/bin/overrides/gnucash-build-env: fix trailing whitespace bug
-	
+
 2002-09-29  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/backend/file/io-gncxml-v2.c
@@ -10631,7 +10717,7 @@
 	import. Requires OpenHBCI CVS update.
 
 2002-09-29  Benoit Grégoire  <bock at step.polymtl.ca>
-	
+
 	* src/import-export/Transaction-matcher.c: Fix	segfault when
 	importing into a gnucash account which has no splits.
 
@@ -10639,7 +10725,7 @@
 	commodity autoselection.
 
 2002-09-28  Derek Atkins  <derek at ihtfp.com>
-	
+
 	* fix g-wrap testing in configure to work with an existing config.cache
 
 2002-09-26  David Hampton  <hampton at employees.org>
@@ -10648,13 +10734,13 @@
 
 	* doc/Makefile.am: Automatically update the date and version
 	number in the man pages.
-	
+
 	* src/app-file/gnc-file.c(gnc_post_file_open): Change the button
 	labels to be even more explicit.
-	
+
 	* src/report/standard-reports/balance-sheet.scm: Use the report
 	name from the options instead of a hard coded report title.
-	
+
 2002-09-26  Benoit Grégoire  <bock at step.polymtl.ca>
 
 	* src/import-export/ofx/gnc-ofx-import.c: The default commodity
@@ -10666,7 +10752,7 @@
 	* src/import-export/Account-matcher.c, gnc-generic-import.h:
 	-Fix the new_account_default_type parameter of
 	gnc_import_select_account() not selecting default type properly.
-	-Add auto_create parameter to gnc_import_select_account().  
+	-Add auto_create parameter to gnc_import_select_account().
 	If this parameter is 0 and the function is called, it will silently
 	return NULL if no matching account is found, instead of asking the
 	user to select or create an account.
@@ -10765,17 +10851,17 @@
 	percentage done number out to the session code, and a callback for
 	the session code to pass this percentage out to the caller's gui
 	display function.
-	
+
 	* src/app-file/gnc-file-p.h:
 	* src/app-file/gnc-file.c (gnc_file_set_pct_handler): Add a file
 	handler "percent done" routine that can be installed.
-	
+
 	* src/app-file/gnc-file.c (gnc_post_file_open) (gnc_file_save):
 	Call the file handler routine pre/post file read/write, and pass
 	the handler into the backend so that it can report percentage
 	complete.
 
-	* src/app-file/gnc-file.c (gnc_file_export_file): 
+	* src/app-file/gnc-file.c (gnc_file_export_file):
 	New export function.  This is the upper half of the exporting
 	function.  This is designed similar to the read/write routines.
 
@@ -10787,7 +10873,7 @@
 	* src/backend/file/io-example-account.c
 	(gnc_write_example_account):New calling arguments.  Add counters.
 	Invoke the percentage done callback where appropriate.
-	
+
 	* src/backend/file/io-gncxml-v2.c (add_schedXaction_local)
 	(run_callback) (write_xxx): New calling arguments.  Add counters.
 	Invoke the percentage done callback where appropriate.
@@ -10798,7 +10884,7 @@
 	(gnc_book_write_accounts_to_xml_filehandle_v2): Remember count of
 	items to process. (gnc_book_write_accounts_to_xml_file_v2): Other
 	part of the lower half of the exporting function.
-	
+
 	* src/backend/file/io-utils.c (write_account_group)
 	(write_accounts):New calling arguments.  Add counters.  Invoke the
 	percentage done callback where appropriate.
@@ -10807,7 +10893,7 @@
 	* src/backend/rpc/RpcBackend.c:
 	* src/enfine/Backend.c:
 	Initialize the new pointers in the backend data structure.
-	
+
 	* src/gnome/window-main.c (gnc_main_window_file_export_cb):
 	The file export function was moved into gnc-file.c.
 
@@ -10816,7 +10902,7 @@
 	session read/write hooks here because of the new callback. Keeps
 	scheme out of the main session sources.
 
-	* src/engine/gnc-session.c (gnc_session_load): 
+	* src/engine/gnc-session.c (gnc_session_load):
 	(gnc_session_save): Added a callback for percentage done.
 	(gnc_session_export): New export function. This is the middle of
 	the exporting function.  This is designed similar to the
@@ -10831,7 +10917,7 @@
 
 	* src/scm/main.scm: I18n new splash screen strings. Destroy splash
 	screen after loading data file.
-	
+
 2002-09-16  Derek Atkins  <derek at ihtfp.com>
 	Fix bug #91413 -- Add TaxTable defaults to Customers and Vendors
 
@@ -10872,7 +10958,7 @@
 	  subtotals properly on the current-line.
 
 	* configure.in -- die during configure if g-wrap version is wrong
-	
+
 2002-09-15  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_mark): Fix
@@ -10895,7 +10981,7 @@
 	  stages of the startup.
 
 	Font Problems
-	
+
 	* src/gnome/top-level.c (gnc_gui_init): Exit gracefully if the
 	register fonts can't be loaded.
 
@@ -10919,16 +11005,16 @@
 	  clearly separate the "bill" and "invoice" data.
 	* business-core/gw-business-core-spec.scm -- change scheme API
 	  to match the new gncEntry API
-	
+
 	* business-core/gncInvoice.c -- use new gncEntry API.  If posting
 	  a bill, set the invoice-price on each "billable" item.
 
 	* business-gnome/business-prefs.scm -- duplicate the Taxincluded
 	  preference into Invoice Taxincluded and Bill Taxincluded.
-	
+
 	* business-gnome/dialog-invoice.c -- use proper Price (Invoice
 	  Price or Bill Price) when sorting by price.
-	
+
 	* business-ledger/gncEntryLedgerP.h -- add "is_invoice" flag
 	* business-ledger/gncEntryLedger.c -- set is_invoice at creation
 	* business-ledger/gncEntryLedgerLayout.c -- add TaxTable columns to Bills
@@ -10969,7 +11055,7 @@
 
 	* src/gnome/window-main.c: Added a prefix to the call that
 	installs menu extensions.
-	
+
 	* src/business/business-gnome/dialog-invoice.c:
 	* src/gnome/window-register.c: Now installs any menu extensions
 	available for the window.
@@ -10991,7 +11077,7 @@
 	* src/report/report-system/html-style-info.scm
 	(gnc:default-html-gnc-monetary-renderer): Add new workaround to
 	display the Euro symbol correctly in gtkhtml.
-	
+
 2002-08-28  Derek Atkins <derek at ihtfp.com>
 	* Update README to mention g-wrap 1.3.2 (instead of 1.1.9)
 	* Update ltmain.sh with a (commented-out) patch to maybe cope
@@ -11045,7 +11131,7 @@
 	* src/import-export/hbci/*: much more HBCI work. Ini-Letter of
 	user can already be printed. However no information is *sent* to
 	the bank or saved to disk so far, so everybody can play around as
-	you like. 
+	you like.
 
 2002-08-14  Joachim Breitner <mail at joachim-breitner.de>
 
@@ -11070,7 +11156,7 @@
 
 2002-08-11  David Hampton  <hampton at employees.org>
 
-	* acinclude.m4: 
+	* acinclude.m4:
 	* configure.in: Add upper bounds checking on the versions of
 	guile and g-wrap.
 
@@ -11171,7 +11257,7 @@
 
 	* src/import-export/hbci/*: More work on HBCI support (HBCI data
 	is now actually stored in book's and account's kvp frames).
-	
+
 	* src/import-export/gnc-generic-import.h: Clarified docs.
 
 	* src/engine/kvp_frame.h: Clarified doc about kvp_value_get_string
@@ -11280,7 +11366,7 @@
 
 	* src/gnome/dialog-sx-from-trans.c (sxftd_compute_sx): Create SXes
 	with an appropriate initial instance-count value.
-	
+
 	* src/gnome/dialog-scheduledxaction.c
 	(schedXact_editor_populate): Create SXes with an appropriate
 	initial instance-count value.
@@ -11288,7 +11374,7 @@
 	* src/engine/SchedXaction.[ch]: Added support for an
 	instance-count, in order to support an implicit 'i' [of N]
 	variable to SX formula/function processing.
-	
+
 	* src/engine/SX-ttinfo.c (gnc_ttsplitinfo_free): Made the
 	ttsplitinfo_free'ing a bit safer.
 
@@ -11305,7 +11391,7 @@
 	(test_parser): Added tests for string params to functions.
 
 	* ChangeLog: Added entry I forgot from last time.
-	
+
 	* src/app-utils/gnc-exp-parser.c (func_op): Added support for
 	typed parameters to functions; params are either numerics or
 	strings.  Result of function is now parsed correctly.
@@ -11347,18 +11433,18 @@
 
 	* src/gnome/druid-loan.[ch]: Added; Initial implementation of
 	Gnome Druid for setting up loan-repayment Scheduled Transactions.
-	
+
 	* src/doc/loans.txt: Added; notes about how loans will be dealt
 	with in GnuCash.
-	
+
 	* src/gnome/glade/sched-xact.glade: Added loan-druid.
-	
+
 	* src/gnome/window-main.c (gnc_main_window_create_menus): Added
 	'Mortgage/Loan Repayment Setup' Druid invocation menu item.
 
 	* src/scm/fin.scm: Added. Implementations of 'ipmt', 'ppmt', 'pmt'
 	and supporting code.
-	
+
 	* src/app-utils/test/test-exp-parser.c (test_parser): Added tests
 	for functions-in-expressions.  Added [passed] test for Conrad's
 	bug.
@@ -11387,7 +11473,7 @@
 	* implement "Default Project" in the Bill register to enter a
 	  default Bill-to customer/job.  It's only visible on Bills, not
 	  Invoices.
-	
+
 2002-07-09  Derek Atkins  <derek at ihftp.com>
 
 	* "global-replace for-each-in-order for-each" because the former
@@ -11417,7 +11503,7 @@
 	  at a workable point now.
 	* dialog-invoice: call the BILL vs. INVOICE entry-ledger based
 	  on the invoice owner.
-	
+
 2002-07-08  Derek Atkins  <derek at ihtfp.com>
 
 	* kvp-option-registry.scm: create a registry of kvp-options
@@ -11427,7 +11513,7 @@
 	* option-util: add option_db_changed() function
 	* business-gnome.scm: add "File -> File Preferences" menu item
 	  which is the kvp-option dialog for the Book.
-	* business-prefs.scm: register a kvp-option generator for gnc:id-book 
+	* business-prefs.scm: register a kvp-option generator for gnc:id-book
 	* gnc-book: add gnc_book_kvp_changed() function
 	* gw-engine-spec.scm: wrap gnc_book_kvp_changed
 	* dialog-options.c: only call the SCM apply_cb if the optiondb
@@ -11448,7 +11534,7 @@
 	  <gnc:Session*> instead of a string.
 	* binary-import.scm: fix the book-opened-hook.
 	* main-window.scm: fix the book-opened/closed-hook calls
-	* main.scm: fix the book-opened/closed-hook calls	  
+	* main.scm: fix the book-opened/closed-hook calls
 
 	* gw-app-utils-spec.scm: wrap <gnc:OptionDB*>, option_db_new,
 	  option_db_destroy()
@@ -11457,27 +11543,27 @@
 	  kvp before saving it.
 	* business-gnome.scm: add code to test the kvp option-dialog
 	* kvp-scm.c: fix the delete_at_path() function to actually work right.
-	* dialog-options: create a function (and support routines) to 
+	* dialog-options: create a function (and support routines) to
 	  use SCM apply_cb and close_cb callback functions:
 	  options_dialog_set_callbacks()
 	* gw-gnome-utils-spec.scm: wrap <gnc:OptionWin*>, options_dialog_new(),
 	  options_dialog_destroy(), options_dialog_build_contents(), and
 	  options_dialog_set_callbacks()
-	
+
 2002-07-06  Derek Atkins  <derek at ihtfp.com>
 
 	* gw-kvp-spec.scm: wrap kvp_slot_set_slot_path_gslist(),
 	  kvp_slot_get_slot_path_gslist(), and gnc_book_get_slots()
 
 	* kvp-scm: create gnc_kvp_frame_delete_at_path() and wrap it.
-	  This function will clear a sub-tree out of a kvp_frame.	  
+	  This function will clear a sub-tree out of a kvp_frame.
 
 	* kvp-scm: implement KVP_TYPE_FRAME kvp-values
 
 	* gw-engine-spec.scm: wrap gnc_session_get_url(), in preparation
 	  for changing the book-opened-hook and book-closed-hook
 	  prototypes.
-	
+
 2002-07-05  Derek Atkins  <derek at ihtfp.com>
 
 	* gw-engine-spec.scm: wrap gnc_lot_get_split_list
@@ -11485,7 +11571,7 @@
 
 	* invoice.scm: add the ability to show the payments applied to
 	  the invoice
-	
+
 2002-07-04  Derek Atkins  <derek at ihtfp.com>
 
 	* option-util.c: add gnc_option_get_option_data() function
@@ -11506,7 +11592,7 @@
 	  invoice a visible option on the general page; deal with "printing"
 	  un-posted invoices.
 	* receivables.scm: remove code I don't need
-	
+
 2002-07-03  Derek Atkins  <derek at ihtfp.com>
 
 	* moved receivable and payable aging reports to business-reports;
@@ -11526,7 +11612,7 @@
 	bunch of the business reports.  wrap gncOwnerCopy().
 
 	* fix the "Create Test Data" extension
-	
+
 2002-07-03  Christian Stimming  <stimming at tuhh.de>
 
 	* src/gnome/druid-hierarchy.c (gnc_get_ea_locale_dir): If current
@@ -11572,17 +11658,17 @@
 	* dialog-options: Limit account-list by types.
 
 	* Update payables and receivables reports to limit account types.
-	
+
 2002-07-01  Derek Atkins  <derek at ihtfp.com>
 
 	* business-gnome/dialog-invoice.c: make all my callbacks
 	non-static; remove the toolbar creation code.
 	* business-gnome/glade/invoice.glade: create the toolbar in glade.
-	
+
 2002-07-01  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome/dialog-scheduledxaction.c:
-	* src/gnome/dialog-sxsincelast.c: 
+	* src/gnome/dialog-sxsincelast.c:
 	* src/app-utils/prefs.scm: Added options/code-support for
 	saving/restoring sizes of SX-related windows.  Fixes bug 86007.
 
@@ -11617,7 +11703,7 @@
 	(xaccSchedXactionGetInstanceAfter): Fixed bug in
 	number-of-occurrence instance-state processing.
 
-	* src/register/ledger-core/gnc-regwidget.c: 
+	* src/register/ledger-core/gnc-regwidget.c:
 	* src/gnome/dialog-schedxaction.c:
 	* src/gnome/dialog-sxsincelast.c:
 	* src/engine/SchedXaction.[ch]:
@@ -11632,7 +11718,7 @@
 	* fix the business XML to use symbolic names for enums (instead of
 	their integer values).  This is an incompatible change -- old
 	business XML objects will not load properly.
-	
+
 2002-06-29  David Hampton  <hampton at employees.org>
 
 	* configure.in:
@@ -11696,10 +11782,10 @@
 	* src/import-export/ofx/gncmod-ofx-import.c:
 	* src/import-export/ofx/ofx-import.scm: Benoit Gregoire's changes
 	to make the OFX import module build its own menu item at runtime.
-	
-	* src/gnome-utils/gnc-mdi-utils.c: 
-	* src/gnome/dialog-price-edit-db.c: 
-	* src/gnome/window-acct-tree.c: 
+
+	* src/gnome-utils/gnc-mdi-utils.c:
+	* src/gnome/dialog-price-edit-db.c:
+	* src/gnome/window-acct-tree.c:
 	* src/gnome/window-main.c: Fix parameter names in documentation.
 
 2002-06-23  Joshua Sled  <jsled at asynchronous.org>
@@ -11750,7 +11836,7 @@
 
 	* .../business-gnome/business-prefs.scm: move the business
 	preferences (default option creation) to its own scheme file.
-	
+
 2002-06-20  David Hampton  <hampton at employees.org>
 
 	* src/engine/Transaction.[ch]: New function
@@ -11777,20 +11863,20 @@
 	[variable-containing] transaction. Inform the user if they try to
 	create an auto-create transaction which has variables, as this is
 	not allowed.
-	
+
 
 2002-06-18  David Hampton  <hampton at employees.org>
 
 	* src/gnome/window-main.c: Make a couple of functions globally
 	visible.
-	
+
 	* src/gnome/window-register.c:
 	* src/gnome/glade/register.glade: Reorganize the menus in the
 	register window.  Convert the register window over to a glade
 	based window using glade_xml_signal_autoconnect.  Rename a bunch
 	of short named function to the form gnc_register_xxx to insure
 	uniqueness.
-	
+
 2002-06-16  Derek Atkins   <derek at ihtfp.com>
 
 	* Refactor a lot of the business code.  Move the tax-table dialog
@@ -11828,7 +11914,7 @@
 	* business-gnome.scm: add the Tax Table gui; rename the 'Invoice'
 	option page to "Business".  Fix dialog-invoice to use the new
 	option name.
-	
+
 2002-06-11  David Hampton  <hampton at employees.org>
 
 	* src/gnome/druid-stock-split.c: Add automatic focusing on a
@@ -11913,7 +11999,7 @@
 	document.
 
 	Fix a Transaction Void bug.
-	
+
 	Fix a few bugs in test code.
 
 2002-06-04  David Hampton  <hampton at employees.org>
@@ -11942,7 +12028,7 @@
 	* src/gnome-utils/print-session.[ch]:
 	* src/scm/printing/print-check.scm: Eliminate warning messages
 	while printing.
-	
+
 2002-05-27  Derek Atkins   <derek at ihtfp.com>
 
 	* src/app-utils/option-util.c: Add a function to reset all the gui
@@ -11966,7 +12052,7 @@
 	* app-utils.scm: export the new radiobutton option creators
 	* prefs.scm: change the Account Separator to a radiobutton; move
 	to its own page
-	
+
 2002-05-26  Derek Atkins   <derek at ihtfp.com>
 
 	* src/gnome-util/dialog-options.[ch]: Create an option-type
@@ -11975,7 +12061,7 @@
 	type == blah blah..." code and use the new options-type database.
 	New options require the implementation of three functions,
 	set_widget(), set_value(), and get_value().
-	
+
 2002-05-24  Derek Atkins   <derek at ihtfp.com>
 
 	* src/engine/GNCId.c: Implement xaccForeachEntity() as a which
@@ -11989,7 +12075,7 @@
 	* gnc-engine.c: call the registration functions for Splits,
 	Transactions, Accounts, and Books to enable searching using the
 	new search subsystem.
-	
+
 2002-05-23  David Hampton  <hampton at employees.org>
 
 	* src/gnome/reconcile-list.c: Encapsulate all list sorting logic
@@ -12021,7 +12107,7 @@
 
 	* libc/Makefile.am: Use LIBLTOBJS instead of LIBOBJS.
 
-	* src/backend/file/sixtp-utils.c (string_to_gint64): 
+	* src/backend/file/sixtp-utils.c (string_to_gint64):
 	(string_to_gint32): (string_to_timespec_nsecs): Work around bugs
 	in Mac OS X version of sscanf.
 
@@ -12034,7 +12120,7 @@
 2002-05-14  David Hampton  <hampton at employees.org>
 
 	* configure.in (AC_CANONICAL_HOST): Remove redundant command.
-	
+
 	* Makefile.am (ACLOCAL_AMFLAGS): New variable required by gettext
 	0.11.
 
@@ -12063,7 +12149,7 @@
 
 	returned lost invoice functionality: open the invoice-register
 	window when you 'ok' a new invoice.
-	
+
 2002-05-09   Derek Atkins   <derek at ihtfp.com>
 
 	Fixed dialog-order.  Should now complain less during compilation.
@@ -12136,7 +12222,7 @@
 	specified for next time.
 
 	* src/app-utils/prefs.scm:
-	* src/engine/date.c: 
+	* src/engine/date.c:
 	* src/gnome/top-level.c (gnc_configure_date_format): Change the
 	default date format to be the user's LOCALE setting.
 
@@ -12171,11 +12257,11 @@
 	callback routine, not all calls.
 
 	* src/gnome/dialog-commodities.c:
-	* src/gnome/dialog-fincalc.c: 
+	* src/gnome/dialog-fincalc.c:
 	* src/gnome/dialog-price-editor.c:
 	* src/import-export/qif-import/druid-qif-import.c: Show_handler()
 	routine now returns T/F.
-	
+
 	* src/business/business-gnome/dialog-employee.c:
 	* src/business/business-gnome/dialog-job.c:
 	* src/business/business-gnome/dialog-order.c:
@@ -12228,10 +12314,10 @@
 	* src/register/ledger-core/gnc-regwidget.c:
 	* src/register/ledger-core/split-register-control.c:
 	* src/register/ledger-core/split-register-model.c:
-	* src/register/ledger-core/split-register.c 
+	* src/register/ledger-core/split-register.c
 	* src/report/report-gnome/window_report.c: Move string formatting
 	logic into the gnc_xxx_dialog routines.
-	
+
 	* src/scm/price-quotes.scm: Include gw-gnome-utils module.
 	(gnc:book-add-quotes book): Move string formatting logic into the
 	gnc_xxx_dialog routines.
@@ -12286,7 +12372,7 @@
 	* src/gnome/window-reconcile.c (gnc_ui_reconcile_window_raise):
 	* src/gnome/window-register.c (gnc_register_raise):
 		(gnc_register_show_date_window):
-	* src/gnome-utils/dialog-options.c (gnc_show_options_dialog): 
+	* src/gnome-utils/dialog-options.c (gnc_show_options_dialog):
 	* src/register/ledger-core/gnc-regwidget.c (gnc_register_raise):
 	* src/report/report-gnome/dialog-column-view.c:
 	* src/report/report-gnome/window-report.c
@@ -12310,7 +12396,7 @@
 	(show_handler): New routine.
 	(gnc_ui_qif_import_druid_make):Convert to use the new logic for
 	raising windows.
-	
+
 2002-04-17  Joshua Sled  <jsled at asynchronous.org>
 
 	* src/gnome/dialog-scheduledxaction.c
@@ -12375,7 +12461,7 @@
 
 	* src/gnome/druid-stock-split.c(-account_currency_filter):
 	Removed.
-	
+
 	* src/gnome/druid-stock-split.c(gnc_stock_split_druid_create): On
 	the "Cash In Lieu" page of the druid, remove the filter on which
 	accounts can be selected.
@@ -12385,16 +12471,16 @@
 	* make-gnucash-patch.in: Make sure the 'manifest' argument is a
 	fully specified pathname before passing it off to the makepatch
 	program.
-		
+
 	* src/gnome/dialog-transfer.c: Additional support for
 	"placeholder" accounts.
-	
+
 	* src/gnome/druid-hierarchy.c: Additional support for
 	"placeholder" accounts.
-	
+
 	* src/gnome/druid-stock-split.c: Additional support for
 	"placeholder" accounts.
-	
+
 	* src/gnome/glade/account.glade: Additional support for
 	"placeholder" accounts.
 
@@ -12402,10 +12488,10 @@
 
 	* src/dialog-account/dialog-account.c: Initial support for
 	"placeholder" accounts.
-	
+
 	* src/engine/Account.c: Initial support for "placeholder"
 	accounts.
-	
+
 	* src/engine/Account.h: Initial support for "placeholder"
 	accounts.
 
@@ -12481,7 +12567,7 @@
 
 	* src/engine/gnc-engine.c: initialize the object registration and
 	QueryNew subsystems.
-	
+
 	* first revision of the "QueryNew" interface.  Note that the
 	interface is not complete -- in fact, the API will be changing
 	this afternoon, but I wanted a baseline (working) system checked
@@ -12525,7 +12611,7 @@
 
 	* configure.in: switch to check and only install the srfis we
 	need. do the same for guile-www.
-	(AM_PATH_GWRAP): require g-wrap 1.3.2. 
+	(AM_PATH_GWRAP): require g-wrap 1.3.2.
 	(CFLAGS): add -Wno-uninitialized and -Wno-unused to accommodate
 	g-wrap issues.
 	(GNUCASH_ENGINE_LIBS): remove libgw-glib -- now provided by g-wrap.
@@ -12564,7 +12650,7 @@
 	(gnc:get-match-commodity-splits): quit using gnc:glist->list --
 	new g-wrap eliminates need.
 
-	* src/report/report-gnome/window-report.c: 
+	* src/report/report-gnome/window-report.c:
 	g-wrap-runtime-guile.h -> g-wrap-wct.h
 
 	* src/report/report-gnome/dialog-column-view.c:
@@ -12992,7 +13078,7 @@
 
 	* src/bin/overrides/gnucash-build-env.in: add report-gnome to
 	test-env.  Change envt vars to reflect new scheme:
-	GNC_CONFIG_PATH, GNC_SHARE_PATH, and GNC_DOC_PATH. 
+	GNC_CONFIG_PATH, GNC_SHARE_PATH, and GNC_DOC_PATH.
 
 	* src/backend/postgres/test/test-db.c
 	(db_file_url): find the postgres communication socket directory
@@ -13198,10 +13284,10 @@
 
 2001-12-05  Bill Gribble  <grib at billgribble.com>
 
-	* use AM_PATH_LIBGLADE instead of gnome-config for libglade paths 
+	* use AM_PATH_LIBGLADE instead of gnome-config for libglade paths
 
-	* add --disable-gui option to configure.in and reshuffle 
-	src/Makefile.am to not build gui code if it's used. 
+	* add --disable-gui option to configure.in and reshuffle
+	src/Makefile.am to not build gui code if it's used.
 
 2001-12-04  Rob Browning  <rlb at defaultvalue.org>
 
@@ -13416,21 +13502,21 @@
 
 	* src/bin/overrides/.cvsignore: new file.
 
-	* src/bin/gnucash.in: removed. 
+	* src/bin/gnucash.in: removed.
 
-	* src/bin/gnucash-make-guids.in: removed. 
+	* src/bin/gnucash-make-guids.in: removed.
 
-	* src/bin/gnucash-run-script.in: removed. 
+	* src/bin/gnucash-run-script.in: removed.
 
 	* src/bin/guile.in: moved to src/bin/overrides.
 
-	* src/bin/gnucash-env.in: moved to src/bin/overrides. 
+	* src/bin/gnucash-env.in: moved to src/bin/overrides.
 
 	* src/import-export/qif-import/Makefile.am (.scm-links): new target.
 
-	* src/gnome/gnucash.h: removed. 
+	* src/gnome/gnucash.h: removed.
 
-	* src/gnome/gnucash.c.in: removed. 
+	* src/gnome/gnucash.c.in: removed.
 
 	* src/gnome/i18n.h.in: moved to src/app-utils.
 
@@ -13703,7 +13789,7 @@
 
 2001-11-13  Robert Graham Merkel <rgmerk at mira.net>
 
-	* src/gnc-module/Makefile.am: libgw-gnc-module.la needs 
+	* src/gnc-module/Makefile.am: libgw-gnc-module.la needs
           to be linked to libgncmodule.la
 
 2001-11-12  Rob Browning  <rlb at defaultvalue.org>
@@ -13872,7 +13958,7 @@
 
 	* src/gnome/glade/sched-xact.glade: Added as-yet-unused Start
 	Date widgets to make-from-transaction dialog.
-	
+
 	* src/gnome/dialog-sx-from-trans.c (sxftd_add_template_trans): Use
 	the user-friendly amount formating instead of a stringified
 	gnc_numeric.  Copies the account data over into the template
@@ -13908,7 +13994,7 @@
 	confederation of multiple dialogs to the strong central authority
 	of a GnomeDruid-based since-last-run UI.  Renamed '_'-led
 	functions.
-	
+
 	* src/gnome/glade/sched-xact.glade: Fixed a non-unique-name
 	problem between the GnomeNumberEntry "end_nentry" and it's
 	GtkEntry "end_nentry".  Added Druid-based Since-Last-Run dialog.
@@ -14112,7 +14198,7 @@
 
 	* src/engine/engine.scm: added use-modules.
 
-	* src/app-utils/guile-util.h: 
+	* src/app-utils/guile-util.h:
 	(gnc_depend): deleted.
 	(gnc_scm_lookup): new prototype.
 
@@ -14417,7 +14503,7 @@
 
 	* src/guile/.cvsignore: add gw-gnc.scm.
 
-	* src/gnome-utils/test/Makefile.am 
+	* src/gnome-utils/test/Makefile.am
 	(CFLAGS): move INCLUDES bits to CFLAGS.
 
 	* src/gnome-utils/Makefile.am
@@ -14496,7 +14582,7 @@
 	* src/calculation/Makefile.am
 	(CFLAGS): move INCLUDES bits to CFLAGS.
 
-	* src/backend/rpc/Makefile.am: 
+	* src/backend/rpc/Makefile.am:
 	(CFLAGS): move INCLUDES bits to CFLAGS.
 
 	* src/backend/postgres/test/Makefile.am
@@ -14607,7 +14693,7 @@
 
 2001-10-08  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/engine/test/test-transaction-voiding.c (run_test): remove 
+	* src/engine/test/test-transaction-voiding.c (run_test): remove
 	diagnostic stuff needed for initial debugging, fix bug in test.
 
 	* src/engine/Transaction.c: removed transaction void debugging
@@ -14632,7 +14718,7 @@
 
 2001-10-03  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* */Makefile.am: changes for automake 1.5 compatibility (still not 
+	* */Makefile.am: changes for automake 1.5 compatibility (still not
 	perfect).
 
 	* configure.in: changes for automake 1.5 compatibility
@@ -14721,7 +14807,7 @@
 	refresh as a callback.
 
 	* src/gnome/window-register.c: fix menu names and help strings
-	
+
 	* src/backend/file/gnc-schedxaction-xml-v2.c
 	(gnc_schedXaction_end_handler): open account for editing
 	before destroying it.
@@ -14839,7 +14925,7 @@
 
 	* src/engine/GNCId.h: changed include guards to fix in with policy.
 
-	* src/engine/SchedXaction.{ch}: added function to turn structures in 
+	* src/engine/SchedXaction.{ch}: added function to turn structures in
 	SX-ttinfo.c into real template trans, fixed bugs.
 
 	* src/engine/kvp-doc.txt: updated docs.
@@ -14849,7 +14935,7 @@
 	* src/gnome/dialog-commodity.h: fixed include guards (previously, name
 	started with underscore).
 
-	* src/gnome/window-register.c: added code to let user activate 
+	* src/gnome/window-register.c: added code to let user activate
 	SX-from-trans dialog
 
 2001-08-25  Christian Stimming  <stimming at tuhh.de>
@@ -14932,10 +15018,10 @@
 	link line.
 
 	* src/guile/Makefile.am: remove file-utils.[ch] &
-	argv-list-encoders.[ch] 
+	argv-list-encoders.[ch]
 
 	* src/gnome/Makefile.am (SUBDIRS): add file-utils.[ch] &
-	argv-list-encoders.[ch] 
+	argv-list-encoders.[ch]
 
 2001-08-16  Bill Gribble  <grib at billgribble.com>
 
@@ -14951,23 +15037,23 @@
 	* src/report/utility-reports: non-financial reports
 
 	* src/report/locale-specific: reports that only apply to specific
-	locales. 
+	locales.
 
 	* src/report/stylesheet: report style sheet definitions
 
 2001-08-16  James LewisMoss  <jimdres at mindspring.com>
 
 	* src/guile/argv-list-converters.c (print_argv): remove unused
-	function. 
+	function.
 
 2001-08-16  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/engine/FreqSpec.c: Take out day and month name arrays - use 
+	* src/engine/FreqSpec.c: Take out day and month name arrays - use
 	strftime instead.  i18n Date formatting.  Replace magic numbers.
 
 	* src/gnome/glade/sched-xact.glade: Add "select all" and "unselect all"
 	buttons to obsolete-sx dialog.
-	
+
 	* src/gnome/dialog-sxsincelast.c: Remove string literals and magic
 	numbers.  (freq_type_to_string) remove.  (_create_transactions_on):
 	catch errors a bit better. (sx_obsolete_row_{un}sel): remove unnecessary
@@ -14986,7 +15072,7 @@
 
 2001-08-15  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/engine/SchedXaction.c(xaccSchedXactionFree): fix 
+	* src/engine/SchedXaction.c(xaccSchedXactionFree): fix
 	bug.
 
 	* src/gnome/dialog-sxsincelast.c: add "obsolete
@@ -14995,7 +15081,7 @@
 	* src/gnome/glade/sched-xact.glade: add obsolete SX dialog
 	stuff.
 
-	* src/scm/report-utilities.scm (gnc:amount->string): fix 
+	* src/scm/report-utilities.scm (gnc:amount->string): fix
 	bug.
 
 2001-08-14  James LewisMoss  <jimdres at mindspring.com>
@@ -15082,8 +15168,8 @@
 
 2001-08-08  Bill Gribble  <grib at billgribble.com>
 
-	* fix Makefile.am in various places to clean up libtool 
-	problems.  These changes may still need fine tuning to make 
+	* fix Makefile.am in various places to clean up libtool
+	problems.  These changes may still need fine tuning to make
 	everything work with both libtool 1.4 and 1.3.5
 
 2001-08-08  Dave Peticolas  <dave at krondo.com>
@@ -15148,8 +15234,8 @@
 	* unfinished new QIF import/export module (the old one's still
 	there and still works)
 
-	* really too many files touched to get into it.  
-	
+	* really too many files touched to get into it.
+
 2001-08-06  Dave Peticolas  <dave at krondo.com>
 
 	* src/register/table-html.[ch]: remove
@@ -15221,7 +15307,7 @@
 	* src/engine/SchedXaction.{ch}: modified indenting to 2 spaces.
 
 	* src/engine/SchedXaction.{ch}: Added member for recording if
-	SX has changed since last save. 
+	SX has changed since last save.
 	(xaccSchedXactionSetDirtyness) provide API for modifying that field.
 	All setter functions changed to set member appropriately.
 	(xaccSchedXactionSetSlot, XaccSchedXactionGetSlot): New functions
@@ -15244,7 +15330,7 @@
 2001-07-30  James LewisMoss  <jimdres at mindspring.com>
 
 	* src/engine/Query.c: move test code to a test-queries in test
-	directory. 
+	directory.
 
 	* src/engine/io-gncbin-r.c: remove #if 0'ed code.
 
@@ -15278,7 +15364,7 @@
 
 	* src/engine/SchedXaction.{ch}: Store template account in the
 	SchedXaction structure, get rid of splitlist from structure.
-	
+
 	* src/engine/gnc-schedxaction-xml-v2.c: replaced tag literals
 	with #define'd constants.
 	(gnc_schedXaction_dom_tree_create, sx_templ_act_handler): added
@@ -15289,10 +15375,10 @@
 2001-07-27  James LewisMoss  <jimdres at mindspring.com>
 
 	* src/engine/gnc-schedxaction-xml-v2.c: remove include of removed
-	file. 
+	file.
 
 	* src/engine/gnc-freqspec-xml-v2.c: remove include of removed
-	file. 
+	file.
 
 	* src/engine/gnc-pricedb-xml-v1.c: remove include of
 	sixtp-writers.h and remove func xml_add_gnc_pricedb (no longer
@@ -15301,14 +15387,14 @@
 	remove include of removed file.
 
 	* src/engine/io-gncxml-v1.c: move v1 kvp parser code to this
-	file. 
+	file.
 
 	* src/engine/sixtp-parsers.h: remove old v1 parser decls to
-	io-gncxml-v1.c 
+	io-gncxml-v1.c
 
 	* src/engine/gnc-schedxaction-xml-v2.c
 	(gnc_schedXaction_dom_tree_create): remove usage of
-	xml_add_gint32. 
+	xml_add_gint32.
 
 2001-07-26  James LewisMoss  <jimdres at mindspring.com>
 
@@ -15318,7 +15404,7 @@
 2001-07-26  Robert Graham Merkel  <rgmerk at mira.net>
 
 	* src/engine/SchedXaction.c (xaccSchedTransactionInit):
-	change declaration to static, uncommented g_free usage.  
+	change declaration to static, uncommented g_free usage.
 
 	* src/engine/SchedXaction.c: Moved a couple of functions
 	about.
@@ -15332,7 +15418,7 @@
 
 2001-07-25  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/engine/SchedXaction.c 
+	* src/engine/SchedXaction.c
 	(sxprivtransactionListMapDelete): renamed function.
 
 2001-07-24  Robert Graham Merkel  <rgmerk at mira.net>
@@ -15471,12 +15557,12 @@
 
 2001-07-13  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/scm/report/payables.scm: New file - an 
+	* src/scm/report/payables.scm: New file - an
 	"Accounts payable by creditor" report.
 
 	* src/scm/date-utilities.scm: Added a couple
 	more datedeltas.
-	
+
 	* src/scm/Makefile.am: update for new file.
 
 2001-07-12  Dave Peticolas  <dave at krondo.com>
@@ -15682,7 +15768,7 @@
 	backend arg directly.
 
 	* src/engine/BackendP.h (struct _backend ): add Backend arg to
-	book_begin. 
+	book_begin.
 
 	* src/engine/rpc/RpcBackend.c (rpcendInit): use xaccInitBackend to
 	set everything in the backend to default values.
@@ -15750,7 +15836,7 @@
 	* src/gnome/gnc-schedxaction-xml-v2.c: Support for new
 	SchedXaction options [create/remind-days-in-advance; auto-create,
 	notify-on-creation].
-	
+
 	* src/gnome/dialog-scheduledxaction.c (putSchedXactionInClist):
 	Fix for next-occurrence processing.
 
@@ -15817,11 +15903,11 @@
 2001-07-05  Robert Graham Merkel  <rgmerk at mira.net>
 
 	* doc/sgml/C/xacc-depreciation.sgml: Minor updates.
-	
+
 	* doc/sgml/C/xacc-price-sources.sgml: Updated for 1.6
 
 	* doc/sgml/C/image/ticker-{a,b}.png: Removed.
-	
+
 	* src/gnome/druid-qif-import.c: fix syntax bug.
 
 	* doc/sgml/C/image/<lots.png>: new and updated screenshots.
@@ -15832,14 +15918,14 @@
 
 2001-07-04  Bill Gribble  <grib at billgribble.com>
 
-	* src/gnome/druid-qif-import.c: fix cut-n-paste error in 
-	default_acct_back handler; fixes bug #106.  
+	* src/gnome/druid-qif-import.c: fix cut-n-paste error in
+	default_acct_back handler; fixes bug #106.
 
-	* src/gnome/glade/qif.glade: add some explanatory text about 
+	* src/gnome/glade/qif.glade: add some explanatory text about
 	what the "back" button does where it's not obvious
 
 	* (later) actually fix #106... first patch didn't do it
-	
+
 2001-07-04  Dave Peticolas  <dave at krondo.com>
 
 	* Makefile.am: add gnc-glossary.txt to the dist
@@ -16060,17 +16146,17 @@
 
 2001-06-19  Bill Gribble  <grib at billgribble.com>
 
-	* src/scm/qif-import/qif-parse.scm: convert to gnc-numeric when 
+	* src/scm/qif-import/qif-parse.scm: convert to gnc-numeric when
 	parsing, using string length as the precision
 
-	* src/scm/qif-import/qif-to-gnc.scm: use gnc-numeric 
+	* src/scm/qif-import/qif-to-gnc.scm: use gnc-numeric
 	math routines where necessary
-	 
-	* src/scm/qif-import/qif-file.scm: pass an equality test 
+
+	* src/scm/qif-import/qif-file.scm: pass an equality test
 	predicate to check-and-parse-fields
 
-	* src/scm/report/*: fix module reports to use-modules on 
-	srfi-1 and slib where needed. 
+	* src/scm/report/*: fix module reports to use-modules on
+	srfi-1 and slib where needed.
 
 2001-06-19  Dave Peticolas  <dave at krondo.com>
 
@@ -16083,8 +16169,8 @@
 	* src/scm/qif-import/qif-objects.scm: initialize fields to ""
 	rather than #f
 
-	* src/scm/qif-import/qif-to-gnc.scm: fix cut-n-paste error 
-	
+	* src/scm/qif-import/qif-to-gnc.scm: fix cut-n-paste error
+
 2001-06-19  Dave Peticolas  <dave at krondo.com>
 
 	* src/gnome/dialog-scheduledxaction.c: use C comments. fix warning
@@ -16099,7 +16185,7 @@
 	(gnc_transaction_end_handler): use dom_tree_to_transaction.
 
 	* src/engine/gnc-account-xml-v2.c (gnc_account_end_handler): use
-	dom_tree_to_account. 
+	dom_tree_to_account.
 
 2001-06-18  Rob Browning  <rlb at cs.utexas.edu>
 
@@ -16150,11 +16236,11 @@
 
 	* src/scm/depend.scm (gnc:depend): add optional timing facility.
 
-	* src/gnome/gnc-frequency.c: fixed some type problems. 
+	* src/gnome/gnc-frequency.c: fixed some type problems.
 
-	* src/gnome/dialog-scheduledxaction.c: fixed some type problems. 
+	* src/gnome/dialog-scheduledxaction.c: fixed some type problems.
 
-	* src/gnome/dialog-nextrun.c: fixed some type problems. 
+	* src/gnome/dialog-nextrun.c: fixed some type problems.
 
 2001-06-18  Dave Peticolas  <dave at krondo.com>
 
@@ -16303,7 +16389,7 @@
 2001-06-15  James LewisMoss  <jimdres at mindspring.com>
 
 	* src/engine/gnc-book.c (gnc_book_write_to_file): remove useless
-	line. 
+	line.
 	(make_backup): new func for duplicate functionality
 	(copy_file): new func to copy file.
 	(gnc_book_backup_file): use make_backup
@@ -16392,8 +16478,8 @@
 
 2001-06-13  Bill Gribble  <grib at billgribble.com>
 
-	* src/sc/qif-import/qif-guess-map.scm: fix bug in 
-	account name guessing 
+	* src/sc/qif-import/qif-guess-map.scm: fix bug in
+	account name guessing
 
 2001-06-13  Herbert Thoma <herbie at hthoma.de>
 
@@ -16470,7 +16556,7 @@
 2001-06-10  Christian Stimming  <stimming at tuhh.de>
 
 	* de.po: updated German translation.
-	
+
 	* configure.in, doc/sgml/Makefile.am, doc/sgml/de_DE/*: Added
 	German translation of a few manual pages, including a Whats-New
 	table for the translated words.
@@ -16486,8 +16572,8 @@
 	* src/scm/report/welcome-to-gnucash.scm: fix bug in "welcome to
 	gnucash" report
 
-	* src/gnome/dialog-column-view.c: remove printout 
-	
+	* src/gnome/dialog-column-view.c: remove printout
+
 2001-06-09  Dave Peticolas  <dave at krondo.com>
 
 	* configure.in: fix bug
@@ -16574,7 +16660,7 @@
 
 2001-06-08  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* doc/sgml/C/xacc-file-operations.sgml, xacc-quickstart.sgml, 
+	* doc/sgml/C/xacc-file-operations.sgml, xacc-quickstart.sgml,
 	xacc-regwin.sgml: updates and corrections.
 
 2001-06-07  Dave Peticolas  <dave at krondo.com>
@@ -16638,7 +16724,7 @@
 
 2001-06-07  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* doc/sgml/C/xacc-regwin.sgml: Chris "Wilddev" Lyttle's 
+	* doc/sgml/C/xacc-regwin.sgml: Chris "Wilddev" Lyttle's
 	register documentation update.
 
 	* doc/sgml/C/image/MakeFile.am, autosplitledger.png,
@@ -16653,7 +16739,7 @@
 
 	* doc/examples/reg_doc_example.xac: add register doc
 	example file.
-	
+
 	* AUTHORS: added Chris Lyttle.
 
 	* src/scm/help-topics-index.scm: Updates to reflect doc work.
@@ -16728,7 +16814,7 @@
 	* doc/sgml/C/xacc-txf-export.sgml: wrap content in sect1.
 
 	* doc/sgml/C/xacc-txf-export-anomalies.sgml: wrap content in
-	sect1. 
+	sect1.
 
 	* doc/sgml/C/xacc-txf-categories.sgml: wrap content in sect1.
 
@@ -16741,7 +16827,7 @@
 	* doc/sgml/C/xacc-regwin-kbd.sgml: wrap content in sect1.
 
 	* doc/sgml/C/xacc-regwin.sgml: remove sectionness of first
-	section. 
+	section.
 
 	* doc/sgml/C/xacc-quickstart.sgml: remove sect1.  promote sect2's
 	to sect1's.
@@ -16759,7 +16845,7 @@
 	* doc/sgml/C/xacc-net-worth-barchart.sgml: remove section title.
 
 	* doc/sgml/C/xacc-multicolumn-view-reports.sgml: remove section
-	title. 
+	title.
 
 	* doc/sgml/C/xacc-mainwin.sgml: wrap content in sect1.
 
@@ -16767,15 +16853,15 @@
 	to sect1's.
 
 	* doc/sgml/C/xacc-income-expense-piecharts.sgml: remove section
-	title. 
+	title.
 
 	* doc/sgml/C/xacc-income-expense-barcharts.sgml: remove section
-	title. 
+	title.
 
 	* doc/sgml/C/xacc-gnucash-web-browser.sgml: remove section title.
 
 	* doc/sgml/C/xacc-gnome-mdi.sgml: remove first section's
-	sectionness. 
+	sectionness.
 
 	* doc/sgml/C/xacc-dateinput.sgml: remove section title.
 
@@ -16786,15 +16872,15 @@
 	section.
 
 	* doc/sgml/C/xacc-common-report-options.sgml: remove section
-	title. 
+	title.
 
 	* doc/sgml/C/xacc-commodity.sgml: insert section around
-	everything. 
+	everything.
 
 	* doc/sgml/C/xacc-balancesheet.sgml: remove section title.
 
 	* doc/sgml/C/xacc-balancereport.sgml: insert section around
-	everything. 
+	everything.
 
 	* doc/sgml/C/xacc-depreciation.sgml: remove sectionness of first
 	bit.  leave para's as top level.
@@ -16807,10 +16893,10 @@
 	* doc/sgml/C/xacc-newacctwin.sgml: remove section title.
 
 	* doc/sgml/C/xacc-asset-liability-piecharts.sgml: remove section
-	title. 
+	title.
 
 	* doc/sgml/C/xacc-asset-liability-barcharts.sgml: remove section
-	title.  
+	title.
 
 	* doc/sgml/C/xacc-accountedit.sgml: Remove title for section so
 	"Editing an Account" doesn't appear twice.
@@ -16876,7 +16962,7 @@
 	string_to_gint64 rather than string_to_integer.
 
 	* src/engine/sixtp-utils.c: (string_to_gint64) return FALSE if the
-	content is NULL. 
+	content is NULL.
 
 	* src/engine/gnc-commodity-xml-v2.c (set_commodity_value): use
 	string_to_gint64 rather than string_to_integer.
@@ -16905,7 +16991,7 @@
 	spell check by other translators.
 
 	* po/gnc-glossary.txt: Four more entries added, that's it for now.
-	
+
 2001-06-02  Dave Peticolas  <dave at krondo.com>
 
 	* src/gnome/top-level.c (gnc_ui_start_event_loop): remove
@@ -16988,7 +17074,7 @@
 
 2001-06-01  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/scm/commodity-utilities.scm: exchange functions 
+	* src/scm/commodity-utilities.scm: exchange functions
 	now return unchanged quantity if the two currencies are
 	identical.
 
@@ -17102,7 +17188,7 @@
 
 	* src/scm/tip-list.scm: edited some tips after consultation with
 	Robert Graham Merkel.
-	
+
 	* po/sv.po: by Pablo Saratxaga <pablo at mandrakesoft.com>: changed
 	DOS end of lines to Unix end of lines.
 
@@ -17194,7 +17280,7 @@
 	* src/gnc-ui.h: add new help file
 
 2001-05-25  Robert Graham Merkel  <rgmerk at mira.net>
-	
+
 	* src/scm/report/average-balance.scm: catch all-zero-data
 	case, display warning message rather than let the graphing
 	code catch it.
@@ -17230,7 +17316,7 @@
 	* doc/sgml/C/xacc-quickstart.sgml: New file, new user
 	documentation.
 
-	* doc/sgml/C/xacc-features.sgml: New file, describing 
+	* doc/sgml/C/xacc-features.sgml: New file, describing
 	the features of GnuCash.
 
 	* doc/sgml/C/Makefile.am: update for new files.
@@ -17243,7 +17329,7 @@
 
 	* po/pt_PT.po: Duarte Loreto's updated translation.
 
-	* src/scm/prefs.scm, options-utilities.scm: fix string. 
+	* src/scm/prefs.scm, options-utilities.scm: fix string.
 
 2001-05-23  Rob Browning  <rlb at cs.utexas.edu>
 
@@ -17299,11 +17385,11 @@
 2001-05-21  Robert Graham Merkel  <rgmerk at mira.net>
 
 	* doc/sgml/C/xacc-whats-new.sgml: New file.
-	
+
 	* doc/sgml/C/xacc-multicolumn-view-reports.sgml: preliminary
 	description.
 
-	* doc/sgml/C/xacc-report.sgml, xacc-balancesheet.sgml, 
+	* doc/sgml/C/xacc-report.sgml, xacc-balancesheet.sgml,
 	xacc-asset-liability-piecharts.sgml : more updates.
 
 	* src/scm/tip-list.scm: more tips.
@@ -17394,7 +17480,7 @@
 
 	* doc/sgml/C/Makefile.am: add new file.
 
-	* doc/sgml/C/gnucash.sgml, xacc-gnome-mdi.sgml, 
+	* doc/sgml/C/gnucash.sgml, xacc-gnome-mdi.sgml,
 	xacc-asset-liability-piecharts.sgml: more updated/new content.
 
 	* ChangeLog: fix wrong path in (my) previous changelog
@@ -17416,10 +17502,10 @@
 
 2001-05-16  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/scm/html-utilities.scm ((gnc:html-make-empty-data-warning)): 
+	* src/scm/html-utilities.scm ((gnc:html-make-empty-data-warning)):
 	update message.
 
-	* doc/sgml/C/{gnucash.sgml, xacc-account-summary.sgml, 
+	* doc/sgml/C/{gnucash.sgml, xacc-account-summary.sgml,
 	xacc-asset-liability-barcharts.sgml, xacc-reports.sgml}: more new
 	material.
 
@@ -17463,13 +17549,13 @@
 	* src/scm/srfi/srfi-1.r5rs.scm: merged to lib/srfi/srfi-1.scm.
 
 	* src/scm/srfi/srfi-1.unclear.scm: merged to lib/srfi/srfi-1.scm.
-	
+
 	* src/scm/srfi/srfi-19.scm: moved to lib/srfi.
-	
+
 	* src/scm/srfi/srfi-8.guile.scm: merged to lib/srfi/srfi-8.scm.
-	
+
 	* src/scm/srfi/srfi-8.scm: merged to lib/srfi/srfi-8.scm.
-	
+
 	* src/scm/utilities.scm (flatten): improved via grib's version.
 
 	* src/scm/text-export.scm: use srfis as modules.
@@ -17648,11 +17734,11 @@
 
 2001-05-12  Bill Gribble  <grib at billgribble.com>
 
-	* src/gnome/dialog-options.c: fix destructor bug 
+	* src/gnome/dialog-options.c: fix destructor bug
 
 	* src/gnome/window-report.c: add options dialog to edited list
-	even if opened by a URL click. 
-	
+	even if opened by a URL click.
+
 	* src/gnome/window-main.c: handle close of last window safely.
 	Still don't save MDI info correctly with WM close, though.
 
@@ -17718,7 +17804,7 @@
 
 2001-05-12  Robert Graham Merkel  <rgmerk at mira.net>
 
-	* src/scm/main-window.scm: create .gnucash if it doesn't exist 
+	* src/scm/main-window.scm: create .gnucash if it doesn't exist
 	when saving a book config file.
 
 2001-05-11  Dave Peticolas  <dave at krondo.com>
@@ -17745,7 +17831,7 @@
 
 	* src/scm/main-window.scm: force-output when saving param files.
 	otherwise they don't get written until program exit, which can
-	cause problems.  Add newlines to acct tree output. 
+	cause problems.  Add newlines to acct tree output.
 
 2001-05-11  Dave Peticolas  <dave at krondo.com>
 
@@ -17785,7 +17871,7 @@
 	Doesn't really work on my system ATM.  I'll follow up on it.
 
 	* src/gnome/window-main.c: move save/restore forms out of gnome
-	MDI config string.  rename some functions. 
+	MDI config string.  rename some functions.
 
 	* src/gnome/window-report.c: save the initial report in a window
 	for special treatment.  It's the one that gets saved and restored,
@@ -17798,22 +17884,22 @@
 	file named after the book in the directory ~/.gnucash/books.
 
 	* src/scm/options.scm: run option-changed callbacks in the order
-	they were added.  Add gnc:options-touch to dirty the options 
-	without changing anything. 
+	they were added.  Add gnc:options-touch to dirty the options
+	without changing anything.
 
 	* src/scm/report.scm: add new optional fields for the
 	define-report form: 'options-cleanup-cb and 'options-changed-cb.
 	'options-cleanup-cb is called before book save to allow you to
 	clean up any mess that you don't want saved.  'options-changed-cb
 	is called after any report option is changed.  Both are optional.
-	
+
 	Also get rid of the concept of 'display-lists' for reports and
-	let the displays update themselves with callbacks.  Get rid of 
-	parents and children for the reports. 
+	let the displays update themselves with callbacks.  Get rid of
+	parents and children for the reports.
 
 	* src/scm/report/view-column.scm: revamp to handle options
 	processing, saving, and rendering better.
-	
+
 2001-05-10  James LewisMoss  <jimdres at mindspring.com>
 
 	* src/scm/main.scm ((gnc:main)): remove the main window startup
@@ -17822,7 +17908,7 @@
 	* src/engine/sql/PostgresBackend.c (pgendGetAllAccountKVP): same
 	as below.
 
-	* src/engine/rpc/RpcUtils.c (rpcend_build_gncacctlist): 
+	* src/engine/rpc/RpcUtils.c (rpcend_build_gncacctlist):
 	xaccGroupForEachAccountDeeply -> xaccGroupForEachAccount(...TRUE)
 	(rpcend_build_gncacct_verslist): same.
 
@@ -18141,8 +18227,8 @@
 	removed, replaced by new C function.
 
 	* src/scm/report/*.scm: added checks for "no-accounts-selected".
-		
-	* src/scm/report/average-balance-2.scm: New (temporary) file. 
+
+	* src/scm/report/average-balance-2.scm: New (temporary) file.
 	The average balance report with a rewritten calculation engine.
 
 	* src/scm/report/register.scm: Modified to use global styles
@@ -18237,7 +18323,7 @@
 	income-expense-graph.scm and net-worth-timeseries.scm.
 
 	* src/scm/report/*.scm: adapt to changed gnc:make-report-anchor.
-	
+
 	* src/scm/html-utilities.scm (gnc:make-report-anchor):
 	gnc:report-add-child-by-id! is now used inside here. API changed.
 
@@ -18284,7 +18370,7 @@
 	styles.
 
 	* src/scm/html-table.scm:(gnc:html-table-prepend-row/markup!)  fix
-	bug.  
+	bug.
 
 	* src/scm/report/balance-sheet.scm: use new global row styles.
 
@@ -18301,7 +18387,7 @@
 	* src/gnome/dialog-column-view.c: change to single-parent model
 
 	* src/gnome/top-level.c: don't do MID state saving and restoring
-	here... do it in the book save/load hooks. 
+	here... do it in the book save/load hooks.
 
 	* src/gnome/window-main.c: the configstring stored in MDI is now a
 	Scheme form which restores the window state.  save/restore it.
@@ -18312,9 +18398,9 @@
 	* src/scm/main-window.scm: new file.  get the main-window
 	save/restore functions out of prefs.scm
 
-	* src/scm/report/scm: only one parent per report; write save 
+	* src/scm/report/scm: only one parent per report; write save
 	routines to save all parents and children.
-	
+
 2001-04-24  Dave Peticolas  <dave at krondo.com>
 
 	* src/gnome/window-register.c: add additional warnings when
@@ -18442,13 +18528,13 @@
 	* src/gnome/dialog-column-view.c: maintain the report window
 	edited list when closing dialog.  raise an existing edit dialog.
 
-	* src/gnome/gnc-html.c: make sure we know about options editors 
+	* src/gnome/gnc-html.c: make sure we know about options editors
 	launched from gnc-options: urls
 
 	* src/gnome/window-report.c: numerous changes to improve handling
 	of options dialogs.
-	
-	* src/scm/report.scm: new function, gnc:report-edit-options.  	
+
+	* src/scm/report.scm: new function, gnc:report-edit-options.
 
 2001-04-20  Dave Peticolas  <dave at krondo.com>
 
@@ -18465,16 +18551,16 @@
 
 2001-04-19  Bill Gribble  <grib at billgribble.com>
 
-	* src/gnome/top-level.c: add call to skeleton "welcome" report 
+	* src/gnome/top-level.c: add call to skeleton "welcome" report
 	if user has not run 1.5/1.6 before
 
-	* src/scm/html-document.scm: changes to make sure styles are 
-	set for component reports in multicolumn view 
+	* src/scm/html-document.scm: changes to make sure styles are
+	set for component reports in multicolumn view
 
 	* src/scm/report.scm: clean up rendering with/without headers
 
 	* src/scm/report/stylesheet-plain.scm: get rid of <center> tag
-	on <body> 
+	on <body>
 
 	* src/scm/report/welcome-to-gnucash.scm: new report and function
 	to set up welcome to gnucash report
@@ -18518,7 +18604,7 @@
 
 	* src/gnome/dialog-options.c: don't destroy options dialog twice.
 
-	* src/gnome/window-main.c: hopefully last MDI fixes; rearrange 
+	* src/gnome/window-main.c: hopefully last MDI fixes; rearrange
 	menu and replace "New Window" with "Move to New Window."
 
 2001-04-18  Dave Peticolas  <dave at krondo.com>
@@ -18591,7 +18677,7 @@
 
 2001-04-17  Bill Gribble  <grib at billgribble.com>
 
-	* fixes to MDI bugs: only one param editor for accounts and 
+	* fixes to MDI bugs: only one param editor for accounts and
 	reports, make sure reports reference and created children
 
 	* new report: 'Frame URL'.  Give it an URL and it will display the
@@ -18682,13 +18768,13 @@
 
 2001-04-13  Bill Gribble  <grib at billgribble.com>
 
-	* Bug fixes and a couple of new features for MDI stuff.  
+	* Bug fixes and a couple of new features for MDI stuff.
 
 	* src/scm/prefs.scm: new option to set MDI mode (prefs/general)
 
 	* src/gnome/{window-acct-tree.c,window-report.c,window-main.c}:
-	bug fixes to handle runtime MDI mode changes.  
-	
+	bug fixes to handle runtime MDI mode changes.
+
 2001-04-13  Dave Peticolas  <dave at krondo.com>
 
 	* src/scm/report/*: update several reports to use
@@ -18752,9 +18838,9 @@
 	* src/scm/prefs/scm: acct tree prefs are treated differently (one
 	options obj per acct tree) and are auto-saved and restored.
 
-	* src/scm/report.scm: report options are auto saved and restored. 
+	* src/scm/report.scm: report options are auto saved and restored.
 
-	* src/scm/html-style-sheet.scm: so are style sheets. 
+	* src/scm/html-style-sheet.scm: so are style sheets.
 
 2001-04-12  James LewisMoss  <jimdres at mindspring.com>
 
@@ -18778,7 +18864,7 @@
 2001-04-12  Christian Stimming  <stimming at tuhh.de>
 
 	* src/scm/report/account-piecharts.scm: Added menu tips, menu
-	names. Use Reportname option for report title. Added an explanatory 
+	names. Use Reportname option for report title. Added an explanatory
 	text (only for devel info, will be removed again in some weeks).
 
 2001-04-12  Robert Graham Merkel  <rgmerk at mira.net>
@@ -18796,7 +18882,7 @@
 	new function.
 
 	* src/scm/report/transaction-report.scm: use above changes to sort
-	and optionally display full account names.  Fix unrelated bugs with 
+	and optionally display full account names.  Fix unrelated bugs with
 	sorting options.
 
 2001-04-11  Dave Peticolas  <dave at krondo.com>
@@ -18841,7 +18927,7 @@
 	function.
 
 	* src/scm/options.scm (gnc:options-copy-values): New function.
-	
+
 	* src/scm/report/account-piecharts.scm: Added anchors to yet other
 	reports on the slices of the pie. Simplified creation of other
 	report's options.
@@ -18850,7 +18936,7 @@
 	other report's options.
 
 	* src/scm/report/report-list.scm: Renamed file.
-	
+
 	* src/scm/report/account-piecharts.scm: Renamed to this filename
 	(used to be: income-or-expense-pie.scm). Introduced some more
 	generality such that this file also has an asset and a liability
@@ -18969,7 +19055,7 @@
 2001-04-06  Rob Browning  <rlb at cs.utexas.edu>
 
 	* src/scm/process.scm (gnc:run-sub-process): some process control
-	fixes seen on guile-devel.	
+	fixes seen on guile-devel.
 
 2001-04-06  Dave Peticolas  <dave at krondo.com>
 
@@ -19014,7 +19100,7 @@
 	* src/test/test-xml-account.c: genericify all over.
 
 	* src/test/gnc-test-stuff.c (test_load_file): use new generic
-	interface. 
+	interface.
 	(test_files_in_dir): same.
 
 	* src/engine/io-gncxml-v2.h (struct sixtp_global_data_v2_struct):
@@ -19023,7 +19109,7 @@
 	* src/engine/io-gncxml-v2.c (gnc_counter_end_handler): same as below.
 	(generic_callback): new func for generic callback.
 	(gnc_book_load_from_xml_file_v2): use new generic callback
-	mechanism. 
+	mechanism.
 
 	* src/engine/gnc-transaction-xml-v2.c
 	(gnc_transaction_end_handler): same as below.
@@ -19147,7 +19233,7 @@
 
 	* src/scm/report/pnl.scm: modify for changed arguments to
 	gnc:build-html-account-table.
-	
+
 2001-04-02  Dave Peticolas  <dave at krondo.com>
 
 	* Makefile.am: add po/README
@@ -19198,7 +19284,7 @@
 2001-03-31  Christian Stimming  <stimming at tuhh.de>
 
 	* src/scm/html-utilities.scm (gnc:html-build-acct-table): fix
-	horizontal line width if foreign currencies are shown.  
+	horizontal line width if foreign currencies are shown.
 
 2001-03-31  James LewisMoss  <jimdres at mindspring.com>
 
@@ -19222,7 +19308,7 @@
 	comment out load debug info.
 
 	* src/test/test-real-data.sh (EXIT_VALUE): don't run on a
-	directory. 
+	directory.
 
 	* src/test/gnc-test-stuff.c (test_files_in_dir): rename vars
 	file_count -> argc, files -> argv to be more accurate.
Index: split-register-layout.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/ledger-core/split-register-layout.h,v
retrieving revision 1.1.6.1
retrieving revision 1.1.6.2
diff -Lsrc/register/ledger-core/split-register-layout.h -Lsrc/register/ledger-core/split-register-layout.h -u -r1.1.6.1 -r1.1.6.2
--- src/register/ledger-core/split-register-layout.h
+++ src/register/ledger-core/split-register-layout.h
@@ -25,16 +25,12 @@
 
 #include "table-layout.h"
 #include "split-register.h"
+/** @addtogroup GUI
+@{ */
+/** @addtogroup Register Register visual layout.
 
-/** @addtogroup Register
- *  @{
- *  @file split-register-layout.h
- *  @author Copyright (C) 1998, 2004 Linas Vepstas <linas at linas.org>
- */
-
-/** Create the actual register visual layout: pick specific cell types
- *  to sit in specific columns, and add connections so that user can tab
- *  from one field to the next.  
+ *  pick specific cell types to sit in specific columns, and add 
+ *  connections so that user can tab from one field to the next.  
  *
  *  The actual layout depends on the register type, but, typically,
  *  all of the registers have the date cell on the left, description
@@ -45,7 +41,15 @@
  *  config file that could be tweaked for a specific, non-GnuCash 
  *  application.
  */
+/** @{ */
+/** @file split-register-layout.h
+    @brief Create the actual register visual layout
+    @author Copyright (C) 1998, 2004 Linas Vepstas <linas at linas.org>
+*/
+
+/** Generate the split register layout. */
 TableLayout * gnc_split_register_layout_new (SplitRegister *reg);
 
 /** @} */
+/** @} */
 #endif
Index: split-register.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/ledger-core/split-register.c,v
retrieving revision 1.40.2.5
retrieving revision 1.40.2.6
diff -Lsrc/register/ledger-core/split-register.c -Lsrc/register/ledger-core/split-register.c -u -r1.40.2.5 -r1.40.2.6
--- src/register/ledger-core/split-register.c
+++ src/register/ledger-core/split-register.c
@@ -17,81 +17,11 @@
  * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
  *                                                                  *
 \********************************************************************/
-
-/** 
- * @addtogroup Ledger 
- * @file split-register.c
- * @brief Provide view for SplitRegister object.
- *
- *
- * DESIGN NOTES:
- * Some notes about the "blank split":
- * Q: What is the "blank split"?
- * A: A new, empty split appended to the bottom of the ledger
- *    window.  The blank split provides an area where the user
- *    can type in new split/transaction info.  
- *    The "blank split" is treated in a special way for a number
- *    of reasons:
- *    (1) it must always appear as the bottom-most split
- *        in the Ledger window,
- *    (2) it must be committed if the user edits it, and 
- *        a new blank split must be created.
- *    (3) it must be deleted when the ledger window is closed.
- * To implement the above, the register "user_data" is used
- * to store an SRInfo structure containing the blank split.
- *
- * =====================================================================
- * Some notes on Commit/Rollback:
- * 
- * There's an engine component and a gui component to the commit/rollback
- * scheme.  On the engine side, one must always call BeginEdit()
- * before starting to edit a transaction.  When you think you're done,
- * you can call CommitEdit() to commit the changes, or RollbackEdit() to
- * go back to how things were before you started the edit. Think of it as
- * a one-shot mega-undo for that transaction.
- * 
- * Note that the query engine uses the original values, not the currently
- * edited values, when performing a sort.  This allows your to e.g. edit
- * the date without having the transaction hop around in the gui while you
- * do it.
- * 
- * On the gui side, commits are now performed on a per-transaction basis,
- * rather than a per-split (per-journal-entry) basis.  This means that
- * if you have a transaction with a lot of splits in it, you can edit them
- * all you want without having to commit one before moving to the next.
- * 
- * Similarly, the "cancel" button will now undo the changes to all of the
- * lines in the transaction display, not just to one line (one split) at a
- * time.
- * 
- * =====================================================================
- * Some notes on Reloads & Redraws:
- * 
- * Reloads and redraws tend to be heavyweight. We try to use change flags
- * as much as possible in this code, but imagine the following scenario:
- *
- * Create two bank accounts.  Transfer money from one to the other.
- * Open two registers, showing each account. Change the amount in one window.
- * Note that the other window also redraws, to show the new correct amount.
- * 
- * Since you changed an amount value, potentially *all* displayed
- * balances change in *both* register windows (as well as the ledger
- * balance in the main window).  Three or more windows may be involved
- * if you have e.g. windows open for bank, employer, taxes and your
- * entering a paycheck (or correcting a typo in an old paycheck).
- * Changing a date might even cause all entries in all three windows
- * to be re-ordered.
- *
- * The only thing I can think of is a bit stored with every table
- * entry, stating 'this entry has changed since lst time, redraw it'.
- * But that still doesn't avoid the overhead of reloading the table
- * from the engine.
- * 
- *
- * @author Copyright (c) 1998-2000 Linas Vepstas <linas at linas.org>
- * @author Copyright (c) 2000-2001 Dave Peticolas <dave at krondo.com>
+ /*
+ * split-register.c
+ * author Copyright (c) 1998-2000 Linas Vepstas <linas at linas.org>
+ * author Copyright (c) 2000-2001 Dave Peticolas <dave at krondo.com>
  */
-
 #define _GNU_SOURCE
 
 #include "config.h"
Index: split-register.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/ledger-core/split-register.h,v
retrieving revision 1.16.4.2
retrieving revision 1.16.4.3
diff -Lsrc/register/ledger-core/split-register.h -Lsrc/register/ledger-core/split-register.h -u -r1.16.4.2 -r1.16.4.3
--- src/register/ledger-core/split-register.h
+++ src/register/ledger-core/split-register.h
@@ -19,12 +19,19 @@
  * Boston, MA  02111-1307,  USA       gnu at gnu.org                   *
  *                                                                  *
 \********************************************************************/
-/** @addtogroup Ledger
+/** @addtogroup GUI
+@{ */
+/** @addtogroup Ledger Checkbook Register Display Area
+
+    @file split-register.h
+    @brief Checkbook Register Display Area
+    @author Copyright (C) 1998-2000 Linas Vepstas <linas at linas.org>
+
     The register is the spread-sheet-like area that looks like a 
     checkbook register.  It displays transactions, and allows the 
     user to edit transactions in-place.  The register does *not*
     contain any of the other window decorations that one might want 
-    to have for a fre-standing window (e.g. menubars, toolbars, etc.)
+    to have for a free standing window (e.g. menubars, toolbars, etc.)
 
     All user input to the register is handled by the 'cursor', which
     is mapped onto one of the displayed rows in the register.
@@ -37,6 +44,74 @@
     the fact that this register can display multiple rows of 
     transaction splits underneath a transaction title/summary row.
 
+\par Design Notes.
+@{
+Some notes about the "blank split":\n
+Q: What is the "blank split"?\n
+A: A new, empty split appended to the bottom of the ledger
+ window.  The blank split provides an area where the user
+ can type in new split/transaction info.  
+ The "blank split" is treated in a special way for a number
+ of reasons:
+-  it must always appear as the bottom-most split
+  in the Ledger window,
+-  it must be committed if the user edits it, and 
+  a new blank split must be created.
+-   it must be deleted when the ledger window is closed.
+To implement the above, the register "user_data" is used
+to store an SRInfo structure containing the blank split.
+
+ @}
+
+\par Some notes on Commit/Rollback:
+ @{
+ * 
+ * There's an engine component and a gui component to the commit/rollback
+ * scheme.  On the engine side, one must always call BeginEdit()
+ * before starting to edit a transaction.  When you think you're done,
+ * you can call CommitEdit() to commit the changes, or RollbackEdit() to
+ * go back to how things were before you started the edit. Think of it as
+ * a one-shot mega-undo for that transaction.
+ * 
+ * Note that the query engine uses the original values, not the currently
+ * edited values, when performing a sort.  This allows your to e.g. edit
+ * the date without having the transaction hop around in the gui while you
+ * do it.
+ * 
+ * On the gui side, commits are now performed on a per-transaction basis,
+ * rather than a per-split (per-journal-entry) basis.  This means that
+ * if you have a transaction with a lot of splits in it, you can edit them
+ * all you want without having to commit one before moving to the next.
+ * 
+ * Similarly, the "cancel" button will now undo the changes to all of the
+ * lines in the transaction display, not just to one line (one split) at a
+ * time.
+ * 
+
+ @}
+ \par Some notes on Reloads & Redraws:
+ @{
+ * Reloads and redraws tend to be heavyweight. We try to use change flags
+ * as much as possible in this code, but imagine the following scenario:
+ *
+ * Create two bank accounts.  Transfer money from one to the other.
+ * Open two registers, showing each account. Change the amount in one window.
+ * Note that the other window also redraws, to show the new correct amount.
+ * 
+ * Since you changed an amount value, potentially *all* displayed
+ * balances change in *both* register windows (as well as the ledger
+ * balance in the main window).  Three or more windows may be involved
+ * if you have e.g. windows open for bank, employer, taxes and your
+ * entering a paycheck (or correcting a typo in an old paycheck).
+ * Changing a date might even cause all entries in all three windows
+ * to be re-ordered.
+ *
+ * The only thing I can think of is a bit stored with every table
+ * entry, stating 'this entry has changed since lst time, redraw it'.
+ * But that still doesn't avoid the overhead of reloading the table
+ * from the engine.
+ @}
+
     The Register itself is independent of GnuCash, and is designed 
     so that it can be used with other applications.
     The Ledger is an adaptation of the Register for use by GnuCash.
@@ -50,11 +125,9 @@
     The actual GUI-toolkit specific code is supposed to be in a 
     GUI portability layer.  Over the years, some gnome-isms may 
     have snuck in; these should also be cleaned up.
-    @{ 
+*/
+/** @{
 
-    @file split-register.h
-    @brief Checkbook Register Display Area
-    @author Copyright (C) 1998-2000 Linas Vepstas <linas at linas.org>
 */
 
 #ifndef SPLIT_REGISTER_H
@@ -66,7 +139,8 @@
 #include "Transaction.h"
 #include "table-allgui.h"
 
-/** Register types.
+/** \brief Register types.
+ *
  * "registers" are single-account display windows.
  * "ledgers" are multiple-account display windows */
 typedef enum
@@ -163,10 +237,10 @@
 typedef struct split_register SplitRegister;
 typedef struct sr_info SRInfo;
 
+/** \brief The type, style and table for the register. */
 struct split_register
 {
-  /** The table itself that implements the underlying GUI. */
-  Table * table;
+  Table * table;   /**< The table itself that implements the underlying GUI. */
 
   SplitRegisterType type;
   SplitRegisterStyle style;
@@ -174,8 +248,7 @@
   gboolean use_double_line;
   gboolean is_template;
 
-  /** private data; outsiders should not access this */
-  SRInfo * sr_info;
+  SRInfo * sr_info;   /**< \internal private data; outsiders should not access this */
 };
 
 /** Callback function type */
@@ -358,6 +431,8 @@
 gboolean
 gnc_split_register_handle_exchange (SplitRegister *reg, gboolean force_dialog);
 
+/** @} */
+/** @} */
 /* -------------------------------------------------------------- */
 
 /** Private function -- outsiders must not use this */
@@ -373,5 +448,3 @@
                                 gboolean do_commit);
 
 #endif
-
-/** @} */
Index: option-util.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/app-utils/option-util.h,v
retrieving revision 1.11.4.1
retrieving revision 1.11.4.2
diff -Lsrc/app-utils/option-util.h -Lsrc/app-utils/option-util.h -u -r1.11.4.1 -r1.11.4.2
--- src/app-utils/option-util.h
+++ src/app-utils/option-util.h
@@ -254,10 +254,10 @@
                                                  const char *name,
                                                  gboolean selectable);
 
-gboolean gnc_dateformat_option_value_parse(SCM value, DateFormat *format,
+gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
 					   GNCDateMonthFormat *months,
 					   gboolean *years, char **custom);
-SCM gnc_dateformat_option_set_value(DateFormat format, GNCDateMonthFormat months,
+SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat months,
 				    gboolean years, const char *custom);
 
 
Index: option-util.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/app-utils/option-util.c,v
retrieving revision 1.19.4.7
retrieving revision 1.19.4.8
diff -Lsrc/app-utils/option-util.c -Lsrc/app-utils/option-util.c -u -r1.19.4.7 -r1.19.4.8
--- src/app-utils/option-util.c
+++ src/app-utils/option-util.c
@@ -2704,7 +2704,7 @@
  * format(symbol), month(symbol), include-years(bool), custom-string(string)
  */
 
-gboolean gnc_dateformat_option_value_parse(SCM value, DateFormat *format,
+gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
                                            GNCDateMonthFormat *months,
                                            gboolean *years, char **custom)
 {
@@ -2775,7 +2775,7 @@
   return TRUE;
 }
 
-SCM gnc_dateformat_option_set_value(DateFormat format, GNCDateMonthFormat months,
+SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat months,
                                     gboolean years, const char *custom)
 {
   SCM value = SCM_EOL;
Index: qsf-xml-map.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/backend/qsf/Attic/qsf-xml-map.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/backend/qsf/qsf-xml-map.c -Lsrc/backend/qsf/qsf-xml-map.c -u -r1.1.2.2 -r1.1.2.3
--- src/backend/qsf/qsf-xml-map.c
+++ src/backend/qsf/qsf-xml-map.c
@@ -355,7 +355,8 @@
 				lookup_node = (xmlNodePtr) g_hash_table_lookup(default_hash, 
 					xmlNodeGetContent(cur_node));
 				content = xmlGetProp(lookup_node, MAP_VALUE_ATTR);
-				/** \todo FIXME: do the lookup. */
+				/** \todo FIXME: do the lookup. type is defined by output object. */
+				/* Find by name, get GUID, return GUID as string. */
 				g_message("Lookup %s in the receiving application\n", content );
 				return content;
 			}
Index: qsf-object.xsd.xml
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/backend/qsf/Attic/qsf-object.xsd.xml,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/backend/qsf/qsf-object.xsd.xml -Lsrc/backend/qsf/qsf-object.xsd.xml -u -r1.1.2.2 -r1.1.2.3
--- src/backend/qsf/qsf-object.xsd.xml
+++ src/backend/qsf/qsf-object.xsd.xml
@@ -1,10 +1,12 @@
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://qof.sourceforge.net/"
-xmlns:qof-qsf="http://qof.sourceforge.net/">
+xmlns:qof-qsf="http://qof.sourceforge.net/"
+elementFormDefault="qualified"
+attributeFormDefault="unqualified">
  <xsd:annotation>
     <xsd:documentation xml:lang="en">
 	Query Object Framework Serialization Format (QSF)
-	Copyright 2004 Neil Williams linux at codehelp.co.uk
+	Copyright 2004-5 Neil Williams linux at codehelp.co.uk
 	QSF is part of QOF.
 	QOF is free software; you can redistribute it and/or modify it
 	under the terms of the GNU General Public License as published by the
@@ -19,18 +21,18 @@
 	Temple	Place, Suite 330, Boston, MA 02111-1307 USA
     </xsd:documentation>
   </xsd:annotation>
-<xsd:element name="qof-qsf" qof-qsf:type="qsftype"/>
+<xsd:element name="qof-qsf" type="qof-qsf:qsftype"/>
 <xsd:complexType name="qsftype">
  <xsd:sequence>
-   <xsd:element name="book" qof-qsf:type="qofbook"/>
+   <xsd:element name="book" type="qof-qsf:qofbook" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="qofbook">
  <xsd:sequence>
-   <xsd:element name="book-guid" type="xsd:string"/>
-   <xsd:element name="object" qof-qsf:type="qsfobject" minOccurs="1" maxOccurs="unbounded"/>
+   <xsd:element name="book-guid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+   <xsd:element name="object" type="qof-qsf:qsfobject" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
- <xsd:attribute name="count" type="xsd:positiveInteger"/>
+ <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
 </xsd:complexType>
 <xsd:complexType name="qsfobject">
  <xsd:sequence>
@@ -38,7 +40,7 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:string">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -46,8 +48,8 @@
    <xsd:element name="guid" minOccurs="0" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:simpleContent>
-     <xsd:extension base="xsd:string">
-       <xsd:attribute name="type" type="xsd:string"/>
+     <xsd:extension base="xsd:hexBinary">
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
      </xsd:extension>
     </xsd:simpleContent>
    </xsd:complexType>
@@ -56,7 +58,7 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:boolean">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -65,7 +67,7 @@
    <xsd:complexType>
     <xsd:simpleContent>
      <xsd:extension base="xsd:string">
-      <xsd:attribute name="type" type="xsd:string"/>
+      <xsd:attribute name="type" type="xsd:string" use="required"/>
      </xsd:extension>
     </xsd:simpleContent>
    </xsd:complexType>
@@ -74,7 +76,7 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:dateTime">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -83,7 +85,7 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:int">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -91,8 +93,8 @@
    <xsd:element name="gint64" minOccurs="0" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:simpleContent>
-      <xsd:extension base="xsd:int">
-       <xsd:attribute name="type" type="xsd:string"/>
+      <xsd:extension base="xsd:long">
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -101,7 +103,7 @@
     <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:double">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
     </xsd:complexType>
@@ -110,7 +112,7 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:string">
-       <xsd:attribute name="type" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
@@ -119,16 +121,15 @@
      <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:string">
-       <xsd:attribute name="type" type="xsd:string"/>
-       <xsd:attribute name="path" type="xsd:string"/>
-       <xsd:attribute name="value" type="xsd:string"/>
+       <xsd:attribute name="type" type="xsd:string" use="required"/>
+       <xsd:attribute name="path" type="xsd:string" use="required"/>
+       <xsd:attribute name="value" type="xsd:string" use="required"/>
       </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
 </xsd:sequence>
- <xsd:attribute name="type" type="xsd:string"/>
- <xsd:attribute name="count" type="xsd:positiveInteger"/>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
 </xsd:complexType>
 </xsd:schema>
-
Index: qsf-xml.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/backend/qsf/Attic/qsf-xml.h,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -Lsrc/backend/qsf/qsf-xml.h -Lsrc/backend/qsf/qsf-xml.h -u -r1.1.2.3 -r1.1.2.4
--- src/backend/qsf/qsf-xml.h
+++ src/backend/qsf/qsf-xml.h
@@ -36,6 +36,11 @@
 
 qsf-map to map sets of QSF objects between QOF applications.
 
+Maps exist to allow complex conversions between objects where object parameters
+need to be calculated, combined or processed using conditionals. Some QSF objects
+can be converted using XSL or other standard tools. For more information on maps,
+see http://code.neil.williamsleesmill.me.uk/map.html
+
 QSF object files will contain user data and are to be exported from QOF applications 
 under user control or they can be hand-edited. QSF maps contain application data and 
 can be created by application developers from application source code. Tools may be 
@@ -162,6 +167,9 @@
 
 Make sure the same version of QOF is in use in both applications.
 */
+/** @name QSF Object XML
+
+@{ */
 #define QSF_ROOT_TAG	"qof-qsf" /**< The top level root tag */
 #define QSF_DEFAULT_NS	"http://qof.sourceforge.net/" /**< Default namespace for QSF root tag
 
@@ -173,7 +181,10 @@
 #define QSF_BOOK_COUNT	"count" /**< Sequential counter of each book in this file */
 #define QSF_OBJECT_TAG	"object" /**< Second level child: object tag */
 #define QSF_OBJECT_TYPE	"type" /**< QSF parameter name for object type specifiers */
+#define QSF_OBJECT_COUNT "count" /**< Sequential counter for each QSF object in this file */
+#define QSF_XML_VERSION  "1.0"  /**< The current XML version. */
 
+/** @} */
 /** @name Representing KVP as XML
 
 <kvp type="kvp" path="/from-sched-xaction" value="guid">c858b9a3235723b55bc1179f0e8c1322</kvp>
@@ -189,9 +200,9 @@
 #define QSF_OBJECT_KVP  "path" /**< The path to this KVP value in the entity frame. */
 #define QSF_OBJECT_VALUE "value" /**< The KVP Value. */
 /** @} */
+/** @name QSF Map XML
 
-#define QSF_OBJECT_COUNT	"count" /**< Sequential counter for each QSF object in this file */
-#define QSF_XML_VERSION	"1.0"  /**< The current XML version. */
+@{ */
 #define MAP_ROOT_TAG	"qsf-map" /**< Top level root tag for QSF Maps */
 #define MAP_DEFINITION_TAG	"definition" /**< Second level container for defined objects 
 
@@ -311,36 +322,6 @@
 /** \todo enum is an attempt to make enumerator values descriptive in the maps
 and QSF (possibly). Not working yet. */
 #define MAP_ENUM_TYPE "enum"
-#define QSF_XSD_TIME	"%Y-%m-%dT%H:%M:%SZ" /**< xsd:dateTime format in coordinated universal time, UTC.
-
-You can reproduce the string from the GNU/Linux command line using the date utility: 
-
-date -u +%Y-%m-%dT%H:%M:%SZ
-
-2004-12-12T23:39:11Z
-
-The datestring must be timezone independent and include all specified fields.
-
-Remember to use gmtime() NOT localtime()!. From the command line, use the -u switch with the 
-date command: date -u
-
-To generate a timestamp based on a real time, use the qsf_time_now and qsf_time_string defaults.
-
-qsf_time_now : Format: QOF_TYPE_DATE. The current time taken from the moment the default
-is read into a QSF object at runtime.
-
-qsf_time_string : Format: QOF_TYPE_STRING. The current timestamp taken from the moment the
-default is read into a QSF object at runtime. This form is used when the output parameter 
-needs a formatted date string, not an actual date object. The format is determined by the 
-optional format attribute of the set tag which takes the same operators as the GNU C Library 
-for strftime() and output may therefore be dependent on the locale of the calling process - 
-\b take \b care. Default value is %F, used when qsf_time_string is set without the format
-attribute.
-
-Both defaults use UTC.
-
-*/
-#define QSF_XML_BOOLEAN_TEST "true" /**< needs to be lowercase for XML validation */
 
 /** \brief A specific boolean default for this map.
 */
@@ -396,6 +377,39 @@
 on other data types will be ignored.
  */
 
+/** @} */
+
+#define QSF_XSD_TIME  QOF_UTC_DATE_FORMAT /**< xsd:dateTime format in coordinated universal time, UTC.
+
+You can reproduce the string from the GNU/Linux command line using the date utility: 
+
+date -u +%Y-%m-%dT%H:%M:%SZ
+
+2004-12-12T23:39:11Z
+
+The datestring must be timezone independent and include all specified fields.
+
+Remember to use gmtime() NOT localtime()!. From the command line, use the -u switch with the 
+date command: date -u
+
+To generate a timestamp based on a real time, use the qsf_time_now and qsf_time_string defaults.
+
+qsf_time_now : Format: QOF_TYPE_DATE. The current time taken from the moment the default
+is read into a QSF object at runtime.
+
+qsf_time_string : Format: QOF_TYPE_STRING. The current timestamp taken from the moment the
+default is read into a QSF object at runtime. This form is used when the output parameter 
+needs a formatted date string, not an actual date object. The format is determined by the 
+optional format attribute of the set tag which takes the same operators as the GNU C Library 
+for strftime() and output may therefore be dependent on the locale of the calling process - 
+\b take \b care. Default value is %F, used when qsf_time_string is set without the format
+attribute.
+
+Both defaults use UTC.
+
+*/
+#define QSF_XML_BOOLEAN_TEST "true" /**< needs to be lowercase for XML validation */
+
 #define QSF_OBJECT_SCHEMA "qsf-object.xsd.xml" /**< Name of the QSF Object Schema. */
 #define QSF_MAP_SCHEMA "qsf-map.xsd.xml" /**< Name of the QSF Map Schema. */
 /** \brief QSF Parameters
@@ -463,7 +477,7 @@
 /** \brief shorthand function
 
 This may look repetitive but each one is used separately
-	as well as in a block.
+as well as in a block.
 */
 int
 qsf_compare_tag_strings(const xmlChar *node_name, char *tag_name);
@@ -471,7 +485,7 @@
 /** \brief shorthand function
 
 This may look repetitive but each one is used separately
-	as well as in a block.
+as well as in a block.
 */
 int
 qsf_strings_equal(const xmlChar *node_name, char *tag_name);
@@ -479,7 +493,7 @@
 /** \brief shorthand function
 
 This may look repetitive but each one is used separately
-	as well as in a block.
+as well as in a block.
 */
 int
 qsf_is_element(xmlNodePtr a, xmlNsPtr ns, char *c);
@@ -487,7 +501,7 @@
 /** \brief shorthand function
 
 This may look repetitive but each one is used separately
-	as well as in a block.
+as well as in a block.
 */
 int
 qsf_check_tag(qsf_param *params, char *qof_type);
@@ -638,8 +652,6 @@
 to obtain the data to commit from the xmlNodePtr instead of qof_book_mergeRule. If
 anything, it's easier here because all entities are new, there are no targets.
 
-\todo references
-
 Unlike qof_book_merge, this routine runs once per parameter within a loop
 that iterates over objects - it does not have a loop of it's own.
 
Index: pilot-qsf-GnuCashInvoice.xml
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/backend/qsf/Attic/pilot-qsf-GnuCashInvoice.xml,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -Lsrc/backend/qsf/pilot-qsf-GnuCashInvoice.xml -Lsrc/backend/qsf/pilot-qsf-GnuCashInvoice.xml -u -r1.1.2.2 -r1.1.2.3
--- src/backend/qsf/pilot-qsf-GnuCashInvoice.xml
+++ src/backend/qsf/pilot-qsf-GnuCashInvoice.xml
@@ -44,14 +44,7 @@
   <calculate type="string" value="notes">
     <set object="qof-expenses">expense_note</set>
   </calculate>
-  <calculate type="guid" value="bill-to">
-    <if type="qof-expenses">
-      <set option="qsf_lookup_string">expenses_account</set>
-    </if>
-    <else>
-      <set option="qsf_lookup_string">datebook_account</set>
-    </else>
-  </calculate>
+  <calculate type="guid" value="bill-to"/>
   <calculate type="boolean" value="invoice-taxable"/>
   <calculate type="boolean" value="bill-taxable"/>
   <calculate type="boolean" value="billable?"/>
Index: qsf-backend.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/backend/qsf/Attic/qsf-backend.c,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -Lsrc/backend/qsf/qsf-backend.c -Lsrc/backend/qsf/qsf-backend.c -u -r1.1.2.7 -r1.1.2.8
--- src/backend/qsf/qsf-backend.c
+++ src/backend/qsf/qsf-backend.c
@@ -600,7 +600,7 @@
 	return params->output_doc;
 }
 
-static gboolean
+static void
 write_qsf_from_book(FILE *out, QofBook *book)
 {
 	xmlDocPtr qsf_doc;
@@ -609,16 +609,15 @@
 	
 	qsf_doc = qofbook_to_qsf(book);
 	write_result = 0;
-	g_return_val_if_fail(qsf_is_valid(QSF_SCHEMA_DIR, QSF_OBJECT_SCHEMA, qsf_doc) == TRUE, FALSE);
+	g_return_if_fail(qsf_is_valid(QSF_SCHEMA_DIR, QSF_OBJECT_SCHEMA, qsf_doc) == TRUE);
 	write_result = xmlDocFormatDump(out, qsf_doc, 1);
 	if(write_result < 0) {
 		be = qof_book_get_backend(book);
 		qof_backend_set_error(be, ERR_FILEIO_WRITE_ERROR);
-		return FALSE;
+		return;
 	}
 	fprintf(out, "\n");
 	xmlFreeDoc(qsf_doc);
-	return TRUE;
 }
 
 static void
@@ -639,7 +638,6 @@
 	QSFBackend *qsf_be;
 	FILE *out;
 	char *path;
-	gboolean result;
 	
 	qsf_be = (QSFBackend*)be;
 	/* if fullpath is blank, book_id was set to QOF_STDOUT */
@@ -649,11 +647,7 @@
 	}
 	path = strdup(qsf_be->fullpath);
 	out = fopen(path, "w");
-	result = write_qsf_from_book(out, book);
-	if(result == FALSE) { 
-		g_free(path);
-		return; 
-	}
+	write_qsf_from_book(out, book);
 	g_free(path);
 	fclose(out);
 }
Index: gncEntry.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-core/gncEntry.c,v
retrieving revision 1.32.4.4
retrieving revision 1.32.4.5
diff -Lsrc/business/business-core/gncEntry.c -Lsrc/business/business-core/gncEntry.c -u -r1.32.4.4 -r1.32.4.5
--- src/business/business-core/gncEntry.c
+++ src/business/business-core/gncEntry.c
@@ -434,6 +434,35 @@
   gncEntryCommitEdit (entry);
 }
 
+void qofEntrySetInvDiscType (GncEntry *entry, const char *type_string)
+{
+	GncAmountType type;
+
+	if (!entry) return;
+	gncAmountStringToType(type_string, &type);
+	if (entry->i_disc_type == type) return;
+	gncEntryBeginEdit (entry);
+	entry->i_disc_type = type;
+	entry->values_dirty = TRUE;
+	mark_entry (entry);
+	gncEntryCommitEdit (entry);
+
+}
+
+void qofEntrySetInvDiscHow  (GncEntry *entry, const char *type)
+{
+	GncDiscountHow how;
+
+	if (!entry) return;
+	gncEntryBeginEdit (entry);
+	gncEntryDiscountStringToHow(type, &how);
+	if (entry->i_disc_how == how) return;
+	entry->i_disc_how = how;
+	entry->values_dirty = TRUE;
+	mark_entry (entry);
+	gncEntryCommitEdit (entry);
+}
+
 /* Vendor Bills */
 
 void gncEntrySetBillAccount (GncEntry *entry, Account *acc)
@@ -685,6 +714,24 @@
   return entry->i_disc_how;
 }
 
+char* qofEntryGetInvDiscType (GncEntry *entry)
+{
+	char *type_string;
+
+	if (!entry) return 0;
+	type_string = g_strdup(gncAmountTypeToString(entry->i_disc_type));
+	return type_string;
+}
+
+char* qofEntryGetInvDiscHow (GncEntry *entry)
+{
+	char *type_string;
+
+	if (!entry) return 0;
+	type_string = g_strdup(gncEntryDiscountHowToString(entry->i_disc_how));
+	return type_string;
+}
+
 gboolean gncEntryGetInvTaxable (GncEntry *entry)
 {
   if (!entry) return FALSE;
@@ -1191,7 +1238,21 @@
     { ENTRY_IPRICE, QOF_TYPE_NUMERIC, (QofAccessFunc)gncEntryGetInvPrice, (QofSetterFunc)gncEntrySetInvPrice },
     { ENTRY_BPRICE, QOF_TYPE_NUMERIC, (QofAccessFunc)gncEntryGetBillPrice, (QofSetterFunc)gncEntrySetBillPrice },
     { ENTRY_INVOICE, GNC_ID_INVOICE, (QofAccessFunc)gncEntryGetInvoice, NULL },
+    { ENTRY_IACCT, GNC_ID_ACCOUNT,  (QofAccessFunc)gncEntryGetInvAccount,  (QofSetterFunc)gncEntrySetInvAccount  },
+    { ENTRY_BACCT, GNC_ID_ACCOUNT,  (QofAccessFunc)gncEntryGetBillAccount, (QofSetterFunc)gncEntrySetBillAccount },
     { ENTRY_BILL, GNC_ID_INVOICE, (QofAccessFunc)gncEntryGetBill, NULL },
+    { ENTRY_INV_DISC_TYPE, QOF_TYPE_STRING, (QofAccessFunc)qofEntryGetInvDiscType,
+       (QofSetterFunc)qofEntrySetInvDiscType },
+    { ENTRY_INV_DISC_HOW, QOF_TYPE_STRING, (QofAccessFunc)qofEntryGetInvDiscHow,
+       (QofSetterFunc)qofEntrySetInvDiscHow },
+    { ENTRY_INV_TAXABLE, QOF_TYPE_BOOLEAN, (QofAccessFunc)gncEntryGetInvTaxable,
+       (QofSetterFunc)gncEntrySetInvTaxable },
+    { ENTRY_INV_TAX_INC, QOF_TYPE_BOOLEAN, (QofAccessFunc)gncEntryGetInvTaxIncluded,
+       (QofSetterFunc)gncEntrySetInvTaxIncluded },
+    { ENTRY_BILL_TAXABLE, QOF_TYPE_BOOLEAN, (QofAccessFunc)gncEntryGetInvTaxable,
+       (QofSetterFunc)gncEntrySetInvTaxable },
+    { ENTRY_BILL_TAX_INC, QOF_TYPE_BOOLEAN, (QofAccessFunc)gncEntryGetBillTaxIncluded,
+       (QofSetterFunc)gncEntrySetBillTaxIncluded },
     { ENTRY_BILLABLE, QOF_TYPE_BOOLEAN, (QofAccessFunc)gncEntryGetBillable, (QofSetterFunc)gncEntrySetBillable },
     { ENTRY_BILLTO, GNC_ID_OWNER, (QofAccessFunc)gncEntryGetBillTo, (QofSetterFunc)gncEntrySetBillTo },
     { ENTRY_ORDER, GNC_ID_ORDER, (QofAccessFunc)gncEntryGetOrder, NULL },
Index: gncEntry.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-core/gncEntry.h,v
retrieving revision 1.22.4.4
retrieving revision 1.22.4.5
diff -Lsrc/business/business-core/gncEntry.h -Lsrc/business/business-core/gncEntry.h -u -r1.22.4.4 -r1.22.4.5
--- src/business/business-core/gncEntry.h
+++ src/business/business-core/gncEntry.h
@@ -100,7 +100,8 @@
 void gncEntrySetInvDiscount (GncEntry *entry, gnc_numeric discount);
 void gncEntrySetInvDiscountType (GncEntry *entry, GncAmountType type);
 void gncEntrySetInvDiscountHow (GncEntry *entry, GncDiscountHow how);
-
+void qofEntrySetInvDiscType (GncEntry *entry, const char *type);
+void qofEntrySetInvDiscHow  (GncEntry *entry, const char *type);
 /** @} */
 
 /** @name Vendor Bills (and Employee Expenses) */
@@ -137,6 +138,8 @@
 gnc_numeric gncEntryGetInvDiscount (GncEntry *entry);
 GncAmountType gncEntryGetInvDiscountType (GncEntry *entry);
 GncDiscountHow gncEntryGetInvDiscountHow (GncEntry *entry);
+char* qofEntryGetInvDiscType (GncEntry *entry);
+char* qofEntryGetInvDiscHow (GncEntry *entry);
 gboolean gncEntryGetInvTaxable (GncEntry *entry);
 gboolean gncEntryGetInvTaxIncluded (GncEntry *entry);
 GncTaxTable * gncEntryGetInvTaxTable (GncEntry *entry);
@@ -217,6 +220,8 @@
 #define ENTRY_QTY			"qty"
 
 #define ENTRY_IPRICE		"iprice"
+#define ENTRY_IACCT			"invoice-account"
+#define ENTRY_BACCT			"bill-account"
 #define ENTRY_BPRICE		"bprice"
 #define ENTRY_BILLABLE		"billable?"
 #define ENTRY_BILLTO		"bill-to"
Index: datecell-gnome.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/register-gnome/datecell-gnome.c,v
retrieving revision 1.11.4.7
retrieving revision 1.11.4.8
diff -Lsrc/register/register-gnome/datecell-gnome.c -Lsrc/register/register-gnome/datecell-gnome.c -u -r1.11.4.7 -r1.11.4.8
--- src/register/register-gnome/datecell-gnome.c
+++ src/register/register-gnome/datecell-gnome.c
@@ -98,7 +98,7 @@
   if (!parsed) return;
   if (!datestr) return;
 
-  scanDate (datestr, &day, &month, &year);
+  qof_scan_date (datestr, &day, &month, &year);
 
   parsed->tm_mday = day;
   parsed->tm_mon  = month - 1;
@@ -115,7 +115,7 @@
 {
   PopBox *box = cell->cell.gui_private;
 
-  printDate (buff,
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH,
              box->date.tm_mday,
              box->date.tm_mon + 1,
              box->date.tm_year+1900);
@@ -182,7 +182,7 @@
 
   gtk_calendar_get_date (gdp->calendar, &year, &month, &day);
 
-  printDate (buffer, day, month + 1, year);
+  qof_print_date_dmy_buff (buffer, MAX_DATE_LENGTH, day, month + 1, year);
 
   box->in_date_select = TRUE;
   gnucash_sheet_modify_current_cell (box->sheet, buffer);
@@ -202,7 +202,7 @@
 
   gtk_calendar_get_date (gdp->calendar, &year, &month, &day);
 
-  printDate (buffer, day, month + 1, year);
+  qof_print_date_dmy_buff (buffer, MAX_DATE_LENGTH, day, month + 1, year);
 
   box->in_date_select = TRUE;
   gnucash_sheet_modify_current_cell (box->sheet, buffer);
@@ -339,7 +339,7 @@
   box->date.tm_mon  = dada.tm_mon;
   box->date.tm_year = dada.tm_year;
 
-  printDate (buff, dada.tm_mday, dada.tm_mon + 1, dada.tm_year + 1900);
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, dada.tm_mday, dada.tm_mon + 1, dada.tm_year + 1900);
 
   gnc_basic_cell_set_value_internal (&cell->cell, buff);
 
@@ -361,7 +361,7 @@
   stm = localtime (&secs);
   box->date = *stm;
 
-  printDate (buff,
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH,
              box->date.tm_mday, 
              box->date.tm_mon + 1, 
              box->date.tm_year + 1900);
@@ -390,7 +390,7 @@
 
   gnc_parse_date (&(box->date), cell->cell.value);
 
-  printDate (buff,
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH,
              box->date.tm_mday, 
              box->date.tm_mon + 1,
              box->date.tm_year + 1900);
@@ -423,7 +423,7 @@
   if (!gnc_handle_date_accelerator (event, &(box->date), bcell->value))
     return FALSE;
 
-  printDate (buff,
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH,
              box->date.tm_mday,
              box->date.tm_mon + 1,
              box->date.tm_year + 1900);
@@ -662,7 +662,7 @@
 
   gnc_parse_date (&(box->date), str);
 
-  printDate (buff,
+  qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH,
              box->date.tm_mday, 
              box->date.tm_mon + 1, 
              box->date.tm_year + 1900);


More information about the gnucash-changes mailing list