Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/449ab247f0fa1232b7ddaa08766f30ac4231e676 >--------------------------------------------------------------- commit 449ab247f0fa1232b7ddaa08766f30ac4231e676 Author: Simon Marlow <[email protected]> Date: Wed Nov 23 16:13:59 2011 +0000 Decode escape sequences properly in line pragmas (see comment for details). >--------------------------------------------------------------- compiler/parser/Lexer.x | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index 17d3e90..1486b64 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -1126,7 +1126,19 @@ setLine code span buf len = do setFile :: Int -> Action setFile code span buf len = do - let file = lexemeToFastString (stepOn buf) (len-2) + let file = mkFastString (go (lexemeToString (stepOn buf) (len-2))) + where go ('\\':c:cs) = c : go cs + go (c:cs) = c : go cs + go [] = [] + -- decode escapes in the filename. e.g. on Windows + -- when our filenames have backslashes in, gcc seems to + -- escape the backslashes. One symptom of not doing this + -- is that filenames in error messages look a bit strange: + -- C:\\foo\bar.hs + -- only the first backslash is doubled, because we apply + -- System.FilePath.normalise before printing out + -- filenames and it does not remove duplicate + -- backslashes after the drive letter (should it?). setAlrLastLoc $ alrInitialLoc file setSrcLoc (mkRealSrcLoc file (srcSpanEndLine span) (srcSpanEndCol span)) addSrcFile file _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
