vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Tue Mar 20 17:56:43 2012 +0200| [b542d4589832e4eb2d5598bdbbc8e27715763e7f] | committer: Rémi Denis-Courmont
vlc: fix regression with command line arguments > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b542d4589832e4eb2d5598bdbbc8e27715763e7f --- bin/vlc.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/vlc.c b/bin/vlc.c index 5757f9c..80418f1 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -33,6 +33,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> +#include <string.h> #include <locale.h> #include <signal.h> #ifdef HAVE_PTHREAD_H @@ -40,10 +41,6 @@ #endif #include <unistd.h> -#ifdef __APPLE__ -#include <string.h> -#endif - #ifdef __OS2__ # define pthread_t int # define pthread_self() _gettid() @@ -178,6 +175,17 @@ int main( int i_argc, const char *ppsz_argv[] ) #ifdef TOP_SRCDIR argv[argc++] = "--data-path="TOP_SRCDIR"/share"; #endif + ppsz_argv++; i_argc--; /* skip executable path */ +#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 >= 1 && !strncmp (*ppsz_argv, "-psn" , 4)) + ppsz_argv++, i_argc--; +#endif + memcpy (argv + argc, ppsz_argv, i_argc * sizeof (*argv)); + argc += i_argc; argv[argc] = NULL; vlc_enable_override (); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
