Bug 15955 - strange re processing
Summary: strange re processing
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gettext-tools (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-09 12:35 MSD by inger@altlinux.org
Modified: 2010-06-05 04:20 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description inger@altlinux.org 2008-06-09 12:35:13 MSD
$ 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 Dmitry V. Levin 2010-06-04 01:08:40 MSD
Судя по коду gettext-tools/src/msggrep.c, привязка к концу строки в регвыражении в принципе не поддерживается. Кроме того, gettext использует какой-то древний libgrep, который иногда падает в корку:
$ msggrep -K -e '^.*$' ru.po 
Ошибка сегментирования
Comment 2 Dmitry V. Levin 2010-06-05 04:20:46 MSD
Если в результате работы msggrep что-нибудь нашлось, то заголовок выводится всегда.  Таков принцип работы msggrep, которая должна на выходе давать валидный PO-файл.

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