From 4871855420190bc83fda294d7e815bd4e9c8531a Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 15 Jul 2009 10:57:17 -0700 Subject: [PATCH] New function ds_steal_cstr(). --- lib/dynamic-string.c | 13 ++++++++++++- lib/dynamic-string.h | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/dynamic-string.c b/lib/dynamic-string.c index 7e4843d1..9684ffad 100644 --- a/lib/dynamic-string.c +++ b/lib/dynamic-string.c @@ -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) { diff --git a/lib/dynamic-string.h b/lib/dynamic-string.h index 1d006ff0..a44e0b30 100644 --- a/lib/dynamic-string.h +++ b/lib/dynamic-string.h @@ -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 *); -- 2.30.2