filter unrenderable chars from console input
filter all chars that have no entry in the current font
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user