Eskil

Diff
Login

Differences From Artifact [f162f860fe]:

To Artifact [9be51b54fc]:


35
36
37
38
39
40
41

42
43
44
45
46
47
48
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49







+







    interp alias {} _ipexists loadinterp info exists
    interp alias {} _ipset    loadinterp set
    interp alias {} _iparray  loadinterp array

    interp invokehidden loadinterp source $file

    foreach arg $args {
        ##nagelfar vartype arg varName
        upvar 1 $arg TheVar
        if {[_iparray exists $arg]} {
            foreach {key val} [_iparray get $arg] {
                if {[info exists TheVar($key)]} {
                    set TheVar($key) $val
                }
            }
125
126
127
128
129
130
131
132
133
134









135
136
137

138
139
140
141
142
143
144

145
146
147

148

149













126
127
128
129
130
131
132



133
134
135
136
137
138
139
140
141



142
143
144
145
146
147
148

149
150
151
152
153
154
155

156
157
158
159
160
161
162
163
164
165
166
167
168







-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+






-
+



+

+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
# This is called when an editor is needed to display a file.
# It sets up the variable with the path, unless the var
# already exists.
proc pstools::locateEditor {globVar} {
    upvar "#0" $globVar var

    if {[info exists var]} return
    
    # What is a good value on Mac?
    if {$::tcl_platform(platform) == "unix"} {

    set candidates {}
    if {[info exists ::env(EDITOR)]} {
        lappend candidates $::env(EDITOR)
    }
    if {[info exists ::env(VISUAL)]} {
        lappend candidates $::env(VISUAL)
    }
    if {$::tcl_platform(platform) == "windows"} {
        set var emacs
    } else {
        set var wordpad
        # Try to locate some common installation points for Emacs
        set dirs [glob -nocomplain c:/apps/emacs*]
        lappend dirs {*}[glob -nocomplain "C:/Program Files/emacs*"]
        foreach dir [lsort -decreasing -dictionary $dirs] {
            set em [file join $dir bin runemacs.exe]
            set em [file normalize $em]
            if {[file exists $em]} {
                set var $em
                lappend candidates $em
                break
            }
        }
        lappend candidates runemacs wordpad
    }
    # What is a good value on Mac?
}

    # Add some more for fallback
    lappend candidates emacs gedit kate vim

    foreach cand $candidates {
        if {[auto_execok $cand] ne ""} {
            set var $cand
            return
        }
    }
    # If we fall through here we are kind of lost...
    set var "could_not_find_editor"
}