nterm blanck the whole line

 

add assertion routine to check for errors

File modified: lisp/ivan/nterm.el

Change280 at Thu Apr 22 18:59:44 2010 +0200 by Ivan Kanis <squeeze@koi>

diff -r 0bfd6609b253 -r 04b11cd7426e lisp/ivan/nterm.el
--- a/lisp/ivan/nterm.el	Thu Apr 22 15:32:15 2010 +0200
+++ b/lisp/ivan/nterm.el	Thu Apr 22 18:59:44 2010 +0200
@@ -126,7 +126,7 @@
   "Map single width character to unicode double width equivalent.")
 
 ;;; Debugging
-(defvar nterm-debug (make-bool-vector 5 nil)
+(defvar nterm-debug (make-bool-vector 6 nil)
   "Debugging bool vector")
 
 (defvar nterm-debug-emulator 0)
@@ -134,6 +134,7 @@
 (defvar nterm-debug-cursor 2)
 (defvar nterm-debug-ansi 3)
 (defvar nterm-debug-vt52 4)
+(defvar nterm-debug-assert 5)
 ;; (aset nterm-debug nterm-debug-emulator t)
 ;; (aset nterm-debug nterm-debug-emulator nil)
 ;; (aset nterm-debug nterm-debug-vt100 t)
@@ -144,6 +145,8 @@
 ;; (aset nterm-debug nterm-debug-ansi nil)
 ;; (aset nterm-debug nterm-debug-vt52 t)
 ;; (aset nterm-debug nterm-debug-vt52 nil)
+;; (aset nterm-debug nterm-debug-assert t)
+;; (aset nterm-debug nterm-debug-assert nil)
 
 (defvar nterm-record-enable nil
   "Enable recording")
@@ -219,6 +222,14 @@
   (let ((collect-number (string-to-number number)))
     (if (eq collect-number 0) default collect-number)))
 
+(defun nterm-assert ()
+  "Check integrity of the emulator"
+  (interactive)
+  (message "I am asserting")
+  (let ((line (count-lines (point-min) (point-max))))
+    (if (not (= line nterm-height))
+        (error "Number of lines is %d but nterm-height is %d"
+               line nterm-height))))
 (defun nterm-blank-screen (&optional char)
   "Blank screen and memory with CHAR.
 If char is not specified fill with space.
@@ -315,7 +326,9 @@
                   (if (aref nterm-debug nterm-debug-emulator)
                       (message "received 0x%x %c dispatch %S"
                                emulate-char emulate-char emulate-dispatch))
-                  (funcall emulate-dispatch emulate-char))
+                  (funcall emulate-dispatch emulate-char)
+                  (if (aref nterm-debug nterm-debug-assert)
+                      (nterm-assert)))
               (if (aref nterm-debug nterm-debug-emulator)
                   (message "received 0x%x not handled" emulate-char)))))
       (incf emulate-index))
@@ -909,7 +922,7 @@
   (nterm-cursor-line-set line)
   (or length
       (progn
-        (setq length (1- (nterm-vt100-width)))
+        (setq length (nterm-vt100-width))
         (nterm-cursor-col-set 0)))
   (let ((line-index 0))
     (while (< line-index length)


back