Julian Foad wrote on Thu, Feb 14, 2013 at 22:11:13 +0000:
> Daniel Shahaf wrote:
> 
> > Julian Foad wrote on Thu, Feb 14, 2013 at 21:17:03 +0000:
> >>  Daniel Shahaf wrote:
> >>  > @@ -739,8 +743,8 @@ init_sqlite(void *baton, apr_pool_t *pool)
> >>  >    {
> >>  >      int err = sqlite3_config(SQLITE_CONFIG_MULTITHREAD);
> >>  >      if (err != SQLITE_OK && err != SQLITE_MISUSE)
> >>  > -      return svn_error_create(SQLITE_ERROR_CODE(err), NULL,
> >>  > -                              _("Could not configure 
> > SQLite"));
> >>  > +      return svn_error_createf(SQLITE_ERROR_CODE(err), NULL,
> >>  > +                               _("Could not configure SQLite 
> > (%d)"), 
> >>  > err);
> >> 
> >>  In cases like this one, it seems we should be using one of the above 
> >> sqlite 
> > -> svn error converters so that we get the full SQLite description, and 
> > then 
> > wrapping the resulting svn error object with "Could not configure 
> > SQLite".
> >> 
> > 
> > As in:
> > 
> >   return svn_error_quick_wrap(svn_error_create(SQLITE_ERROR_CODE(err),
> >                                                NULL, NULL)
> >                               _("Could not configure SQLite (%d)"));
> > 
> > ?
> 
> No.  I mean a chain of two svn error objects, one containing SQLite's 
> expansion of 'err' (including both its number and its message), which you can 
> get from e.g. the SQLITE_ERR() macro; and one containing the wrapper message 
> "Could not configure SQLite".  Such as:
> 
> return svn_error_quick_wrap(SQLITE_ERR(err, db),
>                             _("Could not configure SQLite"));
> 

That won't compile because SQLITE_ERR() is a statement, not an
expression.

I suppose I could write a function wrapper around SQLITE_ERR, but maybe
there's a better option...

> - Julian

Reply via email to