r20526 - gnucash/trunk/src/libqof/qof - Remove some more functions from libqof which are unused and look weird.
Christian Stimming
cstim at code.gnucash.org
Mon Apr 4 05:25:10 EDT 2011
Author: cstim
Date: 2011-04-04 05:25:10 -0400 (Mon, 04 Apr 2011)
New Revision: 20526
Trac: http://svn.gnucash.org/trac/changeset/20526
Modified:
gnucash/trunk/src/libqof/qof/gnc-date.c
gnucash/trunk/src/libqof/qof/gnc-date.h
gnucash/trunk/src/libqof/qof/guid.c
gnucash/trunk/src/libqof/qof/guid.h
gnucash/trunk/src/libqof/qof/kvp_frame.c
gnucash/trunk/src/libqof/qof/kvp_frame.h
gnucash/trunk/src/libqof/qof/qofbackend.c
gnucash/trunk/src/libqof/qof/qofbackend.h
gnucash/trunk/src/libqof/qof/qofbook-p.h
gnucash/trunk/src/libqof/qof/qofbook.h
gnucash/trunk/src/libqof/qof/qofid.c
gnucash/trunk/src/libqof/qof/qofid.h
gnucash/trunk/src/libqof/qof/qofutil.c
gnucash/trunk/src/libqof/qof/qofutil.h
Log:
Remove some more functions from libqof which are unused and look weird.
Modified: gnucash/trunk/src/libqof/qof/gnc-date.c
===================================================================
--- gnucash/trunk/src/libqof/qof/gnc-date.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/gnc-date.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -625,25 +625,6 @@
return flen;
}
-size_t
-qof_print_time_buff (char * buff, size_t len, time_t secs)
-{
- int flen;
- struct tm ltm, gtm;
-
- if (!buff) return 0;
- if (dateFormat == QOF_DATE_FORMAT_UTC)
- {
- gtm = *gmtime (&secs);
- flen = qof_strftime(buff, len, QOF_UTC_DATE_FORMAT, >m);
- return flen;
- }
- ltm = *localtime (&secs);
- flen = qof_strftime (buff, len, GNC_T_FMT, <m);
-
- return flen;
-}
-
/* ============================================================== */
/* return the greatest integer <= a/b; works for b > 0 and positive or
@@ -1568,7 +1549,7 @@
g_date_get_year(&d));
}
-void
+static void
gnc_tm_get_day_start (struct tm *tm, time_t time_val)
{
/* Get the equivalent time structure */
@@ -1576,7 +1557,7 @@
gnc_tm_set_day_start(tm);
}
-void
+static void
gnc_tm_get_day_end (struct tm *tm, time_t time_val)
{
/* Get the equivalent time structure */
Modified: gnucash/trunk/src/libqof/qof/gnc-date.h
===================================================================
--- gnucash/trunk/src/libqof/qof/gnc-date.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/gnc-date.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -434,12 +434,10 @@
/* ------------------------------------------------------------------ */
/* time printing utilities */
-/** The qof_print_time_buff() routine prints only the hour-part of the date.
- * Thus, if secs is ...
+/**
* Returns the number of bytes printed.
*/
-size_t qof_print_time_buff (char * buff, size_t len, time_t secs);
size_t qof_print_date_time_buff (char * buff, size_t len, time_t secs);
/* ------------------------------------------------------------------ */
@@ -516,16 +514,6 @@
tm->tm_isdst = -1;
}
-/** The gnc_tm_get_day_start() routine will convert the given time in
- * seconds to the struct tm format, and then adjust it to the
- * first second of that day. */
-void gnc_tm_get_day_start(struct tm *tm, time_t time_val);
-
-/** The gnc_tm_get_day_end() routine will convert the given time in
- * seconds to the struct tm format, and then adjust it to the
- * last second of that day. */
-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 last second of that day. */
time_t gnc_timet_get_day_start(time_t time_val);
Modified: gnucash/trunk/src/libqof/qof/guid.c
===================================================================
--- gnucash/trunk/src/libqof/qof/guid.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/guid.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -527,24 +527,6 @@
}
void
-guid_init_with_salt(const void *salt, size_t salt_len)
-{
- guid_init();
-
- md5_process_bytes(salt, salt_len, &guid_context);
-}
-
-void
-guid_init_only_salt(const void *salt, size_t salt_len)
-{
- md5_init_ctx(&guid_context);
-
- md5_process_bytes(salt, salt_len, &guid_context);
-
- guid_initialized = TRUE;
-}
-
-void
guid_shutdown (void)
{
}
Modified: gnucash/trunk/src/libqof/qof/guid.h
===================================================================
--- gnucash/trunk/src/libqof/qof/guid.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/guid.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -81,37 +81,6 @@
*/
void guid_init(void);
-/** Initialize the id generator with a variety of random sources. and
- * with the data given in the salt argument. This argument can be
- * used to add additional randomness to the generated ids.
- *
- * @param salt The additional random values to add to the generator.
- *
- * @param salt_len The length of the additional random values.
- *
- * @note Only one of guid_init(), guid_init_with_salt() and
- * guid_init_only_salt() should be called. Calling any
- * initialization function a second time will reset the generator and
- * erase the effect of the first call.
- */
-void guid_init_with_salt(const void *salt, size_t salt_len);
-
-/** Initialize the id generator with the data given in the salt
- * argument, but not with any other source. Calling this function with
- * a specific argument will reliably produce a specific sequence of
- * ids.
- *
- * @param salt The additional random values to add to the generator.
- *
- * @param salt_len The length of the additional random values.
- *
- * @note Only one of guid_init(), guid_init_with_salt() and
- * guid_init_only_salt() should be called. Calling any
- * initialization function a second time will reset the generator and
- * erase the effect of the first call.
- */
-void guid_init_only_salt(const void *salt, size_t salt_len);
-
/** Release the memory chunk associated with gui storage. Use this
* only when shutting down the program, as it invalidates *all*
* GUIDs at once. */
Modified: gnucash/trunk/src/libqof/qof/kvp_frame.c
===================================================================
--- gnucash/trunk/src/libqof/qof/kvp_frame.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/kvp_frame.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -1584,7 +1584,7 @@
return output->str;
}
-gchar*
+static gchar*
kvp_value_glist_to_string(const GList *list)
{
gchar *tmp1;
@@ -1610,6 +1610,9 @@
return tmp2;
}
+static gchar*
+kvp_value_to_bare_string(const KvpValue *val);
+
static void
kvp_frame_to_bare_string_helper(gpointer key, gpointer value, gpointer data)
{
@@ -1617,7 +1620,7 @@
*str = g_strdup_printf("%s", kvp_value_to_bare_string((KvpValue *)value));
}
-gchar*
+static gchar*
kvp_value_to_bare_string(const KvpValue *val)
{
gchar *tmp1;
Modified: gnucash/trunk/src/libqof/qof/kvp_frame.h
===================================================================
--- gnucash/trunk/src/libqof/qof/kvp_frame.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/kvp_frame.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -597,12 +597,6 @@
/** @} */
-/** \brief General purpose function to convert any KvpValue to a string.
-
-Only the bare string is returned, there is no debugging information.
-*/
-gchar* kvp_value_to_bare_string(const KvpValue *val);
-
/** \brief Debug version of kvp_value_to_string
This version is used only by ::qof_query_printValueForParam,
@@ -633,7 +627,6 @@
/** Internal helper routines, you probably shouldn't be using these. */
gchar* kvp_frame_to_string(const KvpFrame *frame);
gchar* binary_to_string(const void *data, guint32 size);
-gchar* kvp_value_glist_to_string(const GList *list);
GHashTable* kvp_frame_get_hash(const KvpFrame *frame);
/** @} */
Modified: gnucash/trunk/src/libqof/qof/qofbackend.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbackend.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofbackend.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -196,310 +196,7 @@
(be->commit) (be, inst);
}
-/* =========== Backend Configuration ================ */
-void qof_backend_prepare_frame(QofBackend *be)
-{
- g_return_if_fail(be);
- if (!kvp_frame_is_empty(be->backend_configuration))
- {
- kvp_frame_delete(be->backend_configuration);
- be->backend_configuration = kvp_frame_new();
- }
- be->config_count = 0;
-}
-
-void qof_backend_prepare_option(QofBackend *be, const QofBackendOption *option)
-{
- KvpValue *value;
- gchar *temp;
- gint count;
-
- g_return_if_fail(be || option);
- count = be->config_count;
- count++;
- value = NULL;
- switch (option->type)
- {
- case KVP_TYPE_GINT64 :
- {
- value = kvp_value_new_gint64(*(gint64*)option->value);
- break;
- }
- case KVP_TYPE_DOUBLE :
- {
- value = kvp_value_new_double(*(double*)option->value);
- break;
- }
- case KVP_TYPE_NUMERIC :
- {
- value = kvp_value_new_numeric(*(gnc_numeric*)option->value);
- break;
- }
- case KVP_TYPE_STRING :
- {
- value = kvp_value_new_string((const char*)option->value);
- break;
- }
- case KVP_TYPE_GUID :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_TIMESPEC :
- {
- value = kvp_value_new_timespec(*(Timespec*)option->value);
- break;
- }
- case KVP_TYPE_BINARY :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GLIST :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_FRAME :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GDATE :
- {
- break; /* unsupported */
- }
- }
- if (value)
- {
- temp = g_strdup_printf("/%s", option->option_name);
- kvp_frame_set_value(be->backend_configuration, temp, value);
- g_free(temp);
- temp = g_strdup_printf("/%s/%s", QOF_CONFIG_DESC, option->option_name);
- kvp_frame_set_string(be->backend_configuration, temp, option->description);
- g_free(temp);
- temp = g_strdup_printf("/%s/%s", QOF_CONFIG_TIP, option->option_name);
- kvp_frame_set_string(be->backend_configuration, temp, option->tooltip);
- g_free(temp);
- /* only increment the counter if successful */
- be->config_count = count;
- }
-}
-
-KvpFrame* qof_backend_complete_frame(QofBackend *be)
-{
- g_return_val_if_fail(be, NULL);
- be->config_count = 0;
- return be->backend_configuration;
-}
-
-struct config_iterate
-{
- QofBackendOptionCB fcn;
- gpointer data;
- gint count;
- KvpFrame *recursive;
-};
-
-/* Set the option with the default KvpValue,
-manipulate the option in the supplied callback routine
-then set the value of the option into the KvpValue
-in the configuration frame. */
-static void
-config_foreach_cb (const char *key, KvpValue *value, gpointer data)
-{
- QofBackendOption option;
- gint64 int64;
- double db;
- gnc_numeric num;
- Timespec ts;
- gchar *parent;
- struct config_iterate *helper;
-
- g_return_if_fail(key || value || data);
- helper = (struct config_iterate*)data;
- if (!helper->recursive)
- {
- PERR (" no parent frame");
- return;
- }
- // skip the presets.
- if (0 == safe_strcmp(key, QOF_CONFIG_DESC))
- {
- return;
- }
- if (0 == safe_strcmp(key, QOF_CONFIG_TIP))
- {
- return;
- }
- ENTER (" key=%s", key);
- option.option_name = key;
- option.type = kvp_value_get_type(value);
- if (!option.type)
- {
- return;
- }
- switch (option.type)
- {
- /* set the KvpFrame value into the option */
- case KVP_TYPE_GINT64 :
- {
- int64 = kvp_value_get_gint64(value);
- option.value = (gpointer) & int64;
- break;
- }
- case KVP_TYPE_DOUBLE :
- {
- db = kvp_value_get_double(value);
- option.value = (gpointer) & db;
- break;
- }
- case KVP_TYPE_NUMERIC :
- {
- num = kvp_value_get_numeric(value);
- option.value = (gpointer) & num;
- break;
- }
- case KVP_TYPE_STRING :
- {
- option.value = (gpointer)kvp_value_get_string(value);
- break;
- }
- case KVP_TYPE_TIMESPEC :
- {
- ts = kvp_value_get_timespec(value);
- option.value = (gpointer) & ts;
- break;
- }
- case KVP_TYPE_GUID :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_BINARY :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GLIST :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_FRAME :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GDATE :
- {
- break; /* unsupported */
- }
- }
- parent = g_strdup_printf("/%s/%s", QOF_CONFIG_DESC, key);
- option.description = kvp_frame_get_string(helper->recursive, parent);
- g_free(parent);
- parent = g_strdup_printf("/%s/%s", QOF_CONFIG_TIP, key);
- option.tooltip = kvp_frame_get_string(helper->recursive, parent);
- g_free(parent);
- helper->count++;
- /* manipulate the option */
- helper->fcn (&option, helper->data);
- switch (option.type)
- {
- /* set the option value into the KvpFrame */
- case KVP_TYPE_GINT64 :
- {
- kvp_frame_set_gint64(helper->recursive, key,
- (*(gint64*)option.value));
- break;
- }
- case KVP_TYPE_DOUBLE :
- {
- kvp_frame_set_double(helper->recursive, key,
- (*(double*)option.value));
- break;
- }
- case KVP_TYPE_NUMERIC :
- {
- kvp_frame_set_numeric(helper->recursive, key,
- (*(gnc_numeric*)option.value));
- break;
- }
- case KVP_TYPE_STRING :
- {
- kvp_frame_set_string(helper->recursive, key,
- (gchar*)option.value);
- break;
- }
- case KVP_TYPE_TIMESPEC :
- {
- kvp_frame_set_timespec(helper->recursive, key,
- (*(Timespec*)option.value));
- break;
- }
- case KVP_TYPE_GUID :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_BINARY :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GLIST :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_FRAME :
- {
- break; /* unsupported */
- }
- case KVP_TYPE_GDATE :
- {
- break; /* unsupported */
- }
- }
- LEAVE (" ");
-}
-
-void qof_backend_option_foreach(KvpFrame *config, QofBackendOptionCB cb, gpointer data)
-{
- struct config_iterate helper;
-
- if (!config || !cb)
- {
- return;
- }
- ENTER (" ");
- helper.fcn = cb;
- helper.count = 1;
- helper.data = data;
- helper.recursive = config;
- kvp_frame_for_each_slot(config, config_foreach_cb, &helper);
- LEAVE (" ");
-}
-
-void
-qof_backend_load_config(QofBackend *be, KvpFrame *config)
-{
- if (!be || !config)
- {
- return;
- }
- if (!be->load_config)
- {
- return;
- }
- (be->load_config) (be, config);
-}
-
-KvpFrame*
-qof_backend_get_config(QofBackend *be)
-{
- if (!be)
- {
- return NULL;
- }
- if (!be->get_config)
- {
- return NULL;
- }
- return (be->get_config) (be);
-}
-
gboolean
qof_backend_commit_exists(const QofBackend *be)
{
Modified: gnucash/trunk/src/libqof/qof/qofbackend.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbackend.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofbackend.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -163,81 +163,7 @@
*/
QofBackendError qof_backend_get_error (QofBackend *be);
-/** @name Backend Configuration using KVP
-The backend uses qof_backend_get_config to pass back a KvpFrame of QofBackendOption
-that includes the \b translated strings that serve as description and
-tooltip for that option. i.e. backends need to run gettext in the init function.
-
-qof_backend_prepare_frame, qof_backend_prepare_option and qof_backend_complete_frame
-are intended to be used by the backend itself to create the options.
-
-qof_backend_get_config, qof_backend_option_foreach and qof_backend_load_config
-are intended for either the backend or the frontend to retrieve the option data
-from the frame or set new data.
-
-Backends are loaded using QofBackendProvider via the function specified in
-prov->backend_new. Before backend_new returns, you should ensure that your
-backend is fully configured and ready for use.
-
-@{
-*/
-
-/** A single Backend Configuration Option. */
-typedef struct QofBackendOption_s
-{
- KvpValueType type; /**< Only GINT64, DOUBLE, NUMERIC, STRING and TIMESPEC supported. */
- const gchar *option_name; /**< non-translated, key. */
- const gchar *description; /**< translatable description. */
- const gchar *tooltip; /**< translatable tooltip */
- gpointer value; /**< The value of the option. */
-} QofBackendOption;
-
-/** Initialise the backend_configuration */
-void qof_backend_prepare_frame(QofBackend *be);
-
-/** Add an option to the backend_configuration. Repeat for more. */
-void qof_backend_prepare_option(QofBackend *be, const QofBackendOption *option);
-
-/** Complete the backend_configuration and return the frame. */
-KvpFrame* qof_backend_complete_frame(QofBackend *be);
-
-/** Backend configuration option foreach callback prototype. */
-typedef void (*QofBackendOptionCB)(QofBackendOption*, gpointer data);
-
-/** Iterate over the frame and process each option. */
-void qof_backend_option_foreach(KvpFrame *config, QofBackendOptionCB cb, gpointer data);
-
-/** \brief Load configuration options specific to this backend.
-
- at param be The backend to configure.
- at param config A KvpFrame of QofBackendOptions that this backend
-will recognise. Each backend needs to document their own config
-types and acceptable values.
-
-*/
-void qof_backend_load_config (QofBackend *be, KvpFrame *config);
-
-/** \brief Get the available configuration options
-
-To retrieve the options from the returned KvpFrame, the caller
-needs to parse the XML file that documents the option names and
-data types. The XML file itself is part of the backend and is
-installed in a directory determined by the backend. Therefore,
-loading a new backend requires two paths: the path to the .la file
-and the path to the xml. Both paths are available by including a
-generated header file, e.g. gncla-dir.h defines GNC_LIB_DIR for
-the location of the .la file and GNC_XML_DIR for the xml.
-
- at param be The QofBackend to be configured.
-
- at return A new KvpFrame containing the available options or
-NULL on failure.
-
-*/
-KvpFrame* qof_backend_get_config(QofBackend *be);
-//@}
-
/** \brief Load a QOF-compatible backend shared library.
\param directory Can be NULL if filename is a complete path.
Modified: gnucash/trunk/src/libqof/qof/qofbook-p.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbook-p.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofbook-p.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -69,6 +69,12 @@
gchar *qof_book_validate_counter_format_internal(const gchar *p,
const gchar* gint64_format);
+/** This debugging function can be used to traverse the book structure
+ * and all subsidiary structures, printing out which structures
+ * have been marked dirty.
+ */
+void qof_book_print_dirty (const QofBook *book);
+
/* @} */
/* @} */
/* @} */
Modified: gnucash/trunk/src/libqof/qof/qofbook.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbook.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofbook.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -267,12 +267,6 @@
*/
void qof_book_mark_dirty(QofBook *book);
-/** This debugging function can be used to traverse the book structure
- * and all subsidiary structures, printing out which structures
- * have been marked dirty.
- */
-void qof_book_print_dirty (const QofBook *book);
-
/** Retrieve the earliest modification time on the book. */
time_t qof_book_get_dirty_time(const QofBook *book);
Modified: gnucash/trunk/src/libqof/qof/qofid.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofid.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofid.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -151,27 +151,7 @@
return TRUE;
}
-static void
-collection_merge_cb (QofInstance *ent, gpointer data)
-{
- QofCollection *target;
- target = (QofCollection*)data;
- qof_collection_add_entity(target, ent);
-}
-
-gboolean
-qof_collection_merge (QofCollection *target, QofCollection *merge)
-{
- if (!target || !merge)
- {
- return FALSE;
- }
- g_return_val_if_fail (target->e_type == merge->e_type, FALSE);
- qof_collection_foreach(merge, collection_merge_cb, target);
- return TRUE;
-}
-
static void
collection_compare_cb (QofInstance *ent, gpointer user_data)
{
Modified: gnucash/trunk/src/libqof/qof/qofid.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofid.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofid.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -221,19 +221,6 @@
void qof_collection_remove_entity (QofInstance *ent);
-/** \brief Merge two QOF_TYPE_COLLECT of the same type.
-
-\note \b NOT the same as the main collections in the book.
-
-QOF_TYPE_COLLECT uses a secondary collection, independent of
-those in the book. Entities will not be removed from the
-original collection as when using ::qof_instance_insert_entity
-or ::qof_instance_remove_entity.
-
-*/
-gboolean
-qof_collection_merge (QofCollection *target, QofCollection *merge);
-
/** \brief Compare two secondary collections.
Performs a deep comparision of the collections. Each QofInstance in
Modified: gnucash/trunk/src/libqof/qof/qofutil.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofutil.c 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofutil.c 2011-04-04 09:25:10 UTC (rev 20526)
@@ -75,7 +75,10 @@
return p != NULL;
}
-gint
+/** Use g_utf8_casefold and g_utf8_collate to compare two utf8 strings,
+ * ignore case. Return < 0 if da compares before db, 0 if they compare
+ * equal, > 0 if da compares after db. */
+static gint
qof_utf8_strcasecmp (const gchar *da, const gchar *db)
{
gchar *da_casefold, *db_casefold;
Modified: gnucash/trunk/src/libqof/qof/qofutil.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofutil.h 2011-04-03 20:16:47 UTC (rev 20525)
+++ gnucash/trunk/src/libqof/qof/qofutil.h 2011-04-04 09:25:10 UTC (rev 20526)
@@ -177,11 +177,6 @@
* otherwise. */
gboolean qof_utf8_substr_nocase (const gchar *haystack, const gchar *needle);
-/** Use g_utf8_casefold and g_utf8_collate to compare two utf8 strings,
- * ignore case. Return < 0 if da compares before db, 0 if they compare
- * equal, > 0 if da compares after db. */
-gint qof_utf8_strcasecmp (const gchar *da, const gchar *db);
-
/** The safe_strcmp compares strings da and db the same way that strcmp()
does, except that either may be null. This routine assumes that
a non-null string is always greater than a null string.
More information about the gnucash-changes
mailing list