home *** CD-ROM | disk | FTP | other *** search
- /*----------------------------------------------------------------------
- *
- * strdebug.h -- Dynamic memory handler interface
- * Description: strdebug.h provides the string interface definitions
- * for the dynamic memory handler.
- * See strdebug.c for complete documentation.
- *
- */
-
- /* Compilation options */
- #define MEM_LIST /* Build internal list */
- #define MEM_WHERE /* Keep track of memory block source */
- #define MEM_HEADER /* Keep headers and footers around for each block */
- #define MEM_COMP_FREE /* Complement the space free'd */
-
- #if !defined(STATIC_PTR)
- #define STATIC_PTR (~NULL)
- #endif
-
- /* Interface functions */
-
- /* Interface functions to access only through macros */
- #if defined(MEM_WHERE)
- char *str_strcat(char *dst,const char *src, char *fil, int lin);
- char *str_strchr(const char *s,int c, char *fil, int lin);
- int str_strcmp(const char *s1,const char *s2, char *fil, int lin);
- int str_strcoll(const char *s1,const char *s2, char *fil, int lin);
- char *str_strcpy(char *dst,const char *src, char *fil, int lin);
- size_t str_strcspn(const char *str,const char *charset, char *fil, int lin);
- int str_stricmp(const char *s1,const char *s2, char *fil, int lin);
- size_t str_strlen(const char *s, char *fil, int lin);
- char *str_strlwr(char *str, char *fil, int lin);
- char *str_strncat(char *dst,const char *src,size_t n, char *fil, int lin);
- int str_strncmp(const char *s1,const char *s2,size_t n, char *fil, int lin);
- int real_strncmp(const char *s1,const char *s2,size_t n);
- char *str_strncpy(char *dst,const char *src,size_t n, char *fil, int lin);
- int str_strnicmp(const char *s1,const char *s2,size_t len, char *fil, int lin);
- char *str_strnset(char *s1,int fill,const size_t len, char *fil, int lin);
- char *str_strpbrk(const char *str,const char *charset, char *fil, int lin);
- char *str_strrchr(const char *str,int c, char *fil, int lin);
- char *str_strrev(char *str, char *fil, int lin);
- char *str_strset(char *str,char fill, char *fil, int lin);
- size_t str_strspn(const char *str,const char *charset, char *fil, int lin);
- char *str_strstr(const char *str,const char *substr, char *fil, int lin);
- char *str_strtok(char *s1,const char *s2, char *fil, int lin);
- char *str_strupr(char *str, char *fil, int lin);
- size_t str_strxfrm(char *dst,const char *src,size_t n, char *fil, int lin);
- #else
- char *str_strcat(char *dst,const char *src);
- char *str_strchr(const char *s,int c);
- int str_strcmp(const char *s1,const char *s2);
- int str_strcoll(const char *s1,const char *s2);
- char *str_strcpy(char *dst,const char *src);
- size_t str_strcspn(const char *str,const char *charset);
- int str_stricmp(const char *s1,const char *s2);
- size_t str_strlen(const char *s);
- char *str_strlwr(char *str);
- char *str_strncat(char *dst,const char *src,size_t n);
- int str_strncmp(const char *s1,const char *s2,size_t n);
- int real_strncmp(const char *s1,const char *s2,size_t n);
- char *str_strncpy(char *dst,const char *src,size_t n);
- int str_strnicmp(const char *s1,const char *s2,size_t len);
- char *str_strnset(char *s1,int fill,const size_t len);
- char *str_strpbrk(const char *str,const char *charset);
- char *str_strrchr(const char *str,int c);
- char *str_strrev(char *str);
- char *str_strset(char *str,char fill);
- size_t str_strspn(const char *str,const char *charset);
- char *str_strstr(const char *str,const char *substr);
- char *str_strtok(char *s1,const char *s2);
- char *str_strupr(char *str);
- size_t str_strxfrm(char *dst,const char *src,size_t n);
- #endif
-
- /* Interface macros */
- #if !defined(__STRDEBUG__)
- #if defined(MEM_WHERE)
- #define strcat(a,b) str_strcat((a),(b),__FILE__,__LINE__)
- #define strchr(a,b) str_strchr((a),(b),__FILE__,__LINE__)
- #define strcmp(a,b) str_strcmp((a),(b),__FILE__,__LINE__)
- #define strcmpi(a,b) str_stricmp((a),(b),__FILE__,__LINE__)
- #define strcoll(a,b) str_strcoll((a),(b),__FILE__,__LINE__)
- #define strcpy(a,b) str_strcpy((a),(b),__FILE__,__LINE__)
- #define strcspn(a,b) str_strcspn((a),(b),__FILE__,__LINE__)
- #define stricmp(a,b) str_stricmp((a),(b),__FILE__,__LINE__)
- #define strlen(a) str_strlen((a),__FILE__,__LINE__)
- #define strlwr(a) str_strlwr((a),__FILE__,__LINE__)
- #define strncat(a,b,c) str_strncat((a),(b),(c),__FILE__,__LINE__)
- #define strncmp(a,b,c) str_strncmp((a),(b),(c),__FILE__,__LINE__)
- #define strncpy(a,b,c) str_strncpy((a),(b),(c),__FILE__,__LINE__)
- #define strnicmp(a,b,c) str_strnicmp((a),(b),(c),__FILE__,__LINE__)
- #define strnset(a,b,c) str_strnset((a),(b),(c),__FILE__,__LINE__)
- #define strpbrk(a,b) str_strpbrk((a),(b),__FILE__,__LINE__)
- #define strrchr(a,b) str_strrchr((a),(b),__FILE__,__LINE__)
- #define strrev(a) str_strrev((a),__FILE__,__LINE__)
- #define strset(a,b) str_strset((a),(b),__FILE__,__LINE__)
- #define strspn(a,b) str_strspn((a),(b),__FILE__,__LINE__)
- #define strstr(a,b) str_strstr((a),(b),__FILE__,__LINE__)
- #define strtok(a,b) str_strtok((a),(b),__FILE__,__LINE__)
- #define strupr(a) str_strupr((a),__FILE__,__LINE__)
- #define strxfrm(a,b,c) str_strxfrm((a),(b),(c),__FILE__,__LINE__)
- #else
- #define strcat(a,b) str_strcat((a),(b))
- #define strchr(a,b) str_strchr((a),(b))
- #define strcmp(a,b) str_strcmp((a),(b))
- #define strcmpi(a,b) str_stricmp((a),(b))
- #define strcoll(a,b) str_strcoll((a),(b))
- #define strcpy(a,b) str_strcpy((a),(b))
- #define strcspn(a,b) str_strcspn((a),(b))
- #define stricmp(a,b) str_stricmp((a),(b))
- #define strlen(a) str_strlen((a))
- #define strlwr(a) str_strlwr((a))
- #define strncat(a,b,c) str_strncat((a),(b),(c))
- #define strncmp(a,b,c) str_strncmp((a),(b),(c))
- #define strncpy(a,b,c) str_strncpy((a),(b),(c))
- #define strnicmp(a,b,c) str_strnicmp((a),(b),(c))
- #define strnset(a,b,c) str_strnset((a),(b),(c))
- #define strpbrk(a,b) str_strpbrk((a),(b),(c))
- #define strrchr(a,b) str_strrchr((a),(b))
- #define strrev(a) str_strrev((a))
- #define strset(a,b) str_strset((a),(b))
- #define strspn(a,b) str_strspn((a),(b))
- #define strstr(a,b) str_strstr((a),(b))
- #define strtok(a,b) str_strtok((a),(b))
- #define strupr(a) str_strupr((a))
- #define strxfrm(a,b,c) str_strxfrm((a),(b),(c))
- #endif
- #endif
-