From c9a4b3af083bf1001a9952af360ba006534e6313 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Wed, 24 Dec 2008 00:00:45 +0000 Subject: [PATCH] fs_cli add colors on windows and build static git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10938 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/esl/fs_cli.2008.vcproj | 4 ++-- libs/esl/fs_cli.c | 27 +++++++++++++++++++++++-- libs/esl/src/esl.2008.vcproj | 38 +++++++----------------------------- libs/esl/src/include/esl.h | 10 ++++++++++ 4 files changed, 44 insertions(+), 35 deletions(-) diff --git a/libs/esl/fs_cli.2008.vcproj b/libs/esl/fs_cli.2008.vcproj index 8cd9ee37a0..ff0fdf260a 100644 --- a/libs/esl/fs_cli.2008.vcproj +++ b/libs/esl/fs_cli.2008.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=""$(ProjectDir)getopt";"$(ProjectDir)src/include"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -124,7 +124,7 @@ last_event->body); + DWORD outbytes = 0; + SetConsoleTextAttribute(hStdout, COLORS[level]); + WriteFile(hStdout, handle->last_event->body, len, &outbytes, NULL); + SetConsoleTextAttribute(hStdout, wOldColorAttrs); +#else printf("%s%s%s", COLORS[level], handle->last_event->body, ESL_SEQ_DEFAULT_COLOR); +#endif } known++; } else if (!strcasecmp(type, "text/disconnect-notice")) { @@ -320,6 +337,12 @@ int main(int argc, char *argv[]) el_set(el, EL_HIST, history, myhistory); history(myhistory, &ev, H_LOAD, hfile); #endif +#ifdef WIN32 + hStdout = GetStdHandle(STD_OUTPUT_HANDLE); + if (hStdout != INVALID_HANDLE_VALUE && GetConsoleScreenBufferInfo(hStdout, &csbiInfo)) { + wOldColorAttrs = csbiInfo.wAttributes; + } +#endif snprintf(cmd_str, sizeof(cmd_str), "log info\n\n"); esl_send_recv(&handle, cmd_str); diff --git a/libs/esl/src/esl.2008.vcproj b/libs/esl/src/esl.2008.vcproj index d64593c7aa..3bc6b15962 100644 --- a/libs/esl/src/esl.2008.vcproj +++ b/libs/esl/src/esl.2008.vcproj @@ -20,7 +20,7 @@ Name="Debug|Win32" OutputDirectory="$(SolutionDir)Debug" IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" + ConfigurationType="4" CharacterSet="1" > @@ -63,21 +63,11 @@ Name="VCPreLinkEventTool" /> - @@ -87,9 +77,6 @@ - @@ -98,7 +85,7 @@ Name="Release|Win32" OutputDirectory="$(SolutionDir)Release" IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" + ConfigurationType="4" CharacterSet="1" WholeProgramOptimization="1" > @@ -120,7 +107,7 @@ - @@ -161,9 +140,6 @@ - diff --git a/libs/esl/src/include/esl.h b/libs/esl/src/include/esl.h index 58a941dc49..9285f0b372 100644 --- a/libs/esl/src/include/esl.h +++ b/libs/esl/src/include/esl.h @@ -42,6 +42,15 @@ typedef struct esl_event_header esl_event_header_t; typedef struct esl_event esl_event_t; +#ifdef WIN32 +#define ESL_SEQ_FWHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY +#define ESL_SEQ_FRED FOREGROUND_RED | FOREGROUND_INTENSITY +#define ESL_SEQ_FMAGEN FOREGROUND_BLUE | FOREGROUND_RED +#define ESL_SEQ_FCYAN FOREGROUND_GREEN | FOREGROUND_BLUE +#define ESL_SEQ_FGREEN FOREGROUND_GREEN +#define ESL_SEQ_FYELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY +#define ESL_SEQ_DEFAULT_COLOR ESL_SEQ_FWHITE +#else #define ESL_SEQ_ESC "\033[" /* Ansi Control character suffixes */ #define ESL_SEQ_HOME_CHAR 'H' @@ -95,6 +104,7 @@ typedef struct esl_event esl_event_t; #define ESL_SEQ_CLEARLINE ESL_SEQ_ESC ESL_SEQ_CLEARLINE_CHAR_STR #define ESL_SEQ_CLEARLINEEND ESL_SEQ_ESC ESL_SEQ_CLEARLINEEND_CHAR #define ESL_SEQ_CLEARSCR ESL_SEQ_ESC ESL_SEQ_CLEARSCR_CHAR ESL_SEQ_HOME +#endif #if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__NetBSD__) #define _XOPEN_SOURCE 600