Merge branch 'vendor/OPENSSH'
[dragonfly.git] / usr.sbin / zic / ialloc.c
1 /*
2 ** This file is in the public domain, so clarified as of
3 ** 2006-07-17 by Arthur David Olson.
4 */
5
6 /*
7  * $FreeBSD: src/usr.sbin/zic/ialloc.c,v 1.5 1999/08/28 01:21:18 peter Exp $
8  */
9 /*LINTLIBRARY*/
10
11 #include "private.h"
12
13 char *
14 icatalloc(char *const old, const char * const new)
15 {
16         char *result;
17         int oldsize, newsize;
18
19         newsize = (new == NULL) ? 0 : strlen(new);
20         if (old == NULL)
21                 oldsize = 0;
22         else if (newsize == 0)
23                 return old;
24         else    oldsize = strlen(old);
25         if ((result = realloc(old, oldsize + newsize + 1)) != NULL)
26                 if (new != NULL)
27                         strcpy(result + oldsize, new);
28         return result;
29 }
30
31 char *
32 icpyalloc(const char * const string)
33 {
34         return icatalloc(NULL, string);
35 }