X-Git-Url: http://git.thejh.net/?p=libjh.git;a=blobdiff_plain;f=string.c;h=76aa69e4ff338761eb9a0ba825877844c1b4c606;hp=b0db54c0fac7f8f38df1cb9071e18c11991aa2d8;hb=cfe1939e7d11c5c3863ed474ff9bc590422c97e7;hpb=4455aa6469db5cc86ff175ab0b6eafbe75a16ea4;ds=sidebyside diff --git a/string.c b/string.c index b0db54c..76aa69e 100644 --- a/string.c +++ b/string.c @@ -2,11 +2,20 @@ // This code is licensed under the AGPLv3. #include -#include HEADER #include HEADER #define streq(a,b) (!strcmp((a),(b))) +HEADER #define TPRINTF(name, ...) \ +HEADER char *name; \ +HEADER do { \ +HEADER int __tprintf_size = snprintf(NULL, 0, __VA_ARGS__); \ +HEADER assert(__tprintf_size != -1); \ +HEADER name = alloca(__tprintf_size+1); \ +HEADER int __tprintf_size2 = snprintf(name, __tprintf_size+1, __VA_ARGS__); \ +HEADER assert(__tprintf_size == __tprintf_size2); \ +HEADER } while (0); ////////////////////////////////////////////////////////// + PUBLIC_FN int count_char_occurences(char *s, char c) { int n=0; while (*s) {