From: Thien-Thi Nguyen Date: Wed, 17 May 2006 10:38:15 +0000 (+0000) Subject: (ewoc-map, ewoc-invalidate): Compute PP before looping. X-Git-Tag: emacs-pretest-22.0.90~2537 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8433d47026bc042ed7e792d032469a6ea4f6d622;p=emacs.git (ewoc-map, ewoc-invalidate): Compute PP before looping. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 85e397cbe29..cd8a9c6f5c7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -3,6 +3,8 @@ * emacs-lisp/ewoc.el (ewoc-data): Add docstring. (ewoc-nth): Doc fix. + (ewoc-map, ewoc-invalidate): Compute PP before looping. + 2006-05-16 Eli Zaretskii * international/mule.el (auto-coding-alist): Add .lha to files diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index fa85ce21fb0..dbfae49233a 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el @@ -352,11 +352,12 @@ If more than two arguments are given, the remaining arguments will be passed to MAP-FUNCTION." (ewoc--set-buffer-bind-dll-let* ewoc ((footer (ewoc--footer ewoc)) + (pp (ewoc--pretty-printer ewoc)) (node (ewoc--node-nth dll 1))) (save-excursion (while (not (eq node footer)) (if (apply map-function (ewoc--node-data node) args) - (ewoc--refresh-node (ewoc--pretty-printer ewoc) node)) + (ewoc--refresh-node pp node)) (setq node (ewoc--node-next dll node)))))) (defun ewoc-filter (ewoc predicate &rest args) @@ -465,10 +466,11 @@ If the EWOC is empty, nil is returned." (defun ewoc-invalidate (ewoc &rest nodes) "Call EWOC's pretty-printer for each element in NODES. Delete current text first, thus effecting a \"refresh\"." - (ewoc--set-buffer-bind-dll ewoc + (ewoc--set-buffer-bind-dll-let* ewoc + ((pp (ewoc--pretty-printer ewoc))) (save-excursion (dolist (node nodes) - (ewoc--refresh-node (ewoc--pretty-printer ewoc) node))))) + (ewoc--refresh-node pp node))))) (defun ewoc-goto-prev (ewoc arg) "Move point to the ARGth previous element in EWOC.