#include <stdio.h>
Go to the source code of this file.
Classes | |
union | setelemT |
struct | setT |
Defines | |
#define | DEFsetT 1 |
#define | FOREACHelem_(set) FOREACHsetelement_(void, set, elem) |
#define | FOREACHset_(sets) FOREACHsetelement_(setT, sets, set) |
#define | FOREACHsetelement_(type, set, variable) |
#define | FOREACHsetelement_i_(type, set, variable) |
#define | FOREACHsetelementreverse12_(type, set, variable) |
#define | FOREACHsetelementreverse_(type, set, variable) |
#define | SETaddr_(set, type) ((type **)(&((set)->e[0].p))) |
#define | SETelem_(set, n) ((set)->e[n].p) |
#define | SETelemaddr_(set, n, type) ((type **)(&((set)->e[n].p))) |
#define | SETelemsize ((int)sizeof(setelemT)) |
#define | SETelemt_(set, n, type) ((type*)((set)->e[n].p)) |
#define | SETempty_(set) (!set || (SETfirst_(set) ? 0 : 1)) |
#define | SETfirst_(set) ((set)->e[0].p) |
#define | SETfirstt_(set, type) ((type*)((set)->e[0].p)) |
#define | SETindex_(set, elem) ((int)((void **)elem##p - (void **)&(set)->e[1].p)) |
#define | SETref_(elem) (elem##p[-1]) |
#define | SETreturnsize_(set, size) (((size)= ((set)->e[(set)->maxsize].i))?(--(size)):((size)= (set)->maxsize)) |
#define | SETsecond_(set) ((set)->e[1].p) |
#define | SETsecondt_(set, type) ((type*)((set)->e[1].p)) |
#define | SETsizeaddr_(set) (&((set)->e[(set)->maxsize].i)) |
#define | SETtruncate_(set, size) |
Typedefs | |
typedef union setelemT | setelemT |
typedef struct setT | setT |
Functions | |
void | qh_setaddnth (setT **setp, int nth, void *newelem) |
void | qh_setaddsorted (setT **setp, void *elem) |
void | qh_setappend (setT **setp, void *elem) |
void | qh_setappend2ndlast (setT **setp, void *elem) |
void | qh_setappend_set (setT **setp, setT *setA) |
void | qh_setcheck (setT *set, const char *tname, unsigned id) |
void | qh_setcompact (setT *set) |
setT * | qh_setcopy (setT *set, int extra) |
void * | qh_setdel (setT *set, void *elem) |
void * | qh_setdellast (setT *set) |
void * | qh_setdelnth (setT *set, int nth) |
void * | qh_setdelnthsorted (setT *set, int nth) |
void * | qh_setdelsorted (setT *set, void *newelem) |
setT * | qh_setduplicate (setT *set, int elemsize) |
int | qh_setequal (setT *setA, setT *setB) |
int | qh_setequal_except (setT *setA, void *skipelemA, setT *setB, void *skipelemB) |
int | qh_setequal_skip (setT *setA, int skipA, setT *setB, int skipB) |
void | qh_setfree (setT **set) |
void | qh_setfree2 (setT **setp, int elemsize) |
void | qh_setfreelong (setT **set) |
int | qh_setin (setT *set, void *setelem) |
int | qh_setindex (setT *set, void *setelem) |
void | qh_setlarger (setT **setp) |
void * | qh_setlast (setT *set) |
setT * | qh_setnew (int size) |
setT * | qh_setnew_delnthsorted (setT *set, int size, int nth, int prepend) |
void | qh_setprint (FILE *fp, const char *string, setT *set) |
void | qh_setreplace (setT *set, void *oldelem, void *newelem) |
int | qh_setsize (setT *set) |
setT * | qh_settemp (int setsize) |
void | qh_settempfree (setT **set) |
void | qh_settempfree_all (void) |
setT * | qh_settemppop (void) |
void | qh_settemppush (setT *set) |
void | qh_settruncate (setT *set, int size) |
int | qh_setunique (setT **set, void *elem) |
void | qh_setzero (setT *set, int idx, int size) |
#define FOREACHelem_ | ( | set | ) | FOREACHsetelement_(void, set, elem) |
#define FOREACHset_ | ( | sets | ) | FOREACHsetelement_(setT, sets, set) |
#define FOREACHsetelement_ | ( | type, | |
set, | |||
variable | |||
) |
#define FOREACHsetelement_i_ | ( | type, | |
set, | |||
variable | |||
) |
if (((variable= NULL), set)) for (\ variable##_i= 0, variable= (type *)((set)->e[0].p), \ variable##_n= qh_setsize(set);\ variable##_i < variable##_n;\ variable= (type *)((set)->e[++variable##_i].p) )
#define FOREACHsetelementreverse12_ | ( | type, | |
set, | |||
variable | |||
) |
#define FOREACHsetelementreverse_ | ( | type, | |
set, | |||
variable | |||
) |
if (((variable= NULL), set)) for (\ variable##temp= qh_setsize(set)-1, variable= qh_setlast(set);\ variable; variable= \ ((--variable##temp >= 0) ? SETelemt_(set, variable##temp, type) : NULL))
#define SETelemaddr_ | ( | set, | |
n, | |||
type | |||
) | ((type **)(&((set)->e[n].p))) |
#define SETelemsize ((int)sizeof(setelemT)) |
#define SETfirstt_ | ( | set, | |
type | |||
) | ((type*)((set)->e[0].p)) |
#define SETindex_ | ( | set, | |
elem | |||
) | ((int)((void **)elem##p - (void **)&(set)->e[1].p)) |
#define SETreturnsize_ | ( | set, | |
size | |||
) | (((size)= ((set)->e[(set)->maxsize].i))?(--(size)):((size)= (set)->maxsize)) |
#define SETsecond_ | ( | set | ) | ((set)->e[1].p) |
#define SETsecondt_ | ( | set, | |
type | |||
) | ((type*)((set)->e[1].p)) |
#define SETsizeaddr_ | ( | set | ) | (&((set)->e[(set)->maxsize].i)) |
#define SETtruncate_ | ( | set, | |
size | |||
) |
void qh_setaddnth | ( | setT ** | setp, |
int | nth, | ||
void * | newelem | ||
) |
void qh_setaddsorted | ( | setT ** | setp, |
void * | elem | ||
) |
void qh_setappend | ( | setT ** | setp, |
void * | elem | ||
) |
void qh_setappend2ndlast | ( | setT ** | setp, |
void * | elem | ||
) |
void qh_setappend_set | ( | setT ** | setp, |
setT * | setA | ||
) |
void qh_setcheck | ( | setT * | set, |
const char * | tname, | ||
unsigned | id | ||
) |
void qh_setcompact | ( | setT * | set | ) |
setT* qh_setcopy | ( | setT * | set, |
int | extra | ||
) |
void* qh_setdellast | ( | setT * | set | ) |
void* qh_setdelnth | ( | setT * | set, |
int | nth | ||
) |
void* qh_setdelnthsorted | ( | setT * | set, |
int | nth | ||
) |
void* qh_setdelsorted | ( | setT * | set, |
void * | newelem | ||
) |
setT* qh_setduplicate | ( | setT * | set, |
int | elemsize | ||
) |
int qh_setequal | ( | setT * | setA, |
setT * | setB | ||
) |
int qh_setequal_except | ( | setT * | setA, |
void * | skipelemA, | ||
setT * | setB, | ||
void * | skipelemB | ||
) |
int qh_setequal_skip | ( | setT * | setA, |
int | skipA, | ||
setT * | setB, | ||
int | skipB | ||
) |
void qh_setfree | ( | setT ** | set | ) |
void qh_setfree2 | ( | setT ** | setp, |
int | elemsize | ||
) |
void qh_setfreelong | ( | setT ** | set | ) |
int qh_setindex | ( | setT * | set, |
void * | setelem | ||
) |
void qh_setlarger | ( | setT ** | setp | ) |
void* qh_setlast | ( | setT * | set | ) |
setT* qh_setnew_delnthsorted | ( | setT * | set, |
int | size, | ||
int | nth, | ||
int | prepend | ||
) |
void qh_setprint | ( | FILE * | fp, |
const char * | string, | ||
setT * | set | ||
) |
void qh_setreplace | ( | setT * | set, |
void * | oldelem, | ||
void * | newelem | ||
) |
int qh_setsize | ( | setT * | set | ) |
setT* qh_settemp | ( | int | setsize | ) |
void qh_settempfree | ( | setT ** | set | ) |
void qh_settempfree_all | ( | void | ) |
setT* qh_settemppop | ( | void | ) |
void qh_settemppush | ( | setT * | set | ) |
void qh_settruncate | ( | setT * | set, |
int | size | ||
) |
int qh_setunique | ( | setT ** | set, |
void * | elem | ||
) |
void qh_setzero | ( | setT * | set, |
int | idx, | ||
int | size | ||
) |