[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: