Readline readHistory & writeHistory API broken
Krasimir Angelov
kr.angelov at gmail.com
Sun Jun 8 11:30:34 EDT 2008
The current readHistory and writeHistory bindings are defined as:
-- |Read in a history file. Returns 'False' on failure
-- (for example, if the file does not exist).
readHistory :: FilePath -- ^ The file to read (if null, read ~\/.history)
-> IO Bool
readHistory fp = do
ok <- withCString fp read_history
return (ok==0)
foreign import ccall unsafe read_history :: Ptr CChar -> IO CInt
-- |Write out a history file. Returns 'False' if there was a problem
writing the file.
writeHistory :: FilePath -- ^ The file to write (if null, write ~\/.history)
-> IO Bool
writeHistory fp = do
ok <- withCString fp write_history
return (ok==0)
foreign import ccall unsafe write_history :: Ptr CChar -> IO CInt
Note the comments "(if null, write ~/.history)"! This is supported in
the original C API but in Haskell the filepath cannot be null. In the
best case it can be empty string. Either the type signatures have to
be changed to accept (Maybe FilePath) or the comments have to be
changed because the Haskell binding currently doesn't support this
functionality.
Comments? I hope that this will not start another endless discussion.
Regards,
Krasimir
More information about the Libraries
mailing list