@@ -1,8 +1,8 @@ # -*- tclsh -*- # FILE: "/disk01/home/joze/src/tclreadline/tclreadlineCompleter.tcl" -# LAST MODIFICATION: "Thu Sep 16 02:53:18 1999 (joze)" +# LAST MODIFICATION: "Thu Sep 16 16:24:46 1999 (joze)" # (C) 1998, 1999 by Johannes Zellner, # $Id$ # --- # # tclreadline -- gnu readline for tcl @@ -982,11 +982,11 @@ # try to use $pos further ... # puts stderr |$line| # if {"." == [string index [string trim ${line}] 0]} { set alias WIDGET - set namespc "" + set namespc ""; # widgets are always in the global } else { # the double `lindex' strips {} or quotes. # the subst enables variables containing # command names. @@ -1037,11 +1037,15 @@ ::tclreadline::errorMsg] } { error [list error during evaluation of `complete(${cmd})'] } # puts stderr \nscript_result=|${script_result}| - return ${script_result} + if {[string length ${script_result}] || \ + "tclreadline_complete_unknown" == ${cmd} + } { + return ${script_result} + } } # set namespc ""; # no qualifiers for tclreadline_complete_unknown } # as we've reached here no valid specific completer @@ -2036,11 +2040,11 @@ } proc complete(lappend) {text start end line pos mod} { switch -- $pos { 1 { return [VarCompletion ${text}] } - default { return [DisplayHints ?value?] } + default { return [TryFromList ${text} ?value?] } } return "" } # the following routines are described in the @@ -2974,11 +2978,11 @@ proc tclreadline::complete(readline) {text start end line pos mod} { set cmd [Lindex $line 1] switch -- $pos { 1 { return [CompleteFromList ${text} { read initialize write add complete - customcompleter builtincompleter eofchar}] + customcompleter builtincompleter eofchar reset-terminal}] } 2 { switch -- $cmd { read {} initialize {} @@ -2986,10 +2990,17 @@ add { return [DisplayHints ] } completer { return [DisplayHints ] } customcompleter { return [DisplayHints ?scriptCompleter?] } builtincompleter { return [DisplayHints ?boolean?] } eofchar { return [DisplayHints ?script?] } + reset-terminal { + if {[info exists ::env(TERM)]} { + return [CompleteFromList ${text} $::env(TERM)] + } else { + return [DisplayHints ?terminalName?] + } + } } } } return "" }