projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replacement for the current routing algorithm.
[tinc]
/
lib
/
xmalloc.c
diff --git
a/lib/xmalloc.c
b/lib/xmalloc.c
index
ce1888d
..
e7541bd
100644
(file)
--- a/
lib/xmalloc.c
+++ b/
lib/xmalloc.c
@@
-20,6
+20,8
@@
#endif
#include <sys/types.h>
#endif
#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
#if STDC_HEADERS
# include <stdlib.h>
#if STDC_HEADERS
# include <stdlib.h>
@@
-30,15
+32,7
@@
void *realloc ();
void free ();
#endif
void free ();
#endif
-#if ENABLE_NLS
-# include <libintl.h>
-# 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
#include "xalloc.h"
#ifndef EXIT_FAILURE
@@
-86,8
+80,6
@@
xmalloc (n)
size_t n;
{
void *p;
size_t n;
{
void *p;
- extern char*cp_file;
- extern int cp_line;
p = malloc (n);
if (p == 0)
p = malloc (n);
if (p == 0)
@@
-95,6
+87,21
@@
xmalloc (n)
return p;
}
return p;
}
+/* Allocate N bytes of memory dynamically, and set it all to zero. */
+
+void *
+xmalloc_and_zero (n)
+ size_t n;
+{
+ void *p;
+
+ p = malloc (n);
+ if (p == 0)
+ xalloc_fail ((int)n);
+ memset (p, '\0', n);
+ return p;
+}
+
/* Change the size of an allocated block of memory P to N bytes,
with error checking.
If P is NULL, run xmalloc. */
/* Change the size of an allocated block of memory P to N bytes,
with error checking.
If P is NULL, run xmalloc. */
@@
-110,6
+117,18
@@
xrealloc (p, n)
return p;
}
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. */
#ifdef NOT_USED
/* Allocate memory for N elements of S bytes, with error checking. */