There are a lot of callers for the old API.
I'm kind of with Hyrum here. This new API isn't so much a
next-generation, as it is an API serving different needs. Or more
specifically: the old API of "provide a 'const char *'" is still
entirely valid.
There are a bunch of warnings in the build for the (deprecated) calls
to the old API. By any chance, do you disable those in your build? I
know that you've been working hard on watching errors, so I'm
surprised you didn't see those. ?
Cheers,
-g
On Tue, May 17, 2011 at 08:45, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
> Don't know; I haven't examined existing callers.
>
> It also turns out that I may not need the new (revv'd) API at all ---
> went a different way in the patch I'm working on --- so I may, after
> all, not add a user of the new API today (as I'd planned to).
>
> Hyrum K Wright wrote on Tue, May 17, 2011 at 11:20:59 +0000:
>> 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-27 11:51:50 CEST