* 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;
*****************************************************************************/
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;
}
#ifndef WIN32
if( config_GetInt( p_libvlc, "daemon" ) )
{
-#if HAVE_DAEMON
+#ifdef HAVE_DAEMON
char *psz_pidfile = NULL;
if( daemon( 1, 0) != 0 )
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 );
*****************************************************************************/
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;