size_t i;
int must_quote = 0;
- for (i = 0 ; i < lterm; i++)
- if (sterm[i] == ' ')
- must_quote = 1;
+ if (lterm == 0)
+ must_quote = 1;
+ else
+ {
+ for (i = 0 ; i < lterm; i++)
+ if (sterm[i] == ' ')
+ must_quote = 1;
+ }
if (must_quote)
wrbuf_puts(w, "\"");
if (trunc == 2 || trunc == 3)
}
}
+int solr_transform_rpn2solr_stream_r(solr_transform_t ct,
+ WRBUF addinfo,
+ void (*pr)(const char *buf, void *client_data),
+ void *client_data,
+ Z_RPNQuery *q)
+{
+ int r = rpn2solr_structure(ct, pr, client_data, q->RPNStructure,
+ /* nested*/ 0, addinfo);
+ if (!r)
+ wrbuf_rewind(addinfo);
+ return r;
+}
+
int solr_transform_rpn2solr_stream(solr_transform_t ct,
void (*pr)(const char *buf, void *client_data),
void *client_data,
Z_RPNQuery *q)
{
- int r;
WRBUF w = wrbuf_alloc();
- r = rpn2solr_structure(ct, pr, client_data, q->RPNStructure, 0, w);
+ int r = solr_transform_rpn2solr_stream_r(ct, w, pr, client_data, q);
if (r)
- solr_transform_set_error(ct, r, 0);
+ solr_transform_set_error(ct, r, wrbuf_len(w) ? wrbuf_cstr(w) : 0);
wrbuf_destroy(w);
return r;
}
-
int solr_transform_rpn2solr_wrbuf(solr_transform_t ct,
WRBUF w,
Z_RPNQuery *q)