+ if (!allow_create)
+ return -1;
+ if (!strncmp("pz:", name, 3))
+ yaz_log(YLOG_WARN, "Adding pz-type setting name %s", name);
+ if (dictionary->num + 1 > dictionary->size)
+ {
+ char **tmp =
+ nmem_malloc(service->nmem, dictionary->size * 2 * sizeof(char*));
+ memcpy(tmp, dictionary->dict, dictionary->size * sizeof(char*));
+ dictionary->dict = tmp;
+ dictionary->size *= 2;
+ }
+ dictionary->dict[dictionary->num] = nmem_strdup(service->nmem, name);
+ dictionary->dict[dictionary->num][maxlen-1] = '\0';
+ return dictionary->num++;
+}
+
+int settings_create_offset(struct conf_service *service, const char *name)
+{
+ return settings_lookup(service, name, 1);
+}
+
+int settings_lookup_offset(struct conf_service *service, const char *name)
+{
+ return settings_lookup(service, name, 0);