diff --git a/libctru/source/console.c b/libctru/source/console.c index 081473e..a6e4ce2 100644 --- a/libctru/source/console.c +++ b/libctru/source/console.c @@ -207,14 +207,19 @@ ssize_t con_write(struct _reent *r,int fd,const char *ptr, size_t len) { if ( chr == 0x1b && *tmp == '[' ) { bool escaping = true; - char *escapeseq = tmp; - int escapelen = 0; + char *escapeseq = tmp++; + int escapelen = 1; + i++; count++; do { chr = *(tmp++); i++; count++; escapelen++; int parameter, assigned, consumed; + // make sure parameters are positive values and delimited by semicolon + if((chr >= '0' && chr <= '9') || chr == ';') + continue; + switch (chr) { //--------------------------------------- // Cursor directional movement