Issue 254 in xmonad: XMonad.Contrib.Util.Run.runInTerm does not work with terminal = "gnome-terminal"

Comment #5 on issue 254 by twpayne: XMonad.Contrib.Util.Run.runInTerm does not work with terminal = "gnome-terminal" http://code.google.com/p/xmonad/issues/detail?id=254 I've only got basic notions of Haskell, but my understanding is that safeRunInTerm avoids the shell but the command to be run is still converted to a string. Basically: runInTerm (based on unsafeSpawn) does this (pseudo code): exec 'sh -c "terminal -e ssh localhost"' -- convert to string, pass to sh safeRunInTerm (based on safeSpawn) does this: exec 'terminal -e ssh localhost' -- convert to string. don't pass to sh but what's really needed is this: exec ['terminal', '-e', 'ssh localhost'] -- don't convert to string, invoke -- exec with list of arguments Note how in the last example 'ssh localhost' is passed as a single argument, where in both runInTerm and safeRunInTerm it is split into two arguments (because a string passed to exec is implicitly split on whitespace to produce the list of arguments). So, unfortunately I think the changes run a bit deeper than just using safeSpawn :-( -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings
participants (1)
-
codesite-noreply@google.com