str: New function ds_steal_cstr.
[pspp-builds.git] / src / libpspp / str.c
index 8243aa0690aad24a9b519db9bd1838724d32d729..79f3c912e9b649cf39d3ab9a0b37510e25867bf5 100644 (file)
@@ -1222,6 +1222,17 @@ ds_cstr (const struct string *st_)
   return st->ss.string;
 }
 
+/* Returns the value of ST as a null-terminated string and then
+   reinitialized ST as an empty string.  The caller must free the
+   returned string with free(). */
+char *
+ds_steal_cstr (struct string *st)
+{
+  char *s = ds_cstr (st);
+  ds_init_empty (st);
+  return s;
+}
+
 /* Reads characters from STREAM and appends them to ST, stopping
    after MAX_LENGTH characters, after appending a newline, or
    after an I/O error or end of file was encountered, whichever