[cl-typesetting-devel] v-split failure and patch

Dmitri Ivanov divanov at aha.ru
Wed Mar 17 09:24:17 UTC 2004


Hello,

I have bumped into terrible looping bug. I am not sure that the
user-drawn-box was actually the culprit but the error has been detected
where user-drawn-box occurs. Please see the broken-user-box.lisp  attached
and the following trace.

CL-USER 13 > (tt::broken-user-box 34)
Table total height 511.
0 (METHOD TYPESET::STROKE (TYPESET:USER-DRAWN-BOX T T)) > ...
>> TYPESET::BOX : #<TYPESET:USER-DRAWN-BOX 21D74CCC>
>> TYPESET::X   : 50
>> TYPESET::Y   : 35.996597623924345
0 (METHOD TYPESET::STROKE (TYPESET:USER-DRAWN-BOX T T)) < ...
  << VALUE-0 : " B"

Error: Can't make a string of length 4194304.
  1 (abort) Return to level 0.
  2 Return to top loop level 0.


After patching the v-split method, it returns nil as the first value and the
outer draw-pages feeds a new page. The patched return-lines subfunction
simply detects pathological case where the text-lines list is a one-element
list consisting of the spurious text-line. Its boxes slot only includes
either text-style or h-spacing (including explicit or made by
make-hfill-glue) instances.
--
Sincerely,
Dmitri Ivanov
lisp.ystok.ru
-------------- next part --------------
A non-text attachment was scrubbed...
Name: broken-user-box.lisp
Type: application/octet-stream
Size: 1687 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cl-typesetting-devel/attachments/20040317/915bdce7/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: v-split-patch.diff
Type: application/octet-stream
Size: 4826 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cl-typesetting-devel/attachments/20040317/915bdce7/attachment-0001.obj>


More information about the cl-typesetting-devel mailing list