diff options
author | Simon Marlow <marlowsd@gmail.com> | 2009-11-06 10:23:19 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2009-11-06 10:23:19 +0000 |
commit | 3035c581282adb24ae1f63c5bc970cfa5c2292ce (patch) | |
tree | 53dfa009ec2d85a2384f6c574daf3c2bab8d6ca8 | |
parent | 83361f58746ae08040079a6d809127bca2ae3f4c (diff) | |
download | haskell-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.lhs | 4 |
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) |