Hi, I might make a small new feature... move to end of var (variation) and assigning it to the "End" key.
So - if you're in a variation, pressing End will not move to game end, but var end. ..But i'm just not sure about how to assign the *buttons*. I'm pretty sure I might leave the blue End button (">>") to always move to game end. Similarly, i might make the "Home" key move the the var start, but leave the '<<' button to move to game start. Of course, if you're outside of a variation, the Home/End key functions are unchanged. Attached is a simple "move to end of var" patch (the "move to start" is not implemented, but it's quote trivial). Any Ideas ? PS - I'm thinking of getting ScidvsPC 4.20 ready in the next few months. macOS is a pain though, as 32 bit will be discontinued after Mojave, and we will have to (sometime) make a portable 64 bit linux "Docker" image to run on macOS from then on. ... Any volunteers? Our previous Docker contributor is M.I.A. Cheers, Steven
Index: src/tkscid.cpp =================================================================== --- src/tkscid.cpp (revision 2929) +++ src/tkscid.cpp (working copy) @@ -10379,11 +10379,11 @@ sc_move (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { static const char * options [] = { - "add", "addSan", "addUCI", "back", "end", "forward", + "add", "addSan", "addUCI", "back", "end", "endVar", "forward", "pgn", "ply", "start", NULL }; enum { - MOVE_ADD, MOVE_ADDSAN, MOVE_ADDUCI, MOVE_BACK, MOVE_END, MOVE_FORWARD, + MOVE_ADD, MOVE_ADDSAN, MOVE_ADDUCI, MOVE_BACK, MOVE_END, MOVE_END_VAR, MOVE_FORWARD, MOVE_PGN, MOVE_PLY, MOVE_START }; int index = -1; @@ -10413,6 +10413,15 @@ } break; + case MOVE_END_VAR: + { + errorT err = OK; + do { + err = db->game->MoveForward(); + } while (err == OK); + } + break; + case MOVE_FORWARD: return sc_move_forward (cd, ti, argc, argv); Index: tcl/end.tcl =================================================================== --- tcl/end.tcl (revision 2928) +++ tcl/end.tcl (working copy) @@ -1631,7 +1631,7 @@ bind $w <Left> ::move::Back bind $w <Down> {::move::Forward 10} bind $w <Right> ::move::Forward - bind $w <End> ::move::End + bind $w <End> {::move::End 1} bind $w <F2> {::startAnalysisWin F2} bind $w <F3> {::startAnalysisWin F3} bind $w <F4> {::startAnalysisWin F4} Index: tcl/move.tcl =================================================================== --- tcl/move.tcl (revision 2928) +++ tcl/move.tcl (working copy) @@ -70,13 +70,17 @@ } } -proc ::move::End {} { +proc ::move::End {{var 0}} { if {$::fics::playing == 2} { ::fics::writechan {forward 256} noecho return } set ::pause 1 - sc_move end + if {$var} { + sc_move endVar + } else { + sc_move end + } updateBoard if {[::move::drawVarArrows]} { ::move::showVarArrows } }
_______________________________________________ Scidvspc-users mailing list Scidvspc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scidvspc-users