1 #ifndef _PROJENT_UTIL_H 2 #define _PROJENT_UTIL_H 3 4 #include <sys/types.h> 5 #include <regex.h> 6 #include <sys/varargs.h> 7 8 #include "lst.h" 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 /* UTIL_STR_APPEND */ 15 #define UTIL_STR_APPEND1(S, S1) util_str_append((S), 1, (S1)) 16 #define UTIL_STR_APPEND2(S, S1, S2) util_str_append((S), 2, (S1), (S2)) 17 18 /* UTIL_FREE_SNULL */ 19 #define UTIL_FREE_SNULL(ptr) { \ 20 free(ptr); \ 21 ptr = NULL; \ 22 } 23 24 #define UNKWN_SCALE 0 25 #define BYTES_SCALE 1 26 #define SCNDS_SCALE 2 27 #define COUNT_SCALE 3 28 29 30 extern char *util_safe_strdup(char *); 31 extern void *util_safe_realloc(void*, size_t); 32 extern void *util_safe_malloc(size_t); 33 extern void *util_safe_zmalloc(size_t); 34 extern char **util_tokenize(char *, lst_t *); 35 extern void util_free_tokens(char **); 36 extern char *util_substr(regex_t *, regmatch_t *, char *, int); 37 extern char *util_str_append(char *, int, ...); 38 extern int util_val2num(char *, int, lst_t *, char **, char **, char **); 39 extern void util_add_errmsg(lst_t *, char *format, ...); 40 extern void util_print_errmsgs(lst_t *); 41 42 #ifdef __cplusplus 43 } 44 #endif 45 #endif /* _PROJENT_UTIL_H */