36 int num_attr,
int max_attr,
37 Odr_int *attr_list,
char **attr_clist,
44 if (li->
lex_len >=
sizeof(buf)-1)
54 size_t len=strlen(src);
56 if (li->
lex_len == len+off && !memcmp(li->
lex_buf+off, src, len-off))
64 const char *sep_match;
72 if ((sep_match = strchr(li->
left_sep, **qptr)))
85 while (**qptr && **qptr != sep_char)
87 if (**qptr ==
'\\' && (*qptr)[1])
97 if (sep_char ==
' ' &&
130 if (*in ==
'\\' && len > 0)
185 return out - out_buf;
189 int num_attr,
Odr_int *attr_list,
190 char **attr_clist,
Odr_oid **attr_set)
195 if (!(cp = strchr(li->
lex_buf,
'=')) ||
199 if (attr_set[num_attr] == 0)
209 if (!(cp = strchr(li->
lex_buf,
'=')))
218 attr_set[num_attr] = attr_set[num_attr-1];
220 attr_set[num_attr] = 0;
231 for (i = cp - li->
lex_buf; i < li->lex_len; i++)
235 attr_list[2*num_attr+1] = 0;
236 attr_clist[num_attr] = (
char *)
odr_malloc(o, len+1);
238 attr_clist[num_attr][len] =
'\0';
241 attr_list[2*num_attr+1] =
odr_atoi(cp);
242 attr_clist[num_attr] = 0;
247 int num_attr,
Odr_int *attr_list,
248 char **attr_clist,
Odr_oid **attr_set)
265 memcpy(attr_tmp, attr_list, num_attr * 2 *
sizeof(*attr_tmp));
266 for (i = num_attr; --i >= 0; )
269 for (j = i+1; j<num_attr; j++)
270 if (attr_tmp[2*j] == attr_tmp[2*i])
315 memcpy(term_octet->
buf, buf, len);
316 term_octet->
size = term_octet->
len = len;
317 term_octet->
buf[term_octet->
size] = 0;
365 int num_attr,
Odr_int *attr_list,
366 char **attr_clist,
Odr_oid **attr_set)
372 int num_attr,
Odr_int *attr_list,
384 rpn_term(li, o, num_attr, attr_list, attr_clist, attr_set)))
507 int num_attr,
int max_attr,
508 Odr_int *attr_list,
char **attr_clist,
546 attr_clist, attr_set)))
550 attr_clist, attr_set)))
583 int num_attr,
int max_attr,
600 attr_clist, attr_set)))
608 attr_clist, attr_set)))
618 if (num_attr >= max_attr)
624 attr_clist, attr_set))
630 attr_clist, attr_set);
636 attr_clist, attr_set);
648 char *attr_clist[512];
679 attr_array, attr_clist, attr_set)))
714 char *attr_clist[512];
736 *attributeSetP = top_set;
748 if (num_attr >= max_attr)
754 attr_clist, attr_set))
891 for (i = 0; i < num; i++)
908 *msg =
"no error";
break;
910 *msg =
"extra token";
break;
912 *msg =
"missing token";
break;
914 *msg =
"unknown attribute set";
break;
916 *msg =
"too many attributes";
break;
918 *msg =
"bad attribute specification";
break;
920 *msg =
"internal error";
break;
922 *msg =
"proximity error";
break;
924 *msg =
"bad integer";
break;
926 *msg =
"unknown error";
break;