With Scid v4.6.4, using Tcl Version: 8.6.5+dfsg-2, Tk Version: 8.6.5-1 on a Debian Linux dist, the piece tracker is broken when tracking multiple pieces.
The break came in this commit by Fulvio: 92878f068c57c99c22b63d3cbde927124741e27d Author: Fulvio <f...@libero.it> 2015-03-07 09:35:24 Committer: Fulvio <f...@libero.it> 2015-03-08 14:22:29 Parent: e5e4d8d31a01696b3b6d116524da3c03983e1a47 (Framework for tcl/tk isolation) Child: 068e63b148b34be97c12119ad6030f75503bd32b (Fix keyboardShortcuts for text widgets) Branches: master, remotes/origin/master Follows: v4.5.2 Precedes: v4.6.1 ======== The following <git diff> will point you to the problem (and a solution). The eval command's internal concat assembles a single-layered list-constructed command string. Without it, the ::ptrack::select list is not fully expanded, and only the FIRST element of the list is passed to sc_base_piecetrack() as part of argv. Whether there might be a better way to solve the problem is beyond my grasp of the Tcl language. (The diff is taken on the v4.6.4 tagged commit vs. my working dir) ======== diff --git a/tcl/tools/ptracker.tcl b/tcl/tools/ptracker.tcl index e9fda99..56d8065 100644 --- a/tcl/tools/ptracker.tcl +++ b/tcl/tools/ptracker.tcl @@ -329,7 +329,7 @@ proc ::ptrack::refresh {{type "all"}} { if {$::ptrack::mode == "-time"} { set timeMode 1 } progressBarSet $w.progress 401 21 - set err [catch { sc_base piecetrack $::ptrack::mode \ + set err [catch { eval sc_base piecetrack $::ptrack::mode \ $::ptrack::moves(start) $::ptrack::moves(end) \ $::ptrack::select} ::ptrack::data] ========
------------------------------------------------------------------------------
_______________________________________________ Scid-users mailing list Scid-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scid-users