diff options
| author | 2022-11-24 08:47:02 +0100 | |
|---|---|---|
| committer | 2022-11-24 08:47:02 +0100 | |
| commit | f2528c6c521cde213e9f7ac3e263b9736d27ef37 (patch) | |
| tree | f1efdf95b1b933665ed212213abdc0cc9c5f3e56 /xs.h | |
| parent | Refuse to store objects that are already here. (diff) | |
| download | penes-snac2-f2528c6c521cde213e9f7ac3e263b9736d27ef37.tar.gz penes-snac2-f2528c6c521cde213e9f7ac3e263b9736d27ef37.tar.xz penes-snac2-f2528c6c521cde213e9f7ac3e263b9736d27ef37.zip | |
Backport from xs.
Diffstat (limited to 'xs.h')
| -rw-r--r-- | xs.h | 5 |
1 files changed, 4 insertions, 1 deletions
| @@ -34,6 +34,9 @@ typedef char d_char; | |||
| 34 | /* auto-destroyable strings */ | 34 | /* auto-destroyable strings */ |
| 35 | #define xs __attribute__ ((__cleanup__ (_xs_destroy))) d_char | 35 | #define xs __attribute__ ((__cleanup__ (_xs_destroy))) d_char |
| 36 | 36 | ||
| 37 | /* not really all, just very much */ | ||
| 38 | #define XS_ALL 0xfffffff | ||
| 39 | |||
| 37 | void *xs_free(void *ptr); | 40 | void *xs_free(void *ptr); |
| 38 | void *_xs_realloc(void *ptr, size_t size, const char *file, int line, const char *func); | 41 | void *_xs_realloc(void *ptr, size_t size, const char *file, int line, const char *func); |
| 39 | #define xs_realloc(ptr, size) _xs_realloc(ptr, size, __FILE__, __LINE__, __FUNCTION__) | 42 | #define xs_realloc(ptr, size) _xs_realloc(ptr, size, __FILE__, __LINE__, __FUNCTION__) |
| @@ -74,7 +77,7 @@ d_char *xs_list_pop(d_char *list, char **data); | |||
| 74 | int xs_list_in(char *list, const char *val); | 77 | int xs_list_in(char *list, const char *val); |
| 75 | d_char *xs_join(char *list, const char *sep); | 78 | d_char *xs_join(char *list, const char *sep); |
| 76 | d_char *xs_split_n(const char *str, const char *sep, int times); | 79 | d_char *xs_split_n(const char *str, const char *sep, int times); |
| 77 | #define xs_split(str, sep) xs_split_n(str, sep, 0xfffffff) | 80 | #define xs_split(str, sep) xs_split_n(str, sep, XS_ALL) |
| 78 | d_char *xs_dict_new(void); | 81 | d_char *xs_dict_new(void); |
| 79 | d_char *xs_dict_append_m(d_char *dict, const char *key, const char *mem, int dsz); | 82 | d_char *xs_dict_append_m(d_char *dict, const char *key, const char *mem, int dsz); |
| 80 | #define xs_dict_append(dict, key, data) xs_dict_append_m(dict, key, data, xs_size(data)) | 83 | #define xs_dict_append(dict, key, data) xs_dict_append_m(dict, key, data, xs_size(data)) |