summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/tools/tzcode/ialloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'intl/icu/source/tools/tzcode/ialloc.c')
-rw-r--r--intl/icu/source/tools/tzcode/ialloc.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/intl/icu/source/tools/tzcode/ialloc.c b/intl/icu/source/tools/tzcode/ialloc.c
new file mode 100644
index 0000000000..b6f018897b
--- /dev/null
+++ b/intl/icu/source/tools/tzcode/ialloc.c
@@ -0,0 +1,32 @@
+/*
+** This file is in the public domain, so clarified as of
+** 2006-07-17 by Arthur David Olson.
+*/
+
+/*LINTLIBRARY*/
+
+#include "private.h"
+
+char *
+icatalloc(char *const old, const char *const new)
+{
+ register char * result;
+ register int oldsize, newsize;
+
+ newsize = (new == NULL) ? 0 : strlen(new);
+ if (old == NULL)
+ oldsize = 0;
+ else if (newsize == 0)
+ return old;
+ else oldsize = strlen(old);
+ if ((result = realloc(old, oldsize + newsize + 1)) != NULL)
+ if (new != NULL)
+ (void) strcpy(result + oldsize, new);
+ return result;
+}
+
+char *
+icpyalloc(const char *const string)
+{
+ return icatalloc(NULL, string);
+}