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)


Reply via email to