]> git.deb.at Git - pkg/abook.git/blobdiff - xmalloc.c
reformat changelog entry
[pkg/abook.git] / xmalloc.c
index 2b7fda6b666f2b0d715050b3ad486ff19a74c773..3a34e1ce187a864a029c434a221a4c4fd2fbe0db 100644 (file)
--- a/xmalloc.c
+++ b/xmalloc.c
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "gettext.h"
 #include "xmalloc.h"
 
 static void
 xmalloc_default_error_handler(int err)
 {
-       fprintf(stderr, "Memory allocation failure: %s\n", strerror(err));
+       fprintf(stderr, _("Memory allocation failure: %s\n"), strerror(err));
        exit(EXIT_FAILURE);
 }
 
@@ -148,3 +149,21 @@ xstrdup(const char *s)
        return (char *)memcpy(new, s, len + 1);
 }
 
+char *
+xstrndup(const char *s, size_t len)
+{
+       char *new;
+       size_t n = strlen(s);
+
+       if(n > len)
+               n = len;
+
+       new = xmalloc_inc(n, 1);
+       if(new == NULL)
+               return NULL;
+
+       memcpy(new, s, n);
+       new[n] = '\0';
+
+       return new;
+}