[Linedit-cvs] CVS update: src/Makefile src/backend.lisp src/main.lisp src/matcher.lisp src/packages.lisp src/smart-terminal.lisp

Nikodemus Siivola nsiivola at common-lisp.net
Mon Nov 24 22:56:39 UTC 2003


Update of /project/linedit/cvsroot/src
In directory common-lisp.net:/tmp/cvs-serv15087

Modified Files:
	Makefile backend.lisp main.lisp matcher.lisp packages.lisp 
	smart-terminal.lisp 
Log Message:
slightly less broken, but still not ready for release
Date: Mon Nov 24 17:56:38 2003
Author: nsiivola

Index: src/Makefile
diff -u src/Makefile:1.19 src/Makefile:1.20
--- src/Makefile:1.19	Sun Nov  9 07:27:54 2003
+++ src/Makefile	Mon Nov 24 17:56:38 2003
@@ -77,7 +77,7 @@
 public_html:
 	$(RSYNC_HTML) && $(HTML_PERMS)
 
-TI_VERSION=1.2
+TI_VERSION=1.3
 TI=terminfo_$(TI_VERSION)
 TI_LINK=terminfo_latest.tar.gz
 


Index: src/backend.lisp
diff -u src/backend.lisp:1.4 src/backend.lisp:1.5
--- src/backend.lisp:1.4	Sun Nov  9 08:20:39 2003
+++ src/backend.lisp	Mon Nov 24 17:56:38 2003
@@ -49,3 +49,4 @@
      (backend-init ,backend)))
 
 (defgeneric display (backend &key prompt line point &allow-other-keys))
+


Index: src/main.lisp
diff -u src/main.lisp:1.9 src/main.lisp:1.10
--- src/main.lisp:1.9	Thu Nov 20 12:29:55 2003
+++ src/main.lisp	Mon Nov 24 17:56:38 2003
@@ -42,6 +42,8 @@
     (catch 'form-done
       (let ((eof-marker (gensym "EOF"))
 	    (table (copy-readtable)))
+	;; FIXME: It would be nice to provide an interace of some sort that
+	;; the user could use to alter the crucial reader macros in custom readtables.
 	(set-macro-character #\; #'semicolon-reader nil table)
 	(set-dispatch-macro-character #\# #\. (constantly (values)) table)
 	(do ((str (apply #'linedit :prompt prompt1 args)
@@ -49,7 +51,9 @@
 			  (string #\newline)
 			  (apply #'linedit :prompt prompt2 args))))
 	    ((let ((form (handler-case (let ((*readtable* table))
-					 ;; Eugh. Argh.
+					 ;; KLUDGE: This is needed to handle input that starts
+					 ;; with an empty line. (At least in the presense of
+					 ;; ACLREPL).
 					 (if (find-if-not 'whitespacep str)
 					     (read-from-string str)
 					     (error 'end-of-file)))


Index: src/matcher.lisp
diff -u src/matcher.lisp:1.2 src/matcher.lisp:1.3
--- src/matcher.lisp:1.2	Sun Nov  9 08:20:39 2003
+++ src/matcher.lisp	Mon Nov 24 17:56:38 2003
@@ -21,6 +21,10 @@
 
 (in-package :linedit)
 
+;; FIXME: This is not the Right Way to do paren matching.
+;; * use stack, not counting
+;; * don't count #\( #\) &co
+
 (defun after-close-p (string index)
   (and (array-in-bounds-p string (1- index))
        (find (schar string (1- index)) ")]}")))


Index: src/packages.lisp
diff -u src/packages.lisp:1.13 src/packages.lisp:1.14
--- src/packages.lisp:1.13	Thu Nov 20 12:29:55 2003
+++ src/packages.lisp	Mon Nov 24 17:56:38 2003
@@ -29,7 +29,3 @@
    #+sbcl #:install-repl
    #+sbcl #:uninstall-repl
    ))
-
-
-
-


Index: src/smart-terminal.lisp
diff -u src/smart-terminal.lisp:1.9 src/smart-terminal.lisp:1.10
--- src/smart-terminal.lisp:1.9	Sun Nov  9 08:20:39 2003
+++ src/smart-terminal.lisp	Mon Nov 24 17:56:38 2003
@@ -70,11 +70,11 @@
       (let* ((point (+ (length prompt) point))
 	     (point-row (find-row point))
 	     (point-col (find-col point)))
-      (loop repeat (- rows point-row)
-	    do (ti:tputs ti:cursor-up))
-      (ti:tputs ti:column-address point-col)
-      ;; Save state
-      (setf (point-row backend) point-row
-	    (active-string backend) new))))
+	(loop repeat (- rows point-row)
+	      do (ti:tputs ti:cursor-up))
+	(ti:tputs ti:column-address point-col)
+	;; Save state
+	(setf (point-row backend) point-row
+	      (active-string backend) (concat prompt line)))))
     (force-output *terminal-io*)))
 





More information about the linedit-cvs mailing list