diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2008-04-19 12:26:44 +0200 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2008-04-19 12:26:44 +0200 |
commit | d3ed555ef3e65601f3b952036914eafc10b01d9c (patch) | |
tree | b74838b7d85931c225dbd6a8bab0275e52bb5857 /common/set.c | |
parent | 953a00fd4b8463f9b6ba8616a507746fe8bc56af (diff) |
implement a set that uses the dict module as back-end
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-ldapd@681 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'common/set.c')
-rw-r--r-- | common/set.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/common/set.c b/common/set.c new file mode 100644 index 0000000..9efc582 --- /dev/null +++ b/common/set.c @@ -0,0 +1,64 @@ +/* + set.c - set functions + This file is part of the nss-ldapd library. + + Copyright (C) 2008 Arthur de Jong + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#include "config.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +#include "set.h" +#include "dict.h" + +SET *set_new(void) +{ + return (SET *)dict_new(); +} + +int set_add(SET *set,const char *value) +{ + return dict_put((DICT *)set,value,set); +} + +int set_contains(SET *set,const char *value) +{ + return dict_get((DICT *)set,value)!=NULL; +} + +void set_free(SET *set) +{ + dict_free((DICT *)set); +} + +void set_loop_first(SET *set) +{ + dict_loop_first((DICT *)set); +} + +const char *set_loop_next(SET *set) +{ + const char *value=NULL; + if (dict_loop_next((DICT *)set,&value,NULL)==NULL) + return NULL; + return value; +} |