Endlosschleife im PDF-Tabellenmodul und damit im PDF-Export gefixt: Wenn die Tabelle...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 6 May 2009 08:01:02 +0000 (08:01 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 6 May 2009 08:01:02 +0000 (08:01 +0000)
Fix für Bug 863.

modules/override/PDF/Table.pm

index f950a72..7040b29 100644 (file)
@@ -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));