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
Received on 2013-02-15 00:45:40 CET