diff options
Diffstat (limited to 'deskutils/gnotime/files/patch-lib::qof::qofquery-deserial.c')
-rw-r--r-- | deskutils/gnotime/files/patch-lib::qof::qofquery-deserial.c | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/deskutils/gnotime/files/patch-lib::qof::qofquery-deserial.c b/deskutils/gnotime/files/patch-lib::qof::qofquery-deserial.c new file mode 100644 index 000000000000..35d06885a78d --- /dev/null +++ b/deskutils/gnotime/files/patch-lib::qof::qofquery-deserial.c @@ -0,0 +1,235 @@ +--- lib/qof/qofquery-deserial.c.orig Sun May 23 16:57:30 2004 ++++ lib/qof/qofquery-deserial.c Wed Jul 7 23:54:09 2004 +@@ -80,7 +80,7 @@ + if (0 == strcmp (TOK, node->name)) \ + { \ + const char *str = GET_TEXT (node); \ +- gint64 ival = atoll (str); \ ++ gint64 ival = strtoll (str, (char **)NULL, 10); \ + FN (SELF, ival); \ + } \ + else +@@ -182,10 +182,11 @@ + static QofQueryPredData * \ + SUBRNAME (xmlNodePtr root) \ + { \ ++ QofQueryCompare how = QOF_COMPARE_EQUAL; \ ++ QofQueryPredData *pred; \ + xmlNodePtr xp = root->xmlChildrenNode; \ + xmlNodePtr node; \ + \ +- QofQueryCompare how = QOF_COMPARE_EQUAL; \ + CTYPE val = 0; \ + \ + for (node=xp; node; node = node->next) \ +@@ -197,7 +198,6 @@ + {} \ + } \ + \ +- QofQueryPredData *pred; \ + pred = PRED (how, val); \ + return pred; \ + } +@@ -245,10 +245,11 @@ + static QofQueryPredData * + qof_query_pred_kvp_from_xml (xmlNodePtr root) + { ++ QofQueryCompare how = QOF_COMPARE_EQUAL; ++ QofQueryPredData *pred; + xmlNodePtr xp = root->xmlChildrenNode; + xmlNodePtr node; + +- QofQueryCompare how = QOF_COMPARE_EQUAL; + GSList *path = NULL; + KvpValue *value = NULL; + +@@ -271,7 +272,6 @@ + GET_DATE(&value, wrap_new_timespec, "qofquery:date"); + } + +- QofQueryPredData *pred; + pred = qof_query_kvp_predicate (how, path, value); + g_slist_free (path); + return pred; +@@ -282,9 +282,11 @@ + static QofQueryPredData * + qof_query_pred_guid_from_xml (xmlNodePtr root) + { ++ QofQueryPredData *pred; ++ GList *guid_list = NULL; ++ GList *n; + xmlNodePtr xp = root->xmlChildrenNode; + xmlNodePtr node; +- GList *guid_list = NULL; + + QofGuidMatch sm = QOF_GUID_MATCH_ANY; + +@@ -313,11 +315,9 @@ + } + } + +- QofQueryPredData *pred; + pred = qof_query_guid_predicate (sm, guid_list); + + /* The predicate made a copy of everything, so free our stuff */ +- GList *n; + for (n=guid_list; n; n=n->next) + { + guid_free (n->data); +@@ -331,11 +331,12 @@ + static QofQueryPredData * + qof_query_pred_char_from_xml (xmlNodePtr root) + { ++ QofQueryPredData *pred; ++ QofCharMatch sm = QOF_CHAR_MATCH_ANY; ++ const char * char_list = NULL; + xmlNodePtr xp = root->xmlChildrenNode; + xmlNodePtr node; + +- QofCharMatch sm = QOF_CHAR_MATCH_ANY; +- const char * char_list = NULL; + + for (node=xp; node; node = node->next) + { +@@ -348,7 +349,6 @@ + {} + } + +- QofQueryPredData *pred; + pred = qof_query_char_predicate (sm, char_list); + return pred; + } +@@ -358,11 +358,12 @@ + static QofQueryPredData * + qof_query_pred_numeric_from_xml (xmlNodePtr root) + { ++ QofQueryCompare how = QOF_COMPARE_EQUAL; ++ QofNumericMatch sm = QOF_NUMERIC_MATCH_ANY; ++ QofQueryPredData *pred; + xmlNodePtr xp = root->xmlChildrenNode; + xmlNodePtr node; + +- QofQueryCompare how = QOF_COMPARE_EQUAL; +- QofNumericMatch sm = QOF_NUMERIC_MATCH_ANY; + gnc_numeric num; + + for (node=xp; node; node = node->next) +@@ -376,7 +377,6 @@ + {} + } + +- QofQueryPredData *pred; + pred = qof_query_numeric_predicate (how, sm, num); + return pred; + } +@@ -386,12 +386,13 @@ + static QofQueryPredData * + qof_query_pred_date_from_xml (xmlNodePtr root) + { +- xmlNodePtr xp = root->xmlChildrenNode; +- xmlNodePtr node; +- + QofQueryCompare how = QOF_COMPARE_EQUAL; + QofDateMatch sm = QOF_DATE_MATCH_ROUNDED; + Timespec date = {0,0}; ++ QofQueryPredData *pred; ++ xmlNodePtr xp = root->xmlChildrenNode; ++ xmlNodePtr node; ++ + + for (node=xp; node; node = node->next) + { +@@ -404,7 +405,6 @@ + {} + } + +- QofQueryPredData *pred; + pred = qof_query_date_predicate (how, sm, date); + return pred; + } +@@ -414,13 +414,14 @@ + static QofQueryPredData * + qof_query_pred_string_from_xml (xmlNodePtr root) + { +- xmlNodePtr xp = root->xmlChildrenNode; +- xmlNodePtr node; +- + QofQueryCompare how = QOF_COMPARE_EQUAL; + QofStringMatch sm = QOF_STRING_MATCH_CASEINSENSITIVE; + gboolean is_regex = FALSE; + const char *pstr = NULL; ++ QofQueryPredData *pred; ++ xmlNodePtr xp = root->xmlChildrenNode; ++ xmlNodePtr node; ++ + + for (node=xp; node; node = node->next) + { +@@ -434,7 +435,6 @@ + {} + } + +- QofQueryPredData *pred; + pred = qof_query_string_predicate (how, pstr, sm , is_regex); + return pred; + } +@@ -444,8 +444,8 @@ + static GSList * + qof_query_param_path_from_xml (xmlNodePtr root) + { +- xmlNodePtr pterms = root->xmlChildrenNode; + GSList *plist = NULL; ++ xmlNodePtr pterms = root->xmlChildrenNode; + xmlNodePtr node; + for (node=pterms; node; node = node->next) + { +@@ -465,10 +465,10 @@ + static void + qof_query_term_from_xml (QofQuery *q, xmlNodePtr root) + { +- xmlNodePtr node; +- xmlNodePtr term = root->xmlChildrenNode; + QofQueryPredData *pred = NULL; + GSList *path = NULL; ++ xmlNodePtr node; ++ xmlNodePtr term = root->xmlChildrenNode; + + for (node=term; node; node = node->next) + { +@@ -476,8 +476,9 @@ + if (0 == strcmp (node->name, "qofquery:invert")) + { + QofQuery *qt = qof_query_create(); ++ QofQuery *qinv; + qof_query_term_from_xml (qt, node); +- QofQuery *qinv = qof_query_invert (qt); ++ qinv = qof_query_invert (qt); + qof_query_merge_in_place (q, qinv, QOF_QUERY_AND); + qof_query_destroy (qinv); + qof_query_destroy (qt); +@@ -594,10 +595,14 @@ + qof_query_from_xml (xmlNodePtr root) + { + QofQuery *q; ++ xmlChar *version; ++ xmlNodePtr qpart; ++ xmlNodePtr node; + + if (!root) return NULL; + +- xmlChar * version = xmlGetProp(root, "version"); ++ version = xmlGetProp(root, "version"); ++ + if (!root->name || strcmp ("qof:qofquery", root->name)) + { + // XXX something is wrong. warn ... +@@ -606,8 +611,7 @@ + + q = qof_query_create (); + +- xmlNodePtr qpart = root->xmlChildrenNode; +- xmlNodePtr node; ++ qpart = root->xmlChildrenNode; + for (node=qpart; node; node = node->next) + { + if (node->type != XML_ELEMENT_NODE) continue; |