filter unrenderable chars from console input

filter all chars that have no entry in the current font
This commit is contained in:
ac-stef
2017-06-25 18:17:46 +02:00
parent 57093ed70c
commit 524988feaa
3 changed files with 17 additions and 1 deletions
+3 -1
View File
@@ -96,7 +96,9 @@ struct textinputbuffer
default:
{
if(unicode)
extern bool filterunrenderables(char *s);
char tmp[2] = { (char)unicode, 0 };
if(unicode && !filterunrenderables(tmp))
{
size_t len = strlen(buf);
if(max && (int)len>=max) break;
+1
View File
@@ -724,6 +724,7 @@ extern void text_pos(const char *str, int cursor, int &cx, int &cy, int maxwidth
extern void text_startcolumns();
extern void text_endcolumns();
extern void cutcolorstring(char *text, int len);
extern bool filterunrenderables(char *s);
// editing
#define EDITSEL(x) if(noteditmode(x) || noselection()) return
+13
View File
@@ -445,6 +445,19 @@ void cutcolorstring(char *text, int maxlen)
}
}
bool filterunrenderables(char *s)
{
bool res = false;
char *d = s;
while(*s)
{
if(!curfont->chars.inrange(*s - curfont->skip) && *s != ' ') res = true;
else *d++ = *s;
s++;
}
return res;
}
// animated inlined graphics
VAR(igraphdefaultframetime, 5, 200, 2000);