[linedit-devel] Re: Exception when using linedit:linedit on lispworks 5.0 (linux 2.6)
Lui Fungsin
fungsin.lui at gmail.com
Fri Oct 20 07:18:24 UTC 2006
It turns out that terminfo.lisp needs a lispworks patch to read the
env var TERM.
Also, after some trial and error I located that the problem with smart
terminal w/ lispworks is in the smart-terminal display method.
CLHS states that
The effect of changing the value of *terminal-io*, either by binding
or assignment, is implementation-defined.
http://www.lispworks.com/documentation/HyperSpec/Body/v_termin.htm
I'm not sure what is the reason for rebinding *terminal-io* to
*standard-output*. Might be a SBCL specific thing but lispworks
apparently get confused by this.
Commenting out this for lw and everything seems to work fine.
BTW thanks for this nice little library. I learned quite a bit going
through the source.
Index: terminfo.lisp
===================================================================
--- terminfo.lisp (revision 904)
+++ terminfo.lisp (working copy)
@@ -977,6 +977,8 @@
(sys:getenv "TERM")
#+SBCL
(sb-ext:posix-getenv "TERM")
+ #+lispworks
+ (lispworks:environment-variable "TERM")
#| if all else fails |#
"dumb"))))
Index: smart-terminal.lisp
===================================================================
--- smart-terminal.lisp (revision 904)
+++ smart-terminal.lisp (working copy)
@@ -73,7 +73,7 @@
(ti:tputs ti:column-address col))
(defmethod display ((backend smart-terminal) &key prompt line point markup)
- (let* ((*terminal-io* *standard-output*)
+ (let* (#-lispworks (*terminal-io* *standard-output*)
(columns (backend-columns backend))
(old-markup (old-markup backend))
(old-point (old-point backend))
More information about the linedit-devel
mailing list