Commit fcc9a340 authored by Rafaël Carré's avatar Rafaël Carré

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 [13d838b6]
parent 94f95f8f
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <locale.h> #include <locale.h>
#ifdef __APPLE__
#include <string.h>
#endif
/* Explicit HACK */ /* Explicit HACK */
extern void LocaleFree (const char *); extern void LocaleFree (const char *);
...@@ -134,7 +138,16 @@ int main( int i_argc, const char *ppsz_argv[] ) ...@@ -134,7 +138,16 @@ int main( int i_argc, const char *ppsz_argv[] )
# endif # endif
#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) if ((argv[argc++] = FromLocale (ppsz_argv[i])) == NULL)
return 1; // BOOM! return 1; // BOOM!
argv[argc] = NULL; argv[argc] = NULL;
......
...@@ -65,24 +65,6 @@ int __config_LoadCmdLine( vlc_object_t *p_this, int *pi_argc, ...@@ -65,24 +65,6 @@ int __config_LoadCmdLine( vlc_object_t *p_this, int *pi_argc,
module_config_t *pp_shortopts[256]; module_config_t *pp_shortopts[256];
char *psz_shortopts; 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 */ /* List all modules */
module_t **list = module_list_get (NULL); module_t **list = module_list_get (NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment