From: Bruno Haible Date: Fri, 14 Oct 2005 10:51:58 +0000 (+0000) Subject: New function check_message_list. X-Git-Tag: v0.15~365 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fdf1ab430d3977e0941461d0785521e92a86e76c;p=thirdparty%2Fgettext.git New function check_message_list. --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 58dcc3192..50ea6bdd9 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,10 @@ +2005-10-04 Bruno Haible + + * msgl-check.h (check_message_list): New declaration. + * msgl-check.c (check_message_list): New function. + * gettext-po.c (po_file_check_all, po_message_check_all): Call + check_message_list instead of check_message and check_plural. + 2005-10-04 Bruno Haible Fix handling of obsolete messages. diff --git a/gettext-tools/src/gettext-po.c b/gettext-tools/src/gettext-po.c index 32535a9b1..26e2a9ff6 100644 --- a/gettext-tools/src/gettext-po.c +++ b/gettext-tools/src/gettext-po.c @@ -1030,20 +1030,7 @@ po_file_check_all (po_file_t file, po_xerror_handler_t handler) mdlp = file->mdlp; for (k = 0; k < mdlp->nitems; k++) - { - message_list_ty *mlp = mdlp->item[k]->messages; - size_t j; - - for (j = 0; j < mlp->nitems; j++) - { - message_ty *mp = mlp->item[j]; - - if (!mp->obsolete) - check_message (mp, &mp->pos, 1, 1, 1, 0, 0, 0); - } - - check_plural (mlp); - } + check_message_list (mdlp->item[k]->messages, 1, 1, 1, 0, 0, 0); /* Restore error handler. */ po_xerror = textmode_xerror; @@ -1069,9 +1056,6 @@ po_message_check_all (po_message_t message, po_message_iterator_t iterator, (void (*) (int, const message_ty *, const char *, size_t, size_t, int, const char *, const message_ty *, const char *, size_t, size_t, int, const char *)) handler->xerror2; - if (!mp->obsolete) - check_message (mp, &mp->pos, 1, 1, 1, 0, 0, 0); - /* For plural checking, combine the message and its header into a small, two-element message list. */ { @@ -1107,7 +1091,7 @@ po_message_check_all (po_message_t message, po_message_iterator_t iterator, if (mp != header) message_list_append (&ml, mp); - check_plural (&ml); + check_message_list (&ml, 1, 1, 1, 0, 0, 0); } } diff --git a/gettext-tools/src/msgl-check.c b/gettext-tools/src/msgl-check.c index 4dacc1f62..b7fa867e5 100644 --- a/gettext-tools/src/msgl-check.c +++ b/gettext-tools/src/msgl-check.c @@ -737,3 +737,36 @@ check_message (const message_ty *mp, check_newlines, check_format_strings, check_compatibility, check_accelerators, accelerator_char); } + + +/* Perform all checks on a message list. + Return nonzero if an error was seen. */ +int +check_message_list (message_list_ty *mlp, + int check_newlines, + int check_format_strings, + int check_header, + int check_compatibility, + int check_accelerators, char accelerator_char) +{ + int seen_error = 0; + size_t j; + + if (check_header) + if (check_plural (mlp)) + seen_error = 1; + + for (j = 0; j < mlp->nitems; j++) + { + message_ty *mp = mlp->item[j]; + + if (!mp->obsolete) + if (check_message (mp, &mp->pos, + check_newlines, check_format_strings, + check_header, check_compatibility, + check_accelerators, accelerator_char)) + seen_error = 1; + } + + return seen_error; +} diff --git a/gettext-tools/src/msgl-check.h b/gettext-tools/src/msgl-check.h index 6edab9140..186c73241 100644 --- a/gettext-tools/src/msgl-check.h +++ b/gettext-tools/src/msgl-check.h @@ -42,6 +42,15 @@ extern int check_message (const message_ty *mp, int check_compatibility, int check_accelerators, char accelerator_char); +/* Perform all checks on a message list. + Return nonzero if an error was seen. */ +extern int check_message_list (message_list_ty *mlp, + int check_newlines, + int check_format_strings, + int check_header, + int check_compatibility, + int check_accelerators, char accelerator_char); + #ifdef __cplusplus }