summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-03-29 11:59:13 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-03-29 11:59:13 +0000
commit274a7b1ab7cf30fd1ceaddd02f991eaf694cc37c (patch)
treea89fd8d821b89975e4605860ecdc464f51d44f0b
parentc117f1be1a1923f5a87369d738cca562c3481fcc (diff)
downloadhaskell-274a7b1ab7cf30fd1ceaddd02f991eaf694cc37c.tar.gz
in stage1, we should get isPrint and isUpper from Compat.Unicode, not Data.Char
-rw-r--r--ghc/compiler/parser/Lexer.x6
-rw-r--r--ghc/lib/compat/Compat/Unicode.hs11
2 files changed, 13 insertions, 4 deletions
diff --git a/ghc/compiler/parser/Lexer.x b/ghc/compiler/parser/Lexer.x
index 31acaa0409..4c1b48efc0 100644
--- a/ghc/compiler/parser/Lexer.x
+++ b/ghc/compiler/parser/Lexer.x
@@ -44,14 +44,14 @@ import Ctype
import Util ( maybePrefixMatch, readRational )
import DATA_BITS
-import Data.Char
+import Data.Char ( chr )
import Ratio
--import TRACE
#if __GLASGOW_HASKELL__ >= 605
-import Data.Char ( GeneralCategory(..), generalCategory )
+import Data.Char ( GeneralCategory(..), generalCategory, isPrint, isUpper )
#else
-import Compat.Unicode ( GeneralCategory(..), generalCategory )
+import Compat.Unicode ( GeneralCategory(..), generalCategory, isPrint, isUpper )
#endif
}
diff --git a/ghc/lib/compat/Compat/Unicode.hs b/ghc/lib/compat/Compat/Unicode.hs
index 4765511954..3c8bfc6a06 100644
--- a/ghc/lib/compat/Compat/Unicode.hs
+++ b/ghc/lib/compat/Compat/Unicode.hs
@@ -1,6 +1,6 @@
{-# OPTIONS -cpp #-}
module Compat.Unicode (
- GeneralCategory(..), generalCategory,
+ GeneralCategory(..), generalCategory, isPrint, isUpper
) where
#if __GLASGOW_HASKELL__ > 604
@@ -54,4 +54,13 @@ generalCategory c = toEnum (wgencat (fromIntegral (ord c)))
foreign import ccall unsafe "u_gencat"
wgencat :: CInt -> Int
+
+isPrint c = iswprint (fromIntegral (ord c)) /= 0
+isUpper c = iswupper (fromIntegral (ord c)) /= 0
+
+foreign import ccall unsafe "u_iswprint"
+ iswprint :: CInt -> CInt
+
+foreign import ccall unsafe "u_iswupper"
+ iswupper :: CInt -> CInt
#endif