]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
New function check_message_list.
authorBruno Haible <bruno@clisp.org>
Fri, 14 Oct 2005 10:51:58 +0000 (10:51 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:12:54 +0000 (12:12 +0200)
gettext-tools/src/ChangeLog
gettext-tools/src/gettext-po.c
gettext-tools/src/msgl-check.c
gettext-tools/src/msgl-check.h

index 58dcc3192b9fe96d421d693c7a75a9e0488bcb44..50ea6bdd9fe19f7070e119995683e8b3cca8c88f 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-04  Bruno Haible  <bruno@clisp.org>
+
+       * 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  <bruno@clisp.org>
 
        Fix handling of obsolete messages.
index 32535a9b18db6b95d57a806ef9dc7d0231236f5d..26e2a9ff6a0f3d98d9e2819cdcdfb4bbfa911084 100644 (file)
@@ -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);
     }
   }
 
index 4dacc1f62968dfe8a90f7f7e8d8fc8f2b1029f2c..b7fa867e503a8b4a5080092b0285524082b8bab5 100644 (file)
@@ -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;
+}
index 6edab91409e43d6971b09c9e03c784ab97c74bb7..186c732416a037d2f35fd7596f755e02c4eba08d 100644 (file)
@@ -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
 }