From owner-freebsd-stable@FreeBSD.ORG Sat Aug 12 13:51:19 2006 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2138316A4DF; Sat, 12 Aug 2006 13:51:19 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from pantene.mail.yandex.net (pantene.mail.yandex.net [213.180.223.92]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9745943D46; Sat, 12 Aug 2006 13:51:18 +0000 (GMT) (envelope-from bu7cher@yandex.ru) Received: from YAMAIL (pantene.yandex.ru) by mail.yandex.ru id ; Sat, 12 Aug 2006 17:51:01 +0400 Received: from [82.211.152.12] ([82.211.152.12]) by mail.yandex.ru with HTTP; Sat, 12 Aug 2006 17:51:01 +0400 (MSD) Date: Sat, 12 Aug 2006 17:51:01 +0400 (MSD) From: "Andrey V. Elsukov" Sender: bu7cher@yandex.ru Message-Id: <44DDDCC5.000001.21350@pantene.yandex.ru> MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] Errors-To: bu7cher@yandex.ru To: freebsd-stable@freebsd.org X-Source-Ip: 82.211.152.12 Content-Type: text/plain; charset="KOI8-R" Content-Transfer-Encoding: 8bit Cc: maxim@freebsd.org Subject: setlocale howto X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bu7cher@yandex.ru List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Aug 2006 13:51:19 -0000 Hi, All. I have one question, how use setlocale? My system is FreeBSD 6.1-STABLE. A simple test program: #include #include #include int main(int argc, char *argv[]) { const char* loc="ru_RU.KOI8-R"; int i; char *loc_ret; char buf[]="тестовая строка abcdef"; loc_ret = setlocale(LC_CTYPE, loc); if (!loc_ret) return (-1); printf("original string = %s\n", buf); for(i = 0; i < sizeof(buf); i++) buf[i] = (char)toupper(buf[i]); printf("toupper string = %s\n", buf); return (0); } This programm don't work correctly. Cyrillic symbols don't converted to upper case. But in the same time perl programm work fine: use locale; use POSIX qw(locale_h); my $str = "тестовая строка abcdef"; setlocale(LC_CTYPE, "ru_RU.KOI8-R"); print uc ($str); What is wrong? -- WBR, Andrey V. Elsukov