fix several number overflow issues

This commit is contained in:
Markus Teich 2015-11-17 00:19:39 +01:00
parent eb07f3dc10
commit 84734c73e8

6
sent.c
View File

@ -318,7 +318,7 @@ void pngdraw(Image *img)
void getfontsize(Slide *s, unsigned int *width, unsigned int *height) void getfontsize(Slide *s, unsigned int *width, unsigned int *height)
{ {
size_t i, j; int i, j;
unsigned int curw, imax; unsigned int curw, imax;
float lfac = linespacing * (s->linecount - 1) + 1; float lfac = linespacing * (s->linecount - 1) + 1;
@ -326,7 +326,7 @@ void getfontsize(Slide *s, unsigned int *width, unsigned int *height)
for (j = NUMFONTSCALES - 1; j >= 0; j--) for (j = NUMFONTSCALES - 1; j >= 0; j--)
if (fonts[j]->h * lfac <= xw.uh) if (fonts[j]->h * lfac <= xw.uh)
break; break;
drw_setfontset(d, fonts[j]); drw_setfontset(d, fonts[++j]);
/* fit width */ /* fit width */
*width = 0; *width = 0;
@ -334,7 +334,7 @@ void getfontsize(Slide *s, unsigned int *width, unsigned int *height)
curw = drw_fontset_getwidth(d, s->lines[i]); curw = drw_fontset_getwidth(d, s->lines[i]);
if (curw >= *width) if (curw >= *width)
imax = i; imax = i;
while (j >= 0 && curw > xw.uw) { while (j > 0 && curw > xw.uw) {
drw_setfontset(d, fonts[--j]); drw_setfontset(d, fonts[--j]);
curw = drw_fontset_getwidth(d, s->lines[i]); curw = drw_fontset_getwidth(d, s->lines[i]);
} }