]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Comments are now passed via remember_a_message directly.
authorBruno Haible <bruno@clisp.org>
Tue, 11 Oct 2005 11:19:36 +0000 (11:19 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:12:54 +0000 (12:12 +0200)
20 files changed:
gettext-tools/src/ChangeLog
gettext-tools/src/x-awk.c
gettext-tools/src/x-c.c
gettext-tools/src/x-csharp.c
gettext-tools/src/x-elisp.c
gettext-tools/src/x-glade.c
gettext-tools/src/x-java.c
gettext-tools/src/x-librep.c
gettext-tools/src/x-lisp.c
gettext-tools/src/x-perl.c
gettext-tools/src/x-php.c
gettext-tools/src/x-python.c
gettext-tools/src/x-rst.c
gettext-tools/src/x-scheme.c
gettext-tools/src/x-sh.c
gettext-tools/src/x-smalltalk.c
gettext-tools/src/x-tcl.c
gettext-tools/src/x-ycp.c
gettext-tools/src/xgettext.c
gettext-tools/src/xgettext.h

index d2aceb07b7a963592244d78120c7b6b64dd523d2..657b6d7b8dafbce2074e069c54b185ab8810f457 100644 (file)
@@ -1,3 +1,35 @@
+2005-10-03  Bruno Haible  <bruno@clisp.org>
+
+       * xgettext.h (savable_comment_to_xgettext_comment): Remove
+       declaration.
+       (remember_a_message, remember_a_message_plural): Add a comment
+       argument.
+       * xgettext.c (savable_comment_to_xgettext_comment): Make static.
+       (remember_a_message): Add comment argument. Call
+       savable_comment_to_xgettext_comment and savable_comment_reset at the
+       end.
+       (remember_a_message_plural): Add comment argument. Call
+       savable_comment_to_xgettext_comment and xgettext_comment_reset,
+       savable_comment_reset at the end.
+       * x-awk.c (extract_parenthesized): Pass comment to remember_a_message.
+       * x-c.c (extract_parenthesized): Likewise.
+       * x-csharp.c (extract_parenthesized): Likewise.
+       * x-elisp.c (read_object): Likewise.
+       * x-glade.c (start_element_handler, end_element_handler): Likewise.
+       * x-java.c (extract_parenthesized): Likewise.
+       * x-librep.c (read_object): Likewise.
+       * x-lisp.c (read_object): Likewise.
+       * x-perl.c (extract_variable, interpolate_keywords, extract_balanced):
+       Likewise.
+       * x-php.c (extract_parenthesized): Likewise.
+       * x-python.c (extract_parenthesized): Likewise.
+       * x-scheme.c (read_object): Likewise.
+       * x-sh.c (read_word, read_command): Likewise.
+       * x-smalltalk.c (extract_smalltalk): Likewise.
+       * x-tcl.c (read_command): Likewise.
+       * x-ycp.c (extract_parenthesized): Likewise.
+       * x-rst.c (extract_rst): Update.
+
 2005-10-03  Bruno Haible  <bruno@clisp.org>
 
        * xgettext.h (xgettext_comment_add, xgettext_comment,
index 9f98148e3a77f9b327d195ac6ab0e83f77eb64e4..b2d3335e73cce86f1360fd0649837569adee7dbd 100644 (file)
@@ -812,11 +812,8 @@ extract_parenthesized (message_list_ty *mlp,
            pos.line_number = token.line_number;
 
            if (extract_all)
-             {
-               savable_comment_to_xgettext_comment (savable_comment);
-               remember_a_message (mlp, token.string, inner_context, &pos);
-               savable_comment_reset ();
-             }
+             remember_a_message (mlp, token.string, inner_context, &pos,
+                                 savable_comment);
            else
              {
                if (commas_to_skip == 0)
@@ -824,23 +821,19 @@ extract_parenthesized (message_list_ty *mlp,
                    if (plural_mp == NULL)
                      {
                        /* Seen an msgid.  */
-                       message_ty *mp;
-
-                       savable_comment_to_xgettext_comment (savable_comment);
-                       mp =
+                       message_ty *mp =
                          remember_a_message (mlp, token.string,
-                                             inner_context, &pos);
-                       savable_comment_reset ();
+                                             inner_context, &pos,
+                                             savable_comment);
                        if (plural_commas > 0)
                          plural_mp = mp;
                      }
                    else
                      {
                        /* Seen an msgid_plural.  */
-                       savable_comment_to_xgettext_comment (savable_comment);
                        remember_a_message_plural (plural_mp, token.string,
-                                                  inner_context, &pos);
-                       savable_comment_reset ();
+                                                  inner_context, &pos,
+                                                  savable_comment);
                        plural_mp = NULL;
                      }
                  }
@@ -859,9 +852,8 @@ extract_parenthesized (message_list_ty *mlp,
            pos.file_name = logical_file_name;
            pos.line_number = token.line_number;
 
-           savable_comment_to_xgettext_comment (savable_comment);
-           remember_a_message (mlp, token.string, inner_context, &pos);
-           savable_comment_reset ();
+           remember_a_message (mlp, token.string, inner_context, &pos,
+                               savable_comment);
          }
          next_is_argument = false;
          next_context_iter = null_context_list_iterator;
index 624cd2de0b1f7fad2637cc4c67afa9caad59b3ca..7401013bb46b849a7c1c1f83851df00f9a36882f 100644 (file)
@@ -1780,11 +1780,8 @@ extract_parenthesized (message_list_ty *mlp,
 
        case xgettext_token_type_string_literal:
          if (extract_all)
-           {
-             savable_comment_to_xgettext_comment (token.comment);
-             remember_a_message (mlp, token.string, inner_context, &token.pos);
-             savable_comment_reset ();
-           }
+           remember_a_message (mlp, token.string, inner_context, &token.pos,
+                               token.comment);
          else
            {
              if (commas_to_skip == 0)
@@ -1792,12 +1789,10 @@ extract_parenthesized (message_list_ty *mlp,
                  if (plural_mp == NULL)
                    {
                      /* Seen an msgid.  */
-                     message_ty *mp;
-
-                     savable_comment_to_xgettext_comment (token.comment);
-                     mp = remember_a_message (mlp, token.string,
-                                              inner_context, &token.pos);
-                     savable_comment_reset ();
+                     message_ty *mp =
+                       remember_a_message (mlp, token.string,
+                                           inner_context, &token.pos,
+                                           token.comment);
                      if (plural_commas > 0)
                        plural_mp = mp;
                    }
@@ -1805,7 +1800,8 @@ extract_parenthesized (message_list_ty *mlp,
                    {
                      /* Seen an msgid_plural.  */
                      remember_a_message_plural (plural_mp, token.string,
-                                                inner_context, &token.pos);
+                                                inner_context, &token.pos,
+                                                NULL);
                      plural_mp = NULL;
                    }
                }
index a8667203cbaf798dff6a0a47528392ee20231b2f..a75a274cd615cc60bea368ee37eef5beb8629c64 100644 (file)
@@ -2071,9 +2071,8 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
            if (extract_all)
              {
                xgettext_current_source_encoding = po_charset_utf8;
-               savable_comment_to_xgettext_comment (token.comment);
-               remember_a_message (mlp, token.string, inner_context, &pos);
-               savable_comment_reset ();
+               remember_a_message (mlp, token.string, inner_context, &pos,
+                                   token.comment);
                xgettext_current_source_encoding = xgettext_global_source_encoding;
              }
            else
@@ -2086,10 +2085,9 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
                        message_ty *mp;
 
                        xgettext_current_source_encoding = po_charset_utf8;
-                       savable_comment_to_xgettext_comment (token.comment);
                        mp = remember_a_message (mlp, token.string,
-                                                inner_context, &pos);
-                       savable_comment_reset ();
+                                                inner_context, &pos,
+                                                token.comment);
                        xgettext_current_source_encoding = xgettext_global_source_encoding;
                        if (plural_commas > 0)
                          plural_mp = mp;
@@ -2099,7 +2097,7 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
                        /* Seen an msgid_plural.  */
                        xgettext_current_source_encoding = po_charset_utf8;
                        remember_a_message_plural (plural_mp, token.string,
-                                                  inner_context, &pos);
+                                                  inner_context, &pos, NULL);
                        xgettext_current_source_encoding = xgettext_global_source_encoding;
                        plural_mp = NULL;
                      }
index 8ce48a31877928eb7a41cf81129529458b70dc12..f7e967f5d4e3ada47236af7b8db00e81c4a35404 100644 (file)
@@ -724,10 +724,9 @@ read_object (struct object *op, bool first_in_list, bool new_backquote_flag,
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            mp = remember_a_message (mlp, string_of_object (&inner),
-                                                    inner_context, &pos);
-                           savable_comment_reset ();
+                                                    inner_context, &pos,
+                                                    savable_comment);
                            if (argnum2 > 0)
                              plural_mp = mp;
                          }
