#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
-#ifdef HAVE_X11_XLIB_H
-# include <X11/Xlib.h>
-#endif
+
/* Explicit HACK */
extern void LocaleFree (const char *);
*****************************************************************************/
int main( int i_argc, const char *ppsz_argv[] )
{
- int i_ret;
+#ifdef __APPLE__
+ /* The so-called POSIX-compliant MacOS X is not.
+ * SIGPIPE fires even when it is blocked in all threads! */
+ signal (SIGPIPE, SIG_IGN);
+#endif
#ifndef ALLOW_RUN_AS_ROOT
if (geteuid () == 0)
# ifndef NDEBUG
/* Activate malloc checking routines to detect heap corruptions. */
putenv( (char*)"MALLOC_CHECK_=2" );
-# ifdef __APPLE__
- putenv( (char*)"MallocErrorAbort=crash_my_baby_crash" );
-# endif
/* Disable the ugly Gnome crash dialog so that we properly segfault */
putenv( (char *)"GNOME_DISABLE_CRASH_DIALOG=1" );
# endif
#endif
-#ifdef HAVE_X11_XLIB_H
- /* Initialize Xlib thread support. */
- if (!XInitThreads ())
- {
- fputs ("VLC requires a thread-safe Xlib. Sorry.\n", stderr);
- return 1;
- }
-#endif
-
/* Synchronously intercepted POSIX signals.
*
* In a threaded program such as VLC, the only sane way to handle signals
const char *argv[i_argc + 3];
int argc = 0;
+ argv[argc++] = "--no-ignore-config";
#ifdef TOP_BUILDDIR
argv[argc++] = FromLocale ("--plugin-path="TOP_BUILDDIR"/modules");
#endif
for (int i = 1; i < i_argc; i++)
if ((argv[argc++] = FromLocale (ppsz_argv[i])) == NULL)
return 1; // BOOM!
+ argv[argc] = NULL;
libvlc_exception_t ex, dummy;
libvlc_exception_init (&ex);
libvlc_exception_clear (&ex);
pthread_sigmask (SIG_UNBLOCK, &set, NULL);
}
+ libvlc_add_intf (vlc, "globalhotkeys,none", &ex);
+ libvlc_exception_clear (&ex);
libvlc_add_intf (vlc, NULL, &ex);
libvlc_playlist_play (vlc, -1, 0, NULL, &dummy);
libvlc_wait (vlc);
+
+ if (libvlc_exception_raised (&ex))
+ fprintf( stderr, "%s\n", libvlc_errmsg() );
libvlc_release (vlc);
}
- i_ret = libvlc_exception_raised (&ex);
- if( i_ret )
- fprintf( stderr, "%s\n", libvlc_exception_get_message( &ex));
-
- libvlc_exception_clear (&ex);
- libvlc_exception_clear (&dummy);
- for (int i = 0; i < argc; i++)
+ for (int i = 1; i < argc; i++)
LocaleFree (argv[i]);
- return i_ret;
+ return vlc == NULL || libvlc_exception_raised (&ex);
}