New function ds_steal_cstr().
authorBen Pfaff <blp@nicira.com>
Wed, 15 Jul 2009 17:57:17 +0000 (10:57 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 16 Jul 2009 16:17:06 +0000 (09:17 -0700)
lib/dynamic-string.c
lib/dynamic-string.h

index 7e4843d1bbf069650bdf735155571e1e804188c2..9684ffad89b3c68b81b2b02745e2c46dfe6aafea 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008 Nicira Networks.
+ * Copyright (c) 2008, 2009 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -187,6 +187,17 @@ ds_cstr(struct ds *ds)
     return ds->string;
 }
 
+/* Returns a null-terminated string representing the current contents of 'ds',
+ * which the caller is expected to free with free(), then clears the contents
+ * of 'ds'. */
+char *
+ds_steal_cstr(struct ds *ds)
+{
+    char *s = ds_cstr(ds);
+    ds_init(ds);
+    return s;
+}
+
 void
 ds_destroy(struct ds *ds)
 {
index 1d006ff049683414b4e61be2e673059d0ad2d1e3..a44e0b30ff9320e8d81f73d355ee6643e2f73871 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008 Nicira Networks.
+ * Copyright (c) 2008, 2009 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -54,6 +54,7 @@ void ds_put_hex_dump(struct ds *ds, const void *buf_, size_t size,
 int ds_get_line(struct ds *, FILE *);
 
 char *ds_cstr(struct ds *);
+char *ds_steal_cstr(struct ds *);
 void ds_destroy(struct ds *);
 
 int ds_last(const struct ds *);