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
17 #define TRED FOREGROUND_RED | FOREGROUND_INTENSITY
\r
18 #define TGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
19 #define TYELLOW FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY
\r
20 #define TNORMAL FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE
\r
21 #define TWHITE TNORMAL | FOREGROUND_INTENSITY
\r
22 #define TBLUE FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
24 inline void sc(WORD color) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }
\r
26 /* Handles colors in printf */
\r
27 int printf_c(const char * format, ...)
\r
29 // Better hope we're not multithreaded, otherwise we'll have chickens crossing the road other side to get the to :P
\r
30 static char message[500];
\r
31 static char temp[10];
\r
34 /* parse arguments */
\r
36 va_start(ap, format);
\r
37 vsnprintf(message, 500, format, ap);
\r
40 /* search for unix-style escape sequences */
\r
43 const char * p = message;
\r
48 // Escape sequence -> copy into the temp buffer, and parse the color.
\r
59 if(!_stricmp(temp, "[0"))
\r
61 // Returning to normal colour.
\r
62 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
\r
64 else if(!_stricmp(temp, "[1"))
\r
67 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TWHITE);
\r
69 else if(sscanf(temp, "[%u;%u", &color1, &color2) == 2)
\r
74 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); // Yellow
\r
79 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
\r
86 sprintf(message, "Unknown color code: %s", temp);
\r
87 MessageBox(0, message, message, MB_OK);
\r