]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fs_cli add colors on windows and build static
authorMichael Jerris <mike@jerris.com>
Wed, 24 Dec 2008 00:00:45 +0000 (00:00 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 24 Dec 2008 00:00:45 +0000 (00:00 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10938 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/esl/fs_cli.2008.vcproj
libs/esl/fs_cli.c
libs/esl/src/esl.2008.vcproj
libs/esl/src/include/esl.h

index 8cd9ee37a0092c5738e13090fa910e134f055476..ff0fdf260a7ac17e0a4f51c08ae54571526cfe45 100644 (file)
@@ -43,7 +43,7 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="&quot;$(ProjectDir)getopt&quot;;&quot;$(ProjectDir)src/include&quot;"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="3"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                AdditionalIncludeDirectories="&quot;$(ProjectDir)getopt&quot;;&quot;$(ProjectDir)src/include&quot;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC"\r
                                RuntimeLibrary="2"\r
                                UsePrecompiledHeader="0"\r
                                WarningLevel="4"\r
index d196290c549ecf68002735ab24be1fed520c3b0c..af88459b6f4f110f8bb20aae293f5e5e36c20b51 100644 (file)
@@ -40,8 +40,17 @@ static void handle_SIGINT(int sig)
 }
 
 
-static const char* COLORS[] = { ESL_SEQ_DEFAULT_COLOR, ESL_SEQ_FRED, ESL_SEQ_FRED, 
-                                                               ESL_SEQ_FRED, ESL_SEQ_FMAGEN, ESL_SEQ_FCYAN, ESL_SEQ_FGREEN, ESL_SEQ_FYELLOW };
+#ifdef WIN32\r
+static HANDLE hStdout;\r
+static WORD wOldColorAttrs;\r
+static CONSOLE_SCREEN_BUFFER_INFO csbiInfo;\r
+\r
+static WORD \r
+#else\r
+static const char*\r
+#endif\r
+COLORS[] = { ESL_SEQ_DEFAULT_COLOR, ESL_SEQ_FRED, ESL_SEQ_FRED, 
+                       ESL_SEQ_FRED, ESL_SEQ_FMAGEN, ESL_SEQ_FCYAN, ESL_SEQ_FGREEN, ESL_SEQ_FYELLOW };
 
 static void *msg_thread_run(esl_thread_t *me, void *obj)
 {
@@ -77,7 +86,15 @@ static void *msg_thread_run(esl_thread_t *me, void *obj)
                                                }
 
                                                if (tchannel == 0 || (file && !strcmp(file, "switch_console.c"))) {
+#ifdef WIN32
+                                                       DWORD len = (DWORD) strlen(handle->last_event->body);\r
+                                                       DWORD outbytes = 0;\r
+                                                       SetConsoleTextAttribute(hStdout, COLORS[level]);\r
+                                                       WriteFile(hStdout, handle->last_event->body, len, &outbytes, NULL);\r
+                                                       SetConsoleTextAttribute(hStdout, wOldColorAttrs);\r
+#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);\r
+       if (hStdout != INVALID_HANDLE_VALUE && GetConsoleScreenBufferInfo(hStdout, &csbiInfo)) {\r
+               wOldColorAttrs = csbiInfo.wAttributes;\r
+       }\r
+#endif
 
        snprintf(cmd_str, sizeof(cmd_str), "log info\n\n");
        esl_send_recv(&handle, cmd_str);
index d64593c7aad907f9492f5f26ec3a1bd14564e783..3bc6b15962358bbbd382657c1acfd320fafb1130 100644 (file)
@@ -20,7 +20,7 @@
                        Name="Debug|Win32"\r
                        OutputDirectory="$(SolutionDir)Debug"\r
                        IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
+                       ConfigurationType="4"\r
                        CharacterSet="1"\r
                        >\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="include"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_EXPORTS"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="3"\r
                                UsePrecompiledHeader="0"\r
                                WarningLevel="4"\r
                                WarnAsError="true"\r
-                               DebugInformationFormat="4"\r
+                               DebugInformationFormat="3"\r
                                DisableSpecificWarnings="4706;4100"\r
                                EnablePREfast="true"\r
                        />\r
                                Name="VCPreLinkEventTool"\r
                        />\r
                        <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="Ws2_32.lib"\r
-                               ModuleDefinitionFile=""\r
-                               OptimizeReferences="1"\r
-                               EnableCOMDATFolding="1"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               ImportLibrary="$(IntDir)/$(TargetName).lib"\r
+                               Name="VCLibrarianTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
                        <Tool\r
                                Name="VCXDCMakeTool"\r
                        />\r
@@ -87,9 +77,6 @@
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
                        />\r
@@ -98,7 +85,7 @@
                        Name="Release|Win32"\r
                        OutputDirectory="$(SolutionDir)Release"\r
                        IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
+                       ConfigurationType="4"\r
                        CharacterSet="1"\r
                        WholeProgramOptimization="1"\r
                        >\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                AdditionalIncludeDirectories="include"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_EXPORTS"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC"\r
                                RuntimeLibrary="2"\r
                                UsePrecompiledHeader="0"\r
                                WarningLevel="4"\r
                                Name="VCPreLinkEventTool"\r
                        />\r
                        <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="Ws2_32.lib"\r
-                               ModuleDefinitionFile=""\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               ImportLibrary="$(IntDir)/$(TargetName).lib"\r
+                               Name="VCLibrarianTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
                        <Tool\r
                                Name="VCXDCMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
                        />\r
index 58a941dc49c888c0fc644a776b0b6d25851ce72e..9285f0b372e179b53b97558f7e6e96e325b13fd4 100644 (file)
 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\r
+#define ESL_SEQ_FRED FOREGROUND_RED | FOREGROUND_INTENSITY\r
+#define ESL_SEQ_FMAGEN FOREGROUND_BLUE | FOREGROUND_RED\r
+#define ESL_SEQ_FCYAN FOREGROUND_GREEN | FOREGROUND_BLUE\r
+#define ESL_SEQ_FGREEN FOREGROUND_GREEN\r
+#define ESL_SEQ_FYELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY\r
+#define ESL_SEQ_DEFAULT_COLOR ESL_SEQ_FWHITE\r
+#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