[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Convert/Line.pm Texinfo/Conv...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Convert/Line.pm Texinfo/Conv... |
Date: |
Sat, 05 Feb 2011 19:56:13 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 11/02/05 19:56:13
Modified files:
tp/Texinfo/Convert: Line.pm Plaintext.pm UnFilled.pm
tp/t : 03coverage_braces.t 18itemize.t
Added files:
tp/t/results/coverage_braces: ref_in_style_command.pl
tp/t/results/itemize: enumerate_in_example.pl
Log message:
Reset better the line caracter counter.
Don't open a new unfilled container when opening a block command when
there are preformatted in the tree that can will be used to open
a container.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Line.pm?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/UnFilled.pm?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/03coverage_braces.t?cvsroot=texinfo&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/18itemize.t?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/coverage_braces/ref_in_style_command.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/enumerate_in_example.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: Texinfo/Convert/Line.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Line.pm,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- Texinfo/Convert/Line.pm 3 Feb 2011 23:38:01 -0000 1.13
+++ Texinfo/Convert/Line.pm 5 Feb 2011 19:56:12 -0000 1.14
@@ -76,7 +76,8 @@
$line->{'space'} = '';
$line->{'lines_counter'}++;
$line->{'end_line_count'}++;
- print STDERR "END_LINE\n" if ($line->{'DEBUG'});
+ $line->{'counter'} = 0;
+ print STDERR "END_LINE.L\n" if ($line->{'DEBUG'});
return "$result\n";
}
@@ -115,16 +116,16 @@
if ($line->{'line_beginning'}) {
if ($line->{'indent_length'}) {
$result .= ' ' x ($line->{'indent_length'} - $line->{'counter'});
- print STDERR "INDENT($line->{'counter'})\n" if ($line->{'DEBUG'});
+ print STDERR "INDENT.L($line->{'counter'})\n" if ($line->{'DEBUG'});
}
$line->{'line_beginning'} = 0;
} elsif ($line->{'space'}) {
$result .= $line->{'space'};
- print STDERR "ADD_SPACES\n" if ($line->{'DEBUG'});
+ print STDERR "ADD_SPACES.L\n" if ($line->{'DEBUG'});
}
$line->{'space'} = '';
$result .= $line->{'word'};
- print STDERR "ADD_WORD[$line->{'word'}]\n" if ($line->{'DEBUG'});
+ print STDERR "ADD_WORD.L[$line->{'word'}]\n" if ($line->{'DEBUG'});
$line->{'word'} = undef;
}
return $result;
@@ -137,7 +138,7 @@
$line->{'end_line_count'} = 0;
my $result = $line->_add_pending_word();
$result .= $line->{'space'};
- print STDERR "END_LINE\n" if ($line->{'DEBUG'});
+ print STDERR "END_LINE.L\n" if ($line->{'DEBUG'});
return $result;
}
@@ -163,7 +164,7 @@
if (defined($word)) {
$line->{'word'} = '' if (!defined($line->{'word'}));
$line->{'word'} .= $word;
- print STDERR "WORD+ $word -> $line->{'word'}\n" if ($line->{'DEBUG'});
+ print STDERR "WORD+.L $word -> $line->{'word'}\n" if ($line->{'DEBUG'});
}
if (defined($space)) {
$result .= $line->_add_pending_word();
@@ -225,7 +226,7 @@
}
if ($text =~ s/^([^\S\n]+)//) {
my $spaces = $1;
- print STDERR "SPACES\n" if ($line->{'DEBUG'});
+ print STDERR "SPACES.L\n" if ($line->{'DEBUG'});
my $added_word = $line->{'word'};
$result .= $line->_add_pending_word();
if ($line->{'protect_spaces'}) {
@@ -254,7 +255,7 @@
$result .= $line->_end_line();
} elsif ($text =~ s/^(\p{Unicode::EastAsianWidth::InFullwidth})//) {
my $added = $1;
- print STDERR "EAST_ASIAN\n" if ($line->{'DEBUG'});
+ print STDERR "EAST_ASIAN.L\n" if ($line->{'DEBUG'});
$line->{'word'} = '' if (!defined($line->{'word'}));
$line->{'word'} .= $added;
$result .= $line->_add_pending_word();
Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- Texinfo/Convert/Plaintext.pm 5 Feb 2011 13:31:04 -0000 1.66
+++ Texinfo/Convert/Plaintext.pm 5 Feb 2011 19:56:12 -0000 1.67
@@ -594,6 +594,7 @@
and ! $menu_commands{$self->{'context'}->[-1]}) {
$formatter->{'preformatted'} = 1;
}
+ print STDERR "NEW FORMATTER($type)\n" if ($self->{'DEBUG'});
return $formatter;
}
@@ -1069,14 +1070,19 @@
$is_top_formatter = 1 if ($formatter->{'_top_formatter'});
my $empty_lines_count = '';
$empty_lines_count = $self->{'empty_lines_count'} if
defined($self->{'empty_lines_count'});
- print STDERR "ROOT
(@{$self->{'context'}}|@{$self->{'format_context'}},$empty_lines_count|$is_top_formatter)";
- print STDERR " format_context:
$self->{'format_context'}->[-1]->{'cmdname'},
$self->{'format_context'}->[-1]->{'paragraph_count'},
$self->{'format_context'}->[-1]->{'indent_level'}, "
- .(defined($self->{'format_context'}->[-1]->{'counter'}) ? "counter:
$self->{'format_context'}->[-1]->{'counter'}, " : '')
- ."max: $self->{'format_context'}->[-1]->{'max'}\n";
+ print STDERR "ROOT (".join('|',@{$self->{'context'}})."), formatters
".scalar(@{$self->{'formatters'}}) . " ->";
print STDERR " cmd: $root->{'cmdname'}," if ($root->{'cmdname'});
print STDERR " type: $root->{'type'}" if ($root->{'type'});
+ my $text = $root->{'text'};
+ if (defined($text)) {
+ $text =~ s/\n/\\n/;
+ print STDERR " text: $text";
+ }
print STDERR "\n";
- print STDERR " Text: $root->{'text'}\n" if (defined($root->{'text'}));
+
+ print STDERR " empty_lines $empty_lines_count,top_fmter
$is_top_formatter,format_ctxt
$self->{'format_context'}->[-1]->{'cmdname'},para_cnt
$self->{'format_context'}->[-1]->{'paragraph_count'},indent_lvl
$self->{'format_context'}->[-1]->{'indent_level'},"
+ .(defined($self->{'format_context'}->[-1]->{'counter'}) ? "counter
$self->{'format_context'}->[-1]->{'counter'}," : '')
+ ."max $self->{'format_context'}->[-1]->{'max'}\n";
#print STDERR " Special def_command: $root->{'extra'}->{'def_command'}\n"
# if (defined($root->{'extra'}) and $root->{'extra'}->{'def_command'});
if ($formatter) {
@@ -1435,11 +1441,11 @@
};
$self->{'format_context'}->[-1]->{'indent_level'}++
if ($indented_commands{$root->{'cmdname'}});
- #Â reopen a preformatted container, if the command opening the
+ #Â open a preformatted container, if the command opening the
#Â preformatted context is not a classical preformatted
- # command (ie if it is menu, verbatim and not example and the
- #Â like) or it is inside any other which opend a context.
- if ($preformatted_context_commands{$self->{'context'}->[-1]}
+ # command (ie if it is menu or verbatim, and not example or
+ #Â similar)
+ if ($preformatted_context_commands{$root->{'cmdname'}}
and ! $preformatted_commands{$root->{'cmdname'}}) {
$preformatted = $self->new_formatter('unfilled');
push @{$self->{'formatters'}}, $preformatted;
@@ -1805,7 +1811,9 @@
'locations' => []};
}
} elsif ($root->{'type'} eq 'empty_line') {
- print STDERR "EMPTY_LINE ($self->{'empty_lines_count'})\n"
+ my $count = $self->{'empty_lines_count'};
+ $count = '' if (!defined($count));
+ print STDERR "EMPTY_LINE ($count)\n"
if ($self->{'DEBUG'});
delete $self->{'format_context'}->[-1]->{'counter'};
$self->{'empty_lines_count'}++;
@@ -2139,6 +2147,9 @@
$preformatted->{'container'}->end());
$result = $self->ensure_end_of_line($result);
pop @{$self->{'formatters'}};
+ #Â We assume that, upon closing the preformatted we are at the
+ #Â beginning of a line.
+ delete $self->{'format_context'}->[-1]->{'counter'};
}
if ($root->{'cmdname'}) {
Index: Texinfo/Convert/UnFilled.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/UnFilled.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- Texinfo/Convert/UnFilled.pm 3 Feb 2011 23:38:02 -0000 1.7
+++ Texinfo/Convert/UnFilled.pm 5 Feb 2011 19:56:12 -0000 1.8
@@ -73,7 +73,8 @@
$line->{'only_spaces'} = 1;
$line->{'lines_counter'}++;
$line->{'end_line_count'}++;
- print STDERR "END_LINE\n" if ($line->{'DEBUG'});
+ $line->{'counter'} = 0;
+ print STDERR "END_LINE.U\n" if ($line->{'DEBUG'});
return "\n";
}
@@ -91,7 +92,7 @@
if ($line->{'indent_length'}) {
$line->{'leading_spaces'} .=
' ' x ($line->{'indent_length'} - $line->{'counter'});
- print STDERR "INDENT($line->{'counter'})\n" if ($line->{'DEBUG'});
+ print STDERR "INDENT.U($line->{'counter'})\n" if ($line->{'DEBUG'});
}
$line->{'line_beginning'} = 0;
}
Index: t/03coverage_braces.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/03coverage_braces.t,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- t/03coverage_braces.t 4 Feb 2011 22:13:12 -0000 1.20
+++ t/03coverage_braces.t 5 Feb 2011 19:56:12 -0000 1.21
@@ -30,6 +30,7 @@
'],
['nested', 'type the characters @kbd{l o g o u t @key{RET}}.'],
['nested_args', '@xref{@@ @samp{in samp}, descr @b{in b}}.'],
+['ref_in_style_command', '@address@hidden(manula)other node}}.'],
['uref_in_ref',
'@ref{(file)node, cross ref with uref
@uref{href://http/myhost.com/index.html,uref1}, title with uref2
@uref{href://http/myhost.com/index2.html,uref2}, info file with uref3
@uref{href://http/myhost.com/index3.html,uref3}, printed manual with uref4
@uref{href://http/myhost.com/index4.html,uref4}}
'],
Index: t/18itemize.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/18itemize.t,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- t/18itemize.t 22 Nov 2010 23:52:42 -0000 1.8
+++ t/18itemize.t 5 Feb 2011 19:56:12 -0000 1.9
@@ -238,6 +238,17 @@
@item aaa
@item aaa
@end enumerate
+'],
+['enumerate_in_example',
+'
address@hidden
address@hidden
address@hidden first item
address@hidden second item
+
+still second
address@hidden enumerate
address@hidden example
']
);
Index: t/results/coverage_braces/ref_in_style_command.pl
===================================================================
RCS file: t/results/coverage_braces/ref_in_style_command.pl
diff -N t/results/coverage_braces/ref_in_style_command.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/coverage_braces/ref_in_style_command.pl 5 Feb 2011 19:56:12
-0000 1.1
@@ -0,0 +1,83 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors);
+
+$result_trees{'ref_in_style_command'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '(manula)other node'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'contents' => [],
+ 'extra' => {
+ 'brace_command_contents' => [
+ [
+ {}
+ ]
+ ]
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'samp',
+ 'contents' => [],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '.'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
=
$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'extra'}{'brace_command_contents'}[0][0]
=
$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'ref_in_style_command'}{'contents'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'contents'}[1]{'parent'}
= $result_trees{'ref_in_style_command'}{'contents'}[0];
+$result_trees{'ref_in_style_command'}{'contents'}[0]{'parent'} =
$result_trees{'ref_in_style_command'};
+
+$result_texis{'ref_in_style_command'} = '@address@hidden(manula)other node}}.';
+
+
+$result_texts{'ref_in_style_command'} = '.';
+
+$result_errors{'ref_in_style_command'} = [];
+
+
+
+$result_converted{'plaintext'}->{'ref_in_style_command'} = '`*note
(manula)other node::\'.
+';
+
+1;
Index: t/results/itemize/enumerate_in_example.pl
===================================================================
RCS file: t/results/itemize/enumerate_in_example.pl
diff -N t/results/itemize/enumerate_in_example.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/itemize/enumerate_in_example.pl 5 Feb 2011 19:56:12 -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_converted_errors);
+
+$result_trees{'enumerate_in_example'} = {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'cmdname' => 'example',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ },
+ {
+ 'cmdname' => 'enumerate',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ },
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'before_item'
+ },
+ {
+ 'cmdname' => 'item',
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'first item
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'preformatted'
+ }
+ ],
+ 'extra' => {
+ 'item_number' => 1
+ },
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => 'item',
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'second item
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'still second
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'preformatted'
+ }
+ ],
+ 'extra' => {
+ 'item_number' => 2
+ },
+ 'parent' => {}
+ }
+ ],
+ 'extra' => {
+ 'enumerate_specification' => 0
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'enumerate_in_example'}{'contents'}[0]{'parent'} =
$result_trees{'enumerate_in_example'};
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'contents'}[3]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'parent'}
=
$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[1]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'contents'}[2]{'parent'}
= $result_trees{'enumerate_in_example'}{'contents'}[1];
+$result_trees{'enumerate_in_example'}{'contents'}[1]{'parent'} =
$result_trees{'enumerate_in_example'};
+$result_trees{'enumerate_in_example'}{'contents'}[2]{'parent'} =
$result_trees{'enumerate_in_example'};
+
+$result_texis{'enumerate_in_example'} = '
address@hidden
address@hidden
address@hidden first item
address@hidden second item
+
+still second
address@hidden enumerate
address@hidden example
+';
+
+
+$result_texts{'enumerate_in_example'} = '
+1. first item
+2. second item
+
+still second
+';
+
+$result_errors{'enumerate_in_example'} = [];
+
+
+
+$result_converted{'plaintext'}->{'enumerate_in_example'} = '
+ 1. first item
+ 2. second item
+
+ still second
+';
+
+1;