{
while (cn)
{
- pr("\"", client_data);
- pr(cn->u.st.term, client_data);
- pr("\"", client_data);
+ const char *cp;
+ cp = cn->u.st.term;
+ while (*cp)
+ {
+ char x[2];
+ if (*cp == '*')
+ x[0] = '?';
+ else
+ x[0] = *cp;
+ x[1] = 0;
+ pr(x, client_data);
+ cp++;
+ }
if (cn->u.st.extra_terms)
pr(" ", client_data);
cn = cn->u.st.extra_terms;
while (*cp && *cp != ' ')
{
char x[2];
- x[0] = *cp;
+ if (*cp == '*')
+ x[0] = '?';
+ else
+ x[0] = *cp;
x[1] = '\0';
pr(x, client_data);
cp++;
void (*pr)(const char *buf, void *client_data),
void *client_data)
{
+ char *value = cn->u.boolean.value;
int r;
+ /* Rather lame initial attempt at interpreting proximity */
+ if (!strcmp(value, "prox")) value = "!";
+
pr("(", client_data);
r = cql_to_ccl_r(cn->u.boolean.left, pr, client_data);
if (r)
return r;
pr(" ", client_data);
- pr(cn->u.boolean.value, client_data);
+ pr(value, client_data);
pr(" ", client_data);
r = cql_to_ccl_r(cn->u.boolean.right, pr, client_data);