+2006-05-11 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * emacs-lisp/ewoc.el (ewoc--refresh-node): No longer save-excursion.
+ Update all callers to do it there, instead.
+
2006-05-10 Glenn Morris <rgm@gnu.org>
* calendar/calendar.el (calendar-basic-setup): Set day to 1 in
* progmodes/idlwave.el (idlwave-push-mark): Removed obsolete
compatibility function (Emacs 18/19).
(idlwave-is-continuation-line): Always return point at start of
- previous non-blank continuation line.
+ previous non-blank continuation line.
`keyword-parameters': Fix continued comment font-lock matcher.
(idlwave-font-lock-fontify-region): Written, use as
font-lock-fontify-region-function, to fix continued keyword
(defun ewoc--refresh-node (pp node)
"Redisplay the element represented by NODE using the pretty-printer PP."
(let ((inhibit-read-only t))
- (save-excursion
- ;; First, remove the string from the buffer:
- (delete-region (ewoc--node-start-marker node)
- (1- (marker-position
- (ewoc--node-start-marker (ewoc--node-right node)))))
- ;; Calculate and insert the string.
- (goto-char (ewoc--node-start-marker node))
- (funcall pp (ewoc--node-data node)))))
+ ;; First, remove the string from the buffer:
+ (delete-region (ewoc--node-start-marker node)
+ (1- (marker-position
+ (ewoc--node-start-marker (ewoc--node-right node)))))
+ ;; Calculate and insert the string.
+ (goto-char (ewoc--node-start-marker node))
+ (funcall pp (ewoc--node-data node))))
\f
;;; ===========================================================================
;;; Public members of the Ewoc package
(ewoc--set-buffer-bind-dll-let* ewoc
((footer (ewoc--footer ewoc))
(node (ewoc--node-nth dll 1)))
- (while (not (eq node footer))
- (if (apply map-function (ewoc--node-data node) args)
- (ewoc--refresh-node (ewoc--pretty-printer ewoc) node))
- (setq node (ewoc--node-next dll node)))))
+ (save-excursion
+ (while (not (eq node footer))
+ (if (apply map-function (ewoc--node-data node) args)
+ (ewoc--refresh-node (ewoc--pretty-printer ewoc) node))
+ (setq node (ewoc--node-next dll node))))))
(defun ewoc-filter (ewoc predicate &rest args)
"Remove all elements in EWOC for which PREDICATE returns nil.
"Call EWOC's pretty-printer for each element in NODES.
Delete current text first, thus effecting a \"refresh\"."
(ewoc--set-buffer-bind-dll ewoc
- (dolist (node nodes)
- (ewoc--refresh-node (ewoc--pretty-printer ewoc) node))))
+ (save-excursion
+ (dolist (node nodes)
+ (ewoc--refresh-node (ewoc--pretty-printer ewoc) node)))))
(defun ewoc-goto-prev (ewoc arg)
"Move point to the ARGth previous element in EWOC.
"Set the HEADER and FOOTER of EWOC."
(setf (ewoc--node-data (ewoc--header ewoc)) header)
(setf (ewoc--node-data (ewoc--footer ewoc)) footer)
- (ewoc--refresh-node 'insert (ewoc--header ewoc))
- (ewoc--refresh-node 'insert (ewoc--footer ewoc)))
+ (save-excursion
+ (ewoc--refresh-node 'insert (ewoc--header ewoc))
+ (ewoc--refresh-node 'insert (ewoc--footer ewoc))))
\f
(provide 'ewoc)