This command is called in response to the receipt of a <<Copy>> event.
The actual proc is defined as:
proc ::tk_textCut w {
if {![catch {set data [$w get sel.first sel.last]}]} {
clipboard clear -displayof $w
clipboard append -displayof $w $data
$w delete sel.first sel.last
}
}which doesn't take into account the possibility of having multiple ranges with the sel tag. Here's a more complete version: proc ::tk_textCut {w} {
set list [list]
array set sel {}
if { [catch {$w tag ranges sel} ranges] } { return }
foreach {first last} $ranges {
lappend list [$w get $first $last]
set sel($first) $last
}
clipboard clear -displayof $w
clipboard append -displayof $w [join $list \n]
foreach first [lsort -decreasing [array names sel]] {
$w delete $first $sel($first)
}
}or even: proc ::tk_textCut {w} {
array set sel {}
if { [catch {$w tag ranges sel} ranges] } { return }
foreach {first last} $ranges { set sel($first) $last }
tk_textCopy $w
foreach first [lsort -decreasing [array names sel]] {
$w delete $first $sel($first)
}
}See also:

