]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Remove some uses of global variable gram_pos.
authorBruno Haible <bruno@clisp.org>
Thu, 1 Aug 2024 21:08:21 +0000 (23:08 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 1 Aug 2024 21:08:21 +0000 (23:08 +0200)
* gettext-tools/src/msgfmt.c (msgfmt_comment_special): Use the file name from
the catalog reader instead of gram_pos.
* gettext-tools/src/read-desktop.c (gram_pos): Remove declaration.
(pos): New variable.
(phase2_getc, phase2_ungetc, desktop_lex, desktop_parse): Use it instead of
gram_pos.
* gettext-tools/src/read-properties.c (gram_pos): Remove declaration.
(pos): New variable.
(phase2_getc, phase2_ungetc, phase4_getuc, read_escaped_string,
properties_parse): Use it instead of gram_pos.
* gettext-tools/src/read-stringtable.c (gram_pos): Remove declaration.
(pos): New variable.
(phase3_getc, phase3_ungetc, stringtable_parse): Use it instead of gram_pos.
(read_string): Likewise. Rename a parameter.
(conv_from_ucs4): Rename a local variable.

gettext-tools/src/msgfmt.c
gettext-tools/src/read-desktop.c
gettext-tools/src/read-properties.c
gettext-tools/src/read-stringtable.c

index b3837449ac5d3bde73f9a01178b02a77075a1ae6..87eab26c0ab1e3cc0435c70fc9a140de2d894f04 100644 (file)
@@ -1346,7 +1346,7 @@ msgfmt_comment_special (abstract_catalog_reader_ty *catr, const char *s)
           warned = true;
           error (0, 0,
                  _("%s: warning: source file contains fuzzy translation"),
-                 gram_pos.file_name);
+                 mcatr->file_name);
         }
     }
 }
index f716d7815d7b39f62e17238b58b8950e0ef8e5b7..53978c3ff78f4d6de549d5f0ec6146731dedb9e5 100644 (file)
@@ -101,7 +101,7 @@ desktop_reader_handle_blank (desktop_reader_ty *reader, const char *s)
 static const char *real_file_name;
 
 /* File name and line number.  */
-extern lex_pos_ty gram_pos;
+static lex_pos_ty pos;
 
 /* The input file stream.  */
 static FILE *fp;
@@ -164,7 +164,7 @@ phase2_getc ()
     }
 
   if (c == '\n')
-    gram_pos.line_number++;
+    pos.line_number++;
 
   return c;
 }
@@ -173,7 +173,7 @@ static void
 phase2_ungetc (int c)
 {
   if (c == '\n')
-    --gram_pos.line_number;
+    --pos.line_number;
   if (c != EOF)
     phase2_pushback[phase2_pushback_length++] = c;
 }
@@ -254,7 +254,7 @@ desktop_lex (token_ty *tp)
                 if (c == '\n')
                   {
                     po_xerror (PO_SEVERITY_WARNING, NULL,
-                               real_file_name, gram_pos.line_number, 0, false,
+                               real_file_name, pos.line_number, 0, false,
                                _("unterminated group name"));
                     break;
                   }
@@ -275,7 +275,7 @@ desktop_lex (token_ty *tp)
               }
             if (non_blank)
               po_xerror (PO_SEVERITY_WARNING, NULL,
-                         real_file_name, gram_pos.line_number, 0, false,
+                         real_file_name, pos.line_number, 0, false,
                          _("invalid non-blank character"));
             APPEND (0);
             tp->type = token_type_group;
