From: Bruno Haible Date: Mon, 30 Jun 2025 11:49:13 +0000 (+0200) Subject: Simplify code: The syntax-check flags are only used inside xgettext. X-Git-Tag: v0.26~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eff9937e4f50f45931a8d88f4210795c2cba3521;p=thirdparty%2Fgettext.git Simplify code: The syntax-check flags are only used inside xgettext. * gettext-tools/src/message.h: Improve comments regarding do_syntax_check. * gettext-tools/src/msgl-cat.c (catenate_msgdomain_list): Don't manipulate do_syntax_check field. * gettext-tools/src/msgmerge.c (message_merge): Likewise. * gettext-tools/src/read-catalog-special.h (parse_comment_special): Change 'scp' parameter to a pointer. * gettext-tools/src/read-catalog-special.c (parse_comment_special): Support a null 'scp' argument. * gettext-tools/src/read-catalog.h (DEFAULT_CATALOG_READER_TY): Remove do_syntax_check field. * gettext-tools/src/read-catalog.c (default_constructor, default_copy_comment_state, default_reset_comment_state, default_comment_special): Don't reference do_syntax_check field. --- diff --git a/gettext-tools/src/message.h b/gettext-tools/src/message.h index ec386f734..5790295cd 100644 --- a/gettext-tools/src/message.h +++ b/gettext-tools/src/message.h @@ -123,7 +123,7 @@ enum is_wrap #endif -/* Kinds of syntax checks which apply to strings. */ +/* Kinds of syntax checks which apply to an msgid. */ enum syntax_check_type { sc_ellipsis_unicode, @@ -208,7 +208,8 @@ struct message_ty /* Do we want the string to be wrapped in the emitted PO file? */ enum is_wrap do_wrap; - /* Do we want to apply extra syntax checks on the string? */ + /* Do we want to apply or inhibit extra syntax checks on the string? + This is only relevant within xgettext. */ enum is_syntax_check do_syntax_check[NSYNTAXCHECKS]; /* The prev_msgctxt, prev_msgid and prev_msgid_plural strings appearing diff --git a/gettext-tools/src/msgl-cat.c b/gettext-tools/src/msgl-cat.c index afa01f6bf..a477285eb 100644 --- a/gettext-tools/src/msgl-cat.c +++ b/gettext-tools/src/msgl-cat.c @@ -1,5 +1,5 @@ /* Message list concatenation and duplicate handling. - Copyright (C) 2001-2024 Free Software Foundation, Inc. + Copyright (C) 2001-2025 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify @@ -322,8 +322,6 @@ catenate_msgdomain_list (string_list_ty *file_list, tmp->range.min = - INT_MAX; tmp->range.max = - INT_MAX; tmp->do_wrap = yes; /* may be set to no later */ - for (i = 0; i < NSYNTAXCHECKS; i++) - tmp->do_syntax_check[i] = undecided; /* may be set to yes/no later */ tmp->obsolete = true; /* may be set to false later */ tmp->alternative_count = 0; tmp->alternative = NULL; @@ -586,8 +584,6 @@ UTF-8 encoded from the beginning, i.e. already in your source code files.\n"), tmp->is_format[i] = mp->is_format[i]; tmp->range = mp->range; tmp->do_wrap = mp->do_wrap; - for (i = 0; i < NSYNTAXCHECKS; i++) - tmp->do_syntax_check[i] = mp->do_syntax_check[i]; tmp->prev_msgctxt = mp->prev_msgctxt; tmp->prev_msgid = mp->prev_msgid; tmp->prev_msgid_plural = mp->prev_msgid_plural; @@ -636,9 +632,6 @@ UTF-8 encoded from the beginning, i.e. already in your source code files.\n"), } if (tmp->do_wrap == undecided) tmp->do_wrap = mp->do_wrap; - for (i = 0; i < NSYNTAXCHECKS; i++) - if (tmp->do_syntax_check[i] == undecided) - tmp->do_syntax_check[i] = mp->do_syntax_check[i]; tmp->obsolete = false; } else @@ -691,12 +684,6 @@ UTF-8 encoded from the beginning, i.e. already in your source code files.\n"), } if (mp->do_wrap == no) tmp->do_wrap = no; - for (i = 0; i < NSYNTAXCHECKS; i++) - if (mp->do_syntax_check[i] == yes) - tmp->do_syntax_check[i] = yes; - else if (mp->do_syntax_check[i] == no - && tmp->do_syntax_check[i] == undecided) - tmp->do_syntax_check[i] = no; /* Don't fill tmp->prev_msgid in this case. */ if (!mp->obsolete) tmp->obsolete = false; diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c index 6e8afce04..df4a89ea9 100644 --- a/gettext-tools/src/msgmerge.c +++ b/gettext-tools/src/msgmerge.c @@ -1410,12 +1410,6 @@ message_merge (message_ty *def, message_ty *ref, bool force_fuzzy, result->do_wrap = ref->do_wrap; - { - size_t i; - for (i = 0; i < NSYNTAXCHECKS; i++) - result->do_syntax_check[i] = ref->do_syntax_check[i]; - } - /* Insert previous msgid, commented out with "#|". Do so only when --previous is specified, for backward compatibility. Since the "previous msgid" represents the original msgid that led to diff --git a/gettext-tools/src/read-catalog-special.c b/gettext-tools/src/read-catalog-special.c index dc61b0a3f..487d453bb 100644 --- a/gettext-tools/src/read-catalog-special.c +++ b/gettext-tools/src/read-catalog-special.c @@ -1,5 +1,5 @@ /* Parsing of special comments (#, comments) in textual message catalogs. - Copyright (C) 1995-2024 Free Software Foundation, Inc. + Copyright (C) 1995-2025 Free Software Foundation, Inc. This file was written by Peter Miller @@ -29,12 +29,12 @@ /* Parse a special comment and put the result in *fuzzyp, formatp, *rangep, - *wrapp, scp. */ + *wrapp, and, if scp != NULL, scp[0..NSYNTAXCHECKS-1]. */ void parse_comment_special (const char *s, bool *fuzzyp, enum is_format formatp[NFORMATS], struct argument_range *rangep, enum is_wrap *wrapp, - enum is_syntax_check scp[NSYNTAXCHECKS]) + enum is_syntax_check *scp) { size_t i; @@ -44,8 +44,11 @@ parse_comment_special (const char *s, rangep->min = -1; rangep->max = -1; *wrapp = undecided; - for (i = 0; i < NSYNTAXCHECKS; i++) - scp[i] = undecided; + if (scp != NULL) + { + for (i = 0; i < NSYNTAXCHECKS; i++) + scp[i] = undecided; + } while (*s != '\0') { @@ -180,7 +183,7 @@ parse_comment_special (const char *s, } /* Accept syntax check description. */ - if (len >= 6 && memcmp (t + len - 6, "-check", 6) == 0) + if (scp != NULL && len >= 6 && memcmp (t + len - 6, "-check", 6) == 0) { const char *p; size_t n; diff --git a/gettext-tools/src/read-catalog-special.h b/gettext-tools/src/read-catalog-special.h index 37778a597..51cb7d71e 100644 --- a/gettext-tools/src/read-catalog-special.h +++ b/gettext-tools/src/read-catalog-special.h @@ -1,5 +1,5 @@ /* Parsing of special comments (#, comments) in textual message catalogs. - Copyright (C) 1995-2024 Free Software Foundation, Inc. + Copyright (C) 1995-2025 Free Software Foundation, Inc. This file was written by Peter Miller @@ -30,12 +30,12 @@ extern "C" { /* Parse a special comment and put the result in *fuzzyp, formatp, *rangep, - *wrapp, scp. */ + *wrapp, and, if scp != NULL, scp[0..NSYNTAXCHECKS-1]. */ extern void parse_comment_special (const char *s, bool *fuzzyp, enum is_format formatp[NFORMATS], struct argument_range *rangep, enum is_wrap *wrapp, - enum is_syntax_check scp[NSYNTAXCHECKS]); + enum is_syntax_check *scp); #ifdef __cplusplus diff --git a/gettext-tools/src/read-catalog.c b/gettext-tools/src/read-catalog.c index 8364ef67e..1fd37910d 100644 --- a/gettext-tools/src/read-catalog.c +++ b/gettext-tools/src/read-catalog.c @@ -1,5 +1,5 @@ /* Reading textual message catalogs (such as PO files). - Copyright (C) 1995-2024 Free Software Foundation, Inc. + Copyright (C) 1995-2025 Free Software Foundation, Inc. This file was written by Peter Miller This program is free software: you can redistribute it and/or modify @@ -107,8 +107,6 @@ default_constructor (abstract_catalog_reader_ty *catr) dcatr->range.min = -1; dcatr->range.max = -1; dcatr->do_wrap = undecided; - for (i = 0; i < NSYNTAXCHECKS; i++) - dcatr->do_syntax_check[i] = undecided; } @@ -176,8 +174,6 @@ default_copy_comment_state (default_catalog_reader_ty *dcatr, message_ty *mp) mp->is_format[i] = dcatr->is_format[i]; mp->range = dcatr->range; mp->do_wrap = dcatr->do_wrap; - for (i = 0; i < NSYNTAXCHECKS; i++) - mp->do_syntax_check[i] = dcatr->do_syntax_check[i]; } @@ -211,8 +207,6 @@ default_reset_comment_state (default_catalog_reader_ty *dcatr) dcatr->range.min = -1; dcatr->range.max = -1; dcatr->do_wrap = undecided; - for (i = 0; i < NSYNTAXCHECKS; i++) - dcatr->do_syntax_check[i] = undecided; } @@ -308,7 +302,7 @@ default_comment_special (abstract_catalog_reader_ty *catr, const char *s) default_catalog_reader_ty *dcatr = (default_catalog_reader_ty *) catr; parse_comment_special (s, &dcatr->is_fuzzy, dcatr->is_format, &dcatr->range, - &dcatr->do_wrap, dcatr->do_syntax_check); + &dcatr->do_wrap, NULL); } diff --git a/gettext-tools/src/read-catalog.h b/gettext-tools/src/read-catalog.h index 3b25295f1..875b19137 100644 --- a/gettext-tools/src/read-catalog.h +++ b/gettext-tools/src/read-catalog.h @@ -116,7 +116,6 @@ struct default_catalog_reader_class_ty enum is_format is_format[NFORMATS]; \ struct argument_range range; \ enum is_wrap do_wrap; \ - enum is_syntax_check do_syntax_check[NSYNTAXCHECKS]; \ typedef struct default_catalog_reader_ty default_catalog_reader_ty; struct default_catalog_reader_ty