[vlc-devel] commit: OSX specific hack to remove "-psnXXX" from args ( Rafaël Carré )
git version control
git at videolan.org
Thu Nov 26 20:07:21 CET 2009
vlc | branch: master | Rafaël Carré <rafael.carre at gmail.com> | Thu Nov 26 20:03:14 2009 +0100| [fcc9a34048474173cbfa17b7106044cbdc31cfbe] | committer: 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 [13d838b64]
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fcc9a34048474173cbfa17b7106044cbdc31cfbe
---
bin/vlc.c | 15 ++++++++++++++-
src/config/cmdline.c | 18 ------------------
2 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/bin/vlc.c b/bin/vlc.c
index 3dc0fe4..bad420b 100644
--- a/bin/vlc.c
+++ b/bin/vlc.c
@@ -34,6 +34,10 @@
#include <stdlib.h>
#include <locale.h>
+#ifdef __APPLE__
+#include <string.h>
+#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 264f84e..5f2a6ab 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);
More information about the vlc-devel
mailing list