]> git.sesse.net Git - vlc/blobdiff - src/libvlc-common.c
Distribute include/vlc_plugin.h and src/config/intf.c
[vlc] / src / libvlc-common.c
index b110793b301e4a303a3f93299bb3e4bab6ecbcd1..a0785a78d023027fd403a7f1e837441dc9bde242 100644 (file)
@@ -98,7 +98,7 @@
  * The evil global variable. We handle it with care, don't worry.
  *****************************************************************************/
 static libvlc_global_data_t   libvlc_global;
-#define p_libvlc_global (&libvlc_global)
+static libvlc_global_data_t *p_libvlc_global = &libvlc_global;
 static libvlc_int_t *    p_static_vlc = NULL;
 static volatile unsigned int i_instances = 0;
 
@@ -139,12 +139,7 @@ libvlc_global_data_t *vlc_global( void )
  *****************************************************************************/
 libvlc_int_t * vlc_current_object( int i_object )
 {
-    if( i_object )
-    {
-         return vlc_object_get( p_libvlc_global, i_object );
-    }
-
-    return p_static_vlc;
+    return i_object ? vlc_object_get( i_object ) : p_static_vlc;
 }
 
 
@@ -331,7 +326,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
 #ifndef WIN32
     if( config_GetInt( p_libvlc, "daemon" ) )
     {
-#if HAVE_DAEMON
+#ifdef HAVE_DAEMON
         char *psz_pidfile = NULL;
 
         if( daemon( 1, 0) != 0 )
@@ -1829,6 +1824,11 @@ static void ShowConsole( vlc_bool_t b_dofile )
     if( getenv( "PWD" ) && getenv( "PS1" ) ) return; /* cygwin shell */
 
     AllocConsole();
+    /* Use the ANSI code page (e.g. Windows-1252) as expected by the LibVLC
+     * Unicode/locale subsystem. By default, we have the obsolecent OEM code
+     * page (e.g. CP437 or CP850). */
+    SetConsoleOutputCP (GetACP ());
+    SetConsoleTitle ("VLC media player version "PACKAGE_VERSION);
 
     freopen( "CONOUT$", "w", stderr );
     freopen( "CONIN$", "r", stdin );
@@ -1873,34 +1873,21 @@ static void PauseConsole( void )
  *****************************************************************************/
 static int ConsoleWidth( void )
 {
-    int i_width = 80;
+    unsigned i_width = 80;
 
 #ifndef WIN32
-    char buf[20];
-    char *psz_parser = NULL;
-    FILE *file = NULL;
-    int i_ret;
-
-    file = popen( "stty size 2>/dev/null", "r" );
-    if( file )
+    FILE *file = popen( "stty size 2>/dev/null", "r" );
+    if (file != NULL)
     {
-        i_ret = fread( buf, 1, 20, file );
-        if( i_ret > 0 )
-        {
-            buf[19] = '\0';
-            psz_parser = strchr( buf, ' ' );
-            if( psz_parser )
-            {
-                i_ret = atoi( psz_parser + 1 );
-                if( i_ret >= 80 )
-                {
-                    i_width = i_ret;
-                }
-            }
-        }
-
+        if (fscanf (file, "%*u %u", &i_width) <= 0)
+            i_width = 80;
         pclose( file );
     }
+#else
+    CONSOLE_SCREEN_BUFFER_INFO buf;
+
+    if (GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE), &buf))
+        i_width = buf.dwSize.X;
 #endif
 
     return i_width;