From: Rafaël Carré Date: Thu, 26 Nov 2009 19:03:14 +0000 (+0100) Subject: OSX specific hack to remove "-psnXXX" from args X-Git-Tag: 1.1.0-ff~2349 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=fcc9a34048474173cbfa17b7106044cbdc31cfbe OSX specific hack to remove "-psnXXX" from args Move it from libvlc where it didn't work to vlc binary where it really should be Now VLC can be started from dock again after [13d838b64] --- diff --git a/bin/vlc.c b/bin/vlc.c index 3dc0fe4f25..bad420bacc 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -34,6 +34,10 @@ #include #include +#ifdef __APPLE__ +#include +#endif + /* Explicit HACK */ extern void LocaleFree (const char *); @@ -134,7 +138,16 @@ int main( int i_argc, const char *ppsz_argv[] ) # endif #endif - for (int i = 1; i < i_argc; i++) + int i = 1; +#ifdef __APPLE__ + /* When VLC.app is run by double clicking in Mac OS X, the 2nd arg + * is the PSN - process serial number (a unique PID-ish thingie) + * still ok for real Darwin & when run from command line + * for example -psn_0_9306113 */ + if(i_argc >= 2 && !strncmp( ppsz_argv[1] , "-psn" , 4 )) + i = 2; +#endif + for (; i < i_argc; i++) if ((argv[argc++] = FromLocale (ppsz_argv[i])) == NULL) return 1; // BOOM! argv[argc] = NULL; diff --git a/src/config/cmdline.c b/src/config/cmdline.c index 264f84ed2f..5f2a6ab8f7 100644 --- a/src/config/cmdline.c +++ b/src/config/cmdline.c @@ -65,24 +65,6 @@ int __config_LoadCmdLine( vlc_object_t *p_this, int *pi_argc, module_config_t *pp_shortopts[256]; char *psz_shortopts; -#ifdef __APPLE__ - /* When VLC.app is run by double clicking in Mac OS X, the 2nd arg - * is the PSN - process serial number (a unique PID-ish thingie) - * still ok for real Darwin & when run from command line */ - if ( (*pi_argc > 1) && (strncmp( ppsz_argv[ 1 ] , "-psn" , 4 ) == 0) ) - /* for example -psn_0_9306113 */ - { - /* GDMF!... I can't do this or else the MacOSX window server will - * not pick up the PSN and not register the app and we crash... - * hence the following kludge otherwise we'll get confused w/ argv[1] - * being an input file name. - * As there won't be any more args to parse, just exit. */ - assert( *pi_argc == 2 ); - *pi_argc = 1; - return 0; - } -#endif - /* List all modules */ module_t **list = module_list_get (NULL);