mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| ** 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);
 | |
| }
 |