- wrbuf_insert(w, 0, "@and ", 5);
- wrbuf_puts(w, " @attr 1=");
- yaz_encode_pqf_term(w, s->value, strlen(s->value));
- wrbuf_puts(w, " ");
- yaz_encode_pqf_term(w, value, strlen(value));
+ if (!strncmp(s->value, "rpn:", 4))
+ {
+ const char *pqf = s->value + 4;
+ wrbuf_puts(w_pqf, "@and ");
+ wrbuf_puts(w_pqf, pqf);
+ wrbuf_puts(w_pqf, " ");
+ yaz_encode_pqf_term(w_pqf, value, strlen(value));
+ }
+ else if (!strncmp(s->value, "ccl:", 4))
+ {
+ const char *ccl = s->value + 4;
+ wrbuf_puts(w_ccl, " and ");
+ wrbuf_puts(w_ccl, ccl);
+ wrbuf_puts(w_ccl, "=\"");
+ wrbuf_puts(w_ccl, value);
+ wrbuf_puts(w_ccl, "\"");
+ }