From 80e86a9e5c91be82b77c4546726eb9316bcc956cb6f0790b5ffdd4cab3418cd4 Mon Sep 17 00:00:00 2001 From: Reinhard Max Date: Thu, 6 Aug 2015 08:50:20 +0000 Subject: [PATCH] - New version 8.6.4: * (bug)[d43a10] shimmer-related crash in [tk_getOpenFile] * (bug)[1c0d6e] Win build trouble with SIGDN * (bug)[4a0451] [tk_getOpenFile] result * (bug) several fixes to elided context in [text] * (new feature)[TIP 433] %M binding substitution * (bug)[ab6dab] corrupt dashed lines in postscript - Update tkcon.tcl to CVS revision 1.122. OBS-URL: https://build.opensuse.org/package/show/devel:languages:tcl/tk?expand=0&rev=55 --- tk.changes | 12 +++++++++++ tk.spec | 2 +- tk8.6.3-src.tar.gz | 3 --- tk8.6.4-src.tar.gz | 3 +++ tkcon.tcl | 53 +++++++++++++++++++++++++++++----------------- 5 files changed, 50 insertions(+), 23 deletions(-) delete mode 100644 tk8.6.3-src.tar.gz create mode 100644 tk8.6.4-src.tar.gz diff --git a/tk.changes b/tk.changes index f8fc318..53a95d9 100644 --- a/tk.changes +++ b/tk.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Aug 6 08:44:56 UTC 2015 - max@suse.com + +- New version 8.6.4: + * (bug)[d43a10] shimmer-related crash in [tk_getOpenFile] + * (bug)[1c0d6e] Win build trouble with SIGDN + * (bug)[4a0451] [tk_getOpenFile] result + * (bug) several fixes to elided context in [text] + * (new feature)[TIP 433] %M binding substitution + * (bug)[ab6dab] corrupt dashed lines in postscript +- Update tkcon.tcl to CVS revision 1.122. + ------------------------------------------------------------------- Wed Nov 12 16:00:36 UTC 2014 - max@suse.com diff --git a/tk.spec b/tk.spec index 5a999d6..d5ed6a2 100644 --- a/tk.spec +++ b/tk.spec @@ -25,7 +25,7 @@ BuildRequires: libXt-devel BuildRequires: pkg-config BuildRequires: tcl-devel Url: http://www.tcl.tk -Version: 8.6.3 +Version: 8.6.4 Release: 0 %define rrc %nil BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/tk8.6.3-src.tar.gz b/tk8.6.3-src.tar.gz deleted file mode 100644 index 0514023..0000000 --- a/tk8.6.3-src.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba15d56ac27d8c0a7b1a983915a47e0f635199b9473cf6e10fbce1fc73fd8333 -size 4258339 diff --git a/tk8.6.4-src.tar.gz b/tk8.6.4-src.tar.gz new file mode 100644 index 0000000..d889130 --- /dev/null +++ b/tk8.6.4-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f99df85e5dc9c4271762163c6aabb962c8b297dc5c4c1af8bdd05fc2dd26c1 +size 4266426 diff --git a/tkcon.tcl b/tkcon.tcl index fe757a2..957c26a 100644 --- a/tkcon.tcl +++ b/tkcon.tcl @@ -186,7 +186,7 @@ proc ::tkcon::Init {args} { alias clear dir dump echo idebug lremove tkcon_puts tkcon_gets observe observe_var unalias which what } - RCS {RCS: @(#) $Id: tkcon.tcl,v 1.120 2013/01/23 01:19:51 hobbs Exp $} + RCS {RCS: @(#) $Id: tkcon.tcl,v 1.122 2014/09/09 10:46:15 hobbs Exp $} HEADURL {http://tkcon.cvs.sourceforge.net/viewvc/tkcon/tkcon/tkcon.tcl} docs "http://tkcon.sourceforge.net/" @@ -1121,6 +1121,10 @@ proc ::tkcon::AddSlaveHistory cmd { set code [catch {EvalSlave history event $ev} lastCmd] if {$code || $cmd ne $lastCmd} { EvalSlave history add $cmd + # Save history every time so it's not lost in case of an abnormal termination. + # Do not warn in case of an error: we don't want an error message + # after each command if the history file is not writable. + catch {SaveHistory} } } @@ -2600,30 +2604,40 @@ proc ::tkcon::MainInit {} { } proc ::exit args { if {$::tkcon::OPT(usehistory)} { - if {[catch {open $::tkcon::PRIV(histfile) w} fid]} { - puts stderr "unable to save history file:\n$fid" + if {[catch {::tkcon::SaveHistory} msg]} { + puts stderr "unable to save history file:\n$msg" # pause a moment, because we are about to die finally... after 1000 - } else { - set max [::tkcon::EvalSlave history nextid] - set id [expr {$max - $::tkcon::OPT(history)}] - if {$id < 1} { set id 1 } - ## FIX: This puts history in backwards!! - while {($id < $max) && ![catch \ - {::tkcon::EvalSlave history event $id} cmd]} { - if {$cmd ne ""} { - puts $fid "::tkcon::EvalSlave\ - history add [list $cmd]" - } - incr id - } - close $fid } } uplevel 1 ::tkcon::FinalExit $args } } + ## ::tkcon::SaveHistory - saves history to history file + ## If the history file is not writable it raises an error + proc ::tkcon::SaveHistory {} { + if {$::tkcon::OPT(usehistory)} { + if {[catch {open $::tkcon::PRIV(histfile) w} fid]} { + error $fid + } else { + set max [::tkcon::EvalSlave history nextid] + set id [expr {$max - $::tkcon::OPT(history)}] + if {$id < 1} { set id 1 } + ## FIX: This puts history in backwards!! + while {($id < $max) && ![catch \ + {::tkcon::EvalSlave history event $id} cmd]} { + if {$cmd ne ""} { + puts $fid "::tkcon::EvalSlave\ + history add [list $cmd]" + } + incr id + } + close $fid + } + } + } + ## ::tkcon::InterpEval - passes evaluation to another named interpreter ## If the interpreter is named, but no args are given, it returns the ## [tk appname] of that interps master (not the associated eval slave). @@ -4328,14 +4342,15 @@ proc idebug {opt args} { set level [expr {[info level]-1}] switch -glob -- $opt { on { - if {[llength $args]} { set IDEBUG(id) $args } + # id is just arg0 [bug #50] + if {[llength $args]} { set IDEBUG(id) [lindex $args 0] } return [set IDEBUG(on) 1] } off { return [set IDEBUG(on) 0] } id { if {![llength $args]} { return $IDEBUG(id) - } else { return [set IDEBUG(id) $args] } + } else { return [set IDEBUG(id) [lindex $args 0]] } } break { if {!$IDEBUG(on) || $IDEBUG(debugging) || \