diff options
author | Daiki Ueno <ueno@gnu.org> | 2015-03-05 12:00:09 +0900 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2015-03-09 18:24:52 +0900 |
commit | 5c2d4fc20a40d1ec70730a6bcdc03cb2eb0e16c9 (patch) | |
tree | 62f1773b1dd04721d6dd10ee70042044476c9988 /gettext-tools/src/xgettext.c | |
parent | 4d2115c62a723dc9e375433261c1bf3e45928815 (diff) | |
download | external_gettext-5c2d4fc20a40d1ec70730a6bcdc03cb2eb0e16c9.zip external_gettext-5c2d4fc20a40d1ec70730a6bcdc03cb2eb0e16c9.tar.gz external_gettext-5c2d4fc20a40d1ec70730a6bcdc03cb2eb0e16c9.tar.bz2 |
format-kde: Recognize KUIT markup
Reported by Chusslove Illich in:
https://lists.gnu.org/archive/html/bug-gettext/2015-01/msg00017.html
* gettext-tools/src/format.h (formatstring_kde_kuit): New variable
declaration.
* gettext-tools/src/format.c (formatstring_parsers): Register
formatstring_kde_kuitas a format string parser.
* gettext-tools/src/format-kde-kuit.c: New file.
* gettext-tools/src/message.h (NFORMATS): Increment.
(enum format_type): New enum value format_kde_kuit.
* gettext-tools/src/xgettext.c (xgettext_record_flag): Handle
format_kde_kuit.
* gettext-tools/src/Makefile.am (xgettext_SOURCES): Move
libexpat-compat.c to...
(libgettextsrc_la_SOURCES): ...here.
(xgettext_LDADD): Move @LTLIBEXPAT@ to...
(libgettextsrc_la_LDFLAGS): ...here.
(FORMAT_SOURCE): Add format-kde-kuit.c.
* gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_AUXSOURCES):
Add ../src/format-kde-kuit.c and ../src/libexpat-compat.c.
(libgettextpo_la_LDFLAGS): Add @LTLIBEXPAT@.
* gettext-tools/tests/format-kde-kuit-1: New file.
* gettext-tools/tests/format-kde-kuit-2: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add new tests.
* gettext-tools/doc/gettext.texi (kde-kuit-format): New subsection.
* NEWS: Mention KUIT format string support.
Diffstat (limited to 'gettext-tools/src/xgettext.c')
-rw-r--r-- | gettext-tools/src/xgettext.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c index 310b349..1c9830e 100644 --- a/gettext-tools/src/xgettext.c +++ b/gettext-tools/src/xgettext.c @@ -1864,6 +1864,11 @@ xgettext_record_flag (const char *optionstring) name_start, name_end, argnum, value, pass); break; + case format_kde_kuit: + flag_context_list_table_insert (&flag_table_cxx_kde, 2, + name_start, name_end, + argnum, value, pass); + break; case format_boost: flag_context_list_table_insert (&flag_table_cxx_boost, 1, name_start, name_end, @@ -2543,7 +2548,19 @@ meta information, not the empty string.\n"))); && (possible_format_p (is_format[format_qt]) || possible_format_p (is_format[format_qt_plural]) || possible_format_p (is_format[format_kde]) - || possible_format_p (is_format[format_boost])))) + || possible_format_p (is_format[format_kde_kuit]) + || possible_format_p (is_format[format_boost]))) + /* Avoid flagging a string as kde-format when it's known to + be a kde-kuit-format string. */ + && !(i == format_kde + && possible_format_p (is_format[format_kde_kuit])) + /* Avoid flagging a string as kde-kuit-format when it's + known to be a kde-format string. Note that this relies + on the fact that format_kde < format_kde_kuit, so a + string will be marked as kde-format if both are + undecided. */ + && !(i == format_kde_kuit + && possible_format_p (is_format[format_kde]))) { struct formatstring_parser *parser = formatstring_parsers[i]; char *invalid_reason = NULL; @@ -2678,7 +2695,19 @@ remember_a_message_plural (message_ty *mp, char *string, && (possible_format_p (mp->is_format[format_qt]) || possible_format_p (mp->is_format[format_qt_plural]) || possible_format_p (mp->is_format[format_kde]) - || possible_format_p (mp->is_format[format_boost])))) + || possible_format_p (mp->is_format[format_kde_kuit]) + || possible_format_p (mp->is_format[format_boost]))) + /* Avoid flagging a string as kde-format when it's known + to be a kde-kuit-format string. */ + && !(i == format_kde + && possible_format_p (mp->is_format[format_kde_kuit])) + /* Avoid flagging a string as kde-kuit-format when it's + known to be a kde-format string. Note that this relies + on the fact that format_kde < format_kde_kuit, so a + string will be marked as kde-format if both are + undecided. */ + && !(i == format_kde_kuit + && possible_format_p (mp->is_format[format_kde]))) { struct formatstring_parser *parser = formatstring_parsers[i]; char *invalid_reason = NULL; @@ -3706,6 +3735,7 @@ language_to_extractor (const char *name) { result.flag_table = &flag_table_cxx_kde; result.formatstring_parser2 = &formatstring_kde; + result.formatstring_parser3 = &formatstring_kde_kuit; } /* Likewise for --boost. */ if (recognize_format_boost && strcmp (tp->name, "C++") == 0) |