[vlc-commits] Gather all checks for the command line help options

Rémi Denis-Courmont git at videolan.org
Sun Aug 21 13:39:01 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Aug 21 14:30:11 2011 +0300| [b1aebb75b4f3cbbb97ea04f13a1ceb3513fec7c9] | committer: Rémi Denis-Courmont

Gather all checks for the command line help options

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b1aebb75b4f3cbbb97ea04f13a1ceb3513fec7c9
---

 src/libvlc.c |  130 ++++++++++++++++++++--------------------------------------
 1 files changed, 44 insertions(+), 86 deletions(-)

diff --git a/src/libvlc.c b/src/libvlc.c
index c4b4987..7893701 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -235,7 +235,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     char *       psz_parser = NULL;
     char *       psz_control = NULL;
     bool   b_exit = false;
-    int          i_ret = VLC_EEXIT;
     playlist_t  *p_playlist = NULL;
     char        *psz_val;
 
@@ -319,94 +318,19 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     {
         Help( p_libvlc, "help" );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
     /* Check for version option */
     else if( var_InheritBool( p_libvlc, "version" ) )
     {
         Version();
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
-
-    /* Check for daemon mode */
-#if !defined( WIN32 ) && !defined( __SYMBIAN32__ )
-    if( var_InheritBool( p_libvlc, "daemon" ) )
-    {
-#ifdef HAVE_DAEMON
-        char *psz_pidfile = NULL;
-
-        if( daemon( 1, 0) != 0 )
-        {
-            msg_Err( p_libvlc, "Unable to fork vlc to daemon mode" );
-            b_exit = true;
-        }
-        b_daemon = true;
-
-        /* lets check if we need to write the pidfile */
-        psz_pidfile = var_CreateGetNonEmptyString( p_libvlc, "pidfile" );
-        if( psz_pidfile != NULL )
-        {
-            FILE *pidfile;
-            pid_t i_pid = getpid ();
-            msg_Dbg( p_libvlc, "PID is %d, writing it to %s",
-                               i_pid, psz_pidfile );
-            pidfile = vlc_fopen( psz_pidfile,"w" );
-            if( pidfile != NULL )
-            {
-                utf8_fprintf( pidfile, "%d", (int)i_pid );
-                fclose( pidfile );
-            }
-            else
-            {
-                msg_Err( p_libvlc, "cannot open pid file for writing: %s (%m)",
-                         psz_pidfile );
-            }
-        }
-        free( psz_pidfile );
-
-#else
-        pid_t i_pid;
-
-        if( ( i_pid = fork() ) < 0 )
-        {
-            msg_Err( p_libvlc, "unable to fork vlc to daemon mode" );
-            b_exit = true;
-        }
-        else if( i_pid )
-        {
-            /* This is the parent, exit right now */
-            msg_Dbg( p_libvlc, "closing parent process" );
-            b_exit = true;
-            i_ret = VLC_EEXITSUCCESS;
-        }
-        else
-        {
-            /* We are the child */
-            msg_Dbg( p_libvlc, "daemon spawned" );
-            close( STDIN_FILENO );
-            close( STDOUT_FILENO );
-            close( STDERR_FILENO );
-
-            b_daemon = true;
-        }
-#endif
-    }
-#endif
-
-    if( b_exit )
-    {
-        module_EndBank (true);
-        return i_ret;
-    }
-
     /* Check for help on modules */
-    if( (p_tmp = var_InheritString( p_libvlc, "module" )) )
+    else if( (p_tmp = var_InheritString( p_libvlc, "module" )) )
     {
         Help( p_libvlc, p_tmp );
         free( p_tmp );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
     /* Check for full help option */
     else if( var_InheritBool( p_libvlc, "full-help" ) )
@@ -417,41 +341,75 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
         var_SetBool( p_libvlc, "help-verbose", true );
         Help( p_libvlc, "full-help" );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
     /* Check for long help option */
     else if( var_InheritBool( p_libvlc, "longhelp" ) )
     {
         Help( p_libvlc, "longhelp" );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
     /* Check for module list option */
     else if( var_InheritBool( p_libvlc, "list" ) )
     {
         ListModules( p_libvlc, false );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
     }
     else if( var_InheritBool( p_libvlc, "list-verbose" ) )
     {
         ListModules( p_libvlc, true );
         b_exit = true;
-        i_ret = VLC_EEXITSUCCESS;
+    }
+
+    if( b_exit )
+    {
+        module_EndBank (true);
+        return VLC_EEXITSUCCESS;
     }
 
     if( module_count <= 1 )
     {
         msg_Err( p_libvlc, "No plugins found! Check your VLC installation.");
-        b_exit = true;
-        i_ret = VLC_ENOITEM;
+        module_EndBank (true);
+        return VLC_ENOITEM;
     }
 
-    if( b_exit )
+#ifdef HAVE_DAEMON
+    /* Check for daemon mode */
+    if( var_InheritBool( p_libvlc, "daemon" ) )
     {
-        module_EndBank (true);
-        return i_ret;
+        char *psz_pidfile = NULL;
+
+        if( daemon( 1, 0) != 0 )
+        {
+            msg_Err( p_libvlc, "Unable to fork vlc to daemon mode" );
+            module_EndBank (true);
+            return VLC_EEXIT;
+        }
+        b_daemon = true;
+
+        /* lets check if we need to write the pidfile */
+        psz_pidfile = var_CreateGetNonEmptyString( p_libvlc, "pidfile" );
+        if( psz_pidfile != NULL )
+        {
+            FILE *pidfile;
+            pid_t i_pid = getpid ();
+            msg_Dbg( p_libvlc, "PID is %d, writing it to %s",
+                               i_pid, psz_pidfile );
+            pidfile = vlc_fopen( psz_pidfile,"w" );
+            if( pidfile != NULL )
+            {
+                utf8_fprintf( pidfile, "%d", (int)i_pid );
+                fclose( pidfile );
+            }
+            else
+            {
+                msg_Err( p_libvlc, "cannot open pid file for writing: %s (%m)",
+                         psz_pidfile );
+            }
+        }
+        free( psz_pidfile );
     }
+#endif
 
 /* FIXME: could be replaced by using Unix sockets */
 #ifdef HAVE_DBUS



More information about the vlc-commits mailing list