diff lisp/emulation/tpu-edt.el @ 78425:753756c6e4ec

(tpu-current-line): Use posn-at-point and count-screen-lines. (tpu-edt-off): Disable relevant pieces of advice.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 06 Aug 2007 16:21:33 +0000
parents 4821c04b4edb
children c6da63ecc892 e5a68f18fcb9
line wrap: on
line diff
--- a/lisp/emulation/tpu-edt.el	Mon Aug 06 16:20:10 2007 +0000
+++ b/lisp/emulation/tpu-edt.el	Mon Aug 06 16:21:33 2007 +0000
@@ -826,10 +826,13 @@
 	 (use-local-map tpu-buffer-local-map)))
   (local-set-key key func))
 
-(defun tpu-current-line nil
+(defun tpu-current-line ()
   "Return the vertical position of point in the selected window.
 Top line is 0.  Counts each text line only once, even if it wraps."
-  (+ (count-lines (window-start) (point)) (if (= (current-column) 0) 1 0) -1))
+  (or
+   (cdr (nth 6 (posn-at-point)))
+   (if (eq (window-start) (point)) 0
+     (1- (count-screen-lines (window-start) (point) 'count-final-newline)))))
 
 
 ;;;
@@ -2479,6 +2482,7 @@
         (if (eq tpu-global-map parent)
             (set-keymap-parent map (keymap-parent parent))
           (setq map parent)))))
+  (ad-disable-regexp "\\`tpu-")
   (setq tpu-edt-mode nil))
 
 (provide 'tpu-edt)