aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-08-25 02:30:55 +0000
committerMike Frysinger <vapier@gentoo.org>2007-08-25 02:30:55 +0000
commit0c10ade21f390fc83d51306bf0394b0bcfa80434 (patch)
tree8539e30136f39c8bd469ecc849708491ca544248 /xfuncs.c
parentsplit xfuncs off into a sep file for all utils to use, cleanup misc things, a... (diff)
downloadpax-utils-0c10ade21f390fc83d51306bf0394b0bcfa80434.tar.gz
pax-utils-0c10ade21f390fc83d51306bf0394b0bcfa80434.tar.bz2
pax-utils-0c10ade21f390fc83d51306bf0394b0bcfa80434.zip
add missing split xfuncs filesv0.1.16
Diffstat (limited to 'xfuncs.c')
-rw-r--r--xfuncs.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/xfuncs.c b/xfuncs.c
new file mode 100644
index 0000000..a860177
--- /dev/null
+++ b/xfuncs.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2003-2007 Gentoo Foundation
+ * Distributed under the terms of the GNU General Public License v2
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.1 2007/08/25 02:30:55 vapier Exp $
+ *
+ * Copyright 2003-2007 Ned Ludd - <solar@gentoo.org>
+ * Copyright 2004-2007 Mike Frysinger - <vapier@gentoo.org>
+ */
+
+#include "paxinc.h"
+
+char *xstrdup(const char *s);
+char *xstrdup(const char *s)
+{
+ char *ret = strdup(s);
+ if (!ret) err("Could not strdup(): %s", strerror(errno));
+ return ret;
+}
+
+void *xmalloc(size_t size);
+void *xmalloc(size_t size)
+{
+ void *ret = malloc(size);
+ if (!ret) err("Could not malloc() %li bytes", (unsigned long)size);
+ return ret;
+}
+
+void *xrealloc(void *ptr, size_t size);
+void *xrealloc(void *ptr, size_t size)
+{
+ void *ret = realloc(ptr, size);
+ if (!ret) err("Could not realloc() %li bytes", (unsigned long)size);
+ return ret;
+}
+
+void xstrncat(char **dst, const char *src, size_t *curr_len, size_t n);
+void xstrncat(char **dst, const char *src, size_t *curr_len, size_t n)
+{
+ size_t new_len;
+
+ new_len = strlen(*dst) + strlen(src);
+ if (*curr_len <= new_len) {
+ *curr_len = new_len + (*curr_len / 2);
+ *dst = realloc(*dst, *curr_len);
+ if (!*dst)
+ err("could not realloc() %li bytes", (unsigned long)*curr_len);
+ }
+
+ if (n)
+ strncat(*dst, src, n);
+ else
+ strcat(*dst, src);
+}
+
+void xchrcat(char **dst, const char append, size_t *curr_len);
+void xchrcat(char **dst, const char append, size_t *curr_len)
+{
+ static char my_app[2];
+ my_app[0] = append;
+ my_app[1] = '\0';
+ xstrcat(dst, my_app, curr_len);
+}