Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
add patch from debian
  • Loading branch information
remicollet committed May 29, 2012
1 parent 288fae9 commit 91ef3a0
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 1 deletion.
109 changes: 109 additions & 0 deletions gettext/03-fix-xgettext-crash
@@ -0,0 +1,109 @@
From: Bruno Haible <bruno@clisp.org>
Subject: Fix xgettext crash when extracting a message with plural that is excluded.
Bug-Debian: http://bugs.debian.org/608181
X-Debian-version: 0.18.1.1-4

--- a/gettext-tools/src/xgettext.c
+++ b/gettext-tools/src/xgettext.c
@@ -1,5 +1,5 @@
/* Extracts strings from C source file to Uniforum style .po file.
- Copyright (C) 1995-1998, 2000-2010 Free Software Foundation, Inc.
+ Copyright (C) 1995-1998, 2000-2011 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, April 1995.

This program is free software: you can redistribute it and/or modify
@@ -2933,7 +2933,7 @@
msgid_context,
&best_cp->msgid_pos,
NULL, best_cp->msgid_comment);
- if (best_cp->msgid_plural != NULL)
+ if (mp != NULL && best_cp->msgid_plural != NULL)
remember_a_message_plural (mp, best_cp->msgid_plural,
msgid_plural_context,
&best_cp->msgid_plural_pos,
--- a/gettext-tools/src/xgettext.h
+++ b/gettext-tools/src/xgettext.h
@@ -1,5 +1,5 @@
/* xgettext common functions.
- Copyright (C) 2001-2003, 2005-2006, 2008-2009 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2006, 2008-2009, 2011 Free Software Foundation, Inc.
Written by Peter Miller <millerp@canb.auug.org.au>
and Bruno Haible <haible@clisp.cons.org>, 2001.

@@ -247,7 +247,8 @@
or NULL.
COMMENT may be savable_comment, or it may be a saved copy of savable_comment
(then add_reference must be used when saving it, and drop_reference while
- dropping it). Clear savable_comment. */
+ dropping it). Clear savable_comment.
+ Return the new or found message, or NULL if the message is excluded. */
extern message_ty *remember_a_message (message_list_ty *mlp,
char *msgctxt,
char *msgid,
--- a/gettext-tools/src/x-smalltalk.c
+++ b/gettext-tools/src/x-smalltalk.c
@@ -1,5 +1,5 @@
/* xgettext Smalltalk backend.
- Copyright (C) 2002-2003, 2005-2009 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-2009, 2011 Free Software Foundation, Inc.

This file was written by Bruno Haible <haible@clisp.cons.org>, 2002.

@@ -562,9 +562,10 @@
lex_pos_ty pos;
pos.file_name = logical_file_name;
pos.line_number = token.line_number;
- remember_a_message_plural (plural_mp, token.string,
- null_context, &pos,
- savable_comment);
+ if (plural_mp != NULL)
+ remember_a_message_plural (plural_mp, token.string,
+ null_context, &pos,
+ savable_comment);
state = 0;
break;
}
--- a/gettext-tools/src/x-ycp.c
+++ b/gettext-tools/src/x-ycp.c
@@ -1,5 +1,5 @@
/* xgettext YCP backend.
- Copyright (C) 2001-2003, 2005-2009 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2009, 2011 Free Software Foundation, Inc.

This file was written by Bruno Haible <haible@clisp.cons.org>, 2001.

@@ -640,6 +640,7 @@
bool in_i18n)
{
int state; /* 1 or 2 inside _( ... ), otherwise 0 */
+ int plural_state = 0; /* defined only when in states 1 and 2 */
message_ty *plural_mp = NULL; /* defined only when in states 1 and 2 */
/* Context iterator that will be used if the next token is a '('. */
flag_context_list_iterator_ty next_context_iter =
@@ -678,20 +679,22 @@
pos.file_name = logical_file_name;
pos.line_number = token.line_number;

- if (plural_mp == NULL)
+ if (plural_state == 0)
{
/* Seen an msgid. */
plural_mp = remember_a_message (mlp, NULL, token.string,
inner_context, &pos,
NULL, token.comment);
+ plural_state = 1;
state = 2;
}
else
{
/* Seen an msgid_plural. */
- remember_a_message_plural (plural_mp, token.string,
- inner_context, &pos,
- token.comment);
+ if (plural_mp != NULL)
+ remember_a_message_plural (plural_mp, token.string,
+ inner_context, &pos,
+ token.comment);
state = 0;
}
drop_reference (token.comment);
8 changes: 7 additions & 1 deletion gettext/gettext.spec
Expand Up @@ -6,7 +6,7 @@
Summary: GNU libraries and utilities for producing multi-lingual messages
Name: gettext
Version: 0.18.1.1
Release: 13%{?dist}
Release: 14%{?dist}
License: GPLv3+ and LGPLv2+
Group: Development/Tools
URL: http://www.gnu.org/software/gettext/
Expand Down Expand Up @@ -47,6 +47,8 @@ Conflicts: filesystem < 3
Provides: bundled(gnulib)
Provides: /bin/gettext
Patch1: gettext-readlink-einval.patch
# From debian
Patch2: 03-fix-xgettext-crash

%description
The GNU gettext package provides a set of tools and documentation for
Expand Down Expand Up @@ -133,6 +135,7 @@ Emacs.
%prep
%setup -q
%patch1 -p1 -b .orig
%patch2 -p1 -b .crash


%build
Expand Down Expand Up @@ -332,6 +335,9 @@ fi
%{_emacs_sitelispdir}/%{name}/*.el

%changelog
* Tue May 29 2012 Remi Collet <remi@fedoraproject.org> - 0.18.1.1-14
- add patch from debian

* Thu May 17 2012 Jens Petersen <petersen@redhat.com> - 0.18.1.1-13
- base package now provides bundled(gnulib) to make it clear that
gettext is built with bundled gnulib (#821757)
Expand Down

0 comments on commit 91ef3a0

Please sign in to comment.