From: Bruno Haible Date: Tue, 11 Oct 2005 11:19:36 +0000 (+0000) Subject: Comments are now passed via remember_a_message directly. X-Git-Tag: v0.15~370 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73e330233301afa8ea94dd84d31a09c45baa70e7;p=thirdparty%2Fgettext.git Comments are now passed via remember_a_message directly. --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index d2aceb07b..657b6d7b8 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,35 @@ +2005-10-03 Bruno Haible + + * 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 * xgettext.h (xgettext_comment_add, xgettext_comment, diff --git a/gettext-tools/src/x-awk.c b/gettext-tools/src/x-awk.c index 9f98148e3..b2d3335e7 100644 --- a/gettext-tools/src/x-awk.c +++ b/gettext-tools/src/x-awk.c @@ -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; diff --git a/gettext-tools/src/x-c.c b/gettext-tools/src/x-c.c index 624cd2de0..7401013bb 100644 --- a/gettext-tools/src/x-c.c +++ b/gettext-tools/src/x-c.c @@ -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; } } diff --git a/gettext-tools/src/x-csharp.c b/gettext-tools/src/x-csharp.c index a8667203c..a75a274cd 100644 --- a/gettext-tools/src/x-csharp.c +++ b/gettext-tools/src/x-csharp.c @@ -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; } diff --git a/gettext-tools/src/x-elisp.c b/gettext-tools/src/x-elisp.c index 8ce48a318..f7e967f5d 100644 --- a/gettext-tools/src/x-elisp.c +++ b/gettext-tools/src/x-elisp.c @@ -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; diff --git a/gettext-tools/src/x-glade.c b/gettext-tools/src/x-glade.c index 314ff74bf..8281af33a 100644 --- a/gettext-tools/src/x-glade.c +++ b/gettext-tools/src/x-glade.c @@ -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; } } diff --git a/gettext-tools/src/x-java.c b/gettext-tools/src/x-java.c index 01bf2c54e..c44a55a07 100644 --- a/gettext-tools/src/x-java.c +++ b/gettext-tools/src/x-java.c @@ -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; } diff --git a/gettext-tools/src/x-librep.c b/gettext-tools/src/x-librep.c index a344b8844..7bcbbac13 100644 --- a/gettext-tools/src/x-librep.c +++ b/gettext-tools/src/x-librep.c @@ -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; diff --git a/gettext-tools/src/x-lisp.c b/gettext-tools/src/x-lisp.c index f903b5567..dbfd2ae13 100644 --- a/gettext-tools/src/x-lisp.c +++ b/gettext-tools/src/x-lisp.c @@ -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; diff --git a/gettext-tools/src/x-perl.c b/gettext-tools/src/x-perl.c index d7147946b..6e0350c91 100644 --- a/gettext-tools/src/x-perl.c +++ b/gettext-tools/src/x-perl.c @@ -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; } diff --git a/gettext-tools/src/x-php.c b/gettext-tools/src/x-php.c index 809126070..0b03fe345 100644 --- a/gettext-tools/src/x-php.c +++ b/gettext-tools/src/x-php.c @@ -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; } } diff --git a/gettext-tools/src/x-python.c b/gettext-tools/src/x-python.c index 009390479..c0f00c2e3 100644 --- a/gettext-tools/src/x-python.c +++ b/gettext-tools/src/x-python.c @@ -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; } diff --git a/gettext-tools/src/x-rst.c b/gettext-tools/src/x-rst.c index 414bdb1f0..345e1d5dc 100644 --- a/gettext-tools/src/x-rst.c +++ b/gettext-tools/src/x-rst.c @@ -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 , 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) diff --git a/gettext-tools/src/x-scheme.c b/gettext-tools/src/x-scheme.c index f77d5d6d4..3c481f006 100644 --- a/gettext-tools/src/x-scheme.c +++ b/gettext-tools/src/x-scheme.c @@ -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; diff --git a/gettext-tools/src/x-sh.c b/gettext-tools/src/x-sh.c index 51f94b85c..e9829cb2a 100644 --- a/gettext-tools/src/x-sh.c +++ b/gettext-tools/src/x-sh.c @@ -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); } } diff --git a/gettext-tools/src/x-smalltalk.c b/gettext-tools/src/x-smalltalk.c index 76383a546..9a8edc1a8 100644 --- a/gettext-tools/src/x-smalltalk.c +++ b/gettext-tools/src/x-smalltalk.c @@ -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; } diff --git a/gettext-tools/src/x-tcl.c b/gettext-tools/src/x-tcl.c index ace1372ca..fb6357e3d 100644 --- a/gettext-tools/src/x-tcl.c +++ b/gettext-tools/src/x-tcl.c @@ -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); } } } diff --git a/gettext-tools/src/x-ycp.c b/gettext-tools/src/x-ycp.c index b706b447d..a91534469 100644 --- a/gettext-tools/src/x-ycp.c +++ b/gettext-tools/src/x-ycp.c @@ -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; } } diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c index 9e8f079b5..d112a272b 100644 --- a/gettext-tools/src/xgettext.c +++ b/gettext-tools/src/xgettext.c @@ -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 (); } diff --git a/gettext-tools/src/xgettext.h b/gettext-tools/src/xgettext.h index 487c5078d..c2fe3d1fb 100644 --- a/gettext-tools/src/xgettext.h +++ b/gettext-tools/src/xgettext.h @@ -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