@@ -740,10 +739,9 @@ read_object (struct object *op, bool first_in_list, bool new_backquote_flag,
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            remember_a_message_plural (plural_mp, string_of_object (&inner),
-                                                      inner_context, &pos);
-                           savable_comment_reset ();
+                                                      inner_context, &pos,
+                                                      savable_comment);
                          }
                      }
                  }
@@ -924,10 +922,8 @@ read_object (struct object *op, bool first_in_list, bool new_backquote_flag,
 
                pos.file_name = logical_file_name;
                pos.line_number = op->line_number_at_start;
-               savable_comment_to_xgettext_comment (savable_comment);
                remember_a_message (mlp, string_of_object (op),
-                                   null_context, &pos);
-               savable_comment_reset ();
+                                   null_context, &pos, savable_comment);
              }
            last_non_comment_line = line_number;
            return;
index 314ff74bf24bc0b266f857acf07885c29cd95ee2..8281af33a7fa861e37f96ec7429ff3a6889ec6d9 100644 (file)
@@ -268,10 +268,8 @@ start_element_handler (void *userData, const char *name,
                  pos.file_name = logical_file_name;
                  pos.line_number = XML_GetCurrentLineNumber (parser);
 
-                 savable_comment_to_xgettext_comment (savable_comment);
                  remember_a_message (mlp, xstrdup (attp[1]),
-                                     null_context, &pos);
-                 savable_comment_reset ();
+                                     null_context, &pos, savable_comment);
                }
              break;
            }
