X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/0f2d19dd46f83f41177f61d585732b32a866d613..f85a9bcf5fcd8ebf591e0accc0a25e24140d5fad:/libguile/hashtab.h diff --git a/libguile/hashtab.h b/libguile/hashtab.h index 345303896..538bf6e76 100644 --- a/libguile/hashtab.h +++ b/libguile/hashtab.h @@ -2,7 +2,7 @@ #ifndef HASHTABH #define HASHTABH -/* Copyright (C) 1995,1996 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,8 @@ * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA * * As a special exception, the Free Software Foundation gives permission * for additional uses of the text contained in its release of GUILE. @@ -40,23 +41,25 @@ * * If you write modifications of your own for GUILE, it is your choice * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - */ + * If you do not wish that, delete this exception notice. */ - +#include "libguile/__scm.h" -#ifdef __STDC__ -extern SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned int (*hash_fn)(), SCM (*assoc_fn)(), void * closure); -extern SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, unsigned int (*hash_fn)(), SCM (*assoc_fn)(), void * closure); -extern SCM scm_hash_fn_ref (SCM table, SCM obj, SCM dflt, unsigned int (*hash_fn)(), SCM (*assoc_fn)(), void * closure); -extern SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned int (*hash_fn)(), SCM (*assoc_fn)(), void * closure); -extern SCM scm_hash_fn_remove_x (SCM table, - SCM obj, - unsigned int (*hash_fn)(), - SCM (*assoc_fn)(), - SCM (*delete_fn)(), - void * closure); + +#if 0 +typedef unsigned int scm_hash_fn_t (SCM obj, unsigned int d, void *closure); +typedef SCM scm_assoc_fn_t (SCM key, SCM alist, void *closure); +typedef SCM scm_delete_fn_t (SCM elt, SCM list); +#endif + +extern SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned int (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +extern SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, unsigned int (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +extern SCM scm_hash_fn_ref (SCM table, SCM obj, SCM dflt, unsigned int (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +extern SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned int (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +extern SCM scm_hash_fn_remove_x (SCM table, SCM obj, unsigned int (*hash_fn) (), SCM (*assoc_fn) (), SCM (*delete_fn) (), void * closure); +extern SCM scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table); + extern SCM scm_hashq_get_handle (SCM table, SCM obj); extern SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init); extern SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt); @@ -76,43 +79,14 @@ extern SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj); extern SCM scm_hashx_create_handle_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM init); extern SCM scm_hashx_ref (SCM hash, SCM assoc, SCM table, SCM obj, SCM dflt); extern SCM scm_hashx_set_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM val); -extern SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM delete, SCM table, SCM obj); +extern SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM del, SCM table, SCM obj); +extern SCM scm_hash_fold (SCM proc, SCM init, SCM hash); extern void scm_init_hashtab (void); -#else /* STDC */ -extern SCM scm_hash_fn_get_handle (); -extern SCM scm_hash_fn_create_handle_x (); -extern SCM scm_hash_fn_ref (); -extern SCM scm_hash_fn_set_x (); -extern SCM scm_hash_fn_remove_x (); -extern SCM scm_hashq_get_handle (); -extern SCM scm_hashq_create_handle_x (); -extern SCM scm_hashq_ref (); -extern SCM scm_hashq_set_x (); -extern SCM scm_hashq_remove_x (); -extern SCM scm_hashv_get_handle (); -extern SCM scm_hashv_create_handle_x (); -extern SCM scm_hashv_ref (); -extern SCM scm_hashv_set_x (); -extern SCM scm_hashv_remove_x (); -extern SCM scm_hash_get_handle (); -extern SCM scm_hash_create_handle_x (); -extern SCM scm_hash_ref (); -extern SCM scm_hash_set_x (); -extern SCM scm_hash_remove_x (); -extern SCM scm_hashx_get_handle (); -extern SCM scm_hashx_create_handle_x (); -extern SCM scm_hashx_ref (); -extern SCM scm_hashx_set_x (); -extern SCM scm_hashx_remove_x (); -extern void scm_init_hashtab (); - -#endif /* STDC */ - - - - - - - #endif /* HASHTABH */ + +/* + Local Variables: + c-file-style: "gnu" + End: +*/