X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmisc%2Flua%2Fintf.c;h=ad6247c6551206eb62971a5845b8d563a7906f98;hb=27d81721e3d7eff58387facf7be11f94b8f5e7b4;hp=46c52c0b701a5db2ea0f7d86f49331d1c764060a;hpb=40a2f546e1dca36312916b391f64f96a438f0a37;p=vlc diff --git a/modules/misc/lua/intf.c b/modules/misc/lua/intf.c index 46c52c0b70..ad6247c655 100644 --- a/modules/misc/lua/intf.c +++ b/modules/misc/lua/intf.c @@ -108,7 +108,7 @@ static const struct { "http", "http" }, { NULL, NULL } }; -static bool WordInList( const char *psz_list, const char *psz_word ) +static const char *WordInList( const char *psz_list, const char *psz_word ) { const char *psz_str = strstr( psz_list, psz_word ); int i_len = strlen( psz_word ); @@ -118,10 +118,10 @@ static bool WordInList( const char *psz_list, const char *psz_word ) /* it doesn't start in middle of a word */ /* it doest end in middle of a word */ && ( psz_str[i_len] == '\0' || psz_str[i_len] == ',' ) ) - return true; + return psz_str; psz_str = strstr( psz_str, psz_word ); } - return false; + return NULL; } static char *GetModuleName( intf_thread_t *p_intf ) @@ -132,12 +132,25 @@ static char *GetModuleName( intf_thread_t *p_intf ) psz_intf = var_GetString( p_intf, p_intf->psz_intf+1 ); else*/ psz_intf = p_intf->psz_intf; + + int i_candidate = -1; + const char *psz_candidate = NULL; for( i = 0; pp_shortcuts[i].psz_name; i++ ) { - if( WordInList( psz_intf, pp_shortcuts[i].psz_shortcut ) ) - return strdup( pp_shortcuts[i].psz_name ); + const char *psz_match; + if( ( psz_match = WordInList( psz_intf, pp_shortcuts[i].psz_shortcut ) ) ) + { + if( !psz_candidate || psz_match < psz_candidate ) + { + psz_candidate = psz_match; + i_candidate = i; + } + } } + if( i_candidate >= 0 ) + return strdup( pp_shortcuts[i_candidate].psz_name ); + return var_CreateGetString( p_intf, "lua-intf" ); }