From e0231634d0e84bdef953bcb303ff95271d291ed3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 5 Dec 2010 02:31:19 +0000 Subject: [PATCH] layout/layout: when segment spec runs out, properly account for the rounding error --- layout/layout | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/layout/layout b/layout/layout index 616e16f..fac0f76 100755 --- a/layout/layout +++ b/layout/layout @@ -821,6 +821,7 @@ sub segment_used__print ($) { $segused_currentpt= undef; } +sub segment_used__len ($$); sub segment_used__len ($$) { my ($used,$pt) = @_; $segused_incurrent += $used; @@ -829,11 +830,19 @@ sub segment_used__len ($$) { $segments[1] -= $used; return if $segments[1] > 0; + my $defer= -$segments[1]; + $segused_incurrent -= $defer; + segment_used__print($pt); segment_used_begin($pt); @segments= @segments[2..$#segments]; o("% segments @segments\n"); + + if (@segments > 2 && $defer > $segments[1]) { + warn "will recursively end two segments at same point"; + } + segment_used__len($defer,$pt); } sub segment_state_save () { -- 2.30.2