summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-11-06 10:23:19 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-11-06 10:23:19 +0000
commit3035c581282adb24ae1f63c5bc970cfa5c2292ce (patch)
tree53dfa009ec2d85a2384f6c574daf3c2bab8d6ca8
parent83361f58746ae08040079a6d809127bca2ae3f4c (diff)
downloadhaskell-3035c581282adb24ae1f63c5bc970cfa5c2292ce.tar.gz
Accept any non-space characters in a header file (#3624)
The FFI spec doesn't say exactly which characters may occur in a header file, so to be on the safe side we'll accept anything that isn't a space.
-rw-r--r--compiler/parser/RdrHsSyn.lhs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs
index c785c22151..5b7269adbb 100644
--- a/compiler/parser/RdrHsSyn.lhs
+++ b/compiler/parser/RdrHsSyn.lhs
@@ -1012,7 +1012,9 @@ parseCImport cconv safety nm str =
mk = CImport cconv safety
- hdr_char c = isAscii c && (isAlphaNum c || c `elem` "._-")
+ hdr_char c = not (isSpace c) -- header files are filenames, which can contain
+ -- pretty much any char (depending on the platform),
+ -- so just accept any non-space character
id_char c = isAlphaNum c || c == '_'
cimp nm = (ReadP.char '&' >> skipSpaces >> CLabel <$> cid)