Fix external core syntax (though not full compilation)
[ghc-hetmet.git] / compiler / utils / Pretty.lhs
index ec8f1e7..f611d7a 100644 (file)
@@ -180,12 +180,10 @@ module Pretty (
 import BufWrite
 import FastString
 
-import GLAEXTS
+import GHC.Exts
 
 import Numeric (fromRat)
-import IO
-
-import System.IO       ( hPutBuf )
+import System.IO
 
 import GHC.Base                ( unpackCString# )
 import GHC.Ptr         ( Ptr(..) )
@@ -227,6 +225,7 @@ allow you to use either GHC or Hugs.  To get GHC, just set the CPP variable
 #define GR      >#
 #define GREQ    >=#
 #define LT      <#
+#define LTEQ    <=#
 #define DIV     `quotInt#`
 
 
@@ -996,11 +995,11 @@ cant_fail = error "easy_display: NoDoc"
 indent n | n GREQ ILIT(8) = '\t' : indent (n MINUS ILIT(8))
          | otherwise      = spaces n
 
-multi_ch ILIT(0) ch = ""
-multi_ch n       ch = ch : multi_ch (n MINUS ILIT(1)) ch
+multi_ch n ch | n LTEQ ILIT(0) = ""
+             | otherwise      = ch : multi_ch (n MINUS ILIT(1)) ch
 
-spaces ILIT(0) = ""
-spaces n       = ' ' : spaces (n MINUS ILIT(1))
+spaces n | n LTEQ ILIT(0) = ""
+         | otherwise      = ' ' : spaces (n MINUS ILIT(1))
 \end{code}
 
 \begin{code}
@@ -1023,11 +1022,7 @@ printDoc mode hdl doc
   -- some versions of hPutBuf will barf if the length is zero
 hPutLitString handle a# 0# = return ()
 hPutLitString handle a# l#
-#if __GLASGOW_HASKELL__ < 411
-  = hPutBuf handle (A# a#) (I# l#)
-#else
   = hPutBuf handle (Ptr a#) (I# l#)
-#endif
 
 -- Printing output in LeftMode is performance critical: it's used when
 -- dumping C and assembly output, so we allow ourselves a few dirty
@@ -1067,9 +1062,4 @@ layLeft b (TextBeside s sl p)     = put b s >> layLeft b p
     put b (Str s)    = bPutStr  b s
     put b (PStr s)   = bPutFS   b s
     put b (LStr s l) = bPutLitString b s l
-
-#if __GLASGOW_HASKELL__ < 503
-hPutBuf = hPutBufFull
-#endif
-
 \end{code}