aboutsummaryrefslogtreecommitdiff
path: root/rlprompt.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-08-17 08:21:39 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:50 +1000
commitcbc635e8f4de48408768053a976dc7bd7177ba7a (patch)
treebca1549fa15afc234868b5c46cd8a4a486f16b8f /rlprompt.tcl
parent75af5a8f20800977aabfd95fdfc403f851f8c459 (diff)
downloadjimtcl-cbc635e8f4de48408768053a976dc7bd7177ba7a.zip
jimtcl-cbc635e8f4de48408768053a976dc7bd7177ba7a.tar.gz
jimtcl-cbc635e8f4de48408768053a976dc7bd7177ba7a.tar.bz2
Clean up the indentation mess
Use 'indent'. Not perfect, but at least consistent. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'rlprompt.tcl')
-rw-r--r--rlprompt.tcl33
1 files changed, 25 insertions, 8 deletions
diff --git a/rlprompt.tcl b/rlprompt.tcl
index 556d0e9..1d8860e 100644
--- a/rlprompt.tcl
+++ b/rlprompt.tcl
@@ -10,22 +10,39 @@
# }
# }
-package require readline
-package provide rlprompt 1.0
-
proc rlprompt.shell {} {
puts "Readline shell loaded"
puts "Welcome to Jim [info version]!"
set prompt ". "
+ set buf ""
while 1 {
- set line [readline.readline $prompt]
+ try -exit {
+ set line [readline.readline $prompt]
+ } on exit dummy {
+ break
+ }
+
if {[string length $line] == 0} {
continue
}
- readline.addhistory $line
- set errCode [catch {uplevel #0 $line} err]
- if {$err ne {}} {
- puts $err
+ if {$buf eq ""} {
+ set buf $line
+ } else {
+ append buf \n $line
+ }
+ if {![info complete $buf]} {
+ set prompt "> "
+ continue
+ }
+ readline.addhistory $buf
+
+ catch {
+ uplevel #0 $buf
+ } error
+ if {$error ne ""} {
+ puts $error
}
+ set buf ""
+ set prompt ". "
}
}