Hello Simon,

Tuesday, June 16, 2009, 4:34:29 PM, you wrote:

> Thanks for reminding me that openFile is also broken.  It's easily
> fixed, so I'll look into that.

i fear that it will leave GHC libs in inconsistent state that can
drive users mad. now at least there are some rules of brokeness. when
some functions will be unicode-aware and some ansi codepaged, and this
may chnage in every version, this "unicode" support will become
completely useless. it will be like floating Base situation when it's
impossible to write programs against Base since it's each time different

also, i think that the best way to fix windows compatibility is to
provide smth like this:

#if WINDOWS

type CWFilePath   = LPCTSTR   -- filename in C land
type CWFileOffset = Int64     -- filesize or filepos in C land
withCWFilePath = withTString  -- FilePath->CWFilePath conversion
peekCWFilePath = peekTString  -- CWFilePath->FilePath conversion

#else

type CWFilePath   = CString
type CWFileOffset = COff
withCWFilePath = withCString
peekCWFilePath = peekCString

#endif

and then systematically rewrite all string-related OS API calls using
these definitions

how much meaning will be to have openFile and getDirContents
unicode-aware, if deleteFile and even getFileStat aren't unicode-aware?


i've attached my own internal module that makes this job for my own
program - just for reference


-- 
Best regards,
 Bulat                            mailto:bulat.zigans...@gmail.com

Attachment: Win32Files.hs
Description: Binary data

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to