Fixed a bug that was skipping codes if they had already been used
This commit is contained in:
parent
efd38160de
commit
999fec5bce
|
@ -1,10 +1,11 @@
|
||||||
#include <cstdio>
|
#include <stdio.h>
|
||||||
#include <iostream>
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <pipecolors.h>
|
#include <pipecolors.h>
|
||||||
|
|
||||||
|
|
||||||
using namespace pipecolors;
|
using namespace pipecolors;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
char buffer[100];
|
char buffer[100];
|
||||||
|
|
|
@ -49,36 +49,37 @@ namespace pipecolors {
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(pc) {
|
switch(pc) {
|
||||||
case 0: return "\x1b[0;30m"; break; // FG_BLACK
|
case 0: return "\033[0;30m"; break; // FG_BLACK
|
||||||
case 1: return "\x1b[0;34m"; break; // FG_BLUE
|
case 1: return "\033[0;34m"; break; // FG_BLUE
|
||||||
case 2: return "\x1b[0;32m"; break; // FG_GREEN
|
case 2: return "\033[0;32m"; break; // FG_GREEN
|
||||||
case 3: return "\x1b[0;36m"; break; // FG_CYAN
|
case 3: return "\033[0;36m"; break; // FG_CYAN
|
||||||
case 4: return "\x1b[0;31m"; break; // FG_RED
|
case 4: return "\033[0;31m"; break; // FG_RED
|
||||||
case 5: return "\x1b[0;35m"; break; // FG_MAGENTA
|
case 5: return "\033[0;35m"; break; // FG_MAGENTA
|
||||||
case 6: return "\x1b[0;33m"; break; // FG_YELLOW
|
case 6: return "\033[0;33m"; break; // FG_YELLOW
|
||||||
case 7: return "\x1b[0;37m"; break; // FG_GRAY
|
case 7: return "\033[0;37m"; break; // FG_GRAY
|
||||||
case 8: return "\x1b[0;90m"; break; // FG_GRAY_D
|
case 8: return "\033[0;90m"; break; // FG_GRAY_D
|
||||||
case 9: return "\x1b[0;94m"; break; // FG_BLUE_L
|
case 9: return "\033[0;94m"; break; // FG_BLUE_L
|
||||||
case 10: return "\x1b[0;92m"; break; // FG_GREEN_L
|
case 10: return "\033[0;92m"; break; // FG_GREEN_L
|
||||||
case 11: return "\x1b[0;96m"; break; // FG_CYAN_L
|
case 11: return "\033[0;96m"; break; // FG_CYAN_L
|
||||||
case 12: return "\x1b[0;91m"; break; // FG_RED_L
|
case 12: return "\033[0;91m"; break; // FG_RED_L
|
||||||
case 13: return "\x1b[0;95m"; break; // FG_MAGENTA_L
|
case 13: return "\033[0;95m"; break; // FG_MAGENTA_L
|
||||||
case 14: return "\x1b[0;93m"; break; // FG_YELLOW_L
|
case 14: return "\033[0;93m"; break; // FG_YELLOW_L
|
||||||
case 15: return "\x1b[0;97m"; break; // FG_WHITE
|
case 15: return "\033[0;97m"; break; // FG_WHITE
|
||||||
|
|
||||||
case 16: return "\x1b[1;40m"; break; // BG_DEFAULT
|
case 16: return "\033[1;40m"; break; // BG_DEFAULT
|
||||||
case 17: return "\x1b[1;44m"; break; // BG_BLUE
|
case 17: return "\033[1;44m"; break; // BG_BLUE
|
||||||
case 18: return "\x1b[1;42m"; break; // BG_GREEN
|
case 18: return "\033[1;42m"; break; // BG_GREEN
|
||||||
case 19: return "\x1b[1;46m"; break; // BG_CYAN
|
case 19: return "\033[1;46m"; break; // BG_CYAN
|
||||||
case 20: return "\x1b[1;41m"; break; // BG_RED
|
case 20: return "\033[1;41m"; break; // BG_RED
|
||||||
case 21: return "\x1b[1;45m"; break; // BG_MAGENTA
|
case 21: return "\033[1;45m"; break; // BG_MAGENTA
|
||||||
case 22: return "\x1b[1;43m"; break; // BG_YELLOW
|
case 22: return "\033[1;43m"; break; // BG_YELLOW
|
||||||
case 23: return "\x1b[1;47m"; break; // BG_WHITE
|
case 23: return "\033[1;47m"; break; // BG_WHITE
|
||||||
|
|
||||||
case 30: return "\x1b[1m"; break; // Bold On
|
case 30: return "\033[1m"; break; // Bold On
|
||||||
case 31: return "\x1b[0m"; break; // Bold Off
|
case 31: return "\033[0m"; break; // Bold Off
|
||||||
case 39: return "\x1b[0;39m"; break; // FG_DEFAULT
|
case 39: return "\033[0;39m"; break; // FG_DEFAULT
|
||||||
default: return "nocode"; break;
|
default: return "nocode"; break;
|
||||||
|
//x1b[
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,12 +104,9 @@ namespace pipecolors {
|
||||||
str.first.erase(index, pipe.length());
|
str.first.erase(index, pipe.length());
|
||||||
} else {
|
} else {
|
||||||
index += 3;
|
index += 3;
|
||||||
goto skip;
|
|
||||||
}
|
}
|
||||||
skip:;
|
|
||||||
index += std::string::npos;
|
|
||||||
}
|
}
|
||||||
if(strlen > 0) str.second.insert(str.second.end(), strlen, '\0');
|
if(strlen > 0) str.second.insert(str.second.end(), strlen, '\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::string,int> replace_colors( std::string s ) {
|
std::pair<std::string,int> replace_colors( std::string s ) {
|
||||||
|
@ -119,7 +117,7 @@ namespace pipecolors {
|
||||||
|
|
||||||
for(int c = 0; c<=99; c++) {
|
for(int c = 0; c<=99; c++) {
|
||||||
int len = ( c < 10 ? asprintf(&buf, "%c0%d", '|', c) : asprintf(&buf, "%c%d", '|', c) );
|
int len = ( c < 10 ? asprintf(&buf, "%c0%d", '|', c) : asprintf(&buf, "%c%d", '|', c) );
|
||||||
strcpy(pcodes[c], buf);
|
memcpy(pcodes[c], buf, strlen(buf)+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i=0; i<=99; i++) {
|
for(int i=0; i<=99; i++) {
|
||||||
|
@ -177,10 +175,9 @@ namespace pipecolors {
|
||||||
delete[] *str1;
|
delete[] *str1;
|
||||||
|
|
||||||
std::pair<std::string, int> result = replace_colors(s);
|
std::pair<std::string, int> result = replace_colors(s);
|
||||||
|
|
||||||
const char * s2 = (const char *)result.first.c_str();
|
const char * s2 = (const char *)result.first.c_str();
|
||||||
|
|
||||||
strcpy(str, s2);
|
memcpy(str, s2, strlen(s2)+1);
|
||||||
|
|
||||||
return result.second;
|
return result.second;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue