X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fwin32_specific.c;h=c318c7d46e7a6b5dc912cd9c74559b21eafbb10c;hb=cf9e0c81162d09b7ee079d512436715fd243ffad;hp=8fde1f56cb3e8caf78d4a4570e7612aadfe33b3d;hpb=673861da5ce8bfeb0a4adbd5be95aa5fd2da9e4b;p=vlc diff --git a/src/misc/win32_specific.c b/src/misc/win32_specific.c index 8fde1f56cb..c318c7d46e 100644 --- a/src/misc/win32_specific.c +++ b/src/misc/win32_specific.c @@ -25,8 +25,8 @@ #include /* free() */ #include -#include -#include "vlc_playlist.h" +#include +#include #ifdef WIN32 /* optind, getopt(), included in unistd.h */ # include "../extras/getopt.h" @@ -39,9 +39,6 @@ #include -extern void __wgetmainargs(int *argc, wchar_t ***wargv, wchar_t ***wenviron, - int expand_wildcards, int *startupinfo); - /***************************************************************************** * system_Init: initialize winsock and misc other things. *****************************************************************************/ @@ -206,54 +203,24 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] ) COPYDATASTRUCT wm_data; int i_opt, i_data; char *p_data; - wchar_t **wargv, **wenvp; - int si = { 0 }; i_data = sizeof(int); - if( GetVersion() < 0x80000000 ) + for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) { - /* use unicode argv[] for Windows NT and above */ - __wgetmainargs(&i_opt, &wargv, &wenvp, 0, &si); - for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) - { - i_data += sizeof(int); - i_data += WideCharToMultiByte( CP_UTF8, 0, - wargv[ i_opt ], -1, NULL, 0, NULL, NULL ) + 1; - } - p_data = (char *)malloc( i_data ); - *((int *)&p_data[0]) = *pi_argc - optind; - i_data = sizeof(int); - for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) - { - int i_len = WideCharToMultiByte( CP_UTF8, 0, - wargv[ i_opt ], -1, NULL, 0, NULL, NULL ) + 1; - *((int *)&p_data[i_data]) = i_len; - i_data += sizeof(int); - WideCharToMultiByte( CP_UTF8, 0, wargv[ i_opt ], -1, - &p_data[i_data], i_len, NULL, NULL ); - i_data += i_len; - } - + i_data += sizeof(int); + i_data += strlen( ppsz_argv[ i_opt ] ) + 1; } - else + + p_data = (char *)malloc( i_data ); + *((int *)&p_data[0]) = *pi_argc - optind; + i_data = sizeof(int); + for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) { - for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) - { - i_data += sizeof(int); - i_data += strlen( ppsz_argv[ i_opt ] ) + 1; - } - - p_data = (char *)malloc( i_data ); - *((int *)&p_data[0]) = *pi_argc - optind; - i_data = sizeof(int); - for( i_opt = optind; i_opt < *pi_argc; i_opt++ ) - { - int i_len = strlen( ppsz_argv[ i_opt ] ) + 1; - *((int *)&p_data[i_data]) = i_len; - i_data += sizeof(int); - memcpy( &p_data[i_data], ppsz_argv[ i_opt ], i_len ); - i_data += i_len; - } + int i_len = strlen( ppsz_argv[ i_opt ] ) + 1; + *((int *)&p_data[i_data]) = i_len; + i_data += sizeof(int); + memcpy( &p_data[i_data], ppsz_argv[ i_opt ], i_len ); + i_data += i_len; } /* Send our playlist items to the 1st instance */ @@ -358,13 +325,13 @@ LRESULT CALLBACK WMCOPYWNDPROC( HWND hwnd, UINT uMsg, WPARAM wParam, NULL, PLAYLIST_APPEND , PLAYLIST_END, -1, (char const **)( i_options ? &ppsz_argv[i_opt+1] : NULL ), - i_options, VLC_TRUE ); + i_options, VLC_TRUE, VLC_FALSE ); } else { playlist_AddExt( p_playlist, ppsz_argv[i_opt], NULL, PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END, -1, (char const **)( i_options ? &ppsz_argv[i_opt+1] : NULL ), - i_options, VLC_TRUE ); + i_options, VLC_TRUE, VLC_FALSE ); } i_opt += i_options;