| /* |
| ** 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); |
| } |