Обнаруживает фиктивные синтаксические ошибки в файлах в UTF-8. Пример файла: http://git.altlinux.org/people/kirill/packages/?p=docs-install2-kirill.git;a=blob;f=doc/index.m-k;hb=heap $ file index.m-k index.m-k: UTF-8 Unicode text $ LC_ALL=POSIX ALDConvert -t index.m-k Traceback (most recent call last): File "/usr/libexec/ALDConvert/ALDConvert.py", line 123, in ? result = reader(s) File "/usr/libexec/ALDConvert/ALDC.py", line 28, in __call__ ret=tpg.Parser.__call__(self,self.prefilter(txt)) File "/usr/lib/python2.4/site-packages/tpg.py", line 933, in __call__ return self.parse('START', input, *args, **kws) File "/usr/lib/python2.4/site-packages/tpg.py", line 956, in parse raise SyntacticError((line, column), "Syntax error near %s"%last_token) tpg.SyntacticError: SyntacticError at line 32, column 1: Syntax error near $ iconv -f utf-8 -t koi8-r index.m-k > /tmp/o.m-k $
Сюрприз! Python-овские регулярные выражения, похоже, _вообще_ не работают с кодировкой UTF-8. Или я не знаю как.
Можно попробовать так: if not hasattr(sys, 'setdefaultencoding'): reload(sys) sys.setdefaultencoding('utf_8') Но это хак. Или можно перекодировать входящий поток в то, что в питоне называют UNICODE. В любом случае нужно детектить кодировку документа. Желательно это сделать оперативно, иначе для сборки документации к дистрибутиву в пакеты придётся перекодировать исходные документы из utf-8 вручную.
В общем, если до вторника эту ошибку не исправят, я добавлю в rpm-build-docs очередной костыль - перекодирование с помощью enca.
Добавил костыль, доступен здесь: http://git.altlinux.org/people/vyt/packages/?p=rpm-build-docs.git;a=commit;h=f521925bf7cf5518765ac5efbf52ac0eff9cea78 install2.kirill с ним собрался
(In reply to comment #2) > Можно попробовать так: > if not hasattr(sys, 'setdefaultencoding'): > reload(sys) > sys.setdefaultencoding('utf_8') Это не заработает :( > Или можно перекодировать входящий поток в то, что в питоне называют > UNICODE. С налёту поставить везде u'...' вместо '...' не помогло. Значит, требует переписывания и тестирования всех модулей конвертора :((.
Наступило ли LATER?
(In reply to comment #6) > Наступило ли LATER? Нет :(. Upstream заморозил разработку :((
Надеюсь, это больше нигде не используется