Daiki Ueno <[email protected]> wrote: 
> Given that keywords can only be specified for Glade 1 (as documented),
> it would make more sense to just ignore it for Glade 2 and 3, IMO.

This one ignore this flag for Glade 2 and 3 files.

Best regards,
Miguel
>From 86a9ab7225a70d8b7ed7ffca9391fc95225a6759 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?= <[email protected]>
Date: Tue, 13 Aug 2013 07:32:11 +0200
Subject: [PATCH] glade: Ignore --extract-all option for Glade2/3.

---
 gettext-tools/src/ChangeLog          |    5 ++++
 gettext-tools/src/x-glade.c          |   53 +++++++++++++++-------------------
 gettext-tools/tests/ChangeLog        |    5 ++++
 gettext-tools/tests/xgettext-glade-5 |   15 ++++++++++
 gettext-tools/tests/xgettext-glade-6 |   12 ++++++++
 5 files changed, 61 insertions(+), 29 deletions(-)

diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index 5389874..72cb607 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-13  Miguel Angel Arruga Vivas  <[email protected]>
+
+	* x-glade.c (start_element_glade2): Ignore extract-all option.
+	(start_element_gtkbuilder): Likewise.
+
 2013-08-12  Daiki Ueno  <[email protected]>
 
 	* xgettext.c (remember_a_message): Handle multi-line extracted
diff --git a/gettext-tools/src/x-glade.c b/gettext-tools/src/x-glade.c
index d95cd8e..673bcf0 100644
--- a/gettext-tools/src/x-glade.c
+++ b/gettext-tools/src/x-glade.c
@@ -219,8 +219,7 @@ start_element_glade2 (struct element_state *p, const char *name,
      See <http://live.gnome.org/TranslationProject/DevGuidelines/Use comments>.
      If the element has the attribute context="yes", the content of
      the element is in the form "msgctxt|msgid".  */
-  if (!p->extract_string
-      && (strcmp (name, "property") == 0 || strcmp (name, "atkproperty") == 0))
+  if (strcmp (name, "property") == 0 || strcmp (name, "atkproperty") == 0)
     {
       bool has_translatable = false;
       bool has_context = false;
@@ -246,8 +245,7 @@ start_element_glade2 (struct element_state *p, const char *name,
 
   /* In Glade 2, the attribute description="..." of <atkaction>
      element is also translatable.  */
-  if (!p->extract_string
-      && strcmp (name, "atkaction") == 0)
+  if (strcmp (name, "atkaction") == 0)
     {
       const char **attp = attributes;
       while (*attp != NULL)
@@ -325,32 +323,29 @@ start_element_gtkbuilder (struct element_state *p, const char *name,
      See <https://developer.gnome.org/gtk3/stable/GtkBuilder.html#BUILDER-UI>.
      The translator comment is found in the attribute comments="..."
      and context is found in the attribute context="...".  */
-  if (!p->extract_string)
+  bool has_translatable = false;
+  const char *extracted_comment = NULL;
+  const char *extracted_context = NULL;
+  const char **attp = attributes;
+  while (*attp != NULL)
     {
-      bool has_translatable = false;
-      const char *extracted_comment = NULL;
-      const char *extracted_context = NULL;
-      const char **attp = attributes;
-      while (*attp != NULL)
-        {
-          if (strcmp (attp[0], "translatable") == 0)
-            has_translatable = (strcmp (attp[1], "yes") == 0);
-          else if (strcmp (attp[0], "comments") == 0)
-            extracted_comment = attp[1];
-          else if (strcmp (attp[0], "context") == 0)
-            extracted_context = attp[1];
-          attp += 2;
-        }
-      p->extract_string = has_translatable;
-      p->extracted_comment =
-        (has_translatable && extracted_comment != NULL
-         ? xstrdup (extracted_comment)
-         : NULL);
-      p->extracted_context =
-        (has_translatable && extracted_context != NULL
-         ? xstrdup (extracted_context)
-         : NULL); 
-   }
+      if (strcmp (attp[0], "translatable") == 0)
+        has_translatable = (strcmp (attp[1], "yes") == 0);
+      else if (strcmp (attp[0], "comments") == 0)
+        extracted_comment = attp[1];
+      else if (strcmp (attp[0], "context") == 0)
+        extracted_context = attp[1];
+      attp += 2;
+    }
+  p->extract_string = has_translatable;
+  p->extracted_comment =
+    (has_translatable && extracted_comment != NULL
+     ? xstrdup (extracted_comment)
+     : NULL);
+  p->extracted_context =
+    (has_translatable && extracted_context != NULL
+     ? xstrdup (extracted_context)
+     : NULL);
 }
 
 static void
diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog
index ca1c0cc..7a12a01 100644
--- a/gettext-tools/tests/ChangeLog
+++ b/gettext-tools/tests/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-13  Miguel Angel Arruga Vivas  <[email protected]>
+
+	* xgettext-glade-5: Add a test for --extract-all option behavior.
+	* xgettext-glade-6: Likewise.
+
 2013-08-12  Daiki Ueno  <[email protected]>
 
 	* xgettext-glade-7: Add a test for multi-line extracted comments.
diff --git a/gettext-tools/tests/xgettext-glade-5 b/gettext-tools/tests/xgettext-glade-5
index 807a63c..9df133a 100755
--- a/gettext-tools/tests/xgettext-glade-5
+++ b/gettext-tools/tests/xgettext-glade-5
@@ -105,6 +105,21 @@ test $result = 0 || {
   rm -fr $tmpfiles; exit $result
 }
 
+# Check with --extract-all option
+rm xg-gl-5.tmp
+${XGETTEXT} -a -o xg-gl-5.tmp xg-gl-5.glade
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+# Don't simplify this to "grep ... < xg-gl-5.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-5.tmp | grep -v 'POT-Creation-Date' > xg-gl-5.pot
+
+${DIFF} xg-gl-5.ok xg-gl-5.pot
+result=$?
+
+test $result = 0 || {
+  rm -fr $tmpfiles; exit $result
+}
+
 tmpfiles="$tmpfiles xg-gl-5b.glade"
 cat <<EOF > xg-gl-5b.glade
 <?xml version="1.0"?>
diff --git a/gettext-tools/tests/xgettext-glade-6 b/gettext-tools/tests/xgettext-glade-6
index cfc7708..b541843 100755
--- a/gettext-tools/tests/xgettext-glade-6
+++ b/gettext-tools/tests/xgettext-glade-6
@@ -73,6 +73,18 @@ EOF
 ${DIFF} xg-gl-6.ok xg-gl-6.pot
 result=$?
 
+test $result = 0 || {
+  rm -fr $tmpfiles; exit $result
+}
+
+# Check with --extract-all option.
+${XGETTEXT} -a -o - xg-gl-6.ui | grep -v 'POT-Creation-Date' > xg-gl-6.pot
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+# Must be ignored.
+${DIFF} xg-gl-6.ok xg-gl-6.pot
+result=$?
+
 rm -fr $tmpfiles
 
 exit $result
-- 
1.7.10.4

Reply via email to