clone 413873 -1 reassign 413873 userv retitle -1 Failure to properly save @tag during nested lists block 413873 by -1 tags -1 + patch thanks
I have investigated this and concluded that the problem described in #413873 is caused by a coding error in debiandoc2sgml's Driver.pm. start_taglist attempts to save the contents of @tag (which is the list of <tag> elements seen so far in the taglist) in @tags. However, when the list of tags is pushed it is merged with the previously pushed lists, rather than inventing a new array and pushing a reference. The attached patch fixes this problem. I'm cloning this bug as there are two things that need to be done: * debiandoc-sgml needs to be fixed * userv then needs to be bin-NMUd (or no-change source-NMUd) I have tested this change locally and it seems to fix the problem for me. Ian.
--- tools/lib/Format/Driver.pm~ 2007-08-25 06:35:02.000000000 +0100 +++ tools/lib/Format/Driver.pm 2007-09-23 22:26:49.000000000 +0100 @@ -665,7 +665,7 @@ $is_footnote = 0; push( @list_type, $list_type ); $list_type = "taglist"; - push( @tags, @tag ); + push( @tags, [ @tag ] ); @tag = (); $indent_level++ if $indent_level; push_output( 'string' ); @@ -676,7 +676,7 @@ $taglist =~ s/\s+$//; &{$Format."::"._output_taglist}( "$taglist\n", pop( @p_length ) ); $indent_level-- if $indent_level > 1; - @tag = pop( @tags ); + @tag = @{ pop( @tags ) }; $is_footnote = pop( @is_footnote ); $list_type = pop( @list_type ); $was_compact = $is_compact;