From a0eda318e8d4b6a2acf52928896fdd211af66f06 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 31 Aug 2009 09:48:25 +0000 Subject: Factor out code to try and load a config file only if it exists. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29603 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'mplayer.c') diff --git a/mplayer.c b/mplayer.c index 3189855558..2785346529 100644 --- a/mplayer.c +++ b/mplayer.c @@ -913,21 +913,30 @@ static void load_per_output_config (m_config_t* conf, char *cfg, char *out) } } +/** + * Tries to load a config file + * @return 0 if file was not found, 1 otherwise + */ +static int try_load_config(m_config_t *conf, const char *file) +{ + struct stat st; + if (stat(file, &st)) + return 0; + mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_LoadingConfig, file); + m_config_parse_config_file (conf, file); + return 1; +} + static void load_per_file_config (m_config_t* conf, const char *const file) { char *confpath; char cfg[strlen(file)+10]; - struct stat st; char *name; sprintf (cfg, "%s.conf", file); - if (use_filedir_conf && !stat (cfg, &st)) - { - mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_LoadingConfig, cfg); - m_config_parse_config_file (conf, cfg); + if (use_filedir_conf && try_load_config(conf, cfg)) return; - } if ((name = strrchr (cfg, '/')) == NULL) name = cfg; @@ -936,11 +945,7 @@ static void load_per_file_config (m_config_t* conf, const char *const file) if ((confpath = get_path (name)) != NULL) { - if (!stat (confpath, &st)) - { - mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_LoadingConfig, confpath); - m_config_parse_config_file (conf, confpath); - } + try_load_config(conf, confpath); free (confpath); } -- cgit v1.2.3