+xmalloc (size_t n)
+{
+ XMALLOCTYPE *p;
+
+ p = (XMALLOCTYPE *) malloc(n);
+ if (p == (XMALLOCTYPE *) 0)
+ {
+ report(stderr, GT_("malloc failed\n"));
+ abort();
+ }
+ return(p);
+}
+
+XMALLOCTYPE *
+xrealloc (XMALLOCTYPE *p, size_t n)
+{
+ if (p == 0)
+ return xmalloc (n);
+ p = (XMALLOCTYPE *) realloc(p, n);
+ if (p == (XMALLOCTYPE *) 0)
+ {
+ report(stderr, GT_("realloc failed\n"));
+ abort();
+ }
+ return p;
+}
+
+char *xstrdup(const char *s)
+{
+ char *p;
+ p = (char *) xmalloc(strlen(s)+1);
+ strcpy(p,s);
+ return p;
+}
+
+#if !defined(HAVE_STRDUP)
+char *strdup(const char *s)