[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Convert/Plaintext.pm t/05par...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Convert/Plaintext.pm t/05par... |
Date: |
Tue, 23 Nov 2010 22:07:41 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 10/11/23 22:07:41
Modified files:
tp/Texinfo/Convert: Plaintext.pm
tp/t : 05paragraph.t
Added files:
tp/t/results/paragraph: paragraph_indent_asis.pl
Log message:
Handle @firstparagraphindent asis.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/05paragraph.t?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/paragraph/paragraph_indent_asis.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- Texinfo/Convert/Plaintext.pm 23 Nov 2010 19:46:37 -0000 1.19
+++ Texinfo/Convert/Plaintext.pm 23 Nov 2010 22:07:40 -0000 1.20
@@ -267,6 +267,7 @@
}];
$converter->{'formatters'} = [$converter->new_formatter('line')];
$converter->{'formatters'}->[-1]->{'_top_formatter'} = 1;
+ %{$converter->{'ignored_types'}} = %ignored_types;
return $converter;
}
@@ -487,7 +488,7 @@
# NUMBER_FOOTNOTES SPLIT_SIZE IN_ENCODING FILLCOLUMN ENABLE_ENCODING
# OUT_ENCODING ENCODING_NAME
- if (($root->{'type'} and $ignored_types{$root->{'type'}})
+ if (($root->{'type'} and $self->{'ignored_types'}->{$root->{'type'}})
or ($root->{'cmdname'} and $ignored_commands{$root->{'cmdname'}})) {
print STDERR "IGNORED\n" if ($self->{'debug'});
return '';
@@ -503,6 +504,8 @@
if (!$formatter->{'_top_formatter'}) {
$result .= $formatter->{'container'}->add_text(
$self->process_text($root, $formatter));
+ } elsif ($root->{'type'} and $root->{'type'} eq
'empty_spaces_before_paragraph') {
+ $result .= $root->{'text'};
# ignore text outside of any format, but warn if ignored text not empty
} elsif ($root->{'text'} =~ /\S/) {
warn "BUG: ignored text not empty `$root->{'text'}'\n";
@@ -839,8 +842,18 @@
$self->{$root->{'cmdname'}} = 1;
} elsif ($root->{'extra'} and $root->{'extra'}->{'misc_args'}
and exists($root->{'extra'}->{'misc_args'}->[0])) {
- $self->{$root->{'cmdname'}} = $root->{'extra'}->{'misc_args'}->[0]
- if (!$self->{'set'}->{$root->{'cmdname'}});
+ if (!$self->{'set'}->{$root->{'cmdname'}}) {
+ $self->{$root->{'cmdname'}} = $root->{'extra'}->{'misc_args'}->[0];
+ if ($root->{'cmdname'} eq 'paragraphindent') {
+ if ($root->{'extra'}->{'misc_args'}->[0] eq 'asis') {
+ delete
$self->{'ignored_types'}->{'empty_spaces_before_paragraph'};
+ } else {
+ $self->{$root->{'cmdname'}} = 0
+ if ($root->{'extra'}->{'misc_args'}->[0] eq 'none');
+ $self->{'ignored_types'}->{'empty_spaces_before_paragraph'} =
1;
+ }
+ }
+ }
}
return '';
}
@@ -874,15 +887,8 @@
if ($root->{'type'}) {
if ($root->{'type'} eq 'paragraph') {
$self->{'empty_lines_count'} = 0;
- # FIXME indenting. First and not first paragraph.
- # FIXME also beware of 'asis'! The space before has to be kept then.
- # it should be just before the paragraph.
- # Maybe just handle empty_spaces_before_paragraph instead of
- # ignoring it?
- # my $paragraphindent = get_conf('paragraphindent');
- # $paragraphindent = 0 if ($paragraphindent eq 'none');
- # if ($paragraphindent ne 'asis' and $paragraphindent and
$line_char_counter == 0 and (defined($content->{'paragraph_in_element_nr'}))
and ($info_state->{'indent_para'} or (!defined($info_state->{'indent_para'})
and ($content->{'paragraph_in_element_nr'} or (get_conf('firstparagraphindent')
eq 'insert')))))
my $conf;
+ # indent. Not first paragraph.
if ($self->{'format_context'}->[-1]->{'cmdname'} eq '_top_format'
and ($self->{'format_context'}->[-1]->{'paragraph_count'}
or $self->{'firstparagraphindent'} eq 'insert')
Index: t/05paragraph.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/05paragraph.t,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- t/05paragraph.t 23 Nov 2010 19:46:37 -0000 1.9
+++ t/05paragraph.t 23 Nov 2010 22:07:40 -0000 1.10
@@ -30,7 +30,18 @@
p before sp
@sp 4
inew p after sp'
-]);
+],
+['paragraph_indent_asis',
+'@paragraphindent asis
+
+ para
+ fff
+
address@hidden
+ in quotation
address@hidden quotation
+
+']);
my @test_invalid = (
['paragraph_in_style_command',
Index: t/results/paragraph/paragraph_indent_asis.pl
===================================================================
RCS file: t/results/paragraph/paragraph_indent_asis.pl
diff -N t/results/paragraph/paragraph_indent_asis.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/paragraph/paragraph_indent_asis.pl 23 Nov 2010 22:07:40
-0000 1.1
@@ -0,0 +1,170 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted);
+
+$result_trees{'paragraph_indent_asis'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'asis'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'paragraphindent',
+ 'extra' => {
+ 'misc_args' => [
+ 'asis'
+ ]
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_before_paragraph'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'para
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' fff
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'cmdname' => 'quotation',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_before_paragraph'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'in quotation
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'paragraph_indent_asis'}{'contents'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[1]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[2]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'contents'}[0]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[3];
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'contents'}[1]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[3];
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[4]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[0]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[1]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2]{'parent'}
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[6]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[7]{'parent'} =
$result_trees{'paragraph_indent_asis'};
+
+$result_texis{'paragraph_indent_asis'} = '@paragraphindent asis
+
+ para
+ fff
+
address@hidden
+ in quotation
address@hidden quotation
+
+';
+
+
+$result_texts{'paragraph_indent_asis'} = '
+para
+ fff
+
+in quotation
+
+';
+
+$result_errors{'paragraph_indent_asis'} = [];
+
+
+
+$result_converted{'plaintext'}->{'paragraph_indent_asis'} = '
+ para fff
+
+ in quotation
+
+';
+
+1;