summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Utils/strbuf.c4
-rw-r--r--lib/Utils/strbuf.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/Utils/strbuf.c b/lib/Utils/strbuf.c
index 4c9bddaa..02062336 100644
--- a/lib/Utils/strbuf.c
+++ b/lib/Utils/strbuf.c
@@ -41,9 +41,11 @@ void strbuf_free(struct strbuf *strbuf)
free(strbuf);
}
-void strbuf_free_nobuf(struct strbuf *strbuf)
+char* strbuf_free_nobuf(struct strbuf *strbuf)
{
+ char *ret = strbuf->buf;
free(strbuf);
+ return ret;
}
diff --git a/lib/Utils/strbuf.h b/lib/Utils/strbuf.h
index bc843f95..3f3ba51a 100644
--- a/lib/Utils/strbuf.h
+++ b/lib/Utils/strbuf.h
@@ -36,7 +36,7 @@ struct strbuf
extern struct strbuf *strbuf_new();
extern void strbuf_free(struct strbuf *strbuf);
/* Releases strbuf, but not the internal buffer. */
-extern void strbuf_free_nobuf(struct strbuf *strbuf);
+extern char* strbuf_free_nobuf(struct strbuf *strbuf);
extern void strbuf_clear(struct strbuf *strbuf);
extern struct strbuf *strbuf_append_char(struct strbuf *strbuf, char c);
extern struct strbuf *strbuf_append_str(struct strbuf *strbuf, const char *str);