]> diplodocus.org Git - nmh/blobdiff - sbr/getcpy.c
Put, rather than print, single characters.
[nmh] / sbr / getcpy.c
index 846d33a954c2ac2433795cd8d49215a9e098f733..32c8db437ff223317af65b877f7f293db34f7cc2 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * getcpy.c -- copy a string in managed memory
  *
- * THIS IS OBSOLETE.  NEED TO REPLACE ALL OCCURENCES
+ * THIS IS OBSOLETE.  NEED TO REPLACE ALL OCCURRENCES
  * OF GETCPY WITH STRDUP.  BUT THIS WILL REQUIRE
  * CHANGING PARTS OF THE CODE TO DEAL WITH NULL VALUES.
  *
 #include <h/mh.h>
 #include <h/utils.h>
 
-
-char *
-getcpy (const char *str)
+/* Return malloc'd copy of str, or of "" if NULL, exit on failure. */
+char *getcpy(const char *str)
 {
-    char *cp;
-    size_t len;
+    if (str)
+        return mh_xstrdup(str);
 
-    if (str) {
-       len = strlen(str) + 1;
-       cp = mh_xmalloc (len);
-       memcpy (cp, str, len);
-    } else {
-       cp = mh_xmalloc ((size_t) 1);
-       *cp = '\0';
-    }
-    return cp;
+    return mh_xcalloc(1, 1);
 }