Cwidth test for zero

* cwidth tested for zero to avoid divide-by-zero fault
  * cwidth == 0 caused by corrupted font file on OS X
    potential for same to occur on other OS.
pull/1/head
Robert Stiles 2013-08-02 09:07:24 -05:00 zatwierdzone przez David Freese
rodzic f3863c4771
commit f9267b9229
1 zmienionych plików z 3 dodań i 2 usunięć

Wyświetl plik

@ -105,6 +105,7 @@ void pskBrowser::evalcwidth()
const char *szRF = " 999999.99";
const char *szCH = " 99";
cwidth = (int)fl_width("W");
if (cwidth <= 0) cwidth = 5;
cheight = fl_height();
labelwidth[VIEWER_LABEL_OFF] = 1;//cwidth;
labelwidth[VIEWER_LABEL_AF] = (int)fl_width(szAF);
@ -178,7 +179,7 @@ void pskBrowser::resize(int x, int y, int w, int h)
if (w) {
Fl_Hold_Browser::resize(x,y,w,h);
evalcwidth();
nchars = (w - cols[0] - (sbarwidth + 2 * BWSR_BORDER)) / cwidth;
nchars = (w - cols[0] - (sbarwidth + 2*BWSR_BORDER)) / cwidth;
nchars = nchars < 1 ? 1 : nchars;
string bline;
Fl_Hold_Browser::clear();
@ -228,7 +229,7 @@ void pskBrowser::addchr(int ch, int freq, unsigned char c, int md) // 0 < ch < c
if (c == '\n') c = ' ';
if (c < ' ') return;
nchars = (w() - cols[0] - (sbarwidth + 2 * BWSR_BORDER)) / cwidth;
nchars = (w() - cols[0] - (sbarwidth + 2*BWSR_BORDER)) / cwidth;
nchars = nchars < 1 ? 1 : nchars;
bwsrfreq[ch] = freq;