From 274a7b1ab7cf30fd1ceaddd02f991eaf694cc37c Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 29 Mar 2006 11:59:13 +0000 Subject: [PATCH] in stage1, we should get isPrint and isUpper from Compat.Unicode, not Data.Char --- ghc/compiler/parser/Lexer.x | 6 +++--- ghc/lib/compat/Compat/Unicode.hs | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ghc/compiler/parser/Lexer.x b/ghc/compiler/parser/Lexer.x index 31acaa0..4c1b48e 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 4765511..3c8bfc6 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 -- 1.7.10.4