I read the man pages "man setlocale", "man strftime" and find a mistake in str format.
I use ' if (!strftime((char *)str, 100, "%#x", (const struct tm *)thetime))' but the correct is
' if (!strftime((char *)str, 100, "%x", (const struct tm *)thetime))'...
But I still have the same output for all setlocale I use.
setlocale(LC_ALL, "C");
setlocale(LC_ALL, "pt_BR");
setlocale(LC_ALL, "ja");
...
$ ./crt_locale.exe
'Mon Dec 08 2003'
'Mon Dec 08 2003'
'Mon Dec 08 2003'
'Mon Dec 08 2003'


thanks,
Marcelo Modolo


Igor Pechtchanski wrote:


On Sun, 7 Dec 2003, Marcelo Rezende Módolo wrote:

Hi,
I have a program that needs the locale support, so I include 'locale.h'.
I make the program but the output was wrong.
With the cygwin library the setlocale function do not work, but if I
link with mingw library it is ok I am sending a sample program that
demonstrate the error.

Linking with CYGWIN:
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $ gcc -o crt_locale crt_locale.c
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $
    $ ./crt_locale.exe
    In German locale, strftime returns 'x'
    No Brasil locale, strftime retorna 'x'
    In 'C' locale, strftime returns 'x'
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $

Linking with MINGW (-mno-cygwin)
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $ gcc -mno-cygwin -o crt_locale crt_locale.c
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $
    $ ./crt_locale.exe
    In German locale, strftime returns 'Sonntag, 07. Dezember 2003'
    No Brasil locale, strftime retorna 'domingo, 07 de dezembro de 2003'
    In 'C' locale, strftime returns 'Sunday, December 07, 2003'
    [EMAIL PROTECTED] /usr/src/testes/locale/msdn
    $

Thanks,
Marcelo Modolo


"man setlocale", "man strftime".
    Igor





-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/



Reply via email to