Ticket #87 (closed defect: invalid)

Opened 5 years ago

Last modified 5 years ago

Strange writeFile behaviour

Reported by: guest Owned by: nobody
Priority: major Milestone:
Component: hugs Version: 200609
Keywords: Cc:

Description

I don't understand the following behaviour of writeFile in Hugs. GHCi does what I would expect. Any help would be greatly appreciated!

Matthew Naylor (mfn@cs.york.ac.uk)

mfn@pc093:/tmp$ ghci
GHCi, version 6.8.2: http://www.haskell.org/ghc/  :? for help
Loading package base ... linking ... done.
Prelude> writeFile "foo.txt" [toEnum 128]
Prelude> Leaving GHCi.
mfn@pc093:/tmp$ wc -c foo.txt 
1 foo.txt
mfn@pc093:/tmp$ rm foo.txt
mfn@pc093:/tmp$ hugs
__   __ __  __  ____   ___      _________________________________________
||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
||___|| ||__|| ||__||  __||     Copyright (c) 1994-2005
||---||         ___||           World Wide Web: http://haskell.org/hugs
||   ||                         Report bugs to: hugs-bugs@haskell.org
||   || Version: May 2006       _________________________________________

Haskell 98 mode: Restart with command line option -98 to enable extensions

Type :? for help
Hugs> writeFile "foo.txt" [toEnum 128]
Hugs> [Leaving Hugs]
mfn@pc093:/tmp$ wc -c foo.txt
2 foo.txt

Change History

Changed 5 years ago by ross

Character I/O in Hugs uses the encoding specified by the current locale. If chr 128 is being mapped to two bytes, your locale is probably specifying UTF-8. You can set your locale (LC_CTYPE) to use ISO8859-1 if desired. If you want binary output, use writeBinaryFile.

Changed 5 years ago by guest

Cheers, Neil Mitchell pointed me to openBinaryFile just after I wrote this report. Sorry to be a nuisance.

Changed 5 years ago by ross

  • status changed from new to closed
  • resolution set to invalid
Note: See TracTickets for help on using tickets.