]> git.sesse.net Git - vlc/blobdiff - src/libvlc.c
Print exact revision in addition to version number on console
[vlc] / src / libvlc.c
index 895990e00b2f79582f43216fa64c9453654181c2..38e2b8bbc6d4dda137b72ed734d8cefc27231c19 100644 (file)
@@ -57,9 +57,7 @@
 #   include <io.h>
 #endif
 
-#ifdef WIN32                       /* optind, getopt(), included in unistd.h */
-#   include "extras/getopt.h"
-#endif
+#include "config/vlc_getopt.h"
 
 #ifdef HAVE_LOCALE_H
 #   include <locale.h>
@@ -219,6 +217,7 @@ static void PauseConsole  ( void );
 static int  ConsoleWidth  ( void );
 
 static vlc_mutex_t global_lock = VLC_STATIC_MUTEX;
+extern const char psz_vlc_changeset[];
 
 /**
  * Allocate a libvlc instance, initialize global data if needed
@@ -330,8 +329,10 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
 
     priv->i_verbose = var_InheritInteger( p_libvlc, "verbose" );
     /* Announce who we are - Do it only for first instance ? */
+    msg_Dbg( p_libvlc, "VLC media player - %s", VERSION_MESSAGE );
     msg_Dbg( p_libvlc, "%s", COPYRIGHT_MESSAGE );
-    msg_Dbg( p_libvlc, "libvlc was configured with %s", CONFIGURE_LINE );
+    msg_Dbg( p_libvlc, "revision %s", psz_vlc_changeset );
+    msg_Dbg( p_libvlc, "configured with %s", CONFIGURE_LINE );
     /*xgettext: Translate "C" to the language code: "fr", "en_GB", "nl", "ru"... */
     msg_Dbg( p_libvlc, "translation test: code is \"%s\"", _("C") );
 
@@ -533,6 +534,9 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     /*
      * Override configuration with command line settings
      */
+    /* config_LoadCmdLine(), DBus (below) and Win32-specific use vlc_optind,
+     * vlc_optarg and vlc_optopt globals. This is not thread-safe!! */
+#warning BUG!
     if( config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, false ) )
     {
 #ifdef WIN32
@@ -547,11 +551,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     }
     priv->i_verbose = var_InheritInteger( p_libvlc, "verbose" );
 
-    /*
-     * System specific configuration
-     */
-    system_Configure( p_libvlc, &i_argc, ppsz_argv );
-
 /* FIXME: could be replaced by using Unix sockets */
 #ifdef HAVE_DBUS
     dbus_threads_init_default();
@@ -605,7 +604,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
                 dbus_message_unref( p_test_reply );
                 msg_Warn( p_libvlc, "Another Media Player is running. Exiting");
 
-                for( i_input = optind;i_input < i_argc;i_input++ )
+                for( i_input = vlc_optind; i_input < i_argc;i_input++ )
                 {
                     msg_Dbg( p_libvlc, "Adds %s to the running Media Player",
                             ppsz_argv[i_input] );
@@ -818,6 +817,9 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
         return VLC_EGENERIC;
     }
 
+    /* System specific configuration */
+    system_Configure( p_libvlc, &i_argc, ppsz_argv );
+
     /* Add service discovery modules */
     psz_modules = var_InheritString( p_libvlc, "services-discovery" );
     if( psz_modules )
@@ -1196,12 +1198,12 @@ static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, const char *ppsz_argv[
 
     /* We assume that the remaining parameters are filenames
      * and their input options */
-    for( i_opt = i_argc - 1; i_opt >= optind; i_opt-- )
+    for( i_opt = i_argc - 1; i_opt >= vlc_optind; i_opt-- )
     {
         i_options = 0;
 
         /* Count the input options */
-        while( *ppsz_argv[ i_opt ] == ':' && i_opt > optind )
+        while( *ppsz_argv[ i_opt ] == ':' && i_opt > vlc_optind )
         {
             i_options++;
             i_opt--;
@@ -1902,7 +1904,6 @@ static void ListModules( libvlc_int_t *p_this, bool b_verbose )
  *****************************************************************************/
 static void Version( void )
 {
-    extern const char psz_vlc_changeset[];
 #ifdef WIN32
     ShowConsole( true );
 #endif