aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad
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
commit3c0c0530ba5a5d9459e4242e850e3f90d5aa597e (patch)
tree4ea99a211b45c04663cf7a86d3be01fc818e6778 /XMonad
parenta25a97710d48a4109a52fed29164afd6429b7cfe (diff)
downloadxmonad-3c0c0530ba5a5d9459e4242e850e3f90d5aa597e.tar.gz
xmonad-3c0c0530ba5a5d9459e4242e850e3f90d5aa597e.tar.xz
xmonad-3c0c0530ba5a5d9459e4242e850e3f90d5aa597e.zip
Use executeFile directly, rather than the shell, avoiding sh interepeting
darcs-hash:20071119025015-cba2c-49dee5526ab8d163dfb14735e6076fd8db723973.gz
Diffstat (limited to 'XMonad')
-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