[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