[net.text] bug in makedev.c

colonel@sunybcs.UUCP (Col. G. L. Sicherman) (10/16/85)

["At last!  My new gorilla-detector machine!  They can't fool me now!"]

There's an odd and significant error in how makedev computes the wordspace
size for a font.

In troff, the word spacing is measured in thirty-sixths of an em (why?),
and the default is 12.  The .ss directive alters this value.

In ditroff, the word spacing is also stored in the font tables, which
produces a conflict.  Ditroff uses the table value, and interprets .ss
by adjusting the space proportionately to the initial .ss value of 12.

The makedev default is also 12 thirty-sixths (one-third) of an em.  But
where ditroff always rounds its divisions, makedev truncates this one.
This discrepancy won't mess up your output, but it may make the
wordspaces a little narrower than they ought to be.

The fix, of course, is to replace makedev.c's truncated division by a
rounded division.  Since the source is controlled, I won't post any of
it; you should have no trouble finding the offending statement.

The quick (?) fix is to specify "spacewidth" explicitly in all your
font tables.
-- 
Col. G. L. Sicherman
UU: ...{rocksvax|decvax}!sunybcs!colonel
CS: colonel@buffalo-cs
BI: csdsicher@sunyabva