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 <locale.h>
#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

Reply via email to