Are there still valid use cases for the normal cstring case? If so,
we shouldn't be deprecating the old API, but rather adding a distinct
API.
-Hyrum
On Tue, May 17, 2011 at 10:55 AM, <danielsh_at_apache.org> wrote:
> Author: danielsh
> Date: Tue May 17 10:55:51 2011
> New Revision: 1104124
>
> URL: http://svn.apache.org/viewvc?rev=1104124&view=rev
> Log:
> Revv the svn_io_file_create() API to take non-NUL-terminated strings.
>
> * subversion/include/svn_io.h
> (svn_io_file_create2): New.
> (svn_io_file_create): Deprecate.
>
> * subversion/libsvn_subr/io.c
> (svn_io_file_create2): Renamed from svn_io_file_create().
>
> * subversion/libsvn_subr/deprecated.c
> (svn_io_file_create): New wrapper.
>
> Modified:
> subversion/trunk/subversion/include/svn_io.h
> subversion/trunk/subversion/libsvn_subr/deprecated.c
> subversion/trunk/subversion/libsvn_subr/io.c
>
> Modified: subversion/trunk/subversion/include/svn_io.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_io.h?rev=1104124&r1=1104123&r2=1104124&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/include/svn_io.h (original)
> +++ subversion/trunk/subversion/include/svn_io.h Tue May 17 10:55:51 2011
> @@ -645,7 +645,20 @@ svn_io_files_contents_same_p(svn_boolean
> /** Create file at utf8-encoded @a file with contents @a contents.
> * @a file must not already exist.
> * Use @a pool for memory allocations.
> + *
> + * @since New in 1.7.
> + */
> +svn_error_t *
> +svn_io_file_create2(const char *file,
> + const svn_string_t *contents,
> + apr_pool_t *scratch_pool);
> +
> +/** Like svn_io_file_create2(), but with a C string instead
> + * of an #svn_string_t.
> + *
> + * @deprecated Provided for backward compatibility with the 1.6 API.
> */
> +SVN_DEPRECATED
> svn_error_t *
> svn_io_file_create(const char *file,
> const char *contents,
>
> Modified: subversion/trunk/subversion/libsvn_subr/deprecated.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/deprecated.c?rev=1104124&r1=1104123&r2=1104124&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/deprecated.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/deprecated.c Tue May 17 10:55:51 2011
> @@ -630,6 +630,17 @@ svn_opt_print_generic_help(const char *h
>
> /*** From io.c ***/
> svn_error_t *
> +svn_io_file_create(const char *file,
> + const char *contents,
> + apr_pool_t *pool)
> +{
> + const svn_string_t *contents_string;
> +
> + contents_string = (contents ? svn_string_create(contents, pool) : NULL);
> + return svn_io_file_create2(file, contents_string, pool);
> +}
> +
> +svn_error_t *
> svn_io_open_unique_file2(apr_file_t **file,
> const char **temp_path,
> const char *path,
>
> Modified: subversion/trunk/subversion/libsvn_subr/io.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?rev=1104124&r1=1104123&r2=1104124&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/io.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/io.c Tue May 17 10:55:51 2011
> @@ -1092,9 +1092,9 @@ svn_io_make_dir_recursively(const char *
> return SVN_NO_ERROR;
> }
>
> -svn_error_t *svn_io_file_create(const char *file,
> - const char *contents,
> - apr_pool_t *pool)
> +svn_error_t *svn_io_file_create2(const char *file,
> + const svn_string_t *contents,
> + apr_pool_t *pool)
> {
> apr_file_t *f;
> apr_size_t written;
> @@ -1104,8 +1104,8 @@ svn_error_t *svn_io_file_create(const ch
> (APR_WRITE | APR_CREATE | APR_EXCL),
> APR_OS_DEFAULT,
> pool));
> - if (contents && *contents)
> - err = svn_io_file_write_full(f, contents, strlen(contents),
> + if (contents && contents->len)
> + err = svn_io_file_write_full(f, contents->data, contents->len,
> &written, pool);
>
>
>
>
>
Received on 2011-05-17 13:21:34 CEST