[project @ 2003-10-13 03:21:20 by sof]
authorsof <unknown>
Mon, 13 Oct 2003 03:21:20 +0000 (03:21 +0000)
committersof <unknown>
Mon, 13 Oct 2003 03:21:20 +0000 (03:21 +0000)
cope if regex.h isn't supported by target

Text/Regex.hs
Text/Regex/Posix.hsc

index 15aecb8..8ba4eae 100644 (file)
@@ -1,3 +1,4 @@
+{-# OPTIONS -cpp #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.Regex
 -- interface in "Text.Regex.Posix".
 --
 -----------------------------------------------------------------------------
-
+#include "config.h"
 module Text.Regex (
     -- * Regular expressions
     Regex,
+#if defined(HAVE_REGEX_H)
     mkRegex,
     mkRegexWithOpts,
     matchRegex,
     matchRegexAll
+#endif
   ) where
 
 import Prelude
@@ -27,6 +30,7 @@ import qualified Text.Regex.Posix as RE
 import Text.Regex.Posix ( Regex )
 import System.IO.Unsafe
 
+#if defined(HAVE_REGEX_H)
 -- | Makes a regular expression with the default options (multi-line,
 -- case-sensitive).  The syntax of regular expressions is
 -- otherwise that of @egrep@ (i.e. POSIX \"extended\" regular
@@ -80,3 +84,4 @@ matchRegexAll
 
 matchRegexAll p str = unsafePerformIO (RE.regexec p str)
 
+#endif
index 65ab13d..9b4d706 100644 (file)
 -----------------------------------------------------------------------------
 
 -- ToDo: should have an interface using PackedStrings.
+#include "config.h"
 
 module Text.Regex.Posix (
        -- * The @Regex@ type
        Regex,          -- abstract
 
+#if defined(HAVE_REGEX_H)
        -- * Compiling a regular expression
        regcomp,        -- :: String -> Int -> IO Regex
 
@@ -34,19 +36,26 @@ module Text.Regex.Posix (
                        --               String,     -- everything after match
                        --               [String]))  -- subexpression matches
 
+#endif
   ) where
 
+#if defined(HAVE_REGEX_H)
 #include <sys/types.h>
 #include "regex.h"
+#endif
 
 import Prelude
 
 import Foreign
 import Foreign.C
 
+type CRegex    = ()
+
 -- | A compiled regular expression
 newtype Regex = Regex (ForeignPtr CRegex)
 
+#if defined(HAVE_REGEX_H) 
+-- to the end
 -- -----------------------------------------------------------------------------
 -- regcomp
 
@@ -154,7 +163,6 @@ unpack string p_match = do
        REG_ERANGE, \
        REG_ESPACE
 
-type CRegex    = ()
 type CRegMatch = ()
 
 foreign import ccall unsafe "regcomp"
@@ -166,3 +174,5 @@ foreign import ccall  unsafe "&regfree"
 foreign import ccall unsafe "regexec"
   c_regexec :: Ptr CRegex -> CString -> CSize
            -> Ptr CRegMatch -> CInt -> IO CInt
+
+#endif /* HAVE_REGEX_H */