# HG changeset patch # User arpi # Date 1042306365 0 # Node ID e6a83b140b3978430d69c2750d6463fe4507371e # Parent 268b3fbc35b729a298809b63e45d4aa6df8a49d3 better error handling for invalud suboptions diff -r 268b3fbc35b7 -r e6a83b140b39 m_config.c --- a/m_config.c Sat Jan 11 17:01:23 2003 +0000 +++ b/m_config.c Sat Jan 11 17:32:45 2003 +0000 @@ -215,7 +215,7 @@ co = m_config_get_co(config,arg); if(!co){ - mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Unknown option: %s\n",arg); +// mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Unknown option: %s\n",arg); return M_OPT_UNKNOW; } @@ -241,6 +241,7 @@ // Parse the child options r = m_option_parse(co->opt,arg,param,&lst,config->mode); // Set them now + if(r >= 0) for(i = 0 ; lst && lst[2*i] ; i++) { int l = strlen(co->name) + 1 + strlen(lst[2*i]) + 1; if(r >= 0) { @@ -248,7 +249,13 @@ char n[l]; sprintf(n,"%s:%s",co->name,lst[2*i]); sr = m_config_parse_option(config,n,lst[2*i+1],set); - if(sr < 0) r = sr; + if(sr < 0){ + if(sr == M_OPT_UNKNOW){ + mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Error: option '%s' has no suboption '%s'\n",co->name,lst[2*i]); + r = M_OPT_INVALID; + } else + r = sr; + } } free(lst[2*i]); free(lst[2*i+1]);