X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=string.c;h=77f2f2a17d27002b0fcf608a4b615f6beaa83b01;hp=5479e5b4fb43f6f0bac87e6cfba42ec011f30beb;hb=226ce82aaccff7e74a6fadd028743b731a3744d2;hpb=5440b8c0464829022a0ba5dd5daa931b15712a11 diff --git a/string.c b/string.c index 5479e5b4..77f2f2a1 100644 --- a/string.c +++ b/string.c @@ -6,14 +6,14 @@ /** \file string.c Memory allocation and string handling functions. */ -#include "para.h" -#include "string.h" - #include /* gettimeofday */ #include #include /* uname() */ #include +#include +#include "para.h" +#include "string.h" #include "error.h" /** @@ -135,6 +135,13 @@ __must_check __printf_1_2 __malloc char *make_message(const char *fmt, ...) return msg; } +void freep(void *arg) +{ + void **ptr = (void **)arg; + free(*ptr); + *ptr = NULL; +} + /** * Paraslash's version of strcat(). * @@ -735,3 +742,19 @@ err: free(argv); return ret; } + +int para_regcomp(regex_t *preg, const char *regex, int cflags) +{ + char *buf; + size_t size; + int ret = regcomp(preg, regex, cflags); + + if (ret == 0) + return 1; + size = regerror(ret, preg, NULL, 0); + buf = para_malloc(size); + regerror(ret, preg, buf, size); + PARA_ERROR_LOG("%s\n", buf); + free(buf); + return -E_REGEX; +}