Index: icu46/source/tools/tzcode/ialloc.c |
=================================================================== |
--- icu46/source/tools/tzcode/ialloc.c (revision 0) |
+++ icu46/source/tools/tzcode/ialloc.c (revision 0) |
@@ -0,0 +1,86 @@ |
+/* |
+** This file is in the public domain, so clarified as of |
+** 2006-07-17 by Arthur David Olson. |
+*/ |
+ |
+#ifndef lint |
+#ifndef NOID |
+static char elsieid[] = "@(#)ialloc.c 8.30"; |
+#endif /* !defined NOID */ |
+#endif /* !defined lint */ |
+ |
+/*LINTLIBRARY*/ |
+ |
+#include "private.h" |
+ |
+#define nonzero(n) (((n) == 0) ? 1 : (n)) |
+ |
+char * |
+imalloc(n) |
+const int n; |
+{ |
+ return malloc((size_t) nonzero(n)); |
+} |
+ |
+char * |
+icalloc(nelem, elsize) |
+int nelem; |
+int elsize; |
+{ |
+ if (nelem == 0 || elsize == 0) |
+ nelem = elsize = 1; |
+ return calloc((size_t) nelem, (size_t) elsize); |
+} |
+ |
+void * |
+irealloc(pointer, size) |
+void * const pointer; |
+const int size; |
+{ |
+ if (pointer == NULL) |
+ return imalloc(size); |
+ return realloc((void *) pointer, (size_t) nonzero(size)); |
+} |
+ |
+char * |
+icatalloc(old, new) |
+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 = irealloc(old, oldsize + newsize + 1)) != NULL) |
+ if (new != NULL) |
+ (void) strcpy(result + oldsize, new); |
+ return result; |
+} |
+ |
+char * |
+icpyalloc(string) |
+const char * const string; |
+{ |
+ return icatalloc((char *) NULL, string); |
+} |
+ |
+void |
+ifree(p) |
+char * const p; |
+{ |
+ if (p != NULL) |
+ (void) free(p); |
+} |
+ |
+void |
+icfree(p) |
+char * const p; |
+{ |
+ if (p != NULL) |
+ (void) free(p); |
+} |
Property changes on: icu46/source/tools/tzcode/ialloc.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |