Skip to content
Snippets Groups Projects
Commit da96dddb authored by deuce's avatar deuce
Browse files

getfont() can return -1.

Deal with that fact.
parent ea8e3530
No related branches found
No related tags found
No related merge requests found
...@@ -1032,22 +1032,24 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_puttext(int a,int b,int c,int d,void *e) ...@@ -1032,22 +1032,24 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_puttext(int a,int b,int c,int d,void *e)
if(ciolib_xlat) { if(ciolib_xlat) {
font = ciolib_getfont(); font = ciolib_getfont();
buf=malloc((c-a+1)*(d-b+1)*2); if (font >= 0) {
if (conio_fontdata[font].put_xlat == NULL) { buf=malloc((c-a+1)*(d-b+1)*2);
memcpy(buf, e, (c-a+1)*(d-b+1)*2); if (conio_fontdata[font].put_xlat == NULL) {
} memcpy(buf, e, (c-a+1)*(d-b+1)*2);
else { }
for (i=0; i<(c-a+1)*(d-b+1)*2; i+=2) { else {
if (((char *)e)[i] > 31 && ((char *)e)[i] < 127) for (i=0; i<(c-a+1)*(d-b+1)*2; i+=2) {
buf[i] = conio_fontdata[font].put_xlat[((char *)e)[i]-32]; if (((char *)e)[i] > 31 && ((char *)e)[i] < 127)
else buf[i] = conio_fontdata[font].put_xlat[((char *)e)[i]-32];
buf[i] = ((char *)e)[i]; else
buf[i+1]=((char *)e)[i+1]; buf[i] = ((char *)e)[i];
buf[i+1]=((char *)e)[i+1];
}
} }
} }
} }
ret = cio_api.puttext(a,b,c,d,(void *)buf); ret = cio_api.puttext(a,b,c,d,(void *)buf);
if (ciolib_xlat) if (buf != e)
free(buf); free(buf);
return ret; return ret;
} }
...@@ -1065,14 +1067,16 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_gettext(int a,int b,int c,int d,void *e) ...@@ -1065,14 +1067,16 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_gettext(int a,int b,int c,int d,void *e)
ret = cio_api.gettext(a,b,c,d,e); ret = cio_api.gettext(a,b,c,d,e);
if(ciolib_xlat) { if(ciolib_xlat) {
font = ciolib_getfont(); font = ciolib_getfont();
if (conio_fontdata[font].put_xlat) { if (font >= 0) {
for (i=0; i<(c-a+1)*(d-b+1)*2; i+=2) { if (conio_fontdata[font].put_xlat) {
xlat = ((char *)e)[i]; for (i=0; i<(c-a+1)*(d-b+1)*2; i+=2) {
if (xlat > 31 && xlat < 127) { xlat = ((char *)e)[i];
if ((ch = memchr(conio_fontdata[font].put_xlat, ((char *)e)[i], 128))!=NULL) if (xlat > 31 && xlat < 127) {
xlat = (char)(ch-conio_fontdata[font].put_xlat)+32; if ((ch = memchr(conio_fontdata[font].put_xlat, ((char *)e)[i], 128))!=NULL)
xlat = (char)(ch-conio_fontdata[font].put_xlat)+32;
}
((char *)e)[i] = xlat;
} }
((char *)e)[i] = xlat;
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment