Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/f45516f5e8c1eb80c0990142bb3cc90ce924b492

>---------------------------------------------------------------

commit f45516f5e8c1eb80c0990142bb3cc90ce924b492
Author: Duncan Coutts <[email protected]>
Date:   Fri Jan 16 00:13:21 2009 +0000

    Read install dirs correctly from old-style .cabal/config files
    Should fix ticket #365

>---------------------------------------------------------------

 cabal-install/Distribution/Client/Config.hs |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/cabal-install/Distribution/Client/Config.hs 
b/cabal-install/Distribution/Client/Config.hs
index bf062c6..b785b51 100644
--- a/cabal-install/Distribution/Client/Config.hs
+++ b/cabal-install/Distribution/Client/Config.hs
@@ -43,11 +43,11 @@ import Distribution.ParseUtils
          ( FieldDescr(..), liftField
          , ParseResult(..), locatedErrorMsg, showPWarning
          , readFields, warning, lineNo
-         , simpleField, listField, parseFilePathQ, parseTokenQ )
+         , simpleField, listField, parseFilePathQ, showFilePath, parseTokenQ )
 import qualified Distribution.ParseUtils as ParseUtils
          ( Field(..) )
 import Distribution.ReadE
-         ( succeedReadE )
+         ( readP_to_E )
 import Distribution.Simple.Command
          ( CommandUI(commandOptions), commandDefaultFlags, ShowOrParseArgs(..)
          , viewAsFieldDescr, OptionField, option, reqArg )
@@ -368,7 +368,9 @@ parseConfig initial = \str -> do
   fields <- readFields str
   let (knownSections, others) = partition isKnownSection fields
   config <- parse others
-  (user, global) <- foldM parseSections (mempty, mempty) knownSections
+  let user0   = savedUserInstallDirs config
+      global0 = savedGlobalInstallDirs config
+  (user, global) <- foldM parseSections (user0, global0) knownSections
   return config {
     savedUserInstallDirs   = user,
     savedGlobalInstallDirs = global
@@ -506,4 +508,6 @@ installDirsOptions =
       reqArgFlag "DIR" _sf _lf d
         (fmap fromPathTemplate . get) (set . fmap toPathTemplate)
 
-    reqArgFlag ad = reqArg ad (succeedReadE toFlag) flagToList
+    reqArgFlag ad = reqArg ad (fmap toFlag (readP_to_E err parseFilePathQ))
+                              (map (show . showFilePath) . flagToList)
+      where err _ = "paths with spaces must use Haskell String syntax"



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to