X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FUnicode.hs;h=b34f677069d1f12fb6d6514192b0b33886747122;hb=41e8fba828acbae1751628af50849f5352b27873;hp=20d2b096385888b56bd170393a8a93c55589cf86;hpb=ad2f35188663652eca67184e744419478ac4b601;p=ghc-base.git diff --git a/GHC/Unicode.hs b/GHC/Unicode.hs index 20d2b09..b34f677 100644 --- a/GHC/Unicode.hs +++ b/GHC/Unicode.hs @@ -1,6 +1,7 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-} {-# OPTIONS -#include "WCsubst.h" #-} {-# OPTIONS_HADDOCK hide #-} + ----------------------------------------------------------------------------- -- | -- Module : GHC.Unicode @@ -29,10 +30,8 @@ module GHC.Unicode ( ) where import GHC.Base -import GHC.Real (fromIntegral) -import GHC.Int -import GHC.Word -import GHC.Num (fromInteger) +import GHC.Real (fromIntegral) +import Foreign.C.Types (CInt) #include "HsBaseConfig.h" @@ -64,8 +63,8 @@ isControl :: Char -> Bool -- (letters, numbers, marks, punctuation, symbols and spaces). isPrint :: Char -> Bool --- | Selects white-space characters in the Latin-1 range. --- (In Unicode terms, this includes spaces and some control characters.) +-- | Returns 'True' for any Unicode space character, and the control +-- characters @\\t@, @\\n@, @\\r@, @\\f@, @\\v@. isSpace :: Char -> Bool -- isSpace includes non-breaking space -- Done with explicit equalities both for efficiency, and to avoid a tiresome @@ -135,8 +134,6 @@ toTitle :: Char -> Char -- Regardless of the O/S and Library, use the functions contained in WCsubst.c -type CInt = HTYPE_INT - isAlpha c = iswalpha (fromIntegral (ord c)) /= 0 isAlphaNum c = iswalnum (fromIntegral (ord c)) /= 0 --isSpace c = iswspace (fromIntegral (ord c)) /= 0 @@ -149,9 +146,6 @@ toLower c = chr (fromIntegral (towlower (fromIntegral (ord c)))) toUpper c = chr (fromIntegral (towupper (fromIntegral (ord c)))) toTitle c = chr (fromIntegral (towtitle (fromIntegral (ord c)))) -foreign import ccall unsafe "u_iswdigit" - iswdigit :: CInt -> CInt - foreign import ccall unsafe "u_iswalpha" iswalpha :: CInt -> CInt