-/* $Id: zrpn.c,v 1.134 2003-09-05 10:51:17 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003
+/* $Id: zrpn.c,v 1.137 2004-05-10 08:47:54 adam Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
This file is part of the Zebra server.
{
/* set was found, but value wasn't defined */
char val_str[32];
- sprintf (val_str, "%d", use_value);
+ sprintf (val_str, "%d 1", use_value);
errCode = 114;
errString = nmem_strdup (stream, val_str);
}
}
if (!prefix_len)
{
+#if 1
+ bases_ok++;
+#else
char val_str[32];
- sprintf (val_str, "%d", use_value);
+ sprintf (val_str, "%d 2", use_value);
errCode = 114;
errString = nmem_strdup (stream, val_str);
+#endif
continue;
}
bases_ok++; /* this has OK attributes */
sks->sortRelation = (int *)
nmem_malloc (stream, sizeof(*sks->sortRelation));
if (sort_relation_value == 1)
- *sks->sortRelation = Z_SortRelation_ascending;
+ *sks->sortRelation = Z_SortKeySpec_ascending;
else if (sort_relation_value == 2)
- *sks->sortRelation = Z_SortRelation_descending;
+ *sks->sortRelation = Z_SortKeySpec_descending;
else
- *sks->sortRelation = Z_SortRelation_ascending;
+ *sks->sortRelation = Z_SortKeySpec_ascending;
sks->caseSensitivity = (int *)
nmem_malloc (stream, sizeof(*sks->caseSensitivity));
return rset_create (rset_kind_null, &parms);
}
-/* pop - moved to xpath.c */
-#if 0
-
-struct xpath_predicate {
- int which;
- union {
-#define XPATH_PREDICATE_RELATION 1
- struct {
- char *name;
- char *op;
- char *value;
- } relation;
-#define XPATH_PREDICATE_BOOLEAN 2
- struct {
- const char *op;
- struct xpath_predicate *left;
- struct xpath_predicate *right;
- } boolean;
- } u;
-};
-
-struct xpath_location_step {
- char *part;
- struct xpath_predicate *predicate;
-};
-
-#endif
static int parse_xpath(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
oid_value attributeSet,
xpath[level].predicate->which == XPATH_PREDICATE_RELATION &&
xpath[level].predicate->u.relation.name[0])
{
- char predicate_str[128];
-
- strcpy (predicate_str,
- xpath[level].predicate->u.relation.name+1);
+ WRBUF wbuf = wrbuf_alloc();
+ wrbuf_puts(wbuf, xpath[level].predicate->u.relation.name+1);
if (xpath[level].predicate->u.relation.value)
{
- strcat (predicate_str, "=");
- strcat (predicate_str,
- xpath[level].predicate->u.relation.value);
+ const char *cp = xpath[level].predicate->u.relation.value;
+ wrbuf_putc(wbuf, '=');
+
+ while (*cp)
+ {
+ if (strchr(REGEX_CHARS, *cp))
+ wrbuf_putc(wbuf, '\\');
+ wrbuf_putc(wbuf, *cp);
+ cp++;
+ }
}
+ wrbuf_puts(wbuf, "");
rset_attr = xpath_trunc (
- zh, stream, '0', predicate_str, 3, curAttributeSet);
+ zh, stream, '0', wrbuf_buf(wbuf), 3, curAttributeSet);
+ wrbuf_free(wbuf, 1);
}
else
{