]> git.sesse.net Git - vlc/commitdiff
Move __wgetmainargs into VLC's main.
authorMarian Durkovic <md@videolan.org>
Mon, 12 Feb 2007 07:12:11 +0000 (07:12 +0000)
committerMarian Durkovic <md@videolan.org>
Mon, 12 Feb 2007 07:12:11 +0000 (07:12 +0000)
Refs: #900 #920 #1031

src/libvlc-common.c
src/misc/win32_specific.c
src/vlc.c

index f21bf9f92ab8e581a33a9694697cd323eb60d198..b850e923ab7a5b8004401453cc250d51e27633d3 100644 (file)
@@ -1215,7 +1215,6 @@ static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, char *ppsz_argv[] )
 
         /* TODO: write an internal function of this one, to avoid
          *       unnecessary lookups. */
-        /* FIXME: should we convert options to UTF-8 as well ?? */
 
 #ifdef WIN32
         if( GetVersion() < 0x80000000 )
@@ -1228,6 +1227,9 @@ static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, char *ppsz_argv[] )
         else
 #endif
         {
+            /* FIXME: it's too late to call FromLocale here. We should
+               convert ALL arguments to UTF8 before they get parsed */
+
             psz_target = FromLocale( ppsz_argv[ i_opt ] );
             VLC_AddTarget( p_vlc->i_object_id, psz_target,
                        (char const **)( i_options ? &ppsz_argv[i_opt + 1] :
index f3f762ed37054243dada273190a23cf6b7046e24..0921bbb96bf912f785779677b34f725617e7c5af 100644 (file)
@@ -39,9 +39,6 @@
 
 #include <winsock.h>
 
-extern void __wgetmainargs(int *argc, wchar_t ***wargv, wchar_t ***wenviron,
-                           int expand_wildcards, int *startupinfo);
-
 /*****************************************************************************
  * system_Init: initialize winsock and misc other things.
  *****************************************************************************/
@@ -86,18 +83,6 @@ void system_Init( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] )
     /* Call mdate() once to make sure it is initialized properly */
     mdate();
 
-    /* Replace argv[1..n] with unicode for Windows NT and above */
-    if( GetVersion() < 0x80000000 )
-    {
-        wchar_t **wargv, **wenvp;
-        int i,i_wargc;
-        int si = { 0 };
-        __wgetmainargs(&i_wargc, &wargv, &wenvp, 0, &si);
-
-        for( i = 1; i < i_wargc; i++ )
-            ppsz_argv[i] = FromWide( wargv[i] );
-    }
-
     /* WinSock Library Init. */
     if( !WSAStartup( MAKEWORD( 2, 2 ), &Data ) )
     {
index 2cf02bb30f0a47a7fcd38b0653fd158aad02249f..8b90f737948e525435164c8630bb83c5d2fabe66 100644 (file)
--- a/src/vlc.c
+++ b/src/vlc.c
 
 #include <vlc/vlc.h>
 
+#ifdef WIN32
+extern void __wgetmainargs(int *argc, wchar_t ***wargv, wchar_t ***wenviron,
+                           int expand_wildcards, int *startupinfo);
+#endif
+
 /*****************************************************************************
  * Local prototypes.
  *****************************************************************************/
@@ -98,6 +103,20 @@ int main( int i_argc, char *ppsz_argv[] )
     signal( SIGPIPE, SIG_IGN );
 #endif
 
+#ifdef WIN32
+    /* Replace argv[1..n] with unicode for Windows NT and above */
+    if( GetVersion() < 0x80000000 )
+    {
+        wchar_t **wargv, **wenvp;
+        int i,i_wargc;
+        int si = { 0 };
+        __wgetmainargs(&i_wargc, &wargv, &wenvp, 0, &si);
+
+        for( i = 1; i < i_wargc; i++ )
+            ppsz_argv[i] = FromWide( wargv[i] );
+    }
+#endif
+
     /* Initialize libvlc */
     i_ret = VLC_Init( 0, i_argc, ppsz_argv );
     if( i_ret < 0 )