]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
kde: Enable ki18n keywords by default
authorЧаслав Илић (Chusslove Illich) <caslav.ilic@gmx.net>
Mon, 11 May 2015 06:30:55 +0000 (15:30 +0900)
committerDaiki Ueno <ueno@gnu.org>
Mon, 11 May 2015 06:33:42 +0000 (15:33 +0900)
* gettext-tools/src/x-c.c (init_flag_table_kde): New function.
(additional_keywords_kde): New variable.
(activate_additional_keywords_kde): New function.
(init_keywords): Optional addition of KDE-specific keywords.
* gettext-tools/src/x-c.h (init_flag_table_kde): New function declaration.
(activate_additional_keywords_kde): New function declaration.
* gettext-tools/src/xgettext.c (main): Invoke addition of KDE-specific
keywords when language is C++ with KDE.

* NEWS: Mention --kde behavior change.

ChangeLog
NEWS
gettext-tools/src/ChangeLog
gettext-tools/src/x-c.c
gettext-tools/src/x-c.h
gettext-tools/src/xgettext.c

index a5154906a0f846d0308fa290a1c0c2fbcd4a88aa..c4c8945e0ff187557662fb1f8e41bc85ad46e7c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2015-05-08  Часлав Илић (Chusslove Illich)  <caslav.ilic@gmx.net>  (tiny change)
+
+       * NEWS: Mention --kde behavior change.
+
 2015-05-08  Daiki Ueno  <ueno@gnu.org>
 
        * THANKS: Update.
diff --git a/NEWS b/NEWS
index ac3a6347351891e550c0a5fe7c62946c6b1bc9c1..3a01dba92ba02d1021f172f7cd52b57f2702e248 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,9 @@ Version 0.19.5 - unreleased
   - C++ with KDE: xgettext and msgfmt can now recognize KUIT (KDE User
     Interface Text) markup.  See the documentation section "KUIT
     Format Strings" for more info.
+  - C++ with KDE: xgettext now recognizes all default KDE keywords.
+    This removes the need for a long list of --keyword and --flag
+    options to perform a reasonable extraction.
 
 * Bug fixes:
   - xgettext C++11 raw string recognition is now stricter and don't
index a8e070e7e14c19caad713fad839360fac528692d..ae39c0110e910dba324e244071c023057494e66f 100644 (file)
@@ -1,3 +1,14 @@
+2015-05-08  Часлав Илић (Chusslove Illich)  <caslav.ilic@gmx.net>  (tiny change)
+
+       * x-c.c (init_flag_table_kde): New function.
+       (additional_keywords_kde): New variable.
+       (activate_additional_keywords_kde): New function.
+       (init_keywords): Optional addition of KDE-specific keywords.
+       * x-c.h (init_flag_table_kde): New function declaration.
+       (activate_additional_keywords_kde): New function declaration.
+       * xgettext.c (main): Invoke addition of KDE-specific keywords when
+       language is C++ with KDE.
+
 2015-03-20  Daiki Ueno  <ueno@gnu.org>
 
        kde-kuit: Use xmlns to avoid element name conflict
index e60dcadc65f7225dfdfb965ae8dbf0b96bfd2d28..d32cb6c99489fb9c4517147d9690615e7627d08c 100644 (file)
@@ -143,6 +143,14 @@ x_objc_keyword (const char *name)
   add_keyword (name, &objc_keywords);
 }
 
+static bool additional_keywords_kde;
+
+void
+activate_additional_keywords_kde ()
+{
+  additional_keywords_kde = true;
+}
+
 /* Finish initializing the keywords hash tables.
    Called after argument processing, before each file is processed.  */
 static void
@@ -166,6 +174,50 @@ init_keywords ()
       x_c_keyword ("dnpgettext:2c,3,4");
       x_c_keyword ("dcnpgettext:2c,3,4");
 
+      if (additional_keywords_kde)
+        {
+          x_c_keyword ("i18n:1");
+          x_c_keyword ("i18nc:1c,2");
+          x_c_keyword ("i18np:1,2");
+          x_c_keyword ("i18ncp:1c,2,3");
+          x_c_keyword ("i18nd:2");
+          x_c_keyword ("i18ndc:2c,3");
+          x_c_keyword ("i18ndp:2,3");
+          x_c_keyword ("i18ndcp:2c,3,4");
+          x_c_keyword ("ki18n:1");
+          x_c_keyword ("ki18nc:1c,2");
+          x_c_keyword ("ki18np:1,2");
+          x_c_keyword ("ki18ncp:1c,2,3");
+          x_c_keyword ("ki18nd:2");
+          x_c_keyword ("ki18ndc:2c,3");
+          x_c_keyword ("ki18ndp:2,3");
+          x_c_keyword ("ki18ndcp:2c,3,4");
+          x_c_keyword ("I18N_NOOP:1");
+          x_c_keyword ("I18NC_NOOP:1c,2");
+          x_c_keyword ("I18N_NOOP2:1c,2");
+          x_c_keyword ("I18N_NOOP2_NOSTRIP:1c,2");
+          x_c_keyword ("xi18n:1");
+          x_c_keyword ("xi18nc:1c,2");
+          x_c_keyword ("xi18np:1,2");
+          x_c_keyword ("xi18ncp:1c,2,3");
+          x_c_keyword ("xi18nd:2");
+          x_c_keyword ("xi18ndc:2c,3");
+          x_c_keyword ("xi18ndp:2,3");
+          x_c_keyword ("xi18ndcp:2c,3,4");
+          x_c_keyword ("kxi18n:1");
+          x_c_keyword ("kxi18nc:1c,2");
+          x_c_keyword ("kxi18np:1,2");
+          x_c_keyword ("kxi18ncp:1c,2,3");
+          x_c_keyword ("kxi18nd:2");
+          x_c_keyword ("kxi18ndc:2c,3");
+          x_c_keyword ("kxi18ndp:2,3");
+          x_c_keyword ("kxi18ndcp:2c,3,4");
+          x_c_keyword ("XI18N_NOOP:1");
+          x_c_keyword ("XI18NC_NOOP:1c,2");
+          x_c_keyword ("XI18N_NOOP2:1c,2");
+          x_c_keyword ("XI18N_NOOP2_NOSTRIP:1c,2");
+        }
+
       x_objc_keyword ("gettext");
       x_objc_keyword ("dgettext:2");
       x_objc_keyword ("dcgettext:2");
