diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-11-15 16:36:08 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-11-15 16:36:08 +0000 |
commit | db3d7a26fc91ea36f0780dcc3bcc59efdab02d41 (patch) | |
tree | f1e4dcd66841437a53a8fad6c9efadbd060f692a /sys-apps/texinfo/files | |
parent | 55cd3ff92ff96fafc75066838cfc2af06df3a296 (diff) |
gentoo auto-resync : 15:11:2023 - 16:36:08
Diffstat (limited to 'sys-apps/texinfo/files')
5 files changed, 472 insertions, 0 deletions
diff --git a/sys-apps/texinfo/files/7.1/0001-tp-Texinfo-XS-xspara.c-get_utf8_codepoint.patch b/sys-apps/texinfo/files/7.1/0001-tp-Texinfo-XS-xspara.c-get_utf8_codepoint.patch new file mode 100644 index 000000000000..8aed47b7bc24 --- /dev/null +++ b/sys-apps/texinfo/files/7.1/0001-tp-Texinfo-XS-xspara.c-get_utf8_codepoint.patch @@ -0,0 +1,103 @@ +From c76bcd0feed005aaf9db28a76f4883f3ae98295b Mon Sep 17 00:00:00 2001 +From: Gavin Smith <gavinsmith0123@gmail.com> +Date: Mon, 23 Oct 2023 19:51:00 +0100 +Subject: [PATCH 1/5] * tp/Texinfo/XS/xspara.c (get_utf8_codepoint): Wrapper + for mbrtowc/btowc. [_WIN32]: Do not call btowc, as it was tested to be very + slow on MinGW. Report from Eli Zaretskii. + +--- + ChangeLog | 7 ++++++ + tp/Texinfo/XS/xspara.c | 48 +++++++++++++++++++++++------------------- + 2 files changed, 33 insertions(+), 22 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index e619109f5b..c4379ec56b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2023-10-23 Gavin Smith <gavinsmith0123@gmail.com> ++ ++ * tp/Texinfo/XS/xspara.c (get_utf8_codepoint): ++ Wrapper for mbrtowc/btowc. ++ [_WIN32]: Do not call btowc, as it was tested to be very slow ++ on MinGW. Report from Eli Zaretskii. ++ + 2023-10-18 Gavin Smith <gavinsmith0123@gmail.com> + + Texinfo 7.1 +diff --git a/tp/Texinfo/XS/xspara.c b/tp/Texinfo/XS/xspara.c +index 7c6895a7ff..e1cddcdc2a 100644 +--- a/tp/Texinfo/XS/xspara.c ++++ b/tp/Texinfo/XS/xspara.c +@@ -684,6 +684,30 @@ xspara_end (void) + /* characters triggering an end of sentence */ + #define end_sentence_characters ".?!" + ++/* Wrapper for mbrtowc. Set *PWC and return length of codepoint in bytes. */ ++size_t ++get_utf8_codepoint (wchar_t *pwc, const char *mbs, size_t n) ++{ ++#ifdef _WIN32 ++ /* Use the above implementation of mbrtowc. Do not use btowc as ++ does not exist as standard on MS-Windows, and was tested to be ++ very slow on MinGW. */ ++ return mbrtowc (pwc, mbs, n, NULL); ++#else ++ if (!PRINTABLE_ASCII(*mbs)) ++ { ++ return mbrtowc (pwc, mbs, n, NULL); ++ } ++ else ++ { ++ /* Functionally the same as mbrtowc but (tested) slightly quicker. */ ++ *pwc = btowc (*mbs); ++ return 1; ++ } ++#endif ++} ++ ++ + /* Add WORD to paragraph in RESULT, not refilling WORD. If we go past the end + of the line start a new one. TRANSPARENT means that the letters in WORD + are ignored for the purpose of deciding whether a full stop ends a sentence +@@ -730,18 +754,7 @@ xspara__add_next (TEXT *result, char *word, int word_len, int transparent) + if (!strchr (end_sentence_characters + after_punctuation_characters, *p)) + { +- if (!PRINTABLE_ASCII(*p)) +- { +- wchar_t wc = L'\0'; +- mbrtowc (&wc, p, len, NULL); +- state.last_letter = wc; +- break; +- } +- else +- { +- state.last_letter = btowc (*p); +- break; +- } ++ get_utf8_codepoint (&state.last_letter, p, len); + } + } + } +@@ -1013,16 +1026,7 @@ xspara_add_text (char *text, int len) + } + + /************** Not a white space character. *****************/ +- if (!PRINTABLE_ASCII(*p)) +- { +- char_len = mbrtowc (&wc, p, len, NULL); +- } +- else +- { +- /* Functonally the same as mbrtowc but (tested) slightly quicker. */ +- char_len = 1; +- wc = btowc (*p); +- } ++ char_len = get_utf8_codepoint (&wc, p, len); + + if ((long) char_len == 0) + break; /* Null character. Shouldn't happen. */ +-- +2.42.1 + diff --git a/sys-apps/texinfo/files/7.1/0002-tp-Texinfo-XS-xspara.c-xspara__add_next-Do-not-pass.patch b/sys-apps/texinfo/files/7.1/0002-tp-Texinfo-XS-xspara.c-xspara__add_next-Do-not-pass.patch new file mode 100644 index 000000000000..242f90add70d --- /dev/null +++ b/sys-apps/texinfo/files/7.1/0002-tp-Texinfo-XS-xspara.c-xspara__add_next-Do-not-pass.patch @@ -0,0 +1,44 @@ +From f038d3f13f95b5494d5523f2af9dec59ff89b79d Mon Sep 17 00:00:00 2001 +From: Eli Zaretskii <eliz@gnu.org> +Date: Wed, 25 Oct 2023 22:35:37 +0100 +Subject: [PATCH 2/5] * tp/Texinfo/XS/xspara.c (xspara__add_next): Do not pass + pointer to wint_t as a pointer to wchar_t, as the two types may be of + different sizes. + +--- + ChangeLog | 6 ++++++ + tp/Texinfo/XS/xspara.c | 4 +++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index c4379ec56b..3d13a15517 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2023-10-25 Eli Zaretskii <eliz@gnu.org> ++ ++ * tp/Texinfo/XS/xspara.c (xspara__add_next): Do not pass ++ pointer to wint_t as a pointer to wchar_t, as the two types ++ may be of different sizes. ++ + 2023-10-23 Gavin Smith <gavinsmith0123@gmail.com> + + * tp/Texinfo/XS/xspara.c (get_utf8_codepoint): +diff --git a/tp/Texinfo/XS/xspara.c b/tp/Texinfo/XS/xspara.c +index e1cddcdc2a..130e43a4db 100644 +--- a/tp/Texinfo/XS/xspara.c ++++ b/tp/Texinfo/XS/xspara.c +@@ -754,7 +754,9 @@ xspara__add_next (TEXT *result, char *word, int word_len, int transparent) + if (!strchr (end_sentence_characters + after_punctuation_characters, *p)) + { +- get_utf8_codepoint (&state.last_letter, p, len); ++ wchar_t wc; ++ get_utf8_codepoint (&wc, p, len); ++ state.last_letter = wc; + } + } + } +-- +2.42.1 + diff --git a/sys-apps/texinfo/files/7.1/0003-info-scan.c-write_tag_contents-Check-if-added-text-i.patch b/sys-apps/texinfo/files/7.1/0003-info-scan.c-write_tag_contents-Check-if-added-text-i.patch new file mode 100644 index 000000000000..b3fbc85f461b --- /dev/null +++ b/sys-apps/texinfo/files/7.1/0003-info-scan.c-write_tag_contents-Check-if-added-text-i.patch @@ -0,0 +1,51 @@ +https://lists.gnu.org/archive/html/bug-texinfo/2023-11/msg00001.html + +From 12ad80f3a1cfa78c8a7b3a45458df7e07251317d Mon Sep 17 00:00:00 2001 +From: Gavin Smith <gavinsmith0123@gmail.com> +Date: Sat, 4 Nov 2023 10:38:48 +0000 +Subject: [PATCH 3/5] * info/scan.c (write_tag_contents): Check if added text + is of zero length in order to avoid subsequently calling memcpy with a null + source argument. Report with -fsanitize=undefined on amd64 from Sam James + <sam@gentoo.org>. + +--- + ChangeLog | 7 +++++++ + info/scan.c | 4 ++-- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 3d13a15517..efbb3b22d1 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2023-11-04 Gavin Smith <gavinsmith0123@gmail.com> ++ ++ * info/scan.c (write_tag_contents): Check if added text is of ++ zero length in order to avoid subsequently calling memcpy with ++ a null source argument. Report with -fsanitize=undefined on amd64 ++ from Sam James <sam@gentoo.org>. ++ + 2023-10-25 Eli Zaretskii <eliz@gnu.org> + + * tp/Texinfo/XS/xspara.c (xspara__add_next): Do not pass +diff --git a/info/scan.c b/info/scan.c +index d6183ae9ae..bdf272f9bf 100644 +--- a/info/scan.c ++++ b/info/scan.c +@@ -925,11 +925,11 @@ write_extra_bytes_to_output (char *input, long n) + } + + /* Like write_extra_bytes_to_output, but writes bytes even when +- preprocess_nodes=Off. */ ++ preprocess_nodes=Off. Note n could be 0 for an index tag. */ + static void + write_tag_contents (char *input, long n) + { +- if (rewrite_p) ++ if (rewrite_p && n > 0) + { + text_buffer_add_string (&output_buf, input, n); + output_bytes_difference -= n; +-- +2.42.1 + diff --git a/sys-apps/texinfo/files/7.1/0004-tp-Texinfo-XS-parsetexi-tree.c-reset_obstacks.patch b/sys-apps/texinfo/files/7.1/0004-tp-Texinfo-XS-parsetexi-tree.c-reset_obstacks.patch new file mode 100644 index 000000000000..6f57363fc435 --- /dev/null +++ b/sys-apps/texinfo/files/7.1/0004-tp-Texinfo-XS-parsetexi-tree.c-reset_obstacks.patch @@ -0,0 +1,53 @@ +https://lists.gnu.org/archive/html/bug-texinfo/2023-11/msg00000.html +https://lists.gnu.org/archive/html/bug-texinfo/2023-11/msg00016.html +https://lists.gnu.org/archive/html/bug-texinfo/2023-11/msg00073.html + +From 81a854e22ca2449f2351436a863e5262935f5dc0 Mon Sep 17 00:00:00 2001 +From: Gavin Smith <gavinsmith0123@gmail.com> +Date: Mon, 13 Nov 2023 18:43:40 +0000 +Subject: [PATCH 4/5] * tp/Texinfo/XS/parsetexi/tree.c (reset_obstacks): Call + obstack_alignment_mask to use 8-byte alignment. Needed for Debian on + sparc64. Report of "Bus error" from John Paul Adrian Glaubitz + <glaubitz@physik.fu-berlin.de>. + +--- + ChangeLog | 7 +++++++ + tp/Texinfo/XS/parsetexi/tree.c | 7 ++++++- + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index efbb3b22d1..a146820671 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2023-11-13 Gavin Smith <gavinsmith0123@gmail.com> ++ ++ * tp/Texinfo/XS/parsetexi/tree.c (reset_obstacks): ++ Call obstack_alignment_mask to use 8-byte alignment. Needed ++ for Debian on sparc64. Report of "Bus error" from ++ John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>. ++ + 2023-11-04 Gavin Smith <gavinsmith0123@gmail.com> + + * info/scan.c (write_tag_contents): Check if added text is of +diff --git a/tp/Texinfo/XS/parsetexi/tree.c b/tp/Texinfo/XS/parsetexi/tree.c +index f2d69e0454..09db6fc151 100644 +--- a/tp/Texinfo/XS/parsetexi/tree.c ++++ b/tp/Texinfo/XS/parsetexi/tree.c +@@ -43,7 +43,12 @@ reset_obstacks (void) + if (obs_element_first) + obstack_free (&obs_element, obs_element_first); + else +- obstack_init (&obs_element); ++ { ++ /* Specify 8-byte alignment. Needed for SPARC. */ ++ obstack_alignment_mask (&obs_element) = 7; ++ ++ obstack_init (&obs_element); ++ } + + obs_element_first = obstack_alloc (&obs_element, sizeof (int)); + } +-- +2.42.1 + diff --git a/sys-apps/texinfo/files/7.1/0005-tp-Texinfo-command_data.txt.patch b/sys-apps/texinfo/files/7.1/0005-tp-Texinfo-command_data.txt.patch new file mode 100644 index 000000000000..59b590617964 --- /dev/null +++ b/sys-apps/texinfo/files/7.1/0005-tp-Texinfo-command_data.txt.patch @@ -0,0 +1,221 @@ +From f1f8920d798dbcb20cb775b46a54cd81847295fd Mon Sep 17 00:00:00 2001 +From: Gavin Smith <gavinsmith0123@gmail.com> +Date: Tue, 14 Nov 2023 21:53:49 +0000 +Subject: [PATCH 5/5] * tp/Texinfo/command_data.txt (item_LINE, itemx, + defblock, defline, deftypeline): Remove contain_basic_inline flag. There is + no reason an @anchor should not occur inside @item, inside @table, or the + other commands, as no index entry is being created with the @anchor. + +Report from Ihor Radchenko <yantar92@posteo.net> for Org mode manual. +--- + ChangeLog | 10 +++ + tp/Texinfo/command_data.txt | 10 +-- + tp/t/results/invalid_nestings/in_table.pl | 90 ------------------- + .../invalid_nestings/table_on_item_line.pl | 9 -- + 4 files changed, 15 insertions(+), 104 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index a146820671..0dcdb1a904 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,13 @@ ++2023-11-14 Gavin Smith <gavinsmith0123@gmail.com> ++ ++ * tp/Texinfo/command_data.txt ++ (item_LINE, itemx, defblock, defline, deftypeline): ++ Remove contain_basic_inline flag. There is no reason an @anchor ++ should not occur inside @item, inside @table, or the other ++ commands, as no index entry is being created with the @anchor. ++ ++ Report from Ihor Radchenko <yantar92@posteo.net> for Org mode manual. ++ + 2023-11-13 Gavin Smith <gavinsmith0123@gmail.com> + + * tp/Texinfo/XS/parsetexi/tree.c (reset_obstacks): +diff --git a/tp/Texinfo/command_data.txt b/tp/Texinfo/command_data.txt +index bcda173e2c..c9b5f51569 100644 +--- a/tp/Texinfo/command_data.txt ++++ b/tp/Texinfo/command_data.txt +@@ -253,8 +253,8 @@ printindex line,formattable_line,close_paragraph,global,contain_pla + listoffloats line,formattable_line,close_paragraph,global,contain_basic_inline LINE_line + exdent line,formatted_line,close_paragraph LINE_line + # or nobrace skipspace, depending on the context +-item_LINE line,formatted_line,close_paragraph,contain_basic_inline LINE_line +-itemx line,formatted_line,close_paragraph,contain_basic_inline LINE_line ++item_LINE line,formatted_line,close_paragraph LINE_line ++itemx line,formatted_line,close_paragraph LINE_line + nodedescription line,close_paragraph LINE_line + # in index entries + subentry line,in_index,contain_basic_inline LINE_line +@@ -494,9 +494,9 @@ defmethod block,def,contain_basic_inline,def_alias,close_paragraph + deftypemethod block,def,contain_basic_inline,def_alias,close_paragraph BLOCK_def + + # generic, no automatic index +-defblock block,contain_basic_inline,close_paragraph BLOCK_def +-defline line,def,contain_basic_inline,close_paragraph LINE_line +-deftypeline line,def,contain_basic_inline,close_paragraph LINE_line ++defblock block,close_paragraph BLOCK_def ++defline line,def,close_paragraph LINE_line ++deftypeline line,def,close_paragraph LINE_line + + # def*x + deffnx line,def,contain_basic_inline,close_paragraph LINE_line +diff --git a/tp/t/results/invalid_nestings/in_table.pl b/tp/t/results/invalid_nestings/in_table.pl +index f4dcef1141..76eea8b3b4 100644 +--- a/tp/t/results/invalid_nestings/in_table.pl ++++ b/tp/t/results/invalid_nestings/in_table.pl +@@ -1107,42 +1107,6 @@ $result_errors{'in_table'} = [ + 'text' => '@indent should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @indent should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 9, +- 'macro' => '', +- 'text' => '@indent should not appear on @item line', +- 'type' => 'warning' +- }, +- { +- 'error_line' => 'warning: @titlefont should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 9, +- 'macro' => '', +- 'text' => '@titlefont should not appear on @item line', +- 'type' => 'warning' +- }, +- { +- 'error_line' => 'warning: @anchor should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 9, +- 'macro' => '', +- 'text' => '@anchor should not appear on @item line', +- 'type' => 'warning' +- }, +- { +- 'error_line' => 'warning: @footnote should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 9, +- 'macro' => '', +- 'text' => '@footnote should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'warning: @exdent should only appear at the beginning of a line + ', +@@ -1161,24 +1125,6 @@ $result_errors{'in_table'} = [ + 'text' => '@exdent should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @exdent should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 9, +- 'macro' => '', +- 'text' => '@exdent should not appear on @item line', +- 'type' => 'warning' +- }, +- { +- 'error_line' => 'warning: @ref should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 11, +- 'macro' => '', +- 'text' => '@ref should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => '@ref missing closing brace + ', +@@ -1206,15 +1152,6 @@ $result_errors{'in_table'} = [ + 'text' => '@center should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @center should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 13, +- 'macro' => '', +- 'text' => '@center should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'warning: @cindex should not appear in @item + ', +@@ -1224,15 +1161,6 @@ $result_errors{'in_table'} = [ + 'text' => '@cindex should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @cindex should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 14, +- 'macro' => '', +- 'text' => '@cindex should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'warning: @cindex should not appear in @item + ', +@@ -1242,15 +1170,6 @@ $result_errors{'in_table'} = [ + 'text' => '@cindex should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @cindex should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 18, +- 'macro' => '', +- 'text' => '@cindex should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'warning: @cindex should not appear in @item + ', +@@ -1260,15 +1179,6 @@ $result_errors{'in_table'} = [ + 'text' => '@cindex should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @cindex should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 21, +- 'macro' => '', +- 'text' => '@cindex should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'warning: empty index key in @item + ', +diff --git a/tp/t/results/invalid_nestings/table_on_item_line.pl b/tp/t/results/invalid_nestings/table_on_item_line.pl +index b1184ba915..51ba523fd7 100644 +--- a/tp/t/results/invalid_nestings/table_on_item_line.pl ++++ b/tp/t/results/invalid_nestings/table_on_item_line.pl +@@ -273,15 +273,6 @@ $result_errors{'table_on_item_line'} = [ + 'text' => '@table should not appear in @item', + 'type' => 'warning' + }, +- { +- 'error_line' => 'warning: @table should not appear on @item line +-', +- 'file_name' => '', +- 'line_nr' => 2, +- 'macro' => '', +- 'text' => '@table should not appear on @item line', +- 'type' => 'warning' +- }, + { + 'error_line' => 'no matching `@end table\' + ', +-- +2.42.1 + |