X-Git-Url: http://winboard.nl/cgi-bin?p=polyglot.git;a=blobdiff_plain;f=book_make.c;h=39f99de0f10e767e97e077ee5ef0a2e25c74420e;hp=c9500a2276b2a49946e68f295ba42e4351b4d435;hb=HEAD;hpb=ae338a820ef1c16d4399958613bbc0b908904b91 diff --git a/book_make.c b/book_make.c index c9500a2..39f99de 100644 --- a/book_make.c +++ b/book_make.c @@ -17,6 +17,7 @@ #include "pgn.h" #include "san.h" #include "util.h" +#include "pgheader.h" // constants @@ -343,23 +344,39 @@ static void book_save(const char file_name[]) { FILE * file; int pos; + char *header, *raw_header; + unsigned int size; + int i; ASSERT(file_name!=NULL); file = fopen(file_name,"wb"); if (file == NULL) my_fatal("book_save(): can't open file \"%s\" for writing: %s\n",file_name,strerror(errno)); + pgheader_create(&header,"normal","Created by Polyglot."); + pgheader_create_raw(&raw_header,header,&size); + free(header); + + // write header + + for(i=0;isize; pos++) { ASSERT(keep_entry(pos)); - - write_integer(file,8,Book->entry[pos].key); - write_integer(file,2,Book->entry[pos].move); - write_integer(file,2,entry_score(&Book->entry[pos])); - write_integer(file,2,0); - write_integer(file,2,0); + /* null keys are reserved for the header */ + if(Book->entry[pos].key!=U64(0x0)){ + write_integer(file,8,Book->entry[pos].key); + write_integer(file,2,Book->entry[pos].move); + write_integer(file,2,entry_score(&Book->entry[pos])); + write_integer(file,2,0); + write_integer(file,2,0); + } } fclose(file); @@ -925,7 +942,7 @@ void book_dump(int argc, char * argv[]) { my_fatal("book_dump(): you must specify a color\n"); } if(txt_file==NULL){ - snprintf(string,StringSize,"book_%s.txt",color?"white":"black"); + snprintf(string,StringSize,"book_%s.txt",(color==White)?"white":"black"); my_string_set(&txt_file,string); }