Fix an issue when adding a book during the game
authorMarco Costalba <mcostalba@gmail.com>
Sun, 27 May 2012 13:13:14 +0000 (14:13 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 27 May 2012 13:13:14 +0000 (14:13 +0100)
Currently when we fail to open a book file, for instance
if it doesn't exsist, we leave Book::open() with ifstream
failbit set. If then the book file is added, we correctly
open it at next attempt, but failbit is still set so that
after opening we exit because ifstream::good() returns false.

The fix is to reset failbit upon exiting.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/book.cpp

index cc433a90abe47580b25b074fa01d65fa22a6f0cc..40b647cfe44a8ad27e1dc33965f0867d6377d531 100644 (file)
@@ -378,7 +378,10 @@ bool Book::open(const char* fName) {
   ifstream::open(fName, ifstream::in | ifstream::binary | ios::ate);
 
   if (!is_open())
+  {
+      clear();
       return false; // Silently fail if the file is not found
+  }
 
   // Get the book size in number of entries, we are already at the end of file
   size = (size_t)tellg() / sizeof(BookEntry);