mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			562 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			562 B
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
| 
 | |
| @deftypefn Supplemental char* strdup (const char *@var{s})
 | |
| 
 | |
| Returns a pointer to a copy of @var{s} in memory obtained from
 | |
| @code{malloc}, or @code{NULL} if insufficient memory was available.
 | |
| 
 | |
| @end deftypefn
 | |
| 
 | |
| */
 | |
| 
 | |
| #include <ansidecl.h>
 | |
| #include <stddef.h>
 | |
| 
 | |
| extern size_t	strlen (const char*);
 | |
| extern PTR	malloc (size_t);
 | |
| extern PTR	memcpy (PTR, const PTR, size_t);
 | |
| 
 | |
| char *
 | |
| strdup(const char *s)
 | |
| {
 | |
|   size_t len = strlen (s) + 1;
 | |
|   char *result = (char*) malloc (len);
 | |
|   if (result == (char*) 0)
 | |
|     return (char*) 0;
 | |
|   return (char*) memcpy (result, s, len);
 | |
| }
 |