X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Frawdsp.c;h=e71877d4bbb903ee16e38ed234dfdc234c09faa7;hb=d23b84fee73518dfb6b281d1eaedbe4fc4aa34b2;hp=08ef9d332fc3ee20dfabc0e5924682ce313a2989;hpb=4a9acd2e4d21586f2af629ec44cd78c237dcd702;p=gnushogi.git diff --git a/gnushogi/rawdsp.c b/gnushogi/rawdsp.c index 08ef9d3..e71877d 100644 --- a/gnushogi/rawdsp.c +++ b/gnushogi/rawdsp.c @@ -35,6 +35,8 @@ #include #include #include +#include +#include #include "gnushogi.h" #include "rawdsp.h" @@ -123,23 +125,17 @@ Raw_ShowMessage(char *s) void -Raw_AlwaysShowMessage(const char *format, ...) +Raw_AlwaysShowMessage(const char *format, va_list ap) { - va_list ap; - va_start(ap, format); vprintf(format, ap); - va_end(ap); printf("\n"); } void -Raw_Printf(const char *format, ...) +Raw_Printf(const char *format, va_list ap) { - va_list ap; - va_start(ap, format); vprintf(format, ap); - va_end(ap); } @@ -472,7 +468,7 @@ Raw_EditBoard(void) * first line. White pieces are represented by uppercase characters. */ void -SetupBoard(void) +Raw_SetupBoard(void) { short r, c, sq, i; char ch; @@ -633,6 +629,12 @@ Raw_OutputMove(void) void +Raw_UpdateClocks(void) +{ +} + + +void Raw_UpdateDisplay(short f, short t, short redraw, short isspec) { @@ -989,6 +991,24 @@ Raw_ShowPostnValues(void) } +void +Raw_PollForInput(void) +{ + 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(); + } + if (cnt) { /* if anything to read, or error occured */ + if (!flag.timeout) + flag.back = true; /* previous: flag.timeout = true; */ + flag.bothsides = false; + } +} + + /* * Determine the time that has passed since the search was started. If the * elapsed time exceeds the target(ResponseTime + ExtraTime) then set timeout @@ -1003,6 +1023,11 @@ Raw_ElapsedTime(ElapsedTime_mode iop) long current_time; #ifdef HAVE_GETTIMEOFDAY struct timeval tv; +#endif + + PollForInput(); + +#ifdef HAVE_GETTIMEOFDAY gettimeofday(&tv, NULL); current_time = tv.tv_sec*100 + (tv.tv_usec/10000); #else @@ -1042,12 +1067,9 @@ Raw_ElapsedTime(ElapsedTime_mode iop) time0 = current_time; } - if (!NOT_CURSES) - { #ifdef QUIETBACKGROUND - if (!background) + if (!background) #endif - UpdateClocks(); - } + UpdateClocks(); } }