diff options
Diffstat (limited to 'ptr.h')
-rw-r--r-- | ptr.h | 75 |
1 files changed, 0 insertions, 75 deletions
@@ -1,75 +0,0 @@ -/* - * ptr.h -- type definitions for ptr (aka "pointer"), a char* replacement - * which allows for '\0' inside a string. - */ - -#ifndef _PTR_H_ -#define _PTR_H_ - -typedef struct s_ptr { - int len; - int max; - int signature; -} _ptr; - -typedef _ptr * ptr; - -#define sizeofptr ((int)(1 + sizeof(_ptr))) - -/* the + 0 below is to prohibit using the macros for altering the ptr */ -#define ptrlen(p) ((p)->len + 0) -#define ptrmax(p) ((p)->max + 0) -#define ptrdata(p) ((char *)((ptr)(p) + 1)) -/* if p is a valid (ptr), ptrdata(p) is guaranteed to be a valid (char *) */ - -ptr ptrnew(int max); -ptr ptrdup2(ptr src, int newmax); -ptr ptrdup(ptr src); - -#define PTR_SIG 91887 -#define ptrdel(x) _ptrdel(x);x=(ptr)0; -void _ptrdel(ptr p); - -void ptrzero(ptr p); -void ptrshrink(ptr p, int len); -void ptrtrunc(ptr p, int len); -ptr ptrpad(ptr p, int len); -ptr ptrsetlen(ptr p, int len); - -ptr ptrcpy(ptr dst, ptr src); -ptr ptrmcpy(ptr dst, char *src, int len); - -ptr ptrcat(ptr dst, ptr src); -ptr ptrmcat(ptr dst, char *src, int len); - - -ptr __ptrcat(ptr dst, char *src, int len, int shrink); -ptr __ptrmcpy(ptr dst, char *src, int len, int shrink); - -int ptrcmp(ptr p, ptr q); -int ptrmcmp(ptr p, char *q, int lenq); - -char *ptrchr(ptr p, char c); -char *ptrrchr(ptr p, char c); - -char *ptrfind(ptr p, ptr q); -char *ptrmfind(ptr p, char *q, int lenq); - -char *ptrchrs(ptr p, ptr q); -char *ptrmchrs(ptr p, char *q, int lenq); -char *ptrrchrs(ptr p, ptr q); -char *ptrmrchrs(ptr p, char *q, int lenq); - -char *memchrs(char *p, int lenp, char *q, int lenq); -char *memrchrs(char *p, int lenp, char *q, int lenq); -#ifdef _GNU_SOURCE -# define memfind memmem -#else -char *memfind(char *hay, int haylen, char *needle, int needlelen); -/* TODO: watch memrchr, it is defined differently here than under _GNU_SOURCE, - * so it could cause bizarre results if a module makes use of a library that - * uses it */ -char *memrchr(char *p, int lenp, char c); -#endif - -#endif /* _PTR_H_ */ |