summaryrefslogtreecommitdiffstats
path: root/XMonad/Core.hs
diff options
context:
space:
mode:
authorDon Stewart <dons@galois.com>2007-11-19 03:50:15 +0100
committerDon Stewart <dons@galois.com>2007-11-19 03:50:15 +0100
commita6c2d8d7fff74c59a487e9619785b8620705c543 (patch)
tree4ea99a211b45c04663cf7a86d3be01fc818e6778 /XMonad/Core.hs
parent28172bd22b6c9627e8423d0f3fb5756004d1a147 (diff)
downloadmetatile-a6c2d8d7fff74c59a487e9619785b8620705c543.tar
metatile-a6c2d8d7fff74c59a487e9619785b8620705c543.zip
Use executeFile directly, rather than the shell, avoiding sh interepeting
darcs-hash:20071119025015-cba2c-49dee5526ab8d163dfb14735e6076fd8db723973
Diffstat (limited to 'XMonad/Core.hs')
-rw-r--r--XMonad/Core.hs10
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