Revision
15209
Author
anthm
Date
2009-10-23 10:15:34 -0500 (Fri, 23 Oct 2009)

Log Message

FSCORE-472

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_console.c (15208 => 15209)


--- freeswitch/trunk/src/switch_console.c	2009-10-23 15:07:52 UTC (rev 15208)
+++ freeswitch/trunk/src/switch_console.c	2009-10-23 15:15:34 UTC (rev 15209)
@@ -842,12 +842,13 @@
 {
 
 	char cmd[2048] = "";
-	int32_t activity = 1, r;	
+	int32_t activity = 1;	
 	gethostname(hostname, sizeof(hostname));
 
 	while (running) {
 		int32_t arg;
 #ifdef _MSC_VER
+		DWORD read, i;
 		HANDLE stdinHandle = GetStdHandle(STD_INPUT_HANDLE);
 		INPUT_RECORD in[128];
 #else
@@ -864,34 +865,31 @@
 			switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_CONSOLE, "\nfreeswitch@%s> ", hostname);
 		}
 #ifdef _MSC_VER
-		r = WaitForSingleObject(stdinHandle, 200);
 		activity = 0;
+		PeekConsoleInput(stdinHandle, in, 128, &read);
+		for (i = 0; i < read; i++) {
+			if (in[i].EventType == KEY_EVENT && !in[i].Event.KeyEvent.bKeyDown) {
+				activity = 1;
+				break;
+			}
+		}
 
-		if (r == WAIT_OBJECT_0) {
+		if (activity) {
 			DWORD bytes = 0;
-			DWORD read, i;
-			PeekConsoleInput(stdinHandle, in, 128, &read);
-			for (i = 0; i < read; i++) {
-				if (in[i].EventType == KEY_EVENT && !in[i].Event.KeyEvent.bKeyDown) {
-					activity = 1;
-					break;
-				}
+			char *end;
+			ReadConsole(stdinHandle, cmd, sizeof(cmd), &bytes, NULL);
+			FlushConsoleInputBuffer(stdinHandle);
+			end = end_of_p(cmd);
+			while(*end == '\r' || *end == '\n') {
+				*end-- = '\0';	
 			}
-			if (activity) {
-				char *end;
-				ReadConsole(stdinHandle, cmd, sizeof(cmd), &bytes, NULL);
-				end = end_of_p(cmd);
-				while(*end == '\r' || *end == '\n') {
-					*end-- = '\0';	
-				}
-			}
+		}
 
-			if (cmd[0]) {
-				running = switch_console_process(cmd, 0);
-				memset(cmd, 0, sizeof(cmd));
-			}
-			
+		if (cmd[0]) {
+			running = switch_console_process(cmd, 0);
+			memset(cmd, 0, sizeof(cmd));
 		}
+		Sleep(20);
 #else
 		FD_ZERO(&rfds);
 		FD_ZERO(&efds);