memutil.c 534 B

1234567891011121314151617181920212223242526
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include "memcpy.h"
  4. void str_redup(char **str, const char *newstr)
  5. {
  6. int len;
  7. if (!newstr) {
  8. if (*str) free(*str);
  9. *str = NULL;
  10. return;
  11. }
  12. len = strlen(newstr) + 1;
  13. *str = (char *) realloc(*str, len);
  14. egg_memcpy(*str, newstr, len);
  15. }
  16. char *strdup(const char *entry)
  17. {
  18. char *target = (char*)calloc(1, strlen(entry) + 1);
  19. if (target == 0) return 0;
  20. strcpy(target, entry);
  21. return target;
  22. }