X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Fxmalloc.c;h=d02f41b9ad23a7e475b99ae84060d3399bd35c84;hp=037fab87e2d6d9e4e1ab68e1cb89e9f9874c4889;hb=e8f08ced76bf1b9a94dd0dc874ad22761ad8900b;hpb=30f34015ee11bbe1106c07e381288a702f12dac5;ds=sidebyside diff --git a/lib/xmalloc.c b/lib/xmalloc.c index 037fab87..d02f41b9 100644 --- a/lib/xmalloc.c +++ b/lib/xmalloc.c @@ -21,6 +21,7 @@ #include #include +#include #if STDC_HEADERS # include @@ -31,15 +32,7 @@ void *realloc (); void free (); #endif -#if ENABLE_NLS -# include -# define _(Text) gettext (Text) -#else -# define textdomain(Domain) -# define _(Text) Text -#endif -#define N_(Text) Text - +#include "gettext.h" #include "xalloc.h" #ifndef EXIT_FAILURE @@ -53,14 +46,6 @@ void *xcalloc (size_t n, size_t s); void *xrealloc (void *p, size_t n); #endif -#ifndef HAVE_DONE_WORKING_MALLOC_CHECK -#error you must run the autoconf test for a properly working malloc -- see malloc.m4 -#endif - -#ifndef HAVE_DONE_WORKING_REALLOC_CHECK -#error you must run the autoconf test for a properly working realloc -- see realloc.m4 -#endif - /* Exit value when the requested amount of memory is not available. The caller may set it to some other value. */ int xalloc_exit_failure = EXIT_FAILURE; @@ -124,6 +109,18 @@ xrealloc (p, n) return p; } +/* Duplicate a string */ + +char *xstrdup(const char *s) +{ + char *p; + + p = strdup(s); + if(!p) + xalloc_fail ((int)strlen(s)); + return p; +} + #ifdef NOT_USED /* Allocate memory for N elements of S bytes, with error checking. */