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

Reply via email to