Lines Matching refs:alist
23 /* $Id: alist.c,v 1.8 2007/08/28 07:20:43 tbox Exp $ */
32 #include <isccc/alist.h>
42 #define ALIST_TAG "*alist*"
51 isccc_sexpr_t *alist, *tag;
56 alist = isccc_sexpr_cons(tag, NULL);
57 if (alist == NULL) {
62 return (alist);
66 isccc_alist_alistp(isccc_sexpr_t *alist)
70 if (alist == NULL || alist->type != ISCCC_SEXPRTYPE_DOTTEDPAIR)
72 car = CAR(alist);
81 isccc_alist_emptyp(isccc_sexpr_t *alist)
83 REQUIRE(isccc_alist_alistp(alist));
85 if (CDR(alist) == NULL)
91 isccc_alist_first(isccc_sexpr_t *alist)
93 REQUIRE(isccc_alist_alistp(alist));
95 return (CDR(alist));
99 isccc_alist_assq(isccc_sexpr_t *alist, const char *key)
103 REQUIRE(isccc_alist_alistp(alist));
106 * Skip alist type tag.
108 alist = CDR(alist);
110 while (alist != NULL) {
111 INSIST(alist->type == ISCCC_SEXPRTYPE_DOTTEDPAIR);
112 car = CAR(alist);
118 alist = CDR(alist);
125 isccc_alist_delete(isccc_sexpr_t *alist, const char *key)
129 REQUIRE(isccc_alist_alistp(alist));
131 prev = alist;
132 rest = CDR(alist);
151 isccc_alist_define(isccc_sexpr_t *alist, const char *key, isccc_sexpr_t *value)
155 kv = isccc_alist_assq(alist, key);
168 elt = isccc_sexpr_addtolist(&alist, kv);
185 isccc_alist_definestring(isccc_sexpr_t *alist, const char *key, const char *str)
192 kv = isccc_alist_define(alist, key, v);
200 isccc_alist_definebinary(isccc_sexpr_t *alist, const char *key, isccc_region_t *r)
207 kv = isccc_alist_define(alist, key, v);
215 isccc_alist_lookup(isccc_sexpr_t *alist, const char *key)
219 kv = isccc_alist_assq(alist, key);
226 isccc_alist_lookupstring(isccc_sexpr_t *alist, const char *key, char **strp)
230 kv = isccc_alist_assq(alist, key);
245 isccc_alist_lookupbinary(isccc_sexpr_t *alist, const char *key, isccc_region_t **r)
249 kv = isccc_alist_assq(alist, key);