home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / src / c / strdup < prev    next >
Text File  |  1994-03-08  |  639b  |  41 lines

  1. #ifdef __STDC__
  2. static char sccs_id[] = "@(#) strdup.c 1.0 " __DATE__ " HJR";
  3. #else
  4. static char sccs_id[] = "@(#) strdup.c 1.0 8/11/91 HJR";
  5. #endif
  6.  
  7. /* strdup.c (c) Copyright 1990 H.Rogers */
  8.  
  9. #ifndef __STDC__
  10. #include "sys/types.h"
  11. #endif
  12.  
  13. #include <string.h>
  14. #ifdef ARCH
  15. #include "sys/unix.h"
  16. #else
  17. #include <stdlib.h>
  18. #endif
  19.  
  20. #ifdef __STDC__
  21. char *
  22. strdup (register const char *s1)
  23. #else
  24. char *
  25. strdup (s)
  26.      register const char *s1;
  27. #endif
  28. {
  29. #ifdef ARCH
  30.   return (__permstr (s1));
  31. #else
  32.   register int i = strlen (s1) + 1;
  33.   register char *s2;
  34.  
  35.   if (!(s2 = malloc (i)))
  36.     return (0);
  37.   memcpy (s2, s1, i);
  38.   return (s2);
  39. #endif
  40. }
  41.