]> git.sesse.net Git - vlc/blobdiff - modules/misc/lua/extension.c
lua: factorize the right way.
[vlc] / modules / misc / lua / extension.c
index 7fa4ca2fc2b3f38d5871f84da2008973c3f74e29..745350fdeeb7b2d6363c8c784f1a3e244e6bab6f 100644 (file)
@@ -56,7 +56,7 @@ const char* const ppsz_capabilities[] = {
 
 static int ScanExtensions( extensions_manager_t *p_this );
 static int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script,
-                            void *pb_continue );
+                            void *dummy );
 static int Control( extensions_manager_t *, int, va_list );
 static int GetMenuEntries( extensions_manager_t *p_mgr, extension_t *p_ext,
                     char ***pppsz_titles, uint16_t **ppi_ids );
@@ -181,12 +181,11 @@ void Close_Extension( vlc_object_t *p_this )
  **/
 static int ScanExtensions( extensions_manager_t *p_mgr )
 {
-    bool b_true = true;
     int i_ret =
         vlclua_scripts_batch_execute( VLC_OBJECT( p_mgr ),
                                       "extensions",
                                       &ScanLuaCallback,
-                                      &b_true );
+                                      NULL );
 
     if( !i_ret )
         return VLC_EGENERIC;
@@ -211,11 +210,12 @@ static int vlclua_dummy_require( lua_State *L )
  * @param p_this This extensions_manager_t object
  * @param psz_script Name of the script to run
  * @param L Lua State, common to all scripts here
- * @param pb_continue bool* that indicates whether to continue batch or not
+ * @param dummy: unused
  **/
 int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script,
-                     void *pb_continue )
+                     void *dummy )
 {
+    VLC_UNUSED(dummy);
     extensions_manager_t *p_mgr = ( extensions_manager_t* ) p_this;
     bool b_ok = false;
 
@@ -341,62 +341,27 @@ int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script,
 
             /* Get author */
             lua_getfield( L, -1, "author" );
-            if( lua_isstring( L, -1 ) )
-            {
-                p_ext->psz_author = strdup( luaL_checkstring( L, -1 ) );
-            }
-            else
-            {
-                p_ext->psz_author = NULL;
-            }
+            p_ext->psz_author = luaL_strdupornull( L, -1 );
             lua_pop( L, 1 );
 
             /* Get description */
             lua_getfield( L, -1, "description" );
-            if( lua_isstring( L, -1 ) )
-            {
-                p_ext->psz_description = strdup( luaL_checkstring( L, -1 ) );
-            }
-            else
-            {
-                p_ext->psz_description = NULL;
-            }
+            p_ext->psz_description = luaL_strdupornull( L, -1 );
             lua_pop( L, 1 );
 
             /* Get short description */
             lua_getfield( L, -1, "shortdesc" );
-            if( lua_isstring( L, -1 ) )
-            {
-                p_ext->psz_shortdescription = strdup( luaL_checkstring( L, -1 ) );
-            }
-            else
-            {
-                p_ext->psz_shortdescription = NULL;
-            }
+            p_ext->psz_shortdescription = luaL_strdupornull( L, -1 );
             lua_pop( L, 1 );
 
             /* Get URL */
             lua_getfield( L, -1, "url" );
-            if( lua_isstring( L, -1 ) )
-            {
-                p_ext->psz_url = strdup( luaL_checkstring( L, -1 ) );
-            }
-            else
-            {
-                p_ext->psz_url = NULL;
-            }
+            p_ext->psz_url = luaL_strdupornull( L, -1 );
             lua_pop( L, 1 );
 
             /* Get version */
             lua_getfield( L, -1, "version" );
-            if( lua_isstring( L, -1 ) )
-            {
-                p_ext->psz_version = strdup( luaL_checkstring( L, -1 ) );
-            }
-            else
-            {
-                p_ext->psz_version = NULL;
-            }
+            p_ext->psz_version = luaL_strdupornull( L, -1 );
             lua_pop( L, 1 );
         }
         else
@@ -441,7 +406,7 @@ exit:
 
     vlc_mutex_unlock( &p_mgr->lock );
     /* Continue batch execution */
-    return pb_continue ? ( (* (bool*)pb_continue) ? -1 : 0 ) : -1;
+    return VLC_EGENERIC;
 }
 
 static int Control( extensions_manager_t *p_mgr, int i_control, va_list args )