@@ -307,9 +305,8 @@ end_element_handler (void *userData, const char *name)
          pos.file_name = logical_file_name;
          pos.line_number = p->lineno;
 
-         savable_comment_to_xgettext_comment (savable_comment);
-         remember_a_message (mlp, p->buffer, null_context, &pos);
-         savable_comment_reset ();
+         remember_a_message (mlp, p->buffer, null_context, &pos,
+                             savable_comment);
          p->buffer = NULL;
        }
     }
index 01bf2c54edb2abb7384edc014b59a72f3dd50806..c44a55a07d2e200762bac1b0bf0777de2574cea2 100644 (file)
@@ -1383,9 +1383,8 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
            if (extract_all)
              {
                xgettext_current_source_encoding = po_charset_utf8;
-               savable_comment_to_xgettext_comment (token.comment);
-               remember_a_message (mlp, token.string, inner_context, &pos);
-               savable_comment_reset ();
+               remember_a_message (mlp, token.string, inner_context, &pos,
+                                   token.comment);
                xgettext_current_source_encoding = xgettext_global_source_encoding;
              }
            else
@@ -1398,10 +1397,9 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
                        message_ty *mp;
 
                        xgettext_current_source_encoding = po_charset_utf8;
-                       savable_comment_to_xgettext_comment (token.comment);
                        mp = remember_a_message (mlp, token.string,
-                                                inner_context, &pos);
-                       savable_comment_reset ();
+                                                inner_context, &pos,
+                                                token.comment);
                        xgettext_current_source_encoding = xgettext_global_source_encoding;
                        if (plural_commas > 0)
                          plural_mp = mp;
@@ -1411,7 +1409,7 @@ extract_parenthesized (message_list_ty *mlp, token_type_ty terminator,
                        /* Seen an msgid_plural.  */
                        xgettext_current_source_encoding = po_charset_utf8;
                        remember_a_message_plural (plural_mp, token.string,
-                                                  inner_context, &pos);
+                                                  inner_context, &pos, NULL);
                        xgettext_current_source_encoding = xgettext_global_source_encoding;
                        plural_mp = NULL;
                      }
index a344b884409c6462e151541695665ca38ef3210a..7bcbbac13f5387de17d2051e3f059a1a5e61fd8b 100644 (file)
@@ -698,10 +698,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            mp = remember_a_message (mlp, string_of_object (&inner),
-                                                    inner_context, &pos);
-                           savable_comment_reset ();
+                                                    inner_context, &pos,
+                                                    savable_comment);
                            if (argnum2 > 0)
                              plural_mp = mp;
                          }
