#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 | ||
| ) |