On 6 March 2015 at 15:02, <rhuij...@apache.org> wrote: > > Author: rhuijben > Date: Fri Mar 6 12:02:30 2015 > New Revision: 1664596 > > URL: http://svn.apache.org/r1664596 > Log: > * subversion/libsvn_subr/config_win.c > (svn_config__parse_registry): Hide the ENOENT errors from the chain, > but keep others. > > Modified: > subversion/trunk/subversion/libsvn_subr/config_win.c > > Modified: subversion/trunk/subversion/libsvn_subr/config_win.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_win.c?rev=1664596&r1=1664595&r2=1664596&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_subr/config_win.c (original) > +++ subversion/trunk/subversion/libsvn_subr/config_win.c Fri Mar 6 12:02:30 > 2015 > @@ -198,10 +198,12 @@ svn_config__parse_registry(svn_config_t > if (err != ERROR_SUCCESS) > { > apr_status_t apr_err = APR_FROM_OS_ERROR(err); > + svn_boolean_t is_enoent = APR_STATUS_IS_ENOENT(apr_err); > > - if (must_exist || !APR_STATUS_IS_ENOENT(apr_err)) > + if (must_exist || !is_enoent) > return svn_error_createf(SVN_ERR_BAD_FILENAME, > - svn_error_wrap_apr(apr_err, NULL), > + is_enoent ? NULL > + : svn_error_wrap_apr(apr_err, > NULL), > _("Can't open registry key '%s'"), > svn_dirent_local_style(file, pool)); Hi Bert,
What do you think about refactoring condition above like in attached patch? -- Ivan Zhakov
Index: subversion/libsvn_subr/config_win.c =================================================================== --- subversion/libsvn_subr/config_win.c (revision 1673883) +++ subversion/libsvn_subr/config_win.c (working copy) @@ -201,12 +201,16 @@ svn_boolean_t is_enoent = APR_STATUS_IS_ENOENT(apr_err) || (err == ERROR_INVALID_HANDLE); - if (must_exist || !is_enoent) + if (!is_enoent) return svn_error_createf(SVN_ERR_BAD_FILENAME, - is_enoent ? NULL - : svn_error_wrap_apr(apr_err, NULL), + svn_error_wrap_apr(apr_err, NULL), _("Can't open registry key '%s'"), svn_dirent_local_style(file, pool)); + else if (must_exist) + return svn_error_createf(SVN_ERR_BAD_FILENAME, + NULL, + _("Can't open registry key '%s'"), + svn_dirent_local_style(file, pool)); else return SVN_NO_ERROR; }