Mercurial > mplayer.hg
diff m_property.c @ 25501:26a839637972
Support ?(!NAME:TEXT) format for expanding string by property.
author | ulion |
---|---|
date | Wed, 26 Dec 2007 04:15:56 +0000 |
parents | 3086b6d39052 |
children | fc8d4bd1689a |
line wrap: on
line diff
--- a/m_property.c Tue Dec 25 12:22:50 2007 +0000 +++ b/m_property.c Wed Dec 26 04:15:56 2007 +0000 @@ -146,11 +146,16 @@ } else if(str[0] == '?' && str[1] == '(' && (e = strchr(str+2,':'))) { lvl++; if(!skip) { - int pl = e-str-2; + int is_not = str[2] == '!'; + int pl = e - str - (is_not ? 3 : 2); char pname[pl+1]; - memcpy(pname,str+2,pl); + memcpy(pname, str + (is_not ? 3 : 2), pl); pname[pl] = 0; - if(m_property_do(prop_list,pname,M_PROPERTY_GET,NULL,ctx) < 0) + if(m_property_do(prop_list,pname,M_PROPERTY_GET,NULL,ctx) < 0) { + if (!is_not) + skip = 1, skip_lvl = lvl; + } + else if (is_not) skip = 1, skip_lvl = lvl; } str = e+1, l = 0;