diff --git a/libctru/source/console.c b/libctru/source/console.c index a6e4ce2..9dd3dfd 100644 --- a/libctru/source/console.c +++ b/libctru/source/console.c @@ -296,7 +296,10 @@ ssize_t con_write(struct _reent *r,int fd,const char *ptr, size_t len) { } do { - if (strchr(escapeseq,';')) { + parameter = 0; + if (escapelen == 1) { + consumed = 1; + } else if (strchr(escapeseq,';')) { sscanf(escapeseq,"%d;%n", ¶meter, &consumed); } else { sscanf(escapeseq,"%dm%n", ¶meter, &consumed); @@ -347,6 +350,11 @@ ssize_t con_write(struct _reent *r,int fd,const char *ptr, size_t len) { escaping = false; break; + + default: + // some sort of unsupported escape; just gloss over it + escaping = false; + break; } } while (escaping); continue;