Re: [Haskell-cafe] FFI binding -- different behaviour under compilation and interpretation.

2009-11-13 Thread Jason Dusek
  There is a Cabal package for this already:

http://hackage.haskell.org/package/setlocale

  A call to `setLocale LC_ALL (Just "")` in `main` fixes things.

--
Jason Dusek



2009/11/13 Daniel Fischer :
> Am Samstag 14 November 2009 00:00:36 schrieb Jason Dusek:
>>   I'm binding to `wcwidth` to determine the column widths of
>>   various Unicode characters. I noticed a lot of -- in fact all
>>   -- Chinese characters were being given widths of `-1` when of
>>   course they should have width `2`. This only showed up when I
>>   compiled my program though -- within GHCi, it never happened.
>
> It seems that ghci calls setlocale(LC_ALL,"") or similar, while the compiled 
> code doesn't.
> I've no idea why that would be, but
>
> da...@linux-mkk1:~/Haskell/CafeTesting> cat locl.h
> void sloc();
> da...@linux-mkk1:~/Haskell/CafeTesting> cat locl.c
> #include 
> #include "locl.h"
>
> void sloc(){
>    setlocale(LC_ALL,"");
> }
>
>
> main                         =  do
>  setloc
>   (sequence_ . fmap (UTF8.putStrLn . uncurry fmt)) widths
>    where...
>
> foreign import ccall unsafe "locl.h sloc" setloc :: IO ()
>
> fixes it.
>
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] FFI binding -- different behaviour under compilation and interpretation.

2009-11-13 Thread Jason Dusek
  Thank you very much!

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


Re: [Haskell-cafe] FFI binding -- different behaviour under compilation and interpretation.

2009-11-13 Thread Daniel Fischer
Am Samstag 14 November 2009 00:00:36 schrieb Jason Dusek:
>   I'm binding to `wcwidth` to determine the column widths of
>   various Unicode characters. I noticed a lot of -- in fact all
>   -- Chinese characters were being given widths of `-1` when of
>   course they should have width `2`. This only showed up when I
>   compiled my program though -- within GHCi, it never happened.

It seems that ghci calls setlocale(LC_ALL,"") or similar, while the compiled 
code doesn't.
I've no idea why that would be, but

da...@linux-mkk1:~/Haskell/CafeTesting> cat locl.h
void sloc();
da...@linux-mkk1:~/Haskell/CafeTesting> cat locl.c
#include 
#include "locl.h"

void sloc(){
setlocale(LC_ALL,"");
}


main                         =  do
  setloc
  (sequence_ . fmap (UTF8.putStrLn . uncurry fmt)) widths
where...

foreign import ccall unsafe "locl.h sloc" setloc :: IO ()

fixes it.


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