Whitespace and parenthesis cleanup.
[gnushogi.git] / gnushogi / rawdsp.c
index e8e7b98..99a9ba0 100644 (file)
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/file.h>
+#ifndef WIN32
 #include <poll.h>
 #include <unistd.h>
+#endif
 
 #include "gnushogi.h"
-#include "rawdsp.h"
 
 unsigned short MV[MAXDEPTH];
 int MSCORE;
@@ -49,6 +50,11 @@ char *DRAW;
 extern char *InPtr;
 extern short pscore[];
 
+/****************************************
+ * forward declarations
+ ****************************************/
+
+void Raw_UpdateDisplay(short f, short t, short redraw, short isspec);
 
 /****************************************
  * Trivial output functions.
@@ -124,17 +130,23 @@ Raw_ShowMessage(char *s)
 
 
 void
-Raw_AlwaysShowMessage(const char *format, va_list ap)
+Raw_AlwaysShowMessage(const char *format, ...)
 {
+    va_list ap;
+    va_start(ap, format);
     vprintf(format, ap);
     printf("\n");
+    va_end(ap);
 }
 
 
 void
-Raw_Printf(const char *format, va_list ap)
+Raw_Printf(const char *format, ...)
 {
+    va_list ap;
+    va_start(ap, format);
     vprintf(format, ap);
+    va_end(ap);
 }
 
 
@@ -217,6 +229,10 @@ Raw_Initialize(void)
 
     if (XSHOGI)
     {
+#ifdef WIN32
+        /* needed because of inconsistency between MSVC run-time system and gcc includes */
+        setbuf(stdout, NULL);
+#else
 #ifdef HAVE_SETLINEBUF
         setlinebuf(stdout);
 #else
@@ -226,6 +242,7 @@ Raw_Initialize(void)
 #    error "Need setlinebuf() or setvbuf() to compile gnushogi!"
 #  endif
 #endif
+#endif
         printf("GNU Shogi %s\n", PACKAGE_VERSION);
     }
 
@@ -944,16 +961,66 @@ Raw_ShowPostnValues(void)
 void
 Raw_PollForInput(void)
 {
-    static struct pollfd pollfds[1] = { /* [0] = */ { /* .fd = */ STDIN_FILENO,
-                                                      /* .events = */ POLLIN } };
+#ifdef WIN32
+    DWORD cnt;
+    if (!PeekNamedPipe(GetStdHandle(STD_INPUT_HANDLE), NULL, 0, NULL, &cnt, NULL))
+        cnt = 1;
+#else
+    static struct pollfd pollfds[1] = { [0] = { .fd = STDIN_FILENO,
+                                                .events = POLLIN } };
     int cnt = poll(pollfds, sizeof(pollfds)/sizeof(pollfds[0]), 0);
     if (cnt < 0) {
         perror("polling standard input");
-        ExitShogi();
+        Raw_ExitShogi();
     }
+#endif
     if (cnt) { /* if anything to read, or error occured */
         if (!flag.timeout)
             flag.back = true; /* previous: flag.timeout = true; */
         flag.bothsides = false;
     }
 }
+
+struct display raw_display =
+{
+    .ChangeAlphaWindow    = Raw_ChangeAlphaWindow,
+    .ChangeBetaWindow     = Raw_ChangeBetaWindow,
+    .ChangeHashDepth      = Raw_ChangeHashDepth,
+    .ChangeSearchDepth    = Raw_ChangeSearchDepth,
+    .ChangeXwindow        = Raw_ChangeXwindow,
+    .ClearScreen          = Raw_ClearScreen,
+    .DoDebug              = Raw_DoDebug,
+    .DoTable              = Raw_DoTable,
+    .EditBoard            = Raw_EditBoard,
+    .ExitShogi            = Raw_ExitShogi,
+    .GiveHint             = Raw_GiveHint,
+    .Initialize           = Raw_Initialize,
+    .ShowNodeCnt          = Raw_ShowNodeCnt,
+    .OutputMove           = Raw_OutputMove,
+    .PollForInput         = Raw_PollForInput,
+    .SetContempt          = Raw_SetContempt,
+    .SearchStartStuff     = Raw_SearchStartStuff,
+    .SelectLevel          = Raw_SelectLevel,
+    .ShowCurrentMove      = Raw_ShowCurrentMove,
+    .ShowDepth            = Raw_ShowDepth,
+    .ShowGameType         = Raw_ShowGameType,
+    .ShowLine             = Raw_ShowLine,
+    .ShowMessage          = Raw_ShowMessage,
+    .AlwaysShowMessage    = Raw_AlwaysShowMessage,
+    .Printf               = Raw_Printf,
+    .doRequestInputString = Raw_doRequestInputString,
+    .GetString            = Raw_GetString,
+    .SetupBoard           = Raw_SetupBoard,
+    .ShowPatternCount     = Raw_ShowPatternCount,
+    .ShowPostnValue       = Raw_ShowPostnValue,
+    .ShowPostnValues      = Raw_ShowPostnValues,
+    .ShowPrompt           = Raw_ShowPrompt,
+    .ShowResponseTime     = Raw_ShowResponseTime,
+    .ShowResults          = Raw_ShowResults,
+    .ShowSidetoMove       = Raw_ShowSidetoMove,
+    .ShowStage            = Raw_ShowStage,
+    .TerminateSearch      = Raw_TerminateSearch,
+    .UpdateClocks         = Raw_UpdateClocks,
+    .UpdateDisplay        = Raw_UpdateDisplay,
+    .help                 = Raw_help,
+};