@@ -449,6 +501,50 @@ init_flag_table_gcc_internal ()
 #endif
 }
 
+void
+init_flag_table_kde ()
+{
+  xgettext_record_flag ("i18n:1:kde-format");
+  xgettext_record_flag ("i18nc:2:kde-format");
+  xgettext_record_flag ("i18np:1:kde-format");
+  xgettext_record_flag ("i18ncp:2:kde-format");
+  xgettext_record_flag ("i18nd:2:kde-format");
+  xgettext_record_flag ("i18ndc:3:kde-format");
+  xgettext_record_flag ("i18ndp:2:kde-format");
+  xgettext_record_flag ("i18ndcp:3:kde-format");
+  xgettext_record_flag ("ki18n:1:kde-format");
+  xgettext_record_flag ("ki18nc:2:kde-format");
+  xgettext_record_flag ("ki18np:1:kde-format");
+  xgettext_record_flag ("ki18ncp:2:kde-format");
+  xgettext_record_flag ("ki18nd:2:kde-format");
+  xgettext_record_flag ("ki18ndc:3:kde-format");
+  xgettext_record_flag ("ki18ndp:2:kde-format");
+  xgettext_record_flag ("ki18ndcp:3:kde-format");
+  xgettext_record_flag ("I18N_NOOP:1:kde-format");
+  xgettext_record_flag ("I18NC_NOOP:2:kde-format");
+  xgettext_record_flag ("I18N_NOOP2:2:kde-format");
+  xgettext_record_flag ("I18N_NOOP2_NOSTRIP:2:kde-format");
+  xgettext_record_flag ("xi18n:1:kde-kuit-format");
+  xgettext_record_flag ("xi18nc:2:kde-kuit-format");
+  xgettext_record_flag ("xi18np:1:kde-kuit-format");
+  xgettext_record_flag ("xi18ncp:2:kde-kuit-format");
+  xgettext_record_flag ("xi18nd:2:kde-kuit-format");
+  xgettext_record_flag ("xi18ndc:3:kde-kuit-format");
+  xgettext_record_flag ("xi18ndp:2:kde-kuit-format");
+  xgettext_record_flag ("xi18ndcp:3:kde-kuit-format");
+  xgettext_record_flag ("kxi18n:1:kde-kuit-format");
+  xgettext_record_flag ("kxi18nc:2:kde-kuit-format");
+  xgettext_record_flag ("kxi18np:1:kde-kuit-format");
+  xgettext_record_flag ("kxi18ncp:2:kde-kuit-format");
+  xgettext_record_flag ("kxi18nd:2:kde-kuit-format");
+  xgettext_record_flag ("kxi18ndc:3:kde-kuit-format");
+  xgettext_record_flag ("kxi18ndp:2:kde-kuit-format");
+  xgettext_record_flag ("kxi18ndcp:3:kde-kuit-format");
+  xgettext_record_flag ("XI18N_NOOP:1:kde-kuit-format");
+  xgettext_record_flag ("XI18NC_NOOP:2:kde-kuit-format");
+  xgettext_record_flag ("XI18N_NOOP2:2:kde-kuit-format");
+  xgettext_record_flag ("XI18N_NOOP2_NOSTRIP:2:kde-kuit-format");
+}
 
 /* ======================== Reading of characters.  ======================== */
 
index 9e819a0294a6cd1c7b6cfde3f3b63a8a35ad1eb7..3812f7b8116a7926311f277c115534eff94aab44 100644 (file)
@@ -84,9 +84,12 @@ extern void x_objc_keyword (const char *name);
 
 extern void x_c_trigraphs (void);
 
+extern void activate_additional_keywords_kde (void);
+
 extern void init_flag_table_c (void);
 extern void init_flag_table_objc (void);
 extern void init_flag_table_gcc_internal (void);
+extern void init_flag_table_kde (void);
 
 
 extern struct literalstring_parser literalstring_c;
index 1c9830e19703c9cdecb8ca2c476b7b0727c2697d..317b648b9d7571251e9e433dee4731386ff80d7a 100644 (file)
@@ -336,6 +336,7 @@ main (int argc, char *argv[])
   init_flag_table_c ();
   init_flag_table_objc ();
   init_flag_table_gcc_internal ();
+  init_flag_table_kde ();
   init_flag_table_sh ();
   init_flag_table_python ();
   init_flag_table_lisp ();
@@ -583,6 +584,7 @@ main (int argc, char *argv[])
 
       case CHAR_MAX + 10:       /* --kde */
         recognize_format_kde = true;
+        activate_additional_keywords_kde ();
         break;
 
       case CHAR_MAX + 11:       /* --boost */