2007-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
+ * emulation/tpu-edt.el (tpu-current-line): Use posn-at-point and
+ count-screen-lines.
+ (tpu-edt-off): Disable relevant pieces of advice.
+
* emulation/tpu-extras.el (tpu-before-save-hook): Rename from
tpu-write-file-hook. Activate it with add-hook on buffer-save-hook.
(newline, newline-and-indent, do-auto-fill): Use advice instead of
(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)))))
;;;
(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)