@@ -714,10 +713,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            remember_a_message_plural (plural_mp, string_of_object (&inner),
-                                                      inner_context, &pos);
-                           savable_comment_reset ();
+                                                      inner_context, &pos,
+                                                      savable_comment);
                          }
                      }
                  }
@@ -860,10 +858,8 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                pos.file_name = logical_file_name;
                pos.line_number = op->line_number_at_start;
-               savable_comment_to_xgettext_comment (savable_comment);
                remember_a_message (mlp, string_of_object (op),
-                                   null_context, &pos);
-               savable_comment_reset ();
+                                   null_context, &pos, savable_comment);
              }
            last_non_comment_line = line_number;
            return;
index f903b55671cfe2077baaa496c4d968951f77cff6..dbfd2ae13b157af2dd4d7285922cda4e75694187 100644 (file)
@@ -1100,10 +1100,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                                pos.file_name = logical_file_name;
                                pos.line_number = inner.line_number_at_start;
-                               savable_comment_to_xgettext_comment (savable_comment);
                                mp = remember_a_message (mlp, string_of_object (&inner),
-                                                        inner_context, &pos);
-                               savable_comment_reset ();
+                                                        inner_context, &pos,
+                                                        savable_comment);
                                if (argnum2 > 0)
                                  plural_mp = mp;
                              }
@@ -1116,10 +1115,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                                pos.file_name = logical_file_name;
                                pos.line_number = inner.line_number_at_start;
-                               savable_comment_to_xgettext_comment (savable_comment);
                                remember_a_message_plural (plural_mp, string_of_object (&inner),
-                                                          inner_context, &pos);
-                               savable_comment_reset ();
+                                                          inner_context, &pos,
+                                                          savable_comment);
                              }
                          }
                      }
@@ -1219,10 +1217,8 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                    pos.file_name = logical_file_name;
                    pos.line_number = op->line_number_at_start;
-                   savable_comment_to_xgettext_comment (savable_comment);
                    remember_a_message (mlp, string_of_object (op),
-                                       null_context, &pos);
-                   savable_comment_reset ();
+                                       null_context, &pos, savable_comment);
                  }
                last_non_comment_line = line_number;
                return;
index d7147946b79d6e3d7831c0a9de0db11b0131f99b..6e0350c91ddf748359dbb8459efd5f99ffa49430 100644 (file)
@@ -1531,9 +1531,8 @@ extract_variable (message_list_ty *mlp, token_ty *tp, int first)
                      pos.file_name = logical_file_name;
 
                      xgettext_current_source_encoding = po_charset_utf8;
-                     savable_comment_to_xgettext_comment (savable_comment);
-                     remember_a_message (mlp, xstrdup (t1->string), context, &pos);
-                     savable_comment_reset ();
+                     remember_a_message (mlp, xstrdup (t1->string), context,
+                                         &pos, savable_comment);
                      xgettext_current_source_encoding = xgettext_global_source_encoding;
                      free_token (t2);
                      free_token (t1);
@@ -1954,9 +1953,8 @@ interpolate_keywords (message_list_ty *mlp, const char *string, int lineno)
              token.string = xstrdup (buffer);
              extract_quotelike_pass3 (&token, EXIT_FAILURE);
              xgettext_current_source_encoding = po_charset_utf8;
-             savable_comment_to_xgettext_comment (savable_comment);
-             remember_a_message (mlp, token.string, context, &pos);
-             savable_comment_reset ();
+             remember_a_message (mlp, token.string, context, &pos,
+                                 savable_comment);
              xgettext_current_source_encoding = xgettext_global_source_encoding;
              /* FALLTHROUGH */
            default:
@@ -2985,9 +2983,8 @@ extract_balanced (message_list_ty *mlp, int state, token_type_ty delim,
              pos.line_number = tp->line_number;
              string = collect_message (mlp, tp, EXIT_SUCCESS);
              xgettext_current_source_encoding = po_charset_utf8;
-             savable_comment_to_xgettext_comment (savable_comment);
-             remember_a_message (mlp, string, inner_context, &pos);
-             savable_comment_reset ();
+             remember_a_message (mlp, string, inner_context, &pos,
+                                 savable_comment);
              xgettext_current_source_encoding = xgettext_global_source_encoding;
            }
          else if (state)
