X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bin%2Fvlc.c;h=e141b4b431728c065c0c0d9facb00ae3dc3150d6;hb=69d7fdea2da6f773fd7993f78c2bea494eb2d819;hp=e486040ff5af9dab18d210a8849a297490c5f741;hpb=8378cde8c45fe15f501b12ad782f99ff73d0247a;p=vlc diff --git a/bin/vlc.c b/bin/vlc.c index e486040ff5..e141b4b431 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -42,6 +42,7 @@ /* Explicit HACK */ extern void LocaleFree (const char *); extern char *FromLocale (const char *); +extern void vlc_enable_override (void); #include #include @@ -74,6 +75,12 @@ int main( int i_argc, const char *ppsz_argv[] ) * use the alpha channel for the embedded video window. */ putenv( (char *)"XLIB_SKIP_ARGB_VISUALS=1" ); #endif +#ifdef HAVE_SETENV + /* Clear the X.Org startup notification ID. Otherwise the UI might try to + * change the environment while the process is multi-threaded. That could + * crash. Screw you X.Org. Next time write a thread-safe specification. */ + unsetenv ("DESKTOP_STARTUP_ID"); +#endif #ifndef ALLOW_RUN_AS_ROOT if (geteuid () == 0) @@ -157,6 +164,8 @@ int main( int i_argc, const char *ppsz_argv[] ) return 1; // BOOM! argv[argc] = NULL; + vlc_enable_override (); + /* Initialize libvlc */ libvlc_instance_t *vlc = libvlc_new (argc, argv);