X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=c259cc56e436a6327326be170c11e9a5d2d52a84;hb=8778e777cf7414b29c3fda5914039d49b619daed;hp=9f58b185167461347841aa769018608f1bbfb9ab;hpb=4d04bc8a6c2d5e410d519b25164613c5e5c2d160;p=xboard.git diff --git a/backend.c b/backend.c index 9f58b18..c259cc5 100644 --- a/backend.c +++ b/backend.c @@ -55,8 +55,6 @@ #ifdef WIN32 #include -#define DoSleep( n ) if( (n) != 0 ) Sleep( (n) ); - int flock(int f, int code); #define LOCK_EX 2 #define SLASH '\\' @@ -64,7 +62,6 @@ int flock(int f, int code); #else #include -#define DoSleep( n ) if( (n) >= 0) sleep(n) #define SLASH '/' #endif @@ -1665,6 +1662,16 @@ InitBackEnd3 P((void)) } } +void +HistorySet( char movelist[][2*MOVE_LEN], int first, int last, int current ) +{ + MoveHistorySet( movelist, first, last, current, pvInfoList ); + + EvalGraphSet( first, last, current, pvInfoList ); + + MakeEngineOutputTitle(); +} + /* * Establish will establish a contact to a remote host.port. * Sets icsPR to a ProcRef for a process (or pseudo-process) @@ -11948,12 +11955,18 @@ SaveGameToFile(filename, append) { FILE *f; char buf[MSG_SIZ]; - int result; + int result, i, t,tot=0; if (strcmp(filename, "-") == 0) { return SaveGame(stdout, 0, NULL); } else { - f = fopen(filename, append ? "a" : "w"); + for(i=0; i<10; i++) { // upto 10 tries + f = fopen(filename, append ? "a" : "w"); + if(f && i) fprintf(f, "[Delay \"%d retries, %d msec\"]\n",i,tot); + if(f || errno != 13) break; + DoSleep(t = 5 + random()%11); // wait 5-15 msec + tot += t; + } if (f == NULL) { snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename); DisplayError(buf, errno);