Re: Определение локали , в которой запущено приложение

2009-12-12 Пенетрантность Stanislav Maslovski
On Fri, Dec 11, 2009 at 04:35:48PM +0300, Alexey Pechnikov wrote: Hello! Вроде как идеологически правильной является функция nl_langinfo(CODESET). Но приложение, запущенное напрямую, возвращает UTF-8, а вызванное из скрипта (#!/bin/sh интерпретатор) - ANSI_X3.4-1968. Я про такую и не слышал.

Re: Определение локали, в которой запущено приложение

2009-12-12 Пенетрантность Alexey Pechnikov
Hello! On Saturday 12 December 2009 16:09:54 Stanislav Maslovski wrote: В том же мане: setlocale(3) needs to be executed with proper arguments before. If no locale has been selected for the appropriate category, nl_langinfo() returns a pointer to the corresponding string in the C

Re: Определение локали , в которой запущено приложение

2009-12-12 Пенетрантность Victor Wagner
On 2009.12.11 at 21:56:03 +0300, Alexey Pechnikov wrote: А как быть в случае с _модулем_ приложения? Пытаться инициализировать локаль с помощью вызова setlocale(LC_CTYPE,) или обращаться к переменным окружения? Каким модулем? Библиотекой, подгружаемой в чужой процесс? Не использовать

Re: Определение локали , в которой запущено приложение

2009-12-12 Пенетрантность Stanislav Maslovski
On Sat, Dec 12, 2009 at 06:38:07PM +0300, Alexey Pechnikov wrote: Hello! On Saturday 12 December 2009 16:09:54 Stanislav Maslovski wrote: В том же мане: setlocale(3) needs to be executed with proper arguments before. If no locale has been selected for the appropriate category,

Re: Определение локали, в которой запущено приложение

2009-12-12 Пенетрантность Alexey Pechnikov
Hello! On Saturday 12 December 2009 18:42:57 Victor Wagner wrote: Каким модулем? Библиотекой, подгружаемой в чужой процесс? Не использовать локале-заисимого кода в таких модулях, если есть альтернативный интефейс, делать свой модуль отдельным процессом. Не получается не использовать -

Re: Определение локали , в которой запущено приложение

2009-12-12 Пенетрантность Victor Wagner
On 2009.12.12 at 23:17:50 +0300, Alexey Pechnikov wrote: Вот как, зарепортил баг. Правда, это вроде как обязательно только для дебиана, поскольку больше нигде такого требования не встречал (а в дебиане есть, в описании методики интернационализации программ). Это обязательно для любой

Re: Определение локали, в которой запущено приложение

2009-12-12 Пенетрантность Alexey Pechnikov
Hello! On Saturday 12 December 2009 20:48:25 Stanislav Maslovski wrote: И ни слова о том, можно ли эту функцию вызывать более чем единожды. Какую? nl_langinfo()? Можно. Если же тебе нужно временно сменить, например, LC_COLLATE в твоем модуле, то делаешь так: char *old =

Re: Определение локали, в которой запущено приложение

2009-12-12 Пенетрантность Alexey Pechnikov
Hello! On Sunday 13 December 2009 00:03:18 Yuriy Kaminskiy wrote: Локаль должна определять как минимум порядок сортировки, ctype (isprint, isalpha, toupper/tolower), формат вывода даты, перевод сообщений об ошибках (perror/strerror), перевод прочих сообщений gettext. Если шелл sqlite ничем

Re: Определение локали , в которой запущено приложение

2009-12-12 Пенетрантность Stanislav Maslovski
On Sat, Dec 12, 2009 at 11:20:42PM +0300, Alexey Pechnikov wrote: Hello! On Saturday 12 December 2009 20:48:25 Stanislav Maslovski wrote: И ни слова о том, можно ли эту функцию вызывать более чем единожды. Какую? nl_langinfo()? Можно. Если же тебе нужно временно сменить, например,

Re: Определение локали, в которой запущено приложение

2009-12-11 Пенетрантность Alexey Pechnikov
Hello! On Friday 11 December 2009 16:43:07 Victor Wagner wrote: nl_langinfo возвращает кодировку, соответсвующую текущей локали, инициализированной в данном процессе. Инициализируется локаль вызовом setlocale(категория,строка) Если указана пустая строка, то используется значение из