1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru** This file is in the public domain, so clarified as of 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru** 2006-07-17 by Arthur David Olson. 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*LINTLIBRARY*/ 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "private.h" 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruchar * 11f9878a236aa0d9662d8e40cafdaf2e04cd615835ccorneliusicatalloc(char *const old, const char *const new) 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru register char * result; 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru register int oldsize, newsize; 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru newsize = (new == NULL) ? 0 : strlen(new); 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (old == NULL) 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru oldsize = 0; 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru else if (newsize == 0) 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return old; 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru else oldsize = strlen(old); 22f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius if ((result = realloc(old, oldsize + newsize + 1)) != NULL) 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (new != NULL) 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru (void) strcpy(result + oldsize, new); 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return result; 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruchar * 29f9878a236aa0d9662d8e40cafdaf2e04cd615835ccorneliusicpyalloc(const char *const string) 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 31f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius return icatalloc(NULL, string); 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 33