@@ -3002,9 +2999,8 @@ extract_balanced (message_list_ty *mlp, int state, token_type_ty delim,
                {
                  string = collect_message (mlp, tp, EXIT_FAILURE);
                  xgettext_current_source_encoding = po_charset_utf8;
-                 savable_comment_to_xgettext_comment (savable_comment);
-                 plural_mp = remember_a_message (mlp, string, inner_context, &pos);
-                 savable_comment_reset ();
+                 plural_mp = remember_a_message (mlp, string, inner_context,
+                                                 &pos, savable_comment);
                  xgettext_current_source_encoding = xgettext_global_source_encoding;
                  arg_sg = -1;
                }
@@ -3017,9 +3013,8 @@ extract_balanced (message_list_ty *mlp, int state, token_type_ty delim,
 
                  string = collect_message (mlp, tp, EXIT_FAILURE);
                  xgettext_current_source_encoding = po_charset_utf8;
-                 savable_comment_to_xgettext_comment (savable_comment);
-                 remember_a_message_plural (plural_mp, string, inner_context, &pos);
-                 savable_comment_reset ();
+                 remember_a_message_plural (plural_mp, string, inner_context,
+                                            &pos, savable_comment);
                  xgettext_current_source_encoding = xgettext_global_source_encoding;
                  arg_pl = -1;
                }
index 809126070783fde723285cdcb8b8df59842c60f8..0b03fe345f183cc53c57c46824e4a5cd47834405 100644 (file)
@@ -1320,11 +1320,8 @@ extract_parenthesized (message_list_ty *mlp,
            pos.line_number = token.line_number;
 
            if (extract_all)
-             {
-               savable_comment_to_xgettext_comment (savable_comment);
-               remember_a_message (mlp, token.string, inner_context, &pos);
-               savable_comment_reset ();
-             }
+             remember_a_message (mlp, token.string, inner_context, &pos,
+                                 savable_comment);
            else
              {
                if (commas_to_skip == 0)
@@ -1332,23 +1329,19 @@ extract_parenthesized (message_list_ty *mlp,
                    if (plural_mp == NULL)
                      {
                        /* Seen an msgid.  */
-                       message_ty *mp;
-
-                       savable_comment_to_xgettext_comment (savable_comment);
-                       mp =
+                       message_ty *mp =
                          remember_a_message (mlp, token.string,
-                                             inner_context, &pos);
-                       savable_comment_reset ();
+                                             inner_context, &pos,
+                                             savable_comment);
                        if (plural_commas > 0)
                          plural_mp = mp;
                      }
                    else
                      {
                        /* Seen an msgid_plural.  */
-                       savable_comment_to_xgettext_comment (savable_comment);
                        remember_a_message_plural (plural_mp, token.string,
-                                                  inner_context, &pos);
-                       savable_comment_reset ();
+                                                  inner_context, &pos,
+                                                  savable_comment);
                        plural_mp = NULL;
                      }
                  }
index 009390479e988aa94ab1e125b342b3ac5e9d3b51..c0f00c2e32b2ccbeaed082c00d6d6b75175504d1 100644 (file)
@@ -1754,9 +1754,8 @@ extract_parenthesized (message_list_ty *mlp,
            if (extract_all)
              {
                xgettext_current_source_encoding = po_charset_utf8;
-               savable_comment_to_xgettext_comment (token.comment);
-               remember_a_message (mlp, token.string, inner_context, &pos);
-               savable_comment_reset ();
+               remember_a_message (mlp, token.string, inner_context, &pos,
+                                   token.comment);
                xgettext_current_source_encoding = xgettext_current_file_source_encoding;
              }
            else
@@ -1769,10 +1768,9 @@ extract_parenthesized (message_list_ty *mlp,
                        message_ty *mp;
 
                        xgettext_current_source_encoding = po_charset_utf8;
-                       savable_comment_to_xgettext_comment (token.comment);
                        mp = remember_a_message (mlp, token.string,
-                                               inner_context, &pos);
-                       savable_comment_reset ();
+                                                inner_context, &pos,
+                                                token.comment);
                        xgettext_current_source_encoding = xgettext_current_file_source_encoding;
                        if (plural_commas > 0)
                          plural_mp = mp;
@@ -1782,7 +1780,7 @@ extract_parenthesized (message_list_ty *mlp,
                        /* Seen an msgid_plural.  */
                        xgettext_current_source_encoding = po_charset_utf8;
                        remember_a_message_plural (plural_mp, token.string,
-                                                  inner_context, &pos);
+                                                  inner_context, &pos, NULL);
                        xgettext_current_source_encoding = xgettext_current_file_source_encoding;
                        plural_mp = NULL;
                      }
index 414bdb1f03e3fd9aba351fb18438b97211c99c83..345e1d5dc1c0783e3d9e863d75b83cb3bd220aab 100644 (file)
@@ -1,5 +1,5 @@
 /* xgettext RST backend.
-   Copyright (C) 2001-2003 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005 Free Software Foundation, Inc.
 
    This file was written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
@@ -219,7 +219,7 @@ extract_rst (FILE *f,
       pos.file_name = location;
       pos.line_number = (size_t)(-1);
 
-      remember_a_message (mlp, msgid, null_context, &pos);
+      remember_a_message (mlp, msgid, null_context, &pos, NULL);
 
       /* Here c is the last read character: EOF or '\n'.  */
       if (c == EOF)
index f77d5d6d49595943100dc22496bd02328d391b7b..3c481f0062776eec242a4eee1468bc3b1b3e4471 100644 (file)
@@ -807,10 +807,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            mp = remember_a_message (mlp, string_of_object (&inner),
-                                                    inner_context, &pos);
-                           savable_comment_reset ();
+                                                    inner_context, &pos,
+                                                    savable_comment);
                            if (argnum2 > 0)
                              plural_mp = mp;
                          }
