AcePerl
view release on metacpan or search on metacpan
acelib/wh/array.h view on Meta::CPAN
#define stackAtEnd(stk) ((stk)->pos >= (stk)->ptr)
char* stackNextText (Stack s) ;
#define stackText(stk,mark) ((char*)((stk)->a->base + (mark)))
#define stackTextForceFeed(stk,j) (arrayForceFeed((stk)->a,j) ,\
(stk)->ptr = (stk)->pos = (stk)->a->base + (j) ,\
(stk)->safe = (stk)->a->base + (stk)->a->dim - 16 )
void catBinary (Stack s, char* data, int size) ;
/********** Line breaking package **********/
int uLinesText (char *text, int width) ;
char *uNextLine (char *text) ;
char *uPopLine (char *text) ;
char **uBrokenLines (char *text, int width) ; /* array of lines */
char *uBrokenText (char *text, int width) ; /* \n's intercalated */
/********** Associator package *************/
typedef struct AssStruct
{ int magic ; /* Ass_MAGIC */
int id ; /* unique identifier */
int n ; /* number of items stored */
int m ; /* power of 2 = size of arrays - 1 */
int i ; /* Utility state */
void **in,**out ;
unsigned int mask ; /* m-1 */
} *Associator ;
#define assExists(a) ((a) && (a)->magic == ASS_MAGIC ? (a)->id : 0 )
#if !defined(MEM_DEBUG)
Associator assHandleCreate (STORE_HANDLE handle) ;
Associator assBigCreate (int size) ;
#else
Associator assHandleCreate_dbg (STORE_HANDLE handle,
const char *hfname, int hlineno) ;
Associator assBigCreate_dbg (int size, const char *hfname, int hlineno) ;
#define assHandleCreate(h) assHandleCreate_dbg(h, __FILE__, __LINE__)
#define assBigCreate(s) assBigCreate_dbg(s, __FILE__, __LINE__)
#endif
#define assCreate() assHandleCreate(0)
Associator assReCreate (Associator a) ;
void uAssDestroy (Associator a) ;
#define assDestroy(x) ((x) ? uAssDestroy(x), x = 0, TRUE : FALSE)
BOOL uAssFind (Associator a, void* xin, void* *pout) ;
BOOL uAssFindNext(Associator a, void* xin, void * *pout);
#define assFind(ax,xin,pout) uAssFind((ax),(xin),(void**)(pout))
/* if found, updates *pout and returns TRUE, else returns FALSE */
#define assFindNext(ax,xin,pout) uAssFindNext((ax),(xin),(void**)(pout))
BOOL assInsert (Associator a, void* xin, void* xout) ;
/* if already there returns FALSE, else inserts and returns TRUE */
void assMultipleInsert(Associator a, void* xin, void* xout);
/* allow multiple Insertions */
BOOL assRemove (Associator a, void* xin) ;
/* if found, removes entry and returns TRUE, else returns FALSE */
BOOL assPairRemove (Associator a, void* xin, void* xout) ;
/* remove only if both fit */
void assDump (Associator a) ;
/* for debug - uses printf */
void assClear (Associator a) ;
BOOL uAssNext (Associator a, void* *pin, void* *pout) ;
#define assNext(ax,pin,pout) uAssNext((ax),(void**)(pin),(void**)pout)
/* convert an integer to a void * without generating a compiler warning */
#define assVoid(i) ((void *)(((char *)0) + (i)))
#define assInt(v) ((int)(((char *)v) - ((char *)0)))
#endif /* defined(DEF_ARRAY_H) */
/**************************** End of File ******************************/
( run in 1.955 second using v1.01-cache-2.11-cpan-39bf76dae61 )