+uint32_t string_to_word(string_t s, struct cloc loc,
+ struct flagstr *f, string_t desc)
+{
+ struct flagstr *j;
+ for (j=f; j->name; j++)
+ if (strcmp(s,j->name)==0)
+ return j->value;
+ cfgfatal(loc,desc,"option \"%s\" not known\n",s);
+ return 0;
+}
+
+uint32_t string_list_to_word(list_t *l, struct flagstr *f, string_t desc)
+{
+ list_t *i;
+ uint32_t r=0;
+ struct flagstr *j;
+
+ for (i=l; i; i=i->next) {
+ if (i->item->type!=t_string) {
+ cfgfatal(i->item->loc,desc,"all elements of list must be "
+ "strings\n");
+ }
+ for (j=f; j->name; j++)
+ r|=string_to_word(i->item->data.string,i->item->loc,f,desc);
+ }
+ return r;
+}
+