Massimo Fusaro wrote:
From the setlocale(3) manual page:

    ...  A locale argument of NULL causes setlocale() to return the
current locale. ...

Right. that why i first
call
setlocale(LC_CTYPE, "ru_RU.CP1251");
to set locale
and the call
setlocale(LC_CTYPE,NULL);
to check what locale is currently set.
I tried without call setlocale(LC_CTYPE,NULL);
- no difference.

--
Regards,
Artem



--
  -max

2007/5/24, Artem Kuchin <[EMAIL PROTECTED]>:
Maybe it is the wrong list, but maybe  someone can quickly
help me out.

I have a very stupid problem. I cannot convert to upper
or lower case using manually set locale (setlocale(..)).

A very simple program:
 #include <locale.h>
 #include <errno.h>
     #include <ctype.h>

main(){

    char *b=setlocale(LC_CTYPE, "ru_RU.CP1251");
    if (!b){
        printf("FAILED! %d\n",errno);
    }
    else {
        printf("OK: %s %d\n",b,errno);
        printf("IS UPPER й: %d\n",isupper('й'));
        printf("IS UPPER Й: %d\n",isupper('Й'));
        printf("IS LOWER й: %d\n",islower('й'));
        printf("IS LOWER Й: %d\n",islower('Й'));
        printf("LOCALE %s\n",setlocale(LC_CTYPE,NULL));
        printf("1: TO UPPER %c TO LOWER
        %c\n",toupper('ж'),tolower('Ж')); printf("1-0: TO UPPER %c
        TO LOWER %c\n",toupper('Я'),tolower('я')); printf("2: TO
    UPPER %c TO LOWER %c\n",toupper('r'),tolower('R')); }
}

Output is always:

OK: ru_RU.CP1251 0
IS UPPER й: 0
IS UPPER Й: 0
IS LOWER й: 0
IS LOWER Й: 0
LOCALE ru_RU.CP1251
1: TO UPPER ж TO LOWER Ж
1-0: TO UPPER Я TO LOWER я
2: TO UPPER R TO LOWER r

й,ж,я - is lower case leters and
Й,Ж,Я - is upper case

As you see, it simply does not work at all.
It seems like the locale is "C" but as you see
setlocale returned ru_RU.CP1251

tested on 6.2, 5.4 and 4.10 - all the same.
What am i doing wrong?
(except posting in the wrong list ;)



--
Regards,
Artem

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to
"[EMAIL PROTECTED]"





_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to
"[EMAIL PROTECTED]"

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to