]> git.sesse.net Git - vlc/blobdiff - src/modules/modules.c
plugins: allow to set more than one shortcut in on shot.
[vlc] / src / modules / modules.c
index 183b748803728d31e64747dd653843c6c8ed4f76..6020b14683fc893b6248c873a19e2a0e34d43612 100644 (file)
@@ -481,7 +481,7 @@ module_t * module_need( vlc_object_t *p_this, const char *psz_capability,
 
             for( unsigned i_short = i_shortcuts; i_short > 0; i_short-- )
             {
-                for( unsigned i = 0; p_module->pp_shortcuts[i]; i++ )
+                for( unsigned i = 0; i < p_module->i_shortcuts; i++ )
                 {
                     char *c;
                     if( ( c = strchr( name, '@' ) )
@@ -691,9 +691,7 @@ module_t *module_find_by_shortcut (const char *psz_shortcut)
 
     for (size_t i = 0; (module = list[i]) != NULL; i++)
     {
-        for (size_t j = 0;
-             (module->pp_shortcuts[j] != NULL) && (j < MODULE_SHORTCUT_MAX);
-             j++)
+        for (size_t j = 0; j < module->i_shortcuts; j++)
         {
             if (!strcmp (module->pp_shortcuts[j], psz_shortcut))
             {
@@ -730,7 +728,6 @@ module_config_t *module_config_get( const module_t *module, unsigned *restrict p
     {
         const module_config_t *item = module->p_config + i;
         if( item->b_internal /* internal option */
-         || item->b_unsaveable /* non-modifiable option */
          || item->b_removed /* removed option */ )
             continue;
 
@@ -821,20 +818,9 @@ static void AllocateAllPlugins( vlc_object_t *p_this, module_bank_t *p_bank )
     /* Contruct the special search path for system that have a relocatable
      * executable. Set it to <vlc path>/plugins. */
     assert( vlcpath );
-#ifndef WIN32
+
     if( asprintf( &path, "%s" DIR_SEP "plugins", vlcpath ) != -1 )
         vlc_array_append( arraypaths, path );
-#else
-    /* Store the plugins cache in the common AppData folder */
-    char commonpath[PATH_MAX] = "";
-    int res = snprintf( commonpath, PATH_MAX -1, "%s\\VideoLAN\\VLC", config_GetConfDir());
-        if(res == -1 || res >= PATH_MAX)
-        {
-            vlc_array_destroy( arraypaths );
-            free(path);
-            return;
-        }
-#endif
 
     /* If the user provided a plugin path, we add it to the list */
     char *userpaths = var_InheritString( p_this, "plugin-path" );
@@ -856,17 +842,9 @@ static void AllocateAllPlugins( vlc_object_t *p_this, module_bank_t *p_bank )
 
         size_t offset = p_module_bank->i_cache;
         if( b_reset )
-#ifndef WIN32
             CacheDelete( p_this, path );
-#else
-            CacheDelete( p_this, commonpath );
-#endif
         else
-#ifndef WIN32
             CacheLoad( p_this, p_module_bank, path );
-#else
-             CacheLoad( p_this, p_module_bank, commonpath );
-#endif
 
         msg_Dbg( p_this, "recursively browsing `%s'", path );
 
@@ -874,13 +852,8 @@ static void AllocateAllPlugins( vlc_object_t *p_this, module_bank_t *p_bank )
         AllocatePluginDir( p_this, p_bank, path, 5 );
 
 
-#ifndef WIN32
         CacheSave( p_this, path, p_module_bank->pp_cache + offset,
                    p_module_bank->i_cache - offset );
-#else
-        CacheSave( p_this, commonpath, p_module_bank->pp_cache + offset,
-                   p_module_bank->i_cache - offset );
-#endif
         free( path );
     }
 
@@ -1079,12 +1052,9 @@ static module_t * AllocatePlugin( vlc_object_t * p_this, const char *psz_file )
  *****************************************************************************/
 static void DupModule( module_t *p_module )
 {
-    char **pp_shortcut;
-
-    for( pp_shortcut = p_module->pp_shortcuts ; *pp_shortcut ; pp_shortcut++ )
-    {
-        *pp_shortcut = strdup( *pp_shortcut );
-    }
+    char **pp_shortcuts = p_module->pp_shortcuts;
+    for( unsigned i = 0; i < p_module->i_shortcuts; i++ )
+        pp_shortcuts[i] = strdup( p_module->pp_shortcuts[i] );
 
     /* We strdup() these entries so that they are still valid when the
      * module is unloaded. */
@@ -1107,15 +1077,13 @@ static void DupModule( module_t *p_module )
  *****************************************************************************/
 static void UndupModule( module_t *p_module )
 {
-    char **pp_shortcut;
+    char **pp_shortcuts = p_module->pp_shortcuts;
 
     for (module_t *subm = p_module->submodule; subm; subm = subm->next)
         UndupModule (subm);
 
-    for( pp_shortcut = p_module->pp_shortcuts ; *pp_shortcut ; pp_shortcut++ )
-    {
-        free( *pp_shortcut );
-    }
+    for( unsigned i = 0; i < p_module->i_shortcuts; i++ )
+        free( pp_shortcuts[i] );
 
     free( p_module->psz_capability );
     FREENULL( p_module->psz_shortname );