From 8e90299b82be4dc6c8c86dbd206db9e0efdbffc6 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Tue, 6 Dec 2011 08:56:35 +1000 Subject: Add the history command Signed-off-by: Steve Bennett --- examples/jtclsh.tcl | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/jtclsh.tcl (limited to 'examples') diff --git a/examples/jtclsh.tcl b/examples/jtclsh.tcl new file mode 100644 index 0000000..dc92bca --- /dev/null +++ b/examples/jtclsh.tcl @@ -0,0 +1,36 @@ +# Simple example of how the history extension +# can be used to provide line editing and history + +# Build jimsh with the history extension and enable line editing (the default) +# ./configure --with-ext=history + +package require history + +set histfile [env HOME]/.jtclsh +history load $histfile +while 1 { + if {[history getline "jim> " cmd] < 0} { + break + } + if {$cmd eq "h"} { + history show + continue + } + # Don't bother adding single char commands to the history + if {[string length $cmd] > 1} { + history add $cmd + history save $histfile + } + # jimsh also does: + # - check for a complete command: [info complete] + # - handle other non-error return codes and changes the prompt: [info returncodes] + # - displays the complete error message: [errorInfo] + try { + set result [eval $cmd] + if {$result ne {}} { + puts $result + } + } on error msg { + puts $msg + } +} -- cgit v1.1