On 12.12.2009 23:48, Alexey Pechnikov wrote: >> On unix the shell must do this initialisation: >> >> setlocale(LC_ALL, ""); > > Why? Yes I know what the call does, but what desirable effect does it have > on shell input and output? Pretty much all formatted output is done using > %s. The only float output is for timing commands. No input is done using > scanf. Except for the disabled by default iotrace, all fopens are in binary > mode. > > Ну не говорить же ему, что в итоге расширения через непонятно какое место > работают... А почему не говорить-то? Библиотека должна пользоваться той локалью, которую выставило приложение. Если приложение локаль не выставило - библиотека должна использовать умолчальную "C". Точка. Локаль должна определять как минимум порядок сортировки, ctype (isprint, isalpha, toupper/tolower), формат вывода даты, перевод сообщений об ошибках (perror/strerror), перевод прочих сообщений gettext. Если шелл sqlite ничем этим не пользуется - это ещё один отдельный баг в нём. PS впрочем, у меня export LC_MESSAGES=C LC_TIME=C LC_NUMERIC=C ;-)
-- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

