| 225 |
|
/* compute character spacing */ |
| 226 |
|
i = sndx(tm); |
| 227 |
|
d = i < tm->oargs.nfargs ? tm->oargs.farg[i] : 0.0; |
| 228 |
< |
i = d * 256.0; |
| 228 |
> |
i = d * 255.0; |
| 229 |
|
t->tl.width = 0; |
| 230 |
|
for (tlp = t->tl.next; tlp != NULL; tlp = tlp->next) { |
| 231 |
|
if (i < 0) |
| 281 |
|
x = DOT(v, tp->right); |
| 282 |
|
i = sndx(m); |
| 283 |
|
if (i < m->oargs.nfargs) |
| 284 |
< |
x *= tp->f->mwidth + 256.*fabs(m->oargs.farg[i]); |
| 284 |
> |
x *= tp->f->mwidth + 255.*fabs(m->oargs.farg[i]); |
| 285 |
|
else |
| 286 |
< |
x *= 256.; |
| 286 |
> |
x *= 255.; |
| 287 |
|
h = x; |
| 288 |
|
i = y = DOT(v, tp->down); |
| 289 |
|
if (x < 0.0 || y < 0.0) |
| 290 |
|
return(0); |
| 291 |
|
x -= (double)h; |
| 292 |
< |
y = ((i+1) - y)*256.; |
| 292 |
> |
y = ((i+1) - y)*255.; |
| 293 |
|
/* find the line position */ |
| 294 |
|
for (tlp = tp->tl.next; tlp != NULL; tlp = tlp->next) |
| 295 |
|
if (--i < 0) |
| 297 |
|
if (tlp == NULL || h >= tlp->width) |
| 298 |
|
return(0); |
| 299 |
|
for (i = 0; (h -= tlp->spc[i]) >= 0; i++) |
| 300 |
< |
if (h < 256 && inglyph(h+x, y, |
| 300 |
> |
if (h < 255 && inglyph(h+x, y, |
| 301 |
|
tp->f->fg[TLSTR(tlp)[i]&0xff])) |
| 302 |
|
return(1); |
| 303 |
|
return(0); |
| 305 |
|
|
| 306 |
|
|
| 307 |
|
inglyph(x, y, gl) /* (x,y) within font glyph gl? */ |
| 308 |
< |
double x, y; /* real coordinates in range [0,256) */ |
| 308 |
> |
double x, y; /* real coordinates in range [0,255) */ |
| 309 |
|
register GLYPH *gl; |
| 310 |
|
{ |
| 311 |
|
int n, ncross; |