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

Reply via email to