/* * Neotonic ClearSilver Templating System * * This code is made available under the terms of the * Neotonic ClearSilver License. * http://www.neotonic.com/clearsilver/license.hdf * * Copyright (C) 2001 by Brandon Long */ #ifndef __ULIST_H_ #define __ULIST_H_ 1 #include "util/neo_err.h" typedef struct _ulist { int flags; void **items; int num; int max; } ULIST; #define ULIST_INTEGER (1<<0) #define ULIST_FREE (1<<1) #define ULIST_COPY (1<<2) NEOERR * uListInit(ULIST **ul, int size, int flags); NEOERR * uListvInit(ULIST **ul, ...); int uListLength (ULIST *ul); NEOERR * uListAppend (ULIST *ul, void *data); NEOERR * uListPop (ULIST *ul, void **data); NEOERR * uListInsert (ULIST *ul, int x, void *data); NEOERR * uListDelete (ULIST *ul, int x, void **data); NEOERR * uListGet (ULIST *ul, int x, void **data); NEOERR * uListSet (ULIST *ul, int x, void *data); NEOERR * uListReverse (ULIST *ul); NEOERR * uListSort (ULIST *ul, int (*compareFunc)(const void*, const void*)); void *uListSearch (ULIST *ul, const void *key, int (*compareFunc)(const void *, const void*)); void *uListIn (ULIST *ul, const void *key, int (*compareFunc)(const void *, const void*)); int uListIndex (ULIST *ul, const void *key, int (*compareFunc)(const void *, const void*)); NEOERR * uListDestroy (ULIST **ul, int flags); NEOERR * uListDestroyFunc (ULIST **ul, void (*destroyFunc)(void *)); #endif /* __ULIST_H_ */