Dean,attached is a corrected macro `t*cl', which caused the errors `multiplication overflow' and `division by zero' for long input lines. With this new `t*cl' the linelength can be more then 50 meters. You can replace `t*cl' in hdtbl.tmac or it can precede the input after loading hdtbl. Alternatively attached are two patch files, one for hdtbl.tmac in the .../contrib/hdtbl-directory, and one for hdttbl.tmac in the .../tmac-directory.
Thanks for Your bug report.
*** hdtbl.tmac Sat Nov 18 20:52:04 2006
--- /cygdrive/c/x01/hdtbl.tmac Sat Nov 18 20:57:56 2006
***************
*** 784,791 ****
. if \\n[t*b\\n[t*#]] \{\
. \" cell_width := cell_width * (length - 1.5*border) / length
. \" avoid multiplication overflow
! . nr #* (1000 * \\n[ll\\n[t*#]] / \\n[t*b\\n[t*#]])
! . nr $\\n[*] (\\n[$\\n[*]] - (1500 * \\n[$\\n[*]] / \\n[#*]))
. \}
.
. \" Get cell widths without padding, spacing, and separator line.
--- 784,791 ----
. if \\n[t*b\\n[t*#]] \{\
. \" cell_width := cell_width * (length - 1.5*border) / length
. \" avoid multiplication overflow
! . nr #* (10 * \\n[ll\\n[t*#]] / \\n[t*b\\n[t*#]])
! . nr $\\n[*] (\\n[$\\n[*]] - (15 * \\n[$\\n[*]] / \\n[#*]))
. \}
.
. \" Get cell widths without padding, spacing, and separator line.
***************
*** 795,806 ****
.
. \" Check whether value is non-positive.
. if !\\n[cll\\n[t*#]*\\n[*]] \{\
! . nr *h ((1000 \
! * \\n[ll\\n[t*#]] \
! / (\\n[ll\\n[t*#]] - (3 * \\n[t*b\\n[t*#]] / 2)) \
! * (2 * \\n[cscp\\n[t*#]] + \\n[b/2\\n[t*#]]) \
! / 1000 \
! + 50) / 10 * 10)
. ds * \\n[*]th
. nr *** (\\n[*] % 10)
. if d nth-\\n[***] \
--- 795,803 ----
.
. \" Check whether value is non-positive.
. if !\\n[cll\\n[t*#]*\\n[*]] \{\
! .\" *h calculation better then before, but not good enough.
! .\" *h should be retuned with the same scaling indicator as $\\n[*]
! . nr *h \\$\\n[*]-\\n[cll\\n[t*#]*\\n[*]]
. ds * \\n[*]th
. nr *** (\\n[*] % 10)
. if d nth-\\n[***] \
*** hdtbl.tmac Sat Nov 18 16:19:36 2006
--- /cygdrive/c/x01/hdtbl.tmacs-s Sat Nov 18 18:05:32 2006
***************
*** 1,4 ****
! .\" Time-stamp: <hdtbl.tmac: 18.11.2006 16:19:34 x01 - [EMAIL PROTECTED]>
.\" -*- roff -*-
.ig
--- 1,4 ----
! .\" Time-stamp: <hdtbl.tmacs-s: 18.11.2006 18:05:30 x01 - [EMAIL PROTECTED]>
.\" -*- roff -*-
.ig
***************
*** 574,592 ****
.nr * 0 1
.while (\\n[t*cols\\n[t*#]] >= \\n+[*]) \{\
.if \\n[t*b\\n[t*#]] \{\
! .nr #* (1000 * \\n[ll\\n[t*#]] / \\n[t*b\\n[t*#]])
! .nr $\\n[*] (\\n[$\\n[*]] - (1500 * \\n[$\\n[*]] / \\n[#*]))
.\}
.nr cll\\n[t*#]*\\n[*] (\\n[$\\n[*]] \
- (2 * \\n[cscp\\n[t*#]]) \
- \\n[b/2\\n[t*#]])
.if !\\n[cll\\n[t*#]*\\n[*]] \{\
! .nr *h ((1000 \
! * \\n[ll\\n[t*#]] \
! / (\\n[ll\\n[t*#]] - (3 * \\n[t*b\\n[t*#]] / 2)) \
! * (2 * \\n[cscp\\n[t*#]] + \\n[b/2\\n[t*#]]) \
! / 1000 \
! + 50) / 10 * 10)
.ds * \\n[*]th
.nr *** (\\n[*] % 10)
.if d nth-\\n[***] \
--- 574,589 ----
.nr * 0 1
.while (\\n[t*cols\\n[t*#]] >= \\n+[*]) \{\
.if \\n[t*b\\n[t*#]] \{\
! .nr #* (10 * \\n[ll\\n[t*#]] / \\n[t*b\\n[t*#]])
! .nr $\\n[*] (\\n[$\\n[*]] - (15 * \\n[$\\n[*]] / \\n[#*]))
.\}
.nr cll\\n[t*#]*\\n[*] (\\n[$\\n[*]] \
- (2 * \\n[cscp\\n[t*#]]) \
- \\n[b/2\\n[t*#]])
.if !\\n[cll\\n[t*#]*\\n[*]] \{\
! .\" *h calculation better then before, but not good enough.
! .\" *h should be retuned with the same scaling indicator as $\\n[*]
! .nr *h \\$\\n[*]-\\n[cll\\n[t*#]*\\n[*]]
.ds * \\n[*]th
.nr *** (\\n[*] % 10)
.if d nth-\\n[***] \
tcl
Description: Binary data
begin:vcard fn:Joachim Walsdorff n:Walsdorff;Joachim adr;dom:;;Hauptstr. 225;Heidelberg;;69117 email;internet:[EMAIL PROTECTED] tel;fax:06221-28680 tel;home:06221-28680 version:2.1 end:vcard
_______________________________________________ Groff mailing list [email protected] http://lists.gnu.org/mailman/listinfo/groff
