aboutsummaryrefslogtreecommitdiffstats
path: root/xalloca.c
diff options
context:
space:
mode:
Diffstat (limited to 'xalloca.c')
-rw-r--r--xalloca.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/xalloca.c b/xalloca.c
new file mode 100644
index 00000000..d5ed7abe
--- /dev/null
+++ b/xalloca.c
@@ -0,0 +1,47 @@
+/*
+ * xalloca.c -- allocate space or die
+ *
+ * For license terms, see the file COPYING in this directory.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#if defined(STDC_HEADERS)
+#include <stdlib.h>
+#endif
+#if defined(HAVE_ALLOCA_H)
+#include <alloca.h>
+#else
+#ifdef _AIX
+ #pragma alloca
+#endif
+#endif
+
+#include "fetchmail.h"
+
+#if defined(HAVE_VOIDPOINTER)
+#define XALLOCATYPE void
+#else
+#define XALLOCATYPE char
+#endif
+
+XALLOCATYPE *
+#ifdef __STDC__
+xalloca (size_t n)
+#else
+xalloca (n)
+
+int n;
+#endif
+{
+ XALLOCATYPE *p;
+
+ p = (XALLOCATYPE *) alloca(n);
+ if (p == (XALLOCATYPE *) 0)
+ error(PS_UNDEFINED, 0, "alloca failed");
+ return(p);
+}
+
+/* xalloca.c ends here */