Diff
Not logged in

Differences From Artifact [b96052aeac]:

To Artifact [91dcec21a3]:


1
2
3
4
5
6
7
8

1
2
3
4
5
6
7
-







#!/usr/locanl/bin/tclsh
# FILE: "/home/joze/src/tclreadline/tclreadlineSetup.tcl.in"
# LAST MODIFICATION: "Mit, 10 Jan 2001 06:29:34 +0100 (joze)"
# (C) 1998 - 2001 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
# tclreadline -- gnu readline for tcl
# http://www.zellner.org/tclreadline/
132
133
134
135
136
137
138
139

140
141
142
143
144
145
146
131
132
133
134
135
136
137

138
139
140
141
142
143
144
145







-
+








    uplevel #0 {

	if {"" == [info commands ::tclreadline::readline]} {
	    ::tclreadline::Init
	}

	if {[catch {set a [::tclreadline::prompt1]}] && [info nameofexecutable] != ""} {
	if {"" == [info procs ::tclreadline::prompt1] && [info nameofexecutable] != ""} {

	    namespace eval ::tclreadline {
		variable prompt_string
		set base [file tail [info nameofexecutable]]

		if {[string match tclsh* $base] && [info exists tcl_version]} {
		    set prompt_string \
166
167
168
169
170
171
172










173
174
175
176
177
178
179
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188







+
+
+
+
+
+
+
+
+
+







			regsub $env(HOME) $pwd "~" pwd
		    }
		    return "$prompt_string \[$pwd\]"
		}
	    }
	    # puts body=[info body ::tclreadline::prompt1]
	}

	if {"" == [info procs ::tclreadline::prompt2] && [info nameofexecutable] != ""} {

	    if {"" == [info procs ::tclreadline::prompt2]} {
		proc ::tclreadline::prompt2 {} {
		    return ">"
		}
	    }
	    # puts body=[info body ::tclreadline::prompt2]
	}

	if {"" == [info procs exit]} {

	    catch {rename ::tclreadline::Exit ""}
	    rename exit ::tclreadline::Exit

	    proc exit {args} {
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274

275
276
277

278
279
280
281








282
283
284
285
286
287
288
289
290
291
292
293
294
295
296

297
298


299
300
301
302
303
304



305
306

307
308
309

310
311
312
313
314
315
316
268
269
270
271
272
273
274






275
276

277
278
279

280
281



282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305


306
307
308
309
310



311
312
313
314

315
316
317

318
319
320
321
322
323
324
325







-
-
-
-
-
-


-
+


-
+

-
-
-
+
+
+
+
+
+
+
+















+
-
-
+
+



-
-
-
+
+
+

-
+


-
+








    eval Setup ${args}

    uplevel #0 {

	while {1} {

	    if [info exists tcl_prompt2] {
		set prompt2 $tcl_prompt2
	    } else {
		set prompt2 ">"
	    }

	    if {[catch {
		if {"" != [namespace eval ::tclreadline {info procs prompt1}]} {
		    set LINE [::tclreadline::readline read \
		    set ::tclreadline::LINE [::tclreadline::readline read \
		    [::tclreadline::prompt1]]
		} else {
		    set LINE [::tclreadline::readline read %]
		    set ::tclreadline::LINE [::tclreadline::readline read %]
		}
		while {![::tclreadline::readline complete $LINE]} {
		    append LINE "\n"
		    append LINE [tclreadline::readline read ${prompt2}]
		while {![::tclreadline::readline complete $::tclreadline::LINE]} {
		    append ::tclreadline::LINE "\n"
		    if {"" != [namespace eval ::tclreadline {info procs prompt2}]} {
			append ::tclreadline::LINE \
			    [tclreadline::readline read [::tclreadline::prompt2]]
		    } else {
			append ::tclreadline::LINE [tclreadline::readline read >]
		    }
		}
	    } ::tclreadline::errorMsg]} {
		puts stderr [list tclreadline::Loop: error. \
		$::tclreadline::errorMsg]
		continue
	    }

	    # Magnus Eriksson <magnus.eriksson@netinsight.se> proposed
	    # to add the line also to tclsh's history.
	    #
	    # I decided to add only lines which are different from
	    # the previous one to the history. This is different
	    # from tcsh's behaviour, but I found it quite convenient
	    # while using mshell on os9.
	    #
	    if {[string length $::tclreadline::LINE] && \
	    if {[string length $LINE] && [history event 0] != $LINE} {
		history add $LINE
		    [history event 0] != $::tclreadline::LINE} {
		history add $::tclreadline::LINE
	    }

	    if [catch {
		set result [eval $LINE]
		if {$result != "" && [tclreadline::Print]} {
		    puts $result
		set ::tclreadline::result [eval $::tclreadline::LINE]
		if {$::tclreadline::result != "" && [tclreadline::Print]} {
		    puts $::tclreadline::result
		}
		set result ""
		set ::tclreadline::result ""
	    } ::tclreadline::errorMsg] {
		puts stderr $::tclreadline::errorMsg
		puts stderr [list while evaluating $LINE]
		puts stderr [list while evaluating $::tclreadline::LINE]
	    }

	}
    }
}

proc Print {args} {