$NetBSD: patch-ar,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-serialize.c.orig	Sun May 23 22:57:30 2004
+++ lib/qof/qofquery-serialize.c	Wed Mar 16 09:59:34 2005
@@ -228,9 +228,10 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_STRING))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-string");
+		query_string_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_string_t pdata = (query_string_t) pd;
+		pdata = (query_string_t) pd;
 		PUT_MATCH2("qofquery:string-match", pdata->options,
                        STRING_MATCH, NORMAL, CASEINSENSITIVE);
 		PUT_BOOL ("qofquery:is-regex", pdata->is_regex);
@@ -240,9 +241,10 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_NUMERIC))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-numeric");
+		query_numeric_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_numeric_t pdata = (query_numeric_t) pd;
+		pdata = (query_numeric_t) pd;
 		PUT_MATCH3("qofquery:numeric-match", pdata->options,
 		                 NUMERIC_MATCH, DEBIT, CREDIT, ANY);
 		
@@ -252,11 +254,12 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_KVP))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-kvp");
+		query_kvp_t pdata;
+		GSList *n;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_kvp_t pdata = (query_kvp_t) pd;
+		pdata = (query_kvp_t) pd;
 		
-		GSList *n;
 		for (n=pdata->path; n; n=n->next)
 		{
 			PUT_STR ("qofquery:kvp-path", n->data);
@@ -267,9 +270,10 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_DATE))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-date");
+		query_date_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_date_t pdata = (query_date_t) pd;
+		pdata = (query_date_t) pd;
 		
 		PUT_MATCH2("qofquery:date-match", pdata->options,
 		                 DATE_MATCH, NORMAL, ROUNDED);
@@ -280,18 +284,20 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_INT64))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-int64");
+		query_int64_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_int64_t pdata = (query_int64_t) pd;
+		pdata = (query_int64_t) pd;
 		PUT_INT64 ("qofquery:int64", pdata->val);
 		return topnode;
 	}
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_INT32))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-int32");
+		query_int32_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_int32_t pdata = (query_int32_t) pd;
+		pdata = (query_int32_t) pd;
 		
 		PUT_INT32 ("qofquery:int32", pdata->val);
 		return topnode;
@@ -299,9 +305,10 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_DOUBLE))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-double");
+		query_double_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_double_t pdata = (query_double_t) pd;
+		pdata = (query_double_t) pd;
 		
 		PUT_DBL ("qofquery:double", pdata->val);
 		return topnode;
@@ -309,9 +316,10 @@ qof_query_pred_data_to_xml (QofQueryPred
 	if (!safe_strcmp (pd->type_name, QOF_TYPE_BOOLEAN))
 	{
 		xmlNodePtr topnode = xmlNewNode (NULL, "qofquery:pred-boolean");
+		query_boolean_t pdata;
 		PUT_HOW ("qofquery:compare", pd->how, LT, LTE, EQUAL, GT, GTE, NEQ);
 
-		query_boolean_t pdata = (query_boolean_t) pd;
+		pdata = (query_boolean_t) pd;
 		
 		PUT_BOOL ("qofquery:boolean", pdata->val);
 		return topnode;
@@ -386,9 +394,10 @@ qof_query_and_terms_to_xml (GList *and_t
 	for ( ; n; n=n->next)
 	{
 		QofQueryTerm *qt = n->data;
+		xmlNodePtr t;
 		if (!qt) continue;
 
-		xmlNodePtr t = qof_query_one_term_to_xml (n->data);
+		t = qof_query_one_term_to_xml (n->data);
 		if (t) xmlAddChild (terms, t);
 	}
 	return terms;
@@ -419,31 +428,37 @@ static xmlNodePtr
 qof_query_sorts_to_xml (QofQuery *q)
 {
 	QofQuerySort *s[3];
+	xmlNodePtr sortlist;
+	int i;
 	qof_query_get_sorts (q, &s[0], &s[1], &s[2]);
 
 	if (NULL == s[0]) return NULL;
 
-	xmlNodePtr sortlist = xmlNewNode (NULL, "qofquery:sort-list");
-	int i;
+	sortlist = xmlNewNode (NULL, "qofquery:sort-list");
 	for (i=0; i<3; i++)
 	{
+		GSList *plist;
+		xmlNodePtr sort, topnode, pl;
+		gboolean increasing;
+		gint opt;
+		
 		if (NULL == s[i]) continue;
 
-		GSList *plist = qof_query_sort_get_param_path (s[i]);
+		plist = qof_query_sort_get_param_path (s[i]);
 		if (!plist) continue;
 
-		xmlNodePtr sort = xmlNewNode (NULL, "qofquery:sort");
+		sort = xmlNewNode (NULL, "qofquery:sort");
 		xmlAddChild (sortlist, sort);
 
-		xmlNodePtr topnode = sort;
+		topnode = sort;
 
-		gboolean increasing = qof_query_sort_get_increasing (s[i]);
+		increasing = qof_query_sort_get_increasing (s[i]);
 		PUT_STR ("qofquery:order", increasing ? "DESCENDING" : "ASCENDING");
 
-		gint opt = qof_query_sort_get_sort_options (s[i]);
+		opt = qof_query_sort_get_sort_options (s[i]);
 		PUT_INT32 ("qofquery:options", opt);
 
-		xmlNodePtr pl = qof_query_param_path_to_xml (plist);
+		pl = qof_query_param_path_to_xml (plist);
 		if (pl) xmlAddChild (sort, pl);
 	}
 
@@ -456,15 +471,17 @@ static void
 do_qof_query_to_xml (QofQuery *q, xmlNodePtr topnode)
 {
 	QofIdType search_for = qof_query_get_search_for (q);
+	xmlNodePtr terms, sorts;
+	gint max_results;
 	PUT_STR ("qofquery:search-for", search_for);
 
-	xmlNodePtr terms = qof_query_terms_to_xml(q);
+	terms = qof_query_terms_to_xml(q);
 	if (terms) xmlAddChild (topnode, terms);
 
-	xmlNodePtr sorts = qof_query_sorts_to_xml (q);
+	sorts = qof_query_sorts_to_xml (q);
 	if (sorts) xmlAddChild (topnode, sorts);
 
-	gint max_results = qof_query_get_max_results (q);
+	max_results = qof_query_get_max_results (q);
 	PUT_INT32 ("qofquery:max-results", max_results);
 }
 
@@ -499,6 +516,10 @@ int main (int argc, char * argv[])
 {
 	QofQuery *q;
 	QofSqlQuery *sq;
+	xmlDocPtr doc;
+	xmlNodePtr topnode;
+	xmlChar *xbuf;
+	int bufsz;
 
 	qof_query_init();
 	qof_object_initialize ();
@@ -523,12 +544,10 @@ int main (int argc, char * argv[])
 
 	qof_query_print (q);
 
-	xmlDocPtr doc = doc = xmlNewDoc("1.0");
-	xmlNodePtr topnode = qof_query_to_xml (q);
+	doc = doc = xmlNewDoc("1.0");
+	topnode = qof_query_to_xml (q);
 	xmlDocSetRootElement(doc,topnode);
 
-	xmlChar *xbuf;
-	int bufsz;
 	xmlDocDumpFormatMemory (doc, &xbuf, &bufsz, 1);
 
 	printf ("%s\n", xbuf);
