1 /* 2 * Copyright 2003-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include <string.h> 8 #include <stdlib.h> 9 10 11 char* 12 strdup(const char *string) 13 { 14 char* copied; 15 size_t length; 16 17 // unlike the standard strdup() function, the BeOS implementation 18 // handles NULL strings gracefully 19 if (string == NULL) 20 return NULL; 21 22 length = strlen(string) + 1; 23 24 if ((copied = (char *)malloc(length)) == NULL) 25 return NULL; 26 27 memcpy(copied, string, length); 28 return copied; 29 } 30