diff -u -F'defun' /export/home1/sl/local/share/emacs/20.7/site-lisp/ediff-init.el.orig /export/home1/sl/local/share/emacs/20.7/site-lisp/ediff-init.el --- /export/home1/sl/local/share/emacs/20.7/site-lisp/ediff-init.el.orig Mon Jul 2 13:08:38 2001 +++ /export/home1/sl/local/share/emacs/20.7/site-lisp/ediff-init.el Mon Jul 2 13:09:12 2001 @@ -1149,21 +1149,22 @@ (defun ediff-hide-face (face) ;; Compute priority of ediff overlay. (defun ediff-highest-priority (start end buffer) (let ((pos (max 1 (1- start))) - ovr-list) + ovr-list + ovr-priority-list) (if ediff-xemacs-p (1+ ediff-shadow-overlay-priority) (ediff-with-current-buffer buffer (while (< pos (min (point-max) (1+ end))) (setq ovr-list (append (overlays-at pos) ovr-list)) (setq pos (next-overlay-change pos))) - (1+ (apply '+ - (mapcar (function - (lambda (ovr) - (if ovr - (or (ediff-overlay-get ovr 'priority) 0) - 0))) - ovr-list) - )) + (setq ovr-priority-list (mapcar (function + (lambda (ovr) + (if ovr + (or (ediff-overlay-get ovr 'priority) 0) + 0))) + ovr-list)) + (setq ovr-priority-list (sort ovr-priority-list '>)) + (1+ (nth 0 ovr-priority-list)) )))) @@ -1316,11 +1317,11 @@ (defun ediff-highlight-diff-in-one-buffe (ediff-get-symbol-from-alist buf-type ediff-current-diff-overlay-alist)))) + (ediff-overlay-put current-diff-overlay 'priority + (ediff-highest-priority begin end-hilit buff)) (if ediff-xemacs-p (ediff-move-overlay current-diff-overlay begin end-hilit) (ediff-move-overlay current-diff-overlay begin end-hilit buff)) - (ediff-overlay-put current-diff-overlay 'priority - (ediff-highest-priority begin end-hilit buff)) (ediff-overlay-put current-diff-overlay 'ediff-diff-num n) ;; unhighlight the background overlay for diff n so it won't