diff options
author | Don Stewart <dons@galois.com> | 2007-11-19 03:50:15 +0100 |
---|---|---|
committer | Don Stewart <dons@galois.com> | 2007-11-19 03:50:15 +0100 |
commit | a6c2d8d7fff74c59a487e9619785b8620705c543 (patch) | |
tree | 4ea99a211b45c04663cf7a86d3be01fc818e6778 | |
parent | 28172bd22b6c9627e8423d0f3fb5756004d1a147 (diff) | |
download | metatile-a6c2d8d7fff74c59a487e9619785b8620705c543.tar metatile-a6c2d8d7fff74c59a487e9619785b8620705c543.zip |
Use executeFile directly, rather than the shell, avoiding sh interepeting
darcs-hash:20071119025015-cba2c-49dee5526ab8d163dfb14735e6076fd8db723973
-rw-r--r-- | XMonad/Core.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/XMonad/Core.hs b/XMonad/Core.hs index 84b1311..80006b8 100644 --- a/XMonad/Core.hs +++ b/XMonad/Core.hs @@ -324,9 +324,13 @@ recompile = do let msg = unlines $ ["Error detected while loading xmonad configuration file: " ++ src] ++ lines ghcErr ++ ["","Please check the file for errors."] - - waitForProcess =<< runProcess "xmessage" [msg] - Nothing Nothing Nothing Nothing Nothing + -- usual double fork for async processes, and no zombies. + -- careful to use exec directly, avoiding shell + -- interpreting chars in the command line args + pid <- forkProcess $ do + forkProcess $ createSession >> executeFile "xmessage" True [msg] Nothing + exitWith ExitSuccess + getProcessStatus True False pid return () -- | Run a side effecting action with the current workspace. Like 'when' but |