[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * NEWS, tp/Texinfo/ParserNonXS.pm, tp/Texinfo/XS/
From: |
Patrice Dumas |
Subject: |
branch master updated: * NEWS, tp/Texinfo/ParserNonXS.pm, tp/Texinfo/XS/parsetexi/command_data.txt, tp/Texinfo/XS/parsetexi/commands.h, tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting): add contain_simple_text flag. Set @w to be contain_simple_text, plain text is too restrictive, there are many uses of indicatric commands in @w in the Texinfo manual. |
Date: |
Sun, 02 Oct 2022 11:25:05 -0400 |
This is an automated email from the git hooks/post-receive script.
pertusus pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new c5800ca1a7 * NEWS, tp/Texinfo/ParserNonXS.pm,
tp/Texinfo/XS/parsetexi/command_data.txt, tp/Texinfo/XS/parsetexi/commands.h,
tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting): add contain_simple_text
flag. Set @w to be contain_simple_text, plain text is too restrictive, there
are many uses of indicatric commands in @w in the Texinfo manual.
c5800ca1a7 is described below
commit c5800ca1a7e2bc8c14d81b83fa72b530292104ad
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Oct 2 17:24:54 2022 +0200
* NEWS, tp/Texinfo/ParserNonXS.pm,
tp/Texinfo/XS/parsetexi/command_data.txt,
tp/Texinfo/XS/parsetexi/commands.h, tp/Texinfo/XS/parsetexi/parser.c
(check_valid_nesting): add contain_simple_text flag. Set @w to be
contain_simple_text, plain text is too restrictive, there are many
uses of indicatric commands in @w in the Texinfo manual.
---
ChangeLog | 9 ++
NEWS | 2 +-
tp/Texinfo/ParserNonXS.pm | 4 +
tp/Texinfo/XS/parsetexi/command_data.txt | 2 +-
tp/Texinfo/XS/parsetexi/commands.h | 5 +-
tp/Texinfo/XS/parsetexi/parser.c | 3 +-
tp/maintain/regenerate_commands_perl_info.pm | 108 ---------------------
tp/t/results/coverage_braces/test_w.pl | 12 +--
.../formats_encodings/at_commands_in_refs.pl | 36 -------
.../at_commands_in_refs_latin1.pl | 36 -------
.../formats_encodings/at_commands_in_refs_utf8.pl | 36 -------
tp/t/results/indices/w_lines_count.pl | 12 +--
tp/t/results/misc_commands/test_allowcodebreaks.pl | 102 +------------------
13 files changed, 22 insertions(+), 345 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6c88396cd5..e420db310c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2022-10-02 Patrice Dumas <pertusus@free.fr>
+
+ * NEWS, tp/Texinfo/ParserNonXS.pm,
+ tp/Texinfo/XS/parsetexi/command_data.txt,
+ tp/Texinfo/XS/parsetexi/commands.h, tp/Texinfo/XS/parsetexi/parser.c
+ (check_valid_nesting): add contain_simple_text flag. Set @w to be
+ contain_simple_text, plain text is too restrictive, there are many
+ uses of indicatric commands in @w in the Texinfo manual.
+
2022-10-02 Patrice Dumas <pertusus@free.fr>
* maintain/regenerate_commands_perl_info.pl, Makefile.am: rename
diff --git a/NEWS b/NEWS
index 8f61ad116a..558cac24e9 100644
--- a/NEWS
+++ b/NEWS
@@ -13,7 +13,7 @@ See the manual for detailed information.
* texi2any
. LaTeX added as an output format, selected with --latex
. EPUB 3 added as an output format, selected with --epub3
- . Warn if @-commands other than accent, glyphs and symbols appear in @w
+ . Warn if full text commands (@ref, @footnote, @anchor) appear in @w
. reform throughout the code in general
. thorough review of character encoding issues
. new customization variables involved with character encoding:
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index 28689e056a..e09927c161 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -76,6 +76,7 @@ use Storable qw(dclone); # standard in 5.007003
# commands definitions
use Texinfo::Common;
+use Texinfo::Commands;
# Error reporting and counting
use Texinfo::Report;
@@ -269,6 +270,7 @@ my %commands_args_number =
%Texinfo::Common::commands_args_number;
my %accent_commands = %Texinfo::Common::accent_commands;
my %context_brace_commands = %Texinfo::Common::context_brace_commands;
my %contain_plain_text_commands =
%Texinfo::Common::contain_plain_text_commands;
+my %contain_simple_text_commands =
%Texinfo::Commands::contain_simple_text_commands;
my %block_commands = %Texinfo::Common::block_commands;
my %blockitem_commands = %Texinfo::Common::blockitem_commands;
my %close_paragraph_commands = %Texinfo::Common::close_paragraph_commands;
@@ -478,6 +480,8 @@ foreach my $command (keys (%brace_commands)) {
and not $contain_plain_text_commands{$command}) {
$simple_text_commands{$command} = 1;
}
+ $simple_text_commands{$command} = 1
+ if $contain_simple_text_commands{$command};
}
# %brace_commands 'context'
diff --git a/tp/Texinfo/XS/parsetexi/command_data.txt
b/tp/Texinfo/XS/parsetexi/command_data.txt
index a067dabff3..286cd2f857 100644
--- a/tp/Texinfo/XS/parsetexi/command_data.txt
+++ b/tp/Texinfo/XS/parsetexi/command_data.txt
@@ -312,7 +312,7 @@ seealso brace
BRACE_arguments 1
value brace BRACE_special
verb brace BRACE_special
-w brace,contain_plain_text BRACE_special
+w brace,contain_simple_text BRACE_special
# other brace commands, leading and trailing spaces not ignored
dmn brace,contain_plain_text BRACE_other 1
diff --git a/tp/Texinfo/XS/parsetexi/commands.h
b/tp/Texinfo/XS/parsetexi/commands.h
index ac564e2053..888f6482e3 100644
--- a/tp/Texinfo/XS/parsetexi/commands.h
+++ b/tp/Texinfo/XS/parsetexi/commands.h
@@ -72,10 +72,9 @@ void wipe_user_commands (void);
#define CF_def 0x00020000
#define CF_def_alias 0x00040000
#define CF_contain_plain_text 0x00080000
-/* CF_align is not used, in Common */
+/* CF_align is not used */
#define CF_align 0x00100000
-/* CF_other is not used */
-#define CF_other 0x00200000
+#define CF_contain_simple_text 0x00200000
#define CF_preformatted 0x00400000
#define CF_preformatted_code 0x00800000
/* CF_item_container is not used */
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 45d30d06fb..17f8997578 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -922,7 +922,8 @@ check_valid_nesting (ELEMENT *current, enum command_id cmd)
// much TODO here.
- if ((outer_flags & CF_line
+ if (outer_flags & CF_contain_simple_text
+ || (outer_flags & CF_line
&& (command_data(outer).data == LINE_specific
|| (command_data(outer).data == LINE_line
&& !(outer_flags & (CF_def | CF_sectioning_heading)))
diff --git a/tp/maintain/regenerate_commands_perl_info.pm
b/tp/maintain/regenerate_commands_perl_info.pm
deleted file mode 100755
index 4a2d44e06e..0000000000
--- a/tp/maintain/regenerate_commands_perl_info.pm
+++ /dev/null
@@ -1,108 +0,0 @@
-#! /usr/bin/env perl
-
-# regenerate_perl_command_infos.pl: generate perl hashes based on
-# commands information setup for the XS parser.
-#
-# Copyright 2022 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License,
-# or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-use strict;
-
-# emulates -w
-BEGIN
-{
- $^W = 1;
-}
-
-my %command_categories;
-my %flags_hashes;
-
-while (<>) {
- if (not (/^#/ or /^ *$/)) {
- my ($command, $flags, $data, $args_nr) = split;
- my @flags = split /,/, $flags;
- #print STDERR "$command, ".join('|',@flags).", $data, $args_nr\n";
- my $category;
- my $type = 'other';
- if (defined($data) and $data ne '') {
- if ($data =~ /^([A-Z]+)_([a-z_]+)$/) {
- $category = lc($1);
- $type = $2;
- } else {
- die "$command: abnormal data: $data\n";
- }
- }
- if (defined($category)) {
- $command_categories{$category} = {} if (!$command_categories{$category});
- if (!grep {$_ eq $category} @flags) {
- die "$command: ".join('|',@flags).": $category: not in flags\n";
- }
- } else {
- my @categories = grep {exists($command_categories{$_})} @flags;
- if (scalar(@categories) == 0) {
- die "$command: ".join('|',@flags).": cannot find a category ("
- .join('|', sort(keys(%command_categories))).")\n";
- } elsif (scalar(@categories) > 1) {
- warn "$command: ".join('|',@flags)
- .": multiple categories: ".join('|',@categories)."\n";
- }
- $category = $categories[0];
- }
- # remove _LINE in item_LINE
- my $uc_category = uc($category);
- $command =~ s/_$uc_category$//;
- $command_categories{$category}->{$type} = []
- if not ($command_categories{$category}->{$type});
- push @{$command_categories{$category}->{$type}}, $command;
- # gives the same result as {$_ ne $category} as the
- # command with multiple categories, txiinternalvalue appears
- # at the very beginning of the file
- foreach my $flag (grep {not $command_categories{$_}} @flags) {
- $flags_hashes{$flag} = [] if (!$flags_hashes{$flag});
- push @{$flags_hashes{$flag}}, $command;
- }
- }
-}
-
-#open (OUT, ">Texinfo/Commands.pm") or die "Open Texinfo/Commands.pm: $!\n";
-
-print STDOUT "# Automatically generated from $0\n\n";
-
-print STDOUT "package Texinfo::Commands;\n\n";
-
-foreach my $category (sort(keys(%command_categories))) {
- print STDOUT "our %${category}_commands = (\n";
- foreach my $type (sort(keys(%{$command_categories{$category}}))) {
- foreach my $command (sort(@{$command_categories{$category}->{$type}})) {
- print STDOUT ' '.sprintf('%-25s', '"'.$command.'"')." => '$type',\n";
- }
- }
- print STDOUT ");\n\n";
-}
-
-print STDOUT "\n";
-print STDOUT "# flag hashes\n";
-
-foreach my $hash_flag (sort(keys(%flags_hashes))) {
- # happens for 'txiinternalvalue' which is also brace
- next if ($command_categories{$hash_flag});
- print STDOUT "our %${hash_flag}_commands = (\n";
- foreach my $command (sort(@{$flags_hashes{$hash_flag}})) {
- print STDOUT ' '.sprintf('%-25s', '"'.$command.'"')." => 1,\n";
- }
- print STDOUT ");\n\n";
-}
-
-print STDOUT "1;\n";
diff --git a/tp/t/results/coverage_braces/test_w.pl
b/tp/t/results/coverage_braces/test_w.pl
index 2d3fa80321..452b3ced60 100644
--- a/tp/t/results/coverage_braces/test_w.pl
+++ b/tp/t/results/coverage_braces/test_w.pl
@@ -903,17 +903,7 @@ convention should be followed in Texinfo files. TeX
converts
two single quotes to left- and right-hand doubled.
';
-$result_errors{'test_w'} = [
- {
- 'error_line' => 'warning: @t should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 34,
- 'macro' => '',
- 'text' => '@t should not appear in @w',
- 'type' => 'warning'
- }
-];
+$result_errors{'test_w'} = [];
$result_floats{'test_w'} = {};
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs.pl
b/tp/t/results/formats_encodings/at_commands_in_refs.pl
index 8aa43d4809..2302944278 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs.pl
@@ -21817,15 +21817,6 @@
$result_menus{'at_commands_in_refs'}{'structure'}{'menu_child'}{'structure'}{'me
$result_menus{'at_commands_in_refs'}{'structure'}{'menu_child'}{'structure'}{'menu_up'}
= $result_menus{'at_commands_in_refs'};
$result_errors{'at_commands_in_refs'} = [
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 25,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @node
',
@@ -21844,24 +21835,6 @@ $result_errors{'at_commands_in_refs'} = [
'text' => '@verb should not appear in @chapter',
'type' => 'warning'
},
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 100,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 101,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @ref
',
@@ -21870,15 +21843,6 @@ $result_errors{'at_commands_in_refs'} = [
'macro' => '',
'text' => '@verb should not appear in @ref',
'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 165,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
}
];
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
b/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
index 0bea63b210..7db93e661d 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
@@ -21895,15 +21895,6 @@
$result_menus{'at_commands_in_refs_latin1'}{'structure'}{'menu_child'}{'structur
$result_menus{'at_commands_in_refs_latin1'}{'structure'}{'menu_child'}{'structure'}{'menu_up'}
= $result_menus{'at_commands_in_refs_latin1'};
$result_errors{'at_commands_in_refs_latin1'} = [
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 28,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @node
',
@@ -21922,24 +21913,6 @@ $result_errors{'at_commands_in_refs_latin1'} = [
'text' => '@verb should not appear in @chapter',
'type' => 'warning'
},
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 103,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 104,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @ref
',
@@ -21948,15 +21921,6 @@ $result_errors{'at_commands_in_refs_latin1'} = [
'macro' => '',
'text' => '@verb should not appear in @ref',
'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 168,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
}
];
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
b/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
index a87358033d..e035977d8c 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
@@ -21895,15 +21895,6 @@
$result_menus{'at_commands_in_refs_utf8'}{'structure'}{'menu_child'}{'structure'
$result_menus{'at_commands_in_refs_utf8'}{'structure'}{'menu_child'}{'structure'}{'menu_up'}
= $result_menus{'at_commands_in_refs_utf8'};
$result_errors{'at_commands_in_refs_utf8'} = [
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 28,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @node
',
@@ -21922,24 +21913,6 @@ $result_errors{'at_commands_in_refs_utf8'} = [
'text' => '@verb should not appear in @chapter',
'type' => 'warning'
},
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 103,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 104,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
- },
{
'error_line' => 'warning: @verb should not appear in @ref
',
@@ -21948,15 +21921,6 @@ $result_errors{'at_commands_in_refs_utf8'} = [
'macro' => '',
'text' => '@verb should not appear in @ref',
'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @b should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 168,
- 'macro' => '',
- 'text' => '@b should not appear in @w',
- 'type' => 'warning'
}
];
diff --git a/tp/t/results/indices/w_lines_count.pl
b/tp/t/results/indices/w_lines_count.pl
index d5982dcea7..facdad5fe7 100644
--- a/tp/t/results/indices/w_lines_count.pl
+++ b/tp/t/results/indices/w_lines_count.pl
@@ -392,17 +392,7 @@ $result_menus{'w_lines_count'} = {
}
};
-$result_errors{'w_lines_count'} = [
- {
- 'error_line' => 'warning: @code should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 5,
- 'macro' => '',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- }
-];
+$result_errors{'w_lines_count'} = [];
$result_floats{'w_lines_count'} = {};
diff --git a/tp/t/results/misc_commands/test_allowcodebreaks.pl
b/tp/t/results/misc_commands/test_allowcodebreaks.pl
index b0b3d892ee..e3767bc9af 100644
--- a/tp/t/results/misc_commands/test_allowcodebreaks.pl
+++ b/tp/t/results/misc_commands/test_allowcodebreaks.pl
@@ -2659,107 +2659,7 @@ $result_menus{'test_allowcodebreaks'} = {
}
};
-$result_errors{'test_allowcodebreaks'} = [
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @samp should not appear in @w (possibly
involving @testallowcodebreakspara)
-',
- 'file_name' => '',
- 'line_nr' => 29,
- 'macro' => 'testallowcodebreakspara',
- 'text' => '@samp should not appear in @w',
- 'type' => 'warning'
- },
- {
- 'error_line' => 'warning: @code should not appear in @w
-',
- 'file_name' => '',
- 'line_nr' => 33,
- 'macro' => '',
- 'text' => '@code should not appear in @w',
- 'type' => 'warning'
- }
-];
+$result_errors{'test_allowcodebreaks'} = [];
$result_floats{'test_allowcodebreaks'} = {};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * NEWS, tp/Texinfo/ParserNonXS.pm, tp/Texinfo/XS/parsetexi/command_data.txt, tp/Texinfo/XS/parsetexi/commands.h, tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting): add contain_simple_text flag. Set @w to be contain_simple_text, plain text is too restrictive, there are many uses of indicatric commands in @w in the Texinfo manual.,
Patrice Dumas <=