Loading src/client/colour.c +8 −5 Original line number Diff line number Diff line Loading @@ -51,9 +51,11 @@ static int hex_decode(const char *input, int len) } /* return colour code sequence */ int colour(const char *input, char *output, int outlen) int colour(const char *input, char *result, int reslen) { int consume = 0; char output[1024]; int outlen = sizeof(output); if (outlen) output[0] = '\0'; /* original colour mode */ Loading Loading @@ -81,10 +83,10 @@ int colour(const char *input, char *output, int outlen) if (i>=0 && i < COLOUR_LIMIT) { if (colour_chart[i] != NULL) copy_in(output, outlen, colour_chart[i]); copy_in(result, reslen, colour_chart[i]); else if (colour_chart[0] != NULL) copy_in(output, outlen, colour_chart[0]); copy_in(result, reslen, colour_chart[0]); } return consume; } Loading @@ -100,6 +102,7 @@ int colour(const char *input, char *output, int outlen) output[i++] = '0'; output[i++] = 'm'; output[i] = '\0'; copy_in(result, reslen, output); return(consume); } Loading Loading @@ -146,6 +149,7 @@ int colour(const char *input, char *output, int outlen) output[i++] = 'm'; output[i] = '\0'; copy_in(result, reslen, output); } if (*input == '&') { bool fg_done = false; Loading Loading @@ -178,18 +182,17 @@ int colour(const char *input, char *output, int outlen) snprintf(&output[outused], outlen-outused, "\033[%d;5;%dm", fg_done?48:38, col); fg_done = true; } else { output[0] = '\0'; return 0; } outused = strlen(output); } while(input[consume] == ':'); if (input[consume] != '&') { output[0] = '\0'; return 0; } consume++; } copy_in(result, reslen, output); return(consume); } Loading Loading
src/client/colour.c +8 −5 Original line number Diff line number Diff line Loading @@ -51,9 +51,11 @@ static int hex_decode(const char *input, int len) } /* return colour code sequence */ int colour(const char *input, char *output, int outlen) int colour(const char *input, char *result, int reslen) { int consume = 0; char output[1024]; int outlen = sizeof(output); if (outlen) output[0] = '\0'; /* original colour mode */ Loading Loading @@ -81,10 +83,10 @@ int colour(const char *input, char *output, int outlen) if (i>=0 && i < COLOUR_LIMIT) { if (colour_chart[i] != NULL) copy_in(output, outlen, colour_chart[i]); copy_in(result, reslen, colour_chart[i]); else if (colour_chart[0] != NULL) copy_in(output, outlen, colour_chart[0]); copy_in(result, reslen, colour_chart[0]); } return consume; } Loading @@ -100,6 +102,7 @@ int colour(const char *input, char *output, int outlen) output[i++] = '0'; output[i++] = 'm'; output[i] = '\0'; copy_in(result, reslen, output); return(consume); } Loading Loading @@ -146,6 +149,7 @@ int colour(const char *input, char *output, int outlen) output[i++] = 'm'; output[i] = '\0'; copy_in(result, reslen, output); } if (*input == '&') { bool fg_done = false; Loading Loading @@ -178,18 +182,17 @@ int colour(const char *input, char *output, int outlen) snprintf(&output[outused], outlen-outused, "\033[%d;5;%dm", fg_done?48:38, col); fg_done = true; } else { output[0] = '\0'; return 0; } outused = strlen(output); } while(input[consume] == ':'); if (input[consume] != '&') { output[0] = '\0'; return 0; } consume++; } copy_in(result, reslen, output); return(consume); } Loading