Re: Beagle и поиск в документах winword
On 2009.02.24 at 18:35:32 +0700, marouder wrote:
> > #!/bin/sh
> > env > /tmp/antiword.$$.env
> > locale charmap >> /tmp/antiword.$$.env
> > exec antiword "$@"
> >
> > и по мере индексирования смотреть в появляющиеся файлики
> > /tmp/antiword.NNNNN.log
>
> Проделал, как рекомендовали, в /tmp/antiword...есть строки
> ...
> LINGUAS=ru_RU.UTF-8
> LANG=C
~~~~~~~~~
Вот тут-то он и прячется. antiword, как и положено честному консольному
приложению, скорее всего реагирует на LC_ALL, если её нет, то на
LC_CTYPE, если её нет, то на LANG. А LINGUAS и GDB_LANG ему пофиг.
> странно в /etc/environment задано:
> LANG="ru_RU.UTF-8"
Это - для интерактивных логинов (и то, по-моему уже не для всех).
А демонам оно не указ.
> и от имени пользователя $ env $LANG выдает ru_RU.UTF-8
> Получается, что фильтр отрабатывает немного с другой локалью?
Угу. Немного. C.
> У процесса-потомка beagled меняется локаль?
Можно посмотреть какая локаль у самого beagled. В /proc/<pid beagled>/environ
И если там она тоже C или вообще отстутствует, попробовать её явным
образом выставить в том скрипте, откуда он запускается.
Либо можно оставить в качестве индексилки вордовых файлов скрипт,
выкинув оттуда сохранение логов и добавив вместо него принудительное
выставление LANG
#!/bin/sh
LANG=ru_RU.UTF-8 exec antiword "$@"
Reply to: