Author: stefan2
Date: Thu Dec 27 20:28:52 2012
New Revision: 1426304
URL: http://svn.apache.org/viewvc?rev=1426304&view=rev
Log:
On the fsfs-format7 branch: add a new stringbuf constructor.
We often have some writable C string buffer as an intermediate
result of some parser. With the new API function we can reuse
that buffer in a fully functional svn_stringbuf_t instance.
* subversion/include/svn_string.h
(svn_stringbuf_create_wrap): declare new API function
* subversion/libsvn_subr/string.c
(svn_stringbuf_create_wrap): implement new API function
Modified:
subversion/branches/fsfs-format7/subversion/include/svn_string.h
subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c
Modified: subversion/branches/fsfs-format7/subversion/include/svn_string.h
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_string.h?rev=1426304&r1=1426303&r2=1426304&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_string.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_string.h Thu Dec 27
20:28:52 2012
@@ -221,6 +221,14 @@ svn_stringbuf_create_ensure(apr_size_t m
svn_stringbuf_t *
svn_stringbuf_create_from_string(const svn_string_t *str, apr_pool_t *pool);
+/** Create a new stringbuf using the given @a str as initial buffer.
+ * Allocate the result in @a pool.
+ *
+ * @since New in 1.9
+ */
+svn_stringbuf_t *
+svn_stringbuf_create_wrap(char *str, apr_pool_t *pool);
+
/** Create a new bytestring by formatting @a cstring (NULL-terminated)
* from varargs, which are as appropriate for apr_psprintf().
*/
Modified: subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c?rev=1426304&r1=1426303&r2=1426304&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c Thu Dec 27
20:28:52 2012
@@ -418,6 +418,17 @@ svn_stringbuf_create_from_string(const s
return svn_stringbuf_ncreate(str->data, str->len, pool);
}
+svn_stringbuf_t *
+svn_stringbuf_create_wrap(char *str, apr_pool_t *pool)
+{
+ svn_stringbuf_t *result = apr_palloc(pool, sizeof(*result));
+ result->pool = pool;
+ result->data = str;
+ result->len = strlen(str);
+ result->blocksize = result->len + 1;
+
+ return result;
+}
svn_stringbuf_t *
svn_stringbuf_createv(apr_pool_t *pool, const char *fmt, va_list ap)