Bug 15955 - strange re processing
: strange re processing
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/gettext-tools)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-06-09 12:35 by
Modified: 2010-06-05 04:20 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-06-09 12:35:13
$ msggrep -K -E -e "^Sign" --no-wrap ru.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-04-22 14:41+0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: стандартный ввод:27 ввод:25
msgid "Sign"
msgstr "Подпись"

#: ui/pkg/sources/index.scm:205 стандартный ввод:3 ввод:13
msgid "Signature:"
msgstr "Подпись:"

#: backend3/pkg-sources:156
msgid "Signature"
msgstr "Подпись"
$ msggrep -K -E -e "^Sign$" --no-wrap ru.po
$ 

Мало того что выводят заголовок, который никто не просил (""), так ещё и
регулярные выражения не корректно обрабатываются. Достаточно добавить привязку к
концу строки, так сразу всё перестаёт работать. При этом привязка к началу
строки работает без проблем.
------- Comment #1 From 2010-06-04 01:08:40 -------
Судя по коду gettext-tools/src/msggrep.c, привязка к концу строки в
регвыражении в принципе не поддерживается. Кроме того, gettext использует
какой-то древний libgrep, который иногда падает в корку:
$ msggrep -K -e '^.*$' ru.po 
Ошибка сегментирования
------- Comment #2 From 2010-06-05 04:20:46 -------
Если в результате работы msggrep что-нибудь нашлось, то заголовок выводится
всегда.  Таков принцип работы msggrep, которая должна на выходе давать валидный
PO-файл.

Привязка к концу строки и ключный libgrep исправлены в 0.18.1-alt1.