@@ -382,7 +382,7 @@ desktop_lex (token_ty *tp)
             if (c != '=')
               {
                 po_xerror (PO_SEVERITY_WARNING, NULL,
-                           real_file_name, gram_pos.line_number, 0, false,
+                           real_file_name, pos.line_number, 0, false,
                            xasprintf (_("missing '=' after \"%s\""), buffer));
                 for (;;)
                   {
@@ -445,7 +445,7 @@ desktop_lex (token_ty *tp)
             if (non_blank)
               {
                 po_xerror (PO_SEVERITY_WARNING, NULL,
-                           real_file_name, gram_pos.line_number, 0, false,
+                           real_file_name, pos.line_number, 0, false,
                            _("invalid non-blank line"));
                 tp->type = token_type_other;
                 return;
@@ -466,8 +466,8 @@ desktop_parse (desktop_reader_ty *reader, FILE *file,
 {
   fp = file;
   real_file_name = real_filename;
-  gram_pos.file_name = xstrdup (logical_filename);
-  gram_pos.line_number = 1;
+  pos.file_name = xstrdup (logical_filename);
+  pos.line_number = 1;
 
   for (;;)
     {
@@ -484,7 +484,7 @@ desktop_parse (desktop_reader_ty *reader, FILE *file,
           desktop_reader_handle_comment (reader, token.string);
           break;
         case token_type_pair:
-          desktop_reader_handle_pair (reader, &gram_pos,
+          desktop_reader_handle_pair (reader, &pos,
                                       token.string, token.locale, token.value);
           break;
         case token_type_blank:
@@ -499,7 +499,7 @@ desktop_parse (desktop_reader_ty *reader, FILE *file,
  out:
   fp = NULL;
   real_file_name = NULL;
-  gram_pos.line_number = 0;
+  pos.line_number = 0;
 }
 
 char *
index 5793185ea9213d9f80990cab38645e534a64af4b..451e80575507222645905b608bc1bbda781f9a77 100644 (file)
@@ -66,7 +66,7 @@
 static const char *real_file_name;
 
 /* File name and line number.  */
-extern lex_pos_ty gram_pos;
+static lex_pos_ty pos;
 
 /* The contents of the input file.  */
 static char *contents;
@@ -127,7 +127,7 @@ phase2_getc ()
     }
 
   if (c == '\n')
-    gram_pos.line_number++;
+    pos.line_number++;
 
   return c;
 }
@@ -136,7 +136,7 @@ static void
 phase2_ungetc (int c)
 {
   if (c == '\n')
-    --gram_pos.line_number;
+    --pos.line_number;
   if (c != EOF)
     phase2_pushback[phase2_pushback_length++] = c;
 }
@@ -348,7 +348,7 @@ phase4_getuc ()
                 {
                   phase3_ungetc (c1);
                   po_xerror (PO_SEVERITY_ERROR, NULL,
-                             real_file_name, gram_pos.line_number, (size_t)(-1),
+                             real_file_name, pos.line_number, (size_t)(-1),
                              false, _("warning: invalid \\uxxxx syntax for Unicode character"));
                   return 'u';
                 }
@@ -490,7 +490,7 @@ read_escaped_string (bool in_key)
                 {
                   error_with_progname = false;
                   po_xerror (PO_SEVERITY_ERROR, NULL,
-                             real_file_name, gram_pos.line_number, (size_t)(-1),
+                             real_file_name, pos.line_number, (size_t)(-1),
                              false, _("warning: invalid Unicode character"));
                   error_with_progname = true;
                 }
@@ -510,10 +510,10 @@ read_escaped_string (bool in_key)
               if (c >= UNICODE (0xd800) && c < UNICODE (0xdc00))
                 {
                   utf16_surr = UTF16_VALUE (c);
-                  utf16_surr_line = gram_pos.line_number;
+                  utf16_surr_line = pos.line_number;
                 }
               else if (c >= UNICODE (0xdc00) && c < UNICODE (0xe000))
-                utf8_buffer_append_lone_surrogate (UTF16_VALUE (c), gram_pos.line_number);
+                utf8_buffer_append_lone_surrogate (UTF16_VALUE (c), pos.line_number);
               else
                 {
                   ucs4_t uc = UTF16_VALUE (c);
@@ -525,7 +525,7 @@ read_escaped_string (bool in_key)
                     {
                       error_with_progname = false;
                       po_xerror (PO_SEVERITY_ERROR, NULL,
-                                 real_file_name, gram_pos.line_number, (size_t)(-1),
+                                 real_file_name, pos.line_number, (size_t)(-1),
                                  false, _("warning: invalid Unicode character"));
                       error_with_progname = true;
                     }
@@ -613,8 +613,8 @@ properties_parse (abstract_catalog_reader_ty *catr, FILE *file,
 
   position = 0;
   real_file_name = real_filename;
-  gram_pos.file_name = xstrdup (real_file_name);
-  gram_pos.line_number = 1;
+  pos.file_name = xstrdup (real_file_name);
+  pos.line_number = 1;
 
   for (;;)
     {
@@ -681,7 +681,7 @@ properties_parse (abstract_catalog_reader_ty *catr, FILE *file,
           char *msgid;
           lex_pos_ty msgid_pos;
 
-          msgid_pos = gram_pos;
+          msgid_pos = pos;
           msgid = read_escaped_string (true);
           if (msgid == NULL)
             /* Skip blank line.  */
@@ -692,7 +692,7 @@ properties_parse (abstract_catalog_reader_ty *catr, FILE *file,
               lex_pos_ty msgstr_pos;
               bool force_fuzzy;
 
-              msgstr_pos = gram_pos;
+              msgstr_pos = pos;
               msgstr = read_escaped_string (false);
               if (msgstr == NULL)
                 msgstr = xstrdup ("");
@@ -713,7 +713,7 @@ properties_parse (abstract_catalog_reader_ty *catr, FILE *file,
   free (contents);
   contents = NULL;
   real_file_name = NULL;
-  gram_pos.line_number = 0;
+  pos.line_number = 0;
 }
 
 const struct catalog_input_format input_format_properties =
index 8de5dd101f0dbff92e54c6d8f5ab283ee618ccd7..6baf3ad42de352d6102167292db2fa8350c9fb93 100644 (file)
@@ -67,7 +67,7 @@
 static const char *real_file_name;
 
 /* File name and line number.  */
-extern lex_pos_ty gram_pos;
+static lex_pos_ty pos;
 
 /* The input file stream.  */
 static FILE *fp;
@@ -312,7 +312,7 @@ phase3_getc ()
   int c = phase2_getc ();
 
   if (c == '\n')
-    gram_pos.line_number++;
+    pos.line_number++;
 
   return c;
 }
@@ -321,7 +321,7 @@ static void
 phase3_ungetc (int c)
 {
   if (c == '\n')
-    --gram_pos.line_number;
+    --pos.line_number;
   phase2_ungetc (c);
 }
 
@@ -331,18 +331,18 @@ static char *
 conv_from_ucs4 (const int *buffer, size_t buflen)
 {
   unsigned char *utf8_string;
-  size_t pos;
+  size_t i;
   unsigned char *q;
 
   /* Each UCS-4 word needs 6 bytes at worst.  */
   utf8_string = XNMALLOC (6 * buflen + 1, unsigned char);
 
-  for (pos = 0, q = utf8_string; pos < buflen; )
+  for (i = 0, q = utf8_string; i < buflen; )
     {
       unsigned int uc;
       int n;
 
-      uc = buffer[pos++];
+      uc = buffer[i++];
       n = u8_uctomb (q, uc, 6);
       assert (n > 0);
       q += n;
@@ -707,9 +707,9 @@ is_quotable (int c)
 
 /* Read a key or value string.
    Return the string in UTF-8 encoding, or NULL if no string is seen.
-   Return the start position of the string in *pos.  */
+   Return the start position of the string in *start_pos.  */
 static char *
-read_string (abstract_catalog_reader_ty *catr, lex_pos_ty *pos)
+read_string (abstract_catalog_reader_ty *catr, lex_pos_ty *start_pos)
 {
   static int *buffer;
   static size_t bufmax;
@@ -725,7 +725,7 @@ read_string (abstract_catalog_reader_ty *catr, lex_pos_ty *pos)
     /* No more string.  */
     return NULL;
 
-  *pos = gram_pos;
+  *start_pos = pos;
   buflen = 0;
   if (c == '"')
     {
@@ -800,7 +800,7 @@ read_string (abstract_catalog_reader_ty *catr, lex_pos_ty *pos)
         }
       if (c == UEOF)
         po_xerror (PO_SEVERITY_ERROR, NULL,
-                   real_file_name, gram_pos.line_number, (size_t)(-1), false,
+                   real_file_name, pos.line_number, (size_t)(-1), false,
                    _("warning: unterminated string"));
     }
   else
@@ -808,7 +808,7 @@ read_string (abstract_catalog_reader_ty *catr, lex_pos_ty *pos)
       /* Read a token outside quotes.  */
       if (is_quotable (c))
         po_xerror (PO_SEVERITY_ERROR, NULL,
-                   real_file_name, gram_pos.line_number, (size_t)(-1), false,
+                   real_file_name, pos.line_number, (size_t)(-1), false,
                    _("warning: syntax error"));
       for (; c != UEOF && !is_quotable (c); c = phase4_getc (catr))
         {
@@ -834,8 +834,8 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
 {
   fp = file;
   real_file_name = real_filename;
-  gram_pos.file_name = xstrdup (real_file_name);
-  gram_pos.line_number = 1;
+  pos.file_name = xstrdup (real_file_name);
+  pos.line_number = 1;
   encoding = enc_undetermined;
   expect_fuzzy_msgstr_as_c_comment = false;
   expect_fuzzy_msgstr_as_cxx_comment = false;
@@ -870,7 +870,7 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
       if (c == UEOF)
         {
           po_xerror (PO_SEVERITY_ERROR, NULL,
-                     real_file_name, gram_pos.line_number, (size_t)(-1), false,
+                     real_file_name, pos.line_number, (size_t)(-1), false,
                      _("warning: unterminated key/value pair"));
           break;
         }
@@ -893,7 +893,7 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
           if (msgstr == NULL)
             {
               po_xerror (PO_SEVERITY_ERROR, NULL,
-                         real_file_name, gram_pos.line_number, (size_t)(-1),
+                         real_file_name, pos.line_number, (size_t)(-1),
                          false, _("warning: unterminated key/value pair"));
               break;
             }
@@ -940,7 +940,7 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
           else
             {
               po_xerror (PO_SEVERITY_ERROR, NULL,
-                         real_file_name, gram_pos.line_number, (size_t)(-1),
+                         real_file_name, pos.line_number, (size_t)(-1),
                          false,
                          _("warning: syntax error, expected ';' after string"));
               break;
@@ -949,7 +949,7 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
       else
         {
           po_xerror (PO_SEVERITY_ERROR, NULL,
-                     real_file_name, gram_pos.line_number, (size_t)(-1), false,
+                     real_file_name, pos.line_number, (size_t)(-1), false,
                      _("warning: syntax error, expected '=' or ';' after string"));
           break;
         }
@@ -957,7 +957,7 @@ stringtable_parse (abstract_catalog_reader_ty *catr, FILE *file,
 
   fp = NULL;
   real_file_name = NULL;
-  gram_pos.line_number = 0;
+  pos.line_number = 0;
 }
 
 const struct catalog_input_format input_format_stringtable =