Convert more stuff from #ifdef to dspwrappers.
authorYann Dirson <ydirson@free.fr>
Tue, 15 Oct 2013 20:41:09 +0000 (22:41 +0200)
committerYann Dirson <ydirson@free.fr>
Sat, 19 Oct 2013 13:45:21 +0000 (15:45 +0200)
gnushogi/commondsp.c
gnushogi/cursesdsp.c
gnushogi/cursesdsp.h
gnushogi/dspwrappers.c
gnushogi/dspwrappers.h
gnushogi/rawdsp.c
gnushogi/rawdsp.h

index c00338a..36cc789 100644 (file)
@@ -164,12 +164,8 @@ algbr(short f, short t, short flag)
 
     if ((f == t) && ((f != 0) || (t != 0)))
     {
-        if (!barebones)
-        {
-            if (NOT_CURSES)
-                printf("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
-            else
-                printw("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
+        if (!barebones) {
+            Printf("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
         }
 
         mvstr[0][0] = mvstr[1][0] = mvstr[2][0] = mvstr[3][0] = '\0';
@@ -448,24 +444,12 @@ GetGame(void)
     short sq;
     short side, isp;
 
-    if (savefile[0])
-    {
+    if (savefile[0]) {
         strcpy(fname, savefile);
-    }
-    else
-    {
+    } else {
         /* Enter file name */
         ShowMessage(CP[63]);
-
-        if (NOT_CURSES)
-        {
-            scanf("%s", fname);
-        }
-        else
-        {
-            fflush(stdout);
-            scanw("%s", fname);
-        }
+        RequestInputString(fname);
     }
 
     /* shogi.000 */
@@ -685,24 +669,12 @@ SaveGame(void)
     short side, piece;
     char empty[2] = "\n";
 
-    if (savefile[0])
-    {
+    if (savefile[0]) {
         strcpy(fname, savefile);
-    }
-    else
-    {
+    } else {
         /* Enter file name */
         ShowMessage(CP[63]);
-
-        if (NOT_CURSES)
-        {
-            scanf("%s", fname);
-        }
-        else
-        {
-            fflush(stdout);
-            scanw("%s", fname);
-        }
+        RequestInputString(fname);
     }
 
     if (fname[0] == '\0')        /* shogi.000 */
@@ -846,16 +818,7 @@ GetXGame(void)
 
     /* Enter file name */
     ShowMessage(CP[63]);
-
-    if (NOT_CURSES)
-    {
-        scanf("%s", fname);
-    }
-    else
-    {
-        fflush(stdout);
-        scanw("%s", fname);
-    }
+    RequestInputString(fname);
 
     if (fname[0] == '\0') /* XSHOGI.position.read */
         strcpy(fname, CP[205]);
@@ -983,16 +946,7 @@ SaveXGame(void)
 
     /* Enter file name */
     ShowMessage(CP[63]);
-
-    if (NOT_CURSES)
-    {
-        scanf("%s", fname);
-    }
-    else
-    {
-        fflush(stdout);
-        scanw("%s", fname);
-    }
+    RequestInputString(fname);
 
     if (fname[0] == '\0') /* XSHOGI.position.read */
         strcpy(fname, CP[205]);
@@ -1065,24 +1019,12 @@ BookSave(void)
     char fname[256], sflags[4];
     short i, j, f, t;
 
-    if (savefile[0])
-    {
+    if (savefile[0]) {
         strcpy(fname, savefile);
-    }
-    else
-    {
+    } else {
         /* Enter file name */
         ShowMessage(CP[63]);
-
-        if (NOT_CURSES)
-        {
-            scanf("%s", fname);
-        }
-        else
-        {
-            fflush(stdout);
-            scanw("%s", fname);
-        }
+        RequestInputString(fname);
     }
 
     if (fname[0] == '\0')
index f4c00ec..dd6b10f 100644 (file)
@@ -150,6 +150,25 @@ Curses_ShowMessage(char *s)
 
 
 void
+Curses_Printf(const char *format, ...)
+{
+    static char buffer[60];
+    va_list ap;
+    va_start(ap, format);
+    vsnprintf(buffer, sizeof(buffer), format, ap);
+    printw("%s", buffer);
+    va_end(ap);
+}
+
+
+void
+Curses_RequestInputString(char* buffer)
+{
+    FLUSH_SCANW("%s", buffer);
+}
+
+
+void
 ShowNodeCnt(long NodeCnt)
 {
     gotoXY(TAB, 22);
index 83afbd8..a83338f 100644 (file)
@@ -58,6 +58,8 @@ void Curses_ShowDepth(char ch);
 void Curses_ShowGameType(void);
 void Curses_ShowLine(unsigned short *bstline);
 void Curses_ShowMessage(char *s);
+void Curses_Printf(const char *format, ...);
+void Curses_RequestInputString(char* buffer);
 void Curses_ShowPatternCount(short side, short n);
 void Curses_ShowPostnValue(short sq);
 void Curses_ShowPostnValues(void);
index 7590dcb..10b06b4 100644 (file)
@@ -37,6 +37,8 @@
 #include "rawdsp.h"
 #include "cursesdsp.h"
 
+#include <stdarg.h>
+
 #define CASE_DSP_RAW(func,args) \
   case DISPLAY_RAW:             \
   case DISPLAY_X:               \
 #define DISPLAY_VOIDFUNC(func)                  \
   DISPLAY_FUNC(func,(void),())
 
+#define DISPLAY_STDARGFUNC(func,argsdecl,last,args)     \
+  void func argsdecl                                    \
+  {                                                     \
+    va_list ap;                                         \
+    va_start(ap, last);                                 \
+    switch (display_type) {                             \
+      CASE_DSP_RAW(Raw_ ## func, args);                 \
+      CASE_DSP_CURSES(Curses_ ## func, args);           \
+    }                                                   \
+    va_end(ap);                                         \
+  }
+
 DISPLAY_VOIDFUNC(ChangeAlphaWindow)
 DISPLAY_VOIDFUNC(ChangeBetaWindow)
 DISPLAY_VOIDFUNC(ChangeHashDepth)
@@ -84,6 +98,8 @@ DISPLAY_FUNC(ShowDepth, (char ch), (ch))
 DISPLAY_VOIDFUNC(ShowGameType)
 DISPLAY_FUNC(ShowLine, (unsigned short *bstline), (bstline))
 DISPLAY_FUNC(ShowMessage, (char *s), (s))
+DISPLAY_STDARGFUNC(Printf, (const char *format, ...), format, (format, ap))
+DISPLAY_FUNC(RequestInputString, (char* buffer), (buffer))
 DISPLAY_FUNC(ShowPatternCount, (short side, short n), (side, n))
 DISPLAY_FUNC(ShowPostnValue, (short sq), (sq))
 DISPLAY_VOIDFUNC(ShowPostnValues)
index b99c211..a1d4f17 100644 (file)
@@ -56,6 +56,8 @@ extern void ShowDepth(char ch);
 extern void ShowGameType(void);
 extern void ShowLine(unsigned short *bstline);
 extern void ShowMessage(char *s);
+extern void Printf(const char *format, ...);
+extern void RequestInputString(char* buffer);
 extern void ShowPatternCount(short side, short n);
 extern void ShowPostnValue(short sq);
 extern void ShowPostnValues(void);
index 27e558c..e073bae 100644 (file)
@@ -31,6 +31,7 @@
 
 #include <ctype.h>
 #include <signal.h>
+#include <stdarg.h>
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/file.h>
@@ -123,6 +124,22 @@ Raw_ShowMessage(char *s)
 
 
 void
+Raw_Printf(const char *format, ...)
+{
+    va_list ap;
+    va_start(ap, format);
+    vprintf(format, ap);
+    va_end(ap);
+}
+
+void
+Raw_RequestInputString(char* buffer)
+{
+    scanf("%s", buffer);
+}
+
+
+void
 Raw_ShowPatternCount(short side, short n)
 {
     if (flag.post)
index 989c6fc..9f22a6b 100644 (file)
@@ -58,6 +58,8 @@ void Raw_ShowDepth(char ch);
 void Raw_ShowGameType(void);
 void Raw_ShowLine(unsigned short *bstline);
 void Raw_ShowMessage(char *s);
+void Raw_Printf(const char *format, ...);
+void Raw_RequestInputString(char* buffer);
 void Raw_ShowPatternCount(short side, short n);
 void Raw_ShowPostnValue(short sq);
 void Raw_ShowPostnValues(void);