[dw-free] Calling start_css twice in a row (without a end_css in between) prevents any future output
[commit: http://hg.dwscoalition.org/dw-free/rev/c11532760062]
http://bugs.dwscoalition.org/show_bug.cgi?id=690
Handle nested calls to start_css
Patch by
exor674.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=690
Handle nested calls to start_css
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/LJ/S2.pm
-------------------------------------------------------------------------------- diff -r 4a7bcaa21555 -r c11532760062 cgi-bin/LJ/S2.pm --- a/cgi-bin/LJ/S2.pm Wed Apr 08 12:06:22 2009 +0000 +++ b/cgi-bin/LJ/S2.pm Wed Apr 08 15:17:51 2009 +0000 @@ -2293,6 +2293,10 @@ sub start_css { sub start_css { my ($ctx) = @_; my $sc = $ctx->[S2::SCRATCH]; + + # Always increment, but only continue if it was 0 + return if $sc->{_css_depth}++; + $sc->{_start_css_pout} = S2::get_output(); $sc->{_start_css_pout_s} = S2::get_output_safe(); $sc->{_start_css_buffer} = ""; @@ -2306,6 +2310,9 @@ sub end_css { sub end_css { my ($ctx) = @_; my $sc = $ctx->[S2::SCRATCH]; + + # Only decrement _css_depth if it is non-zero, only continue if it becomes zero + return unless $sc->{_css_depth} && (--$sc->{_css_depth} == 0); # restore our printer/safe printer S2::set_output($sc->{_start_css_pout}); --------------------------------------------------------------------------------