summaryrefslogtreecommitdiffstats
path: root/lib/libforms/bindings.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libforms/bindings.c')
-rw-r--r--lib/libforms/bindings.c131
1 files changed, 0 insertions, 131 deletions
diff --git a/lib/libforms/bindings.c b/lib/libforms/bindings.c
deleted file mode 100644
index 4ebdd8d..0000000
--- a/lib/libforms/bindings.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 1995
- * Paul Richards. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer,
- * verbatim and that no modifications are made prior to this
- * point in the file.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Paul Richards.
- * 4. The name Paul Richards may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY PAUL RICHARDS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL PAUL RICHARDS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#include <err.h>
-#include <forms.h>
-#include <strhash.h>
-#include <stdlib.h>
-
-#include "internal.h"
-
-int
-bind_tuple(hash_table *htable, char *name,
- TupleType type, void(*fn)(void*))
-{
- struct Tuple *tuple;
-
- /* First check to see if we've been bound in already */
- if (hash_search(htable, tuple->name, NULL, NULL)) {
- warn("Duplicate tuple name, %s, skipping", name);
- return (ST_ERROR);
- }
-
- tuple = malloc(sizeof (struct Tuple));
- if (!tuple) {
- warn("Couldn't allocate memory for new tuple");
- return (ST_ERROR);
- }
-
- tuple->name = name;
- tuple->type = type;
- tuple->addr = fn;
-
- /* Insert it */
- hash_search(htable, tuple->name, tuple, NULL);
-
-#ifdef DEBUG
- debug_dump_table(htable);
-#endif
-
- return (0);
-}
-
-int
-tuple_match_any(char *key, void *data, void *arg)
-{
- TUPLE *tuple = (TUPLE *)data;
- TupleType *type = (TupleType *)arg;
-
- if (tuple->type != *type) {
- arg = 0;
- return (1);
- } else {
- arg = data;
- return (0);
- }
-}
-
-/*
- * Search a single hash table for a tuple.
- */
-
-TUPLE *
-get_tuple(hash_table *table, char *key, TupleType type)
-{
- void *arg = &type;
-
- /*
- * If a key is specified then search for that key,
- * otherwise, search the whole table for the first
- * tuple of the required type.
- */
-
- if (key)
- return(hash_search(table, key, NULL, NULL));
- else {
- hash_traverse(table, &tuple_match_any, arg);
- return (arg);
- }
-}
-
-/*
- * Search all tables currently in scope.
- */
-
-TUPLE *
-tuple_search(OBJECT *obj, char *key, TupleType type)
-{
- TUPLE *tuple;
-
- while (obj) {
-
- tuple = get_tuple(obj->bind, key, type);
-
- if (tuple)
- return (tuple);
- else
- obj = obj->parent;
- }
- return (get_tuple(root_table, key, type));
-}
OpenPOWER on IntegriCloud