$NetBSD: patch-aq,v 1.1 2005/03/16 12:48:49 rillig Exp $

gcc-2.95.3 does not like code intermixed with declarations.

--- lib/qof/qofquery-deserial.c.orig	Sun May 23 22:57:30 2004
+++ lib/qof/qofquery-deserial.c	Wed Mar 16 09:43:29 2005
@@ -184,6 +184,7 @@ SUBRNAME (xmlNodePtr root)              
 {                                                               \
 	xmlNodePtr xp = root->xmlChildrenNode;                       \
 	xmlNodePtr node;                                             \
+	QofQueryPredData *pred;					\
                                                                 \
 	QofQueryCompare how = QOF_COMPARE_EQUAL;                     \
 	CTYPE val = 0;                                               \
@@ -197,7 +198,6 @@ SUBRNAME (xmlNodePtr root)              
 		{}                                                        \
 	}                                                            \
                                                                 \
-	QofQueryPredData *pred;                                      \
 	pred = PRED (how, val);                                      \
 	return pred;                                                 \
 }
@@ -251,6 +251,7 @@ qof_query_pred_kvp_from_xml (xmlNodePtr 
 	QofQueryCompare how = QOF_COMPARE_EQUAL;
 	GSList *path = NULL;
 	KvpValue *value = NULL;
+	QofQueryPredData *pred;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -271,7 +272,6 @@ qof_query_pred_kvp_from_xml (xmlNodePtr 
 		GET_DATE(&value,    wrap_new_timespec, "qofquery:date");
 	}
 
-	QofQueryPredData *pred;
 	pred = qof_query_kvp_predicate (how, path, value);
 	g_slist_free (path);
 	return pred;
@@ -287,6 +287,8 @@ qof_query_pred_guid_from_xml (xmlNodePtr
    GList *guid_list = NULL;
 
 	QofGuidMatch sm = QOF_GUID_MATCH_ANY;
+	QofQueryPredData *pred;
+   GList *n;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -313,11 +315,9 @@ qof_query_pred_guid_from_xml (xmlNodePtr
 		}
 	}
 
-	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);
@@ -336,6 +336,7 @@ qof_query_pred_char_from_xml (xmlNodePtr
 
 	QofCharMatch sm = QOF_CHAR_MATCH_ANY;
    const char * char_list = NULL;
+	QofQueryPredData *pred;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -348,7 +349,6 @@ qof_query_pred_char_from_xml (xmlNodePtr
 		{}
 	}
 
-	QofQueryPredData *pred;
 	pred = qof_query_char_predicate (sm, char_list);
 	return pred;
 }
@@ -364,6 +364,7 @@ qof_query_pred_numeric_from_xml (xmlNode
 	QofQueryCompare how = QOF_COMPARE_EQUAL;
 	QofNumericMatch sm = QOF_NUMERIC_MATCH_ANY;
    gnc_numeric num;
+	QofQueryPredData *pred;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -376,7 +377,6 @@ qof_query_pred_numeric_from_xml (xmlNode
 		{}
 	}
 
-	QofQueryPredData *pred;
 	pred = qof_query_numeric_predicate (how, sm, num);
 	return pred;
 }
@@ -392,6 +392,7 @@ qof_query_pred_date_from_xml (xmlNodePtr
 	QofQueryCompare how = QOF_COMPARE_EQUAL;
 	QofDateMatch sm = QOF_DATE_MATCH_ROUNDED;
 	Timespec date = {0,0};
+	QofQueryPredData *pred;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -404,7 +405,6 @@ qof_query_pred_date_from_xml (xmlNodePtr
 		{}
 	}
 
-	QofQueryPredData *pred;
 	pred = qof_query_date_predicate (how, sm, date);
 	return pred;
 }
@@ -421,6 +421,7 @@ qof_query_pred_string_from_xml (xmlNodeP
 	QofStringMatch sm = QOF_STRING_MATCH_CASEINSENSITIVE;
 	gboolean is_regex = FALSE;
 	const char *pstr = NULL;
+	QofQueryPredData *pred;
 
 	for (node=xp; node; node = node->next)
 	{
@@ -434,7 +435,6 @@ qof_query_pred_string_from_xml (xmlNodeP
 		{}
 	}
 
-	QofQueryPredData *pred;
 	pred = qof_query_string_predicate (how, pstr, sm , is_regex);
 	return pred;
 }
@@ -476,8 +476,9 @@ qof_query_term_from_xml (QofQuery *q, xm
 		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,12 @@ QofQuery *
 qof_query_from_xml (xmlNodePtr root)
 {
 	QofQuery *q;
+	xmlChar *version;
+	xmlNodePtr qpart, 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 +609,7 @@ qof_query_from_xml (xmlNodePtr root)
 
 	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;
