:cd with no argument goes to the user's home directory
authorSimon Marlow <simonmar@microsoft.com>
Tue, 4 Dec 2007 11:39:45 +0000 (11:39 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Tue, 4 Dec 2007 11:39:45 +0000 (11:39 +0000)
Seems better than getting a confusing 'cannot find directory' exception.

compiler/ghci/InteractiveUI.hs

index 3ae37f5..8cc1513 100644 (file)
@@ -846,6 +846,12 @@ addModule files = do
   afterLoad ok session False prev_context
 
 changeDirectory :: String -> GHCi ()
+changeDirectory "" = do
+  -- :cd on its own changes to the user's home directory
+  either_dir <- io (IO.try getHomeDirectory)
+  case either_dir of
+     Left _e -> return ()
+     Right dir -> changeDirectory dir
 changeDirectory dir = do
   session <- getSession
   graph <- io (GHC.getModuleGraph session)