 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			93 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*	$NetBSD: ialloc.c,v 1.7 2010/01/02 10:42:49 tsutsui Exp $	*/
 | |
| /*
 | |
| ** This file is in the public domain, so clarified as of
 | |
| ** 2006-07-17 by Arthur David Olson.
 | |
| */
 | |
| 
 | |
| #if HAVE_NBTOOL_CONFIG_H
 | |
| #include "nbtool_config.h"
 | |
| #endif
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| 
 | |
| #if 0
 | |
| static char	elsieid[] = "@(#)ialloc.c	8.30";
 | |
| #else
 | |
| __RCSID("$NetBSD: ialloc.c,v 1.7 2010/01/02 10:42:49 tsutsui Exp $");
 | |
| #endif
 | |
| 
 | |
| #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); /* XXX strcpy is safe */
 | |
| 	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);
 | |
| }
 |