bug-gettext
[Top][All Lists]
Advanced

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

Re: [bug-gettext] gettext 0.19 mishandles 'grep' source code


From: Daiki Ueno
Subject: Re: [bug-gettext] gettext 0.19 mishandles 'grep' source code
Date: Sat, 07 Jun 2014 10:50:01 +0900
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

Paul Eggert <address@hidden> writes:

> I tried GNU gettext 0.19 on the latest 'grep' sources, and it failed
> with the symptoms quoted at the end of this message.  The problem
> seems to have something to do with character constants. Even this
> trivial source file:
>
> #define SEP_CHAR_SELECTED ':'
> int main (void) { return SEP_CHAR_SELECTED; }
>
> causes xgettext to fail with a diagnostic like this:
>
> t.c:1: warning: unterminated character constant

Oops, what a shameful mistake.  Thanks for catching this.

I've pushed the attached fix.
>From d5f16c16df9131b7591ae9a3f0ecd0acb88109d3 Mon Sep 17 00:00:00 2001
From: Daiki Ueno <address@hidden>
Date: Sat, 7 Jun 2014 10:35:14 +0900
Subject: [PATCH] xgettext: Fix misrecognition of character literals in C and
 Vala

Problem reported by Paul Eggert at
<http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00015.html>.
* x-c.c (phase5_get): Make sure to skip contents of character constant.
* x-vala.c (phase3_get): Likewise.
---
 gettext-tools/src/ChangeLog | 8 ++++++++
 gettext-tools/src/x-c.c     | 4 +++-
 gettext-tools/src/x-vala.c  | 2 ++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index b766d30..f492e00 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,11 @@
+2014-06-07  Daiki Ueno  <address@hidden>
+
+       xgettext: Fix misrecognition of character literals in C and Vala
+       Problem reported by Paul Eggert at
+       <http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00015.html>.
+       * x-c.c (phase5_get): Make sure to skip contents of character constant.
+       * x-vala.c (phase3_get): Likewise.
+
 2014-06-03  Daiki Ueno  <address@hidden>
 
        desktop: Use logical filename as msgid location
diff --git a/gettext-tools/src/x-c.c b/gettext-tools/src/x-c.c
index 2ae2f3c..203eb79 100644
--- a/gettext-tools/src/x-c.c
+++ b/gettext-tools/src/x-c.c
@@ -1288,6 +1288,8 @@ phase5_get (token_ty *tp)
             {
             case '\\':
               last_was_backslash = true;
+              /* FALLTHROUGH */
+            default:
               continue;
             case '\n':
               error_with_progname = false;
@@ -1299,7 +1301,7 @@ phase5_get (token_ty *tp)
             case EOF: case '\'':
               break;
             }
-            break;
+          break;
         }
       tp->type = token_type_character_constant;
       return;
diff --git a/gettext-tools/src/x-vala.c b/gettext-tools/src/x-vala.c
index 1d88f47..288f9b7 100644
--- a/gettext-tools/src/x-vala.c
+++ b/gettext-tools/src/x-vala.c
@@ -622,6 +622,8 @@ phase3_get (token_ty *tp)
                 {
                 case '\\':
                   last_was_backslash = true;
+                  /* FALLTHROUGH */
+                default:
                   continue;
                 case '\n':
                   error_with_progname = false;
-- 
2.0.0

Regards,
-- 
Daiki Ueno

reply via email to

[Prev in Thread] Current Thread [Next in Thread]