From: Moritz Bunkus Date: Wed, 6 May 2009 08:01:02 +0000 (+0000) Subject: Endlosschleife im PDF-Tabellenmodul und damit im PDF-Export gefixt: Wenn die Tabelle... X-Git-Tag: release-2.6.0beta2~35 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=23223ef4302931a6a141c659bfda7ef6c7546b77;p=kivitendo-erp.git Endlosschleife im PDF-Tabellenmodul und damit im PDF-Export gefixt: Wenn die Tabelle zu breit wird und dann irgendwann nicht einmal mehr ein Wort in eine Zeile passt, dann muss das Wort trotzdem gesetzt werden; andernfalls würde das PDF::Table-Modul in einer Endlosschleife enden. Fix für Bug 863. --- diff --git a/modules/override/PDF/Table.pm b/modules/override/PDF/Table.pm index f950a723d..7040b2958 100644 --- a/modules/override/PDF/Table.pm +++ b/modules/override/PDF/Table.pm @@ -135,8 +135,8 @@ sub text_block { $line_width += $arg{'indent'}; } - # Lets take from paragraph as many words as we can put into $width - $indent; - while ( @paragraph and $text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width ) { + # Lets take from paragraph as many words as we can put into $width - $indent;. Always take at least one word; otherwise we'd end up in an infinite loop. + while (!scalar(@line) || (@paragraph && ($text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width))) { push(@line, shift(@paragraph)); } $line_width += $text_object->advancewidth(join('', @line));