File: rlprompt.tcl

package info (click to toggle)
jimtcl 0.81%2Bdfsg0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 15,416 kB
  • sloc: ansic: 175,569; tcl: 5,456; sh: 4,814; cpp: 1,671; makefile: 269
file content (45 lines) | stat: -rw-r--r-- 1,020 bytes parent folder | download | duplicates (15)
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
# Readline-based interactive shell for Jim
# Copyright(C) 2005 Salvatore Sanfilippo <antirez@invece.org>
#
# In order to automatically have readline-editing features
# put this in your $HOME/.jimrc
#
# if {$jim_interactive} {
#    if {[catch {package require rlprompt}] == 0} {
#       rlprompt.shell
#    }
# }
package require readline

proc rlprompt.shell {} {
    puts "Readline shell loaded"
    puts "Welcome to Jim [info version]!"
    set prompt ". "
    set buf ""
    while 1 {
        set line [readline.readline $prompt]

        if {[string length $line] == 0} {
            continue
        }
        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 ". "
    }
}