From c5c364d99406106fa5a017d7ab0cd76b90e0fd61 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sat, 27 Apr 2019 11:57:11 +0200 Subject: [PATCH] fix: compilation on mingw --- client/comms.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/client/comms.c b/client/comms.c index b4f075d05..095bcc115 100644 --- a/client/comms.c +++ b/client/comms.c @@ -237,26 +237,35 @@ static void memcpy_filtered(void *dest, const void *src, size_t n, bool filter) #else if (filter) { // Filter out ANSI sequences on these OS - uint16_t si=0; - for (uint16_t i=0; i < n; i++) { - if ((src[i] == '\x1b') && (i < n - 1) && (src[i+1] >= 0x40) && (src[i+1] <= 0x5F)) { // entering ANSI sequence + uint8_t *rdest = (uint8_t *)dest; + uint8_t *rsrc = (uint8_t *)src; + uint16_t si = 0; + for (uint16_t i = 0; i < n; i++) { + if ( (rsrc[i] == '\x1b') + && (i < n - 1) + && (rsrc[i + 1] >= 0x40) + && (rsrc[i + 1] <= 0x5F) ) { // entering ANSI sequence + i++; - if ((src[i] == '[') && (i < n - 1)) { // entering CSI sequence + if ((rsrc[i] == '[') && (i < n - 1)) { // entering CSI sequence i++; - while ((i < n - 1) && (src[i] >= 0x30) && (src[i] <= 0x3F)) { // parameter bytes + + while ((i < n - 1) && (rsrc[i] >= 0x30) && (rsrc[i] <= 0x3F)) { // parameter bytes i++; } - while ((i < n - 1) && (src[i] >= 0x20) && (src[i] <= 0x2F)) { // intermediate bytes + + while ((i < n - 1) && (rsrc[i] >= 0x20) && (rsrc[i] <= 0x2F)) { // intermediate bytes i++; } - if ((src[i] >= 0x40) && (src[i] <= 0x7F)) { // final byte + + if ((rsrc[i] >= 0x40) && (rsrc[i] <= 0x7F)) { // final byte continue; } } else { continue; } } - dest[si++] = src[i]; + rdest[si++] = rsrc[i]; } } else { memcpy(dest, src, n);