1 /* +------------------------------------+
\r
2 * | Inspire Internet Relay Chat Daemon |
\r
3 * +------------------------------------+
\r
5 * InspIRCd: (C) 2002-2007 InspIRCd Development Team
\r
6 * See: http://www.inspircd.org/wiki/index.php/Credits
\r
8 * This program is free but copyrighted software; see
\r
9 * the file COPYING for details.
\r
11 * ---------------------------------------------------
\r
14 #define TRED FOREGROUND_RED | FOREGROUND_INTENSITY
\r
15 #define TGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
16 #define TYELLOW FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY
\r
17 #define TNORMAL FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE
\r
18 #define TWHITE TNORMAL | FOREGROUND_INTENSITY
\r
19 #define TBLUE FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
21 inline void sc(WORD color) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }
\r
23 /* Handles colors in printf */
\r
24 int printf_c(const char * format, ...)
\r
26 // Better hope we're not multithreaded, otherwise we'll have chickens crossing the road other side to get the to :P
\r
27 static char message[500];
\r
28 static char temp[10];
\r
31 /* parse arguments */
\r
33 va_start(ap, format);
\r
34 vsprintf(message, format, ap);
\r
37 /* search for unix-style escape sequences */
\r
40 const char * p = message;
\r
45 // Escape sequence -> copy into the temp buffer, and parse the color.
\r
56 if(!_stricmp(temp, "[0"))
\r
58 // Returning to normal colour.
\r
59 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
\r
61 else if(!_stricmp(temp, "[1"))
\r
64 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TWHITE);
\r
66 else if(sscanf(temp, "[%u;%u", &color1, &color2) == 2)
\r
71 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); // Yellow
\r
76 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
\r
83 sprintf(message, "Unknown color code: %s", temp);
\r
84 MessageBox(0, message, message, MB_OK);
\r