@@ -823,10 +822,9 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                            pos.file_name = logical_file_name;
                            pos.line_number = inner.line_number_at_start;
-                           savable_comment_to_xgettext_comment (savable_comment);
                            remember_a_message_plural (plural_mp, string_of_object (&inner),
-                                                      inner_context, &pos);
-                           savable_comment_reset ();
+                                                      inner_context, &pos,
+                                                      savable_comment);
                          }
                      }
                  }
@@ -1158,10 +1156,8 @@ read_object (struct object *op, flag_context_ty outer_context)
 
                pos.file_name = logical_file_name;
                pos.line_number = op->line_number_at_start;
-               savable_comment_to_xgettext_comment (savable_comment);
                remember_a_message (mlp, string_of_object (op),
-                                   null_context, &pos);
-               savable_comment_reset ();
+                                   null_context, &pos, savable_comment);
              }
            last_non_comment_line = line_number;
            return;
index 51f94b85c407114d0080edc0c2fe7c1d9ef37b93..e9829cb2a2214057de5841ba96e6638cd434180d 100644 (file)
@@ -1024,10 +1024,8 @@ read_word (struct word *wp, int looking_for, flag_context_ty context)
                  grow_token (&string);
                  string.chars[string.charcount++] = (unsigned char) c;
                }
-             savable_comment_to_xgettext_comment (savable_comment);
              remember_a_message (mlp, string_of_token (&string),
-                                 context, &pos);
-             savable_comment_reset ();
+                                 context, &pos, savable_comment);
              free_token (&string);
 
              error_with_progname = false;
@@ -1167,10 +1165,8 @@ read_command (int looking_for, flag_context_ty outer_context)
 
              pos.file_name = logical_file_name;
              pos.line_number = inner.line_number_at_start;
-             savable_comment_to_xgettext_comment (savable_comment);
              remember_a_message (mlp, string_of_word (&inner),
-                                 inner_context, &pos);
-             savable_comment_reset ();
+                                 inner_context, &pos, savable_comment);
            }
        }
 
@@ -1229,10 +1225,9 @@ read_command (int looking_for, flag_context_ty outer_context)
 
                      pos.file_name = logical_file_name;
                      pos.line_number = inner.line_number_at_start;
-                     savable_comment_to_xgettext_comment (savable_comment);
                      mp = remember_a_message (mlp, string_of_word (&inner),
-                                              inner_context, &pos);
-                     savable_comment_reset ();
+                                              inner_context, &pos,
+                                              savable_comment);
                      if (argnum2 > 0)
                        plural_mp = mp;
                    }
@@ -1245,10 +1240,9 @@ read_command (int looking_for, flag_context_ty outer_context)
 
                      pos.file_name = logical_file_name;
                      pos.line_number = inner.line_number_at_start;
-                     savable_comment_to_xgettext_comment (savable_comment);
                      remember_a_message_plural (plural_mp, string_of_word (&inner),
-                                                inner_context, &pos);
-                     savable_comment_reset ();
+                                                inner_context, &pos,
+                                                savable_comment);
                    }
                }
 
index 76383a546506d3661ba367d5bd8dc1e039b44155..9a8edc1a86a416798659035eb844ad43ecd983cf 100644 (file)
@@ -541,9 +541,8 @@ extract_smalltalk (FILE *f,
                lex_pos_ty pos;
                pos.file_name = logical_file_name;
                pos.line_number = token.line_number;
-               savable_comment_to_xgettext_comment (savable_comment);
-               remember_a_message (mlp, token.string, null_context, &pos);
-               savable_comment_reset ();
+               remember_a_message (mlp, token.string, null_context, &pos,
+                                   savable_comment);
                state = 0;
                break;
              }
@@ -552,10 +551,9 @@ extract_smalltalk (FILE *f,
                lex_pos_ty pos;
                pos.file_name = logical_file_name;
                pos.line_number = token.line_number;
-               savable_comment_to_xgettext_comment (savable_comment);
                plural_mp = remember_a_message (mlp, token.string,
-                                               null_context, &pos);
-               savable_comment_reset ();
+                                               null_context, &pos,
+                                               savable_comment);
                state = 4;
                break;
              }
@@ -564,10 +562,9 @@ extract_smalltalk (FILE *f,
                lex_pos_ty pos;
                pos.file_name = logical_file_name;
                pos.line_number = token.line_number;
-               savable_comment_to_xgettext_comment (savable_comment);
                remember_a_message_plural (plural_mp, token.string,
-                                          null_context, &pos);
-               savable_comment_reset ();
+                                          null_context, &pos,
+                                          savable_comment);
                state = 0;
                break;
              }
index ace1372cad70f3871a7d825efb38309a85bd6600..fb6357e3d9677714e3c30113b854936b46cedcfb 100644 (file)
@@ -885,10 +885,8 @@ read_command (int looking_for, flag_context_ty outer_context)
 
                pos.file_name = logical_file_name;
                pos.line_number = inner.line_number_at_start;
-               savable_comment_to_xgettext_comment (savable_comment);
                remember_a_message (mlp, string_of_word (&inner),
-                                   inner_context, &pos);
-               savable_comment_reset ();
+                                   inner_context, &pos, savable_comment);
              }
          }
 
@@ -940,10 +938,9 @@ read_command (int looking_for, flag_context_ty outer_context)
 
                    pos.file_name = logical_file_name;
                    pos.line_number = inner.line_number_at_start;
-                   savable_comment_to_xgettext_comment (savable_comment);
                    mp = remember_a_message (mlp, string_of_word (&inner),
-                                            inner_context, &pos);
-                   savable_comment_reset ();
+                                            inner_context, &pos,
+                                            savable_comment);
                    if (argnum2 > 0)
                      plural_mp = mp;
                  }
@@ -956,10 +953,9 @@ read_command (int looking_for, flag_context_ty outer_context)
 
                    pos.file_name = logical_file_name;
                    pos.line_number = inner.line_number_at_start;
-                   savable_comment_to_xgettext_comment (savable_comment);
                    remember_a_message_plural (plural_mp, string_of_word (&inner),
-                                              inner_context, &pos);
-                   savable_comment_reset ();
+                                              inner_context, &pos,
+                                              savable_comment);
                  }
              }
          }
index b706b447da3d7fafd32f652cd3cf032a9dcea0d5..a9153446940c102ab129b61f164b75ebaf9098b3 100644 (file)
@@ -616,19 +616,17 @@ extract_parenthesized (message_list_ty *mlp,
              if (plural_mp == NULL)
                {
                  /* Seen an msgid.  */
-                 savable_comment_to_xgettext_comment (savable_comment);
                  plural_mp = remember_a_message (mlp, token.string,
-                                                 inner_context, &pos);
-                 savable_comment_reset ();
+                                                 inner_context, &pos,
+                                                 savable_comment);
                  state = 2;
                }
              else
                {
                  /* Seen an msgid_plural.  */
-                 savable_comment_to_xgettext_comment (savable_comment);
                  remember_a_message_plural (plural_mp, token.string,
-                                            inner_context, &pos);
-                 savable_comment_reset ();
+                                            inner_context, &pos,
+                                            savable_comment);
                  state = 0;
                }
            }
index 9e8f079b596c11cd2836fceb312b868b8b31d018..d112a272bce48b2c090857adb2e115eefa634cc7 100644 (file)
@@ -1537,7 +1537,7 @@ savable_comment_reset ()
   savable_comment = NULL;
 }
 
