X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zutil%2Fzoom-opt.c;fp=zutil%2Fzoom-opt.c;h=0000000000000000000000000000000000000000;hp=02a7ae0dae21aa2cbaa1dfb82bd3f35d0e756838;hb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9;hpb=c71d717ada2a9ef730d527f161eb5ba9aa641a9f diff --git a/zutil/zoom-opt.c b/zutil/zoom-opt.c deleted file mode 100644 index 02a7ae0..0000000 --- a/zutil/zoom-opt.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * $Id: zoom-opt.c,v 1.3 2003-01-06 08:20:29 adam Exp $ - * - * ZOOM layer for C, options handling - */ -#include -#include "zoom-p.h" - -#include - -ZOOM_API(ZOOM_options) -ZOOM_options_create_with_parent (ZOOM_options parent) -{ - return ZOOM_options_create_with_parent2(parent, 0); -} - -ZOOM_API(ZOOM_options) -ZOOM_options_create (void) -{ - return ZOOM_options_create_with_parent (0); -} - - -ZOOM_API(ZOOM_options) -ZOOM_options_create_with_parent2 (ZOOM_options parent1, ZOOM_options parent2) -{ - ZOOM_options opt = (ZOOM_options) xmalloc (sizeof(*opt)); - - opt->refcount = 1; - opt->callback_func = 0; - opt->callback_handle = 0; - opt->entries = 0; - opt->parent1= parent1; - if (parent1) - (parent1->refcount)++; - opt->parent2= parent2; - if (parent2) - (parent2->refcount)++; - return opt; -} - - -void ZOOM_options_addref (ZOOM_options opt) -{ - (opt->refcount)++; -} - -ZOOM_API(ZOOM_options_callback) -ZOOM_options_set_callback ( - ZOOM_options opt, - ZOOM_options_callback callback_func, - void *callback_handle) -{ - ZOOM_options_callback callback_old; - - assert (opt); - callback_old = opt->callback_func; - opt->callback_func = callback_func; - opt->callback_handle = callback_handle; - return callback_old; -} - -ZOOM_API(void) -ZOOM_options_destroy (ZOOM_options opt) -{ - if (!opt) - return; - (opt->refcount)--; - if (opt->refcount == 0) - { - struct ZOOM_options_entry *e; - - ZOOM_options_destroy (opt->parent1); - ZOOM_options_destroy (opt->parent2); - e = opt->entries; - while (e) - { - struct ZOOM_options_entry *e0 = e; - xfree (e->name); - xfree (e->value); - e = e->next; - xfree (e0); - } - xfree (opt); - } -} - -ZOOM_API(void) -ZOOM_options_setl (ZOOM_options opt, const char *name, const char *value, - int len) -{ - struct ZOOM_options_entry **e; - - e = &opt->entries; - while (*e) - { - if (!strcmp((*e)->name, name)) - { - xfree ((*e)->value); - (*e)->value = 0; - if (value) - { - (*e)->value = (char *) xmalloc (len+1); - memcpy ((*e)->value, value, len); - (*e)->value[len] = '\0'; - } - return; - } - e = &(*e)->next; - } - *e = (struct ZOOM_options_entry *) xmalloc (sizeof(**e)); - (*e)->name = xstrdup (name); - (*e)->value = 0; - if (value) - { - (*e)->value = (char *) xmalloc (len+1); - memcpy ((*e)->value, value, len); - (*e)->value[len] = '\0'; - } - (*e)->next = 0; -} - -ZOOM_API(void) -ZOOM_options_set (ZOOM_options opt, const char *name, const char *value) -{ - ZOOM_options_setl (opt, name, value, value ? strlen(value): 0); -} - -ZOOM_API(const char *) -ZOOM_options_get (ZOOM_options opt, const char *name) -{ - const char *v = 0; - if (!opt) - return 0; - if (opt->callback_func) - v = (*opt->callback_func)(opt->callback_handle, name); - if (!v) - { - struct ZOOM_options_entry *e; - for (e = opt->entries; e; e = e->next) - if (!strcmp(e->name, name)) - { - v = e->value; - break; - } - } - if (!v) - v = ZOOM_options_get(opt->parent1, name); - if (!v) - v = ZOOM_options_get(opt->parent2, name); - return v; -} - -ZOOM_API(int) -ZOOM_options_get_bool (ZOOM_options opt, const char *name, int defa) -{ - const char *v = ZOOM_options_get (opt, name); - - if (!v) - return defa; - if (!strcmp (v, "1") || !strcmp(v, "T")) - return 1; - return 0; -} - -ZOOM_API(int) -ZOOM_options_get_int (ZOOM_options opt, const char *name, int defa) -{ - const char *v = ZOOM_options_get (opt, name); - - if (!v || !*v) - return defa; - return atoi(v); -} - -ZOOM_API(void) -ZOOM_options_set_int(ZOOM_options opt, const char *name, int value) -{ - char s[40]; - - sprintf (s, "%d", value); - ZOOM_options_set (opt, name, s); -}