Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 23223ef4

Von Moritz Bunkus vor mehr als 15 Jahren hinzugefügt

  • ID 23223ef4302931a6a141c659bfda7ef6c7546b77
  • Vorgänger c7a32976
  • Nachfolger 17a8e2bb

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.

Unterschiede anzeigen:

modules/override/PDF/Table.pm
135 135
      $line_width += $arg{'indent'};
136 136
    }
137 137

  
138
    # Lets take from paragraph as many words as we can put into $width - $indent;
139
    while ( @paragraph and $text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width ) {
138
    # 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.
139
    while (!scalar(@line) || (@paragraph && ($text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width))) {
140 140
      push(@line, shift(@paragraph));
141 141
    }
142 142
    $line_width += $text_object->advancewidth(join('', @line));

Auch abrufbar als: Unified diff