diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
commit | cf46733632c7279a9fd0fe6ce26f9185a4ae82a9 (patch) | |
tree | da27775a2161723ef342e91af41a8b51fedef405 /subversion/libsvn_subr/magic.c | |
parent | bb0ef45f7c46b0ae221b26265ef98a768c33f820 (diff) | |
download | subversion-tarball-master.tar.gz |
subversion-1.9.7HEADsubversion-1.9.7master
Diffstat (limited to 'subversion/libsvn_subr/magic.c')
-rw-r--r-- | subversion/libsvn_subr/magic.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/subversion/libsvn_subr/magic.c b/subversion/libsvn_subr/magic.c index 812a263..7f5e95d 100644 --- a/subversion/libsvn_subr/magic.c +++ b/subversion/libsvn_subr/magic.c @@ -33,6 +33,8 @@ #include "svn_types.h" #include "svn_pools.h" #include "svn_error.h" +#include "svn_config.h" +#include "svn_hash.h" #include "svn_private_config.h" @@ -61,14 +63,30 @@ close_magic_cookie(void *baton) } #endif -void +svn_error_t * svn_magic__init(svn_magic__cookie_t **magic_cookie, + apr_hash_t *config, apr_pool_t *result_pool) { - svn_magic__cookie_t *mc = NULL; #ifdef SVN_HAVE_LIBMAGIC + if (config) + { + svn_boolean_t enable; + svn_config_t *cfg = svn_hash_gets(config, SVN_CONFIG_CATEGORY_CONFIG); + + SVN_ERR(svn_config_get_bool(cfg, &enable, + SVN_CONFIG_SECTION_MISCELLANY, + SVN_CONFIG_OPTION_ENABLE_MAGIC_FILE, + TRUE)); + if (!enable) + { + *magic_cookie = NULL; + return SVN_NO_ERROR; + } + } + mc = apr_palloc(result_pool, sizeof(*mc)); /* Initialise libmagic. */ @@ -97,6 +115,8 @@ svn_magic__init(svn_magic__cookie_t **magic_cookie, #endif *magic_cookie = mc; + + return SVN_NO_ERROR; } svn_error_t * |