[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1104124 - in /subversion/trunk/subversion: include/svn_io.h libsvn_subr/deprecated.c libsvn_subr/io.c

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 27 May 2011 13:40:43 +0300

Yes, I disable deprecation warnings in my build. (and I indeed didn't do
the "update existing callers" dance this time)

I'm happy to go and remove the deprecation decorators from the old API,
if people prefer that. I'm not sure what to do with the new API ---
it's unused currently (other than the call from deprecated.c), so I'm
not sure it should even remain as a public API.

Greg Stein wrote on Fri, May 27, 2011 at 05:51:16 -0400:
> 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 12:41:31 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.