-void
+static void
 savable_comment_to_xgettext_comment (refcounted_string_list_ty *rslp)
 {
   xgettext_comment_reset ();
@@ -1761,7 +1761,8 @@ set_format_flags_from_context (enum is_format is_format[NFORMATS],
 
 message_ty *
 remember_a_message (message_list_ty *mlp, char *string,
-                   flag_context_ty context, lex_pos_ty *pos)
+                   flag_context_ty context, lex_pos_ty *pos,
+                   refcounted_string_list_ty *comment)
 {
   enum is_format is_format[NFORMATS];
   enum is_wrap do_wrap;
@@ -1780,10 +1781,13 @@ remember_a_message (message_list_ty *mlp, char *string,
       /* Tell the lexer to reset its comment buffer, so that the next
         message gets the correct comments.  */
       xgettext_comment_reset ();
+      savable_comment_reset ();
 
       return NULL;
     }
 
+  savable_comment_to_xgettext_comment (comment);
+
   for (i = 0; i < NFORMATS; i++)
     is_format[i] = undecided;
   do_wrap = undecided;
@@ -1986,6 +1990,7 @@ meta information, not the empty string.\n")));
   /* Tell the lexer to reset its comment buffer, so that the next
      message gets the correct comments.  */
   xgettext_comment_reset ();
+  savable_comment_reset ();
 
   return mp;
 }
@@ -1993,7 +1998,8 @@ meta information, not the empty string.\n")));
 
 void
 remember_a_message_plural (message_ty *mp, char *string,
-                          flag_context_ty context, lex_pos_ty *pos)
+                          flag_context_ty context, lex_pos_ty *pos,
+                          refcounted_string_list_ty *comment)
 {
   char *msgid_plural;
   char *msgstr1;
@@ -2003,6 +2009,8 @@ remember_a_message_plural (message_ty *mp, char *string,
 
   msgid_plural = string;
 
+  savable_comment_to_xgettext_comment (comment);
+
   CONVERT_STRING (msgid_plural);
 
   /* See if the message is already a plural message.  */
@@ -2071,6 +2079,11 @@ remember_a_message_plural (message_ty *mp, char *string,
     }
   else
     free (msgid_plural);
+
+  /* Tell the lexer to reset its comment buffer, so that the next
+     message gets the correct comments.  */
+  xgettext_comment_reset ();
+  savable_comment_reset ();
 }
 
 
index 487c5078df0321e878cbfefe5479bc6fac70e48d..c2fe3d1fb2e649ffaa9f4f0f3e624a1bdb904a36 100644 (file)
@@ -189,24 +189,31 @@ drop_reference (refcounted_string_list_ty *rslp)
 extern refcounted_string_list_ty *savable_comment;
 extern void savable_comment_add (const char *str);
 extern void savable_comment_reset (void);
-extern void savable_comment_to_xgettext_comment (refcounted_string_list_ty *rslp);
 
 
 /* Add a message to the list of extracted messages.
-   string must be malloc()ed string; its ownership is passed to the callee.
-   pos->file_name must be allocated with indefinite extent.  */
+   STRING must be malloc()ed string; its ownership is passed to the callee.
+   POS->file_name must be allocated with indefinite extent.
+   COMMENT may be savable_comment, or it may be a saved copy of savable_comment
+   (then add_reference must be used when saving it, and drop_reference while
+   dropping it).  Clear savable_comment.  */
 extern message_ty *remember_a_message (message_list_ty *mlp,
                                       char *string,
                                       flag_context_ty context,
-                                      lex_pos_ty *pos);
+                                      lex_pos_ty *pos,
+                                      refcounted_string_list_ty *comment);
 /* Add an msgid_plural to a message previously returned by
    remember_a_message.
-   string must be malloc()ed string; its ownership is passed to the callee.
-   pos->file_name must be allocated with indefinite extent.  */
+   STRING must be malloc()ed string; its ownership is passed to the callee.
+   POS->file_name must be allocated with indefinite extent.
+   COMMENT may be savable_comment, or it may be a saved copy of savable_comment
+   (then add_reference must be used when saving it, and drop_reference while
+   dropping it).  Clear savable_comment.  */
 extern void remember_a_message_plural (message_ty *mp,
                                       char *string,
                                       flag_context_ty context,
-                                      lex_pos_ty *pos);
+                                      lex_pos_ty *pos,
+                                      refcounted_string_list_ty *comment);
 
 
 #ifdef __cplusplus