diff options
Diffstat (limited to 'compiler/utils/Outputable.hs')
-rw-r--r-- | compiler/utils/Outputable.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/compiler/utils/Outputable.hs b/compiler/utils/Outputable.hs index 768d247bf0..7c2eaed62d 100644 --- a/compiler/utils/Outputable.hs +++ b/compiler/utils/Outputable.hs @@ -56,7 +56,7 @@ module Outputable ( pprPrimChar, pprPrimInt, pprPrimWord, pprPrimInt64, pprPrimWord64, - pprFastFilePath, + pprFastFilePath, pprFilePathString, -- * Controlling the style in which output is printed BindingSite(..), @@ -999,6 +999,16 @@ pprInfixVar is_operator pp_v pprFastFilePath :: FastString -> SDoc pprFastFilePath path = text $ normalise $ unpackFS path +-- | Normalise, escape and render a string representing a path +-- +-- e.g. "c:\\whatever" +pprFilePathString :: FilePath -> SDoc +pprFilePathString path = doubleQuotes $ text (escape (normalise path)) + where + escape [] = [] + escape ('\\':xs) = '\\':'\\':escape xs + escape (x:xs) = x:escape xs + {- ************************************************************************ * * |