From: pgeorges <pas...@fr...> - 2007-06-19 16:27:24
|
Hi, I finally found where is the problem : length of games in index files are coded with an unsigned char, hence a limit at 65535 bytes for an encoded game. Note that the index length is different from the PGN one, even if related. There is a possible fix by changing the definition of Length to uint (32 bits), but this would mean changing Scid's format and adding a new version for index files, which is possible but it has drawbacks : it will need more memory (not a problem on a PC) but is hardly acceptable on a PDA, and I want to remain compatible. So I will update Scid in a way it will try to encode a game as much as possible, and will warn the user if there is a problem, leaving a coherent base after a failure. So Cory, I see only one solution right now for you (unless you change yourself the type of Length in index.h file, accepting the incompatibility with previous Scid versions), is to split your games every 20 moves ... pgeorges a écrit : > I am puzzled with this, after a couple hours searching. > The email window error is just a side effect of the fact that the game > can not be loaded properly. When loading the error occurs in the > "decodeComments" proc, but I am not 100% sure that the game was properly > encoded in the base. At least Scid 3.6.1 does not even try to save the > game, it outputs a clear error during import, so the user knows at the > right time that he will not go far with such games. > > The problem is that there are many buffers in Scid's code, and I raised > some limits to handle such games with long comments but this has > drawbacks : heap fragmentation. And I try to make a binary compatible > Pocket version, which clearly does not like memory fragmentation. I > played with some buffers without success : the actual limits should be > ok with such games. > > So the short answer : there is a problem here, I don't know how to fix > it, and even if I knew how to, I am not sure it would be a good thing > because of side effects on memory ... > > Pascal > > Cory Helfrich a écrit : > >> Hello Pascal, >> >> I apologize, but this issue is back again. The issue showed up on my >> Windows machine using Scid 3.6.15 installed on a USB memory stick. I >> entered my opponent's move, my analysis of that move and the three >> responses I was considering, and entered my move. I saved the game >> with no apparent problems (the game saved normally and the "XX" in the >> lower left of the scid main window changed to "--"). However, when I >> clicked the "Send email" button in the Scid Email Manager, I received >> the following error: >> >> --Begin Error Message-- >> >> can't read "gamePgn": no such variable >> can't read "gamePgn": no such variable >> while executing >> "$text insert end "$gamePgn\n"" >> (procedure "emailMessageEditor" line 69) >> invoked from within >> "emailMessageEditor $idx [lindex $details 0] [lindex $details 1] >> [lindex $details 2] [lindex $details 3] [lindex $details 4]" >> (procedure "::tools::email::SendButton" line 8) >> invoked from within >> "::tools::email::SendButton" >> invoked from within >> ".emailWin.b.send invoke" >> ("uplevel" body line 1) >> invoked from within >> "uplevel #0 [list $w invoke]" >> (procedure "tk::ButtonUp" line 24) >> invoked from within >> "tk::ButtonUp .emailWin.b.send" >> (command bound to event) >> >> > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Scid-users mailing list > Sci...@li... > https://lists.sourceforge.net/lists/listinfo/scid-users > > > |