at master 1.7 kB view raw
1From: Bruno Haible <bruno@clisp.org> 2Date: Mon, 7 Jul 2025 07:02:41 +0000 (+0200) 3Subject: xgettext: Perl: Fix bug with comment lines longer than 1024 (regr. 2024-09-26). 4X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff_plain;h=f98de965a08d1883a46ba5411922b54cc5125f14 5 6xgettext: Perl: Fix bug with comment lines longer than 1024 (regr. 2024-09-26). 7 8Reported by Alyssa Ross <hi@alyssa.is> in 9<https://lists.gnu.org/archive/html/bug-gettext/2025-07/msg00009.html>. 10 11* gettext-tools/src/x-perl.c (phase2_getc): Move the sb_free call until after 12the savable_comment_add call. 13--- 14 15diff --git a/gettext-tools/src/x-perl.c b/gettext-tools/src/x-perl.c 16index d3aa50476..312fef371 100644 17--- a/gettext-tools/src/x-perl.c 18+++ b/gettext-tools/src/x-perl.c 19@@ -558,7 +558,6 @@ phase2_getc (struct perl_extractor *xp) 20 { 21 int lineno; 22 int c; 23- char *utf8_string; 24 25 c = phase1_getc (xp); 26 if (c == '#') 27@@ -587,12 +586,13 @@ phase2_getc (struct perl_extractor *xp) 28 sb_xappend1 (&buffer, c); 29 } 30 /* Convert it to UTF-8. */ 31- utf8_string = 32- from_current_source_encoding (sb_xcontents_c (&buffer), lc_comment, 33+ const char *contents = sb_xcontents_c (&buffer); 34+ char *utf8_contents = 35+ from_current_source_encoding (contents, lc_comment, 36 logical_file_name, lineno); 37- sb_free (&buffer); 38 /* Save it until we encounter the corresponding string. */ 39- savable_comment_add (utf8_string); 40+ savable_comment_add (utf8_contents); 41+ sb_free (&buffer); 42 xp->last_comment_line = lineno; 43 } 44 return c;