Skip to content

Commit 03cb2eb

Browse files
committed
properly handle formatting code with alternative delimiters
1 parent e4235ac commit 03cb2eb

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

Porting/merge-deltas.pl

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,17 @@ ( $tree )
142142
return map( as_pod($_), @nodes ), "\n\n";
143143
},
144144
X => sub ( $name, $attr, @nodes ) {
145-
return "$name<", map( as_pod($_), @nodes ), '>';
145+
my ( $open, $spacer, $close ) =
146+
$attr->{'~bracket_count'}
147+
? (
148+
'<' x $attr->{'~bracket_count'},
149+
' ',
150+
'>' x $attr->{'~bracket_count'}
151+
)
152+
: ( '<', '', '>' );
153+
return "$name$open$spacer",
154+
map( as_pod($_), @nodes ),
155+
"$spacer$close";
146156
},
147157
L => sub ( $name, $attr, @nodes ) {
148158
return "$name<$attr->{raw}>";
@@ -186,15 +196,17 @@ ( $tree )
186196
my $previous = join '.', '5', ( split /\./, $version )[1] - 2;
187197

188198
# the version number used for delta
199+
# TODO: this should be computable
189200
my $tag_stable = $version =~ tr/.//dr;
190201
my $tag_devel = $tag_stable - 1;
191202

192203
# Note: the parser can only be used *once* per file
193-
sub tree_for ($file) {
204+
sub tree_for ($file) {
194205
my $parser = Pod::Simple::SimpleTree->new;
195206
$parser->keep_encoding_directive(1);
196207
$parser->preserve_whitespace(1);
197-
$parser->accept_targets('*'); # for & begin/end
208+
$parser->accept_targets('*'); # for & begin/end
209+
$parser->_output_is_for_JustPod(1); # for ~bracket_count
198210
$parser->parse_file($file)->root;
199211
}
200212

0 commit comments

Comments
 (0)