This file is indexed.

/usr/lib/grass64/etc/dm/tree.tcl is in grass-gui 6.4.3-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
namespace eval DmTree {
    variable count
    variable tree
    variable selected ""
    variable dblclick
    variable legend_height 20
    variable legend_width 30
}


proc DmTree::redraw { } {
    variable tree
  
    Tree::_update_scrollregion  $tree 
}

proc DmTree::create { parent } {
    variable legend_height
    variable legend_width
    variable tree
    set sw    [ScrolledWindow $parent.sw \
                  -relief sunken -borderwidth 2 ]

    set lw [expr $legend_width + 27]
    set lh [expr $legend_height + 6]
    set tree  [Tree $sw.tree \
            -relief flat -borderwidth 0 -width 15 -highlightthickness 0 \
            -redraw 1 -dropenabled 1 -dragenabled 1 \
            -dragevent 1 -dropcmd "DmTree::drop" \
            -opencmd   "DmTree::open $sw.tree" \
            -closecmd  "DmTree::close $sw.tree" \
            -deltay $lh -padx $lw \
            -width 50 ]
            
	$tree configure -height 6
    $sw setwidget $tree
	
    pack $sw  -side top -expand yes -fill both
    pack $tree  -side top -expand yes -fill both

    $tree bindText  <ButtonPress-1> "DmTree::select $tree"
    $tree bindImage <ButtonPress-1> "DmTree::select $tree"
    $tree bindText  <Double-ButtonPress-1> "DmTree::edit $tree"

    $tree configure -redraw 1

    # ScrollView
    toplevel .top -relief raised -borderwidth 2
    wm protocol .top WM_DELETE_WINDOW {
        # don't kill me
    }
    wm overrideredirect .top 1
    wm withdraw .top
    wm transient .top .
    ScrollView .top.sv -window $tree -fill black
    pack .top.sv -fill both -expand yes

    return $tree
}

proc DmTree::drop { from to where operation type data } {

    set old_parent [$from parent $data]
    set old_index [$from index $data]
    if { [lindex $where 0] == "position" } { 
        set new_parent [lindex $where 1]
        set new_index [lindex $where 2]
    } elseif { [lindex $where 0] == "widget" } {
        set new_parent "root"
        set new_index [llength [$from nodes "root"] ]
    } else {
        set node [lindex $where 1]
        if { [Dm::node_type $node] == "group" } {
	    set new_parent $node
	    set new_index 0
       } else { 
	    set new_parent [$from parent $node]
	    set new_index [$from index $node]
	    incr new_index
       }
    }

    # test if new is not in childrens
    set parent $new_parent
    while { $parent != "root" } {
        if { $parent == $data } { return }
	set parent [$from parent $parent]
    }

    if { ($old_parent == $new_parent) && ($new_index > $old_index) } { 
        set new_index [expr $new_index - 1]
    }

    $from move $new_parent $data $new_index

}

proc DmTree::open { tree node } {
    DmGroup::open [Dm::node_id $node]
}

proc DmTree::close { tree node } {
    DmGroup::close [Dm::node_id $node]
}

proc DmTree::select { tree node } {
    variable selected 

    if { $selected == $node } {
        $tree selection clear $node
        set selected ""
        Dm::deselect $node
    } else {
        $tree selection set $node
        update
        set selected $node
        Dm::select $node
    }

}

proc DmTree::edit { tree node } {
    set res [$tree edit $node [$tree itemcget $node -text]]
    if { $res != "" } {
	$tree itemconfigure $node -text $res
    }
}

proc DmTree::autoname { tree node name} {
	$tree itemconfigure $node -text $name
}