]> git.sesse.net Git - vlc/blobdiff - src/modules/modules.c
Avoid ?: GCC-ism
[vlc] / src / modules / modules.c
index 476809e4c6ac9727b4e536cecc05a860c03323ee..7c1290823bf5e9abcd2b5074ed440b613f942cc8 100644 (file)
@@ -292,7 +292,7 @@ const char *module_get_name( const module_t *m, bool long_name )
     if( long_name && ( m->psz_longname != NULL) )
         return m->psz_longname;
 
-    return m->psz_shortname ?: m->psz_object_name;
+    return m->psz_shortname ? m->psz_shortname : m->psz_object_name;
 }
 
 /**
@@ -534,11 +534,10 @@ module_t * __module_need( vlc_object_t *p_this, const char *psz_capability,
             if( b_strict )
                 continue;
         }
-        /* If we didn't require a shortcut, trash <= 0 scored plugins */
-        else if( p_module->i_score <= 0 )
-        {
+
+        /* Trash <= 0 scored plugins (they can only be selected by shortcut) */
+        if( p_module->i_score <= 0 )
             continue;
-        }
 
 found_shortcut:
         /* Store this new module */
@@ -555,14 +554,8 @@ found_shortcut:
 
     /* Sort candidates by descending score */
     qsort (p_list, count, sizeof (p_list[0]), modulecmp);
-#ifdef WIN32
-    /* FIXME: Remove this hack after finding a general solution for %z's */
-    msg_Dbg( p_this, "looking for %s module: %u candidate%s", psz_capability,
-             count, count == 1 ? "" : "s" );
-#else
     msg_Dbg( p_this, "looking for %s module: %zu candidate%s", psz_capability,
              count, count == 1 ? "" : "s" );
-#endif
 
     /* Parse the linked list and use the first successful module */
     p_module = NULL;
@@ -771,16 +764,18 @@ char ** module_GetModulesNamesForCapability( const char *psz_capability,
 
     module_t **list = module_list_get (NULL);
 
-    /* Do it in two passes : count the number of modules before */
+    /* Proceed in two passes: count the number of modules first */
     for (size_t i = 0; list[i]; i++)
     {
         module_t *p_module = list[i];
         const char *psz_module_capability = p_module->psz_capability;
 
-        if( psz_module_capability && !strcmp( psz_module_capability, psz_capability ) )
+        if( psz_module_capability
+         && !strcmp( psz_module_capability, psz_capability ) )
             count++;
     }
 
+    /* Then get the names */
     psz_ret = malloc( sizeof(char*) * (count+1) );
     if( pppsz_longname )
         *pppsz_longname = malloc( sizeof(char*) * (count+1) );
@@ -801,16 +796,17 @@ char ** module_GetModulesNamesForCapability( const char *psz_capability,
         module_t *p_module = list[i];
         const char *psz_module_capability = p_module->psz_capability;
 
-        if( psz_module_capability && !strcmp( psz_module_capability, psz_capability ) )
+        if( psz_module_capability
+         && !strcmp( psz_module_capability, psz_capability ) )
         {
-            int k = -1; /* hack to handle submodules properly */
-            if( p_module->b_submodule )
-            {
-                while( p_module->pp_shortcuts[++k] != NULL );
-                k--;
-            }
-            psz_ret[j] = strdup( k>=0?p_module->pp_shortcuts[k]
-                                     :p_module->psz_object_name );
+            /* Explicit hack: Use the last shortcut. It _should_ be
+             * different from the object name, at least if the object
+             * contains multiple submodules with the same capability. */
+            unsigned k = 0;
+            while( p_module->pp_shortcuts[k] != NULL )
+                k++;
+            assert( k > 0); /* pp_shortcuts[0] is always set */
+            psz_ret[j] = strdup( p_module->pp_shortcuts[k - 1] );
             if( pppsz_longname )
                 (*pppsz_longname)[j] = strdup( module_get_name( p_module, true ) );
             j++;