X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=book.c;h=520d941e9bfa8ae5b62ca105bcd69b1365dcc071;hb=2a1e296dac2afd76b0661e82ca5da911eef20697;hp=c52e6e397b17df030c65416e12a1eedb7f3a58d3;hpb=254843cec48a6ddcffe31a0e9f484f08a318f1bb;p=xboard.git diff --git a/book.c b/book.c index c52e6e3..520d941 100644 --- a/book.c +++ b/book.c @@ -575,6 +575,8 @@ GetBookMoves (FILE *f, int moveNr, entry_t entries[], int max) return count; } +static int dirty; + int ReadFromBookFile (int moveNr, char *book, entry_t entries[]) { // retrieve all entries for given position from book in 'entries', return number. @@ -582,6 +584,7 @@ ReadFromBookFile (int moveNr, char *book, entry_t entries[]) static char curBook[MSG_SIZ]; if(book == NULL) return -1; + if(dirty) { if(f) fclose(f); dirty = 0; f = NULL; } if(!f || strcmp(book, curBook)){ // keep book file open until book changed strncpy(curBook, book, MSG_SIZ); if(f) fclose(f); @@ -873,6 +876,7 @@ SaveToBook (char *text) writepos += len2; } while(len1); } + dirty = 1; fclose(f); }