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