comparison lisp/ediff-init.el @ 30373:6da8732233ea

(ediff-region-help-echo): Modify to use overlay now passed to the function. It now works properly.
author Dave Love <fx@gnu.org>
date Fri, 21 Jul 2000 19:42:34 +0000
parents 90ab0623a3e4
children 557b7595fdcc
comparison
equal deleted inserted replaced
30372:2047c9586451 30373:6da8732233ea
1 ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff 1 ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
2 2
3 ;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. 3 ;; Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
4 4
5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu> 5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu>
6 6
7 ;; This file is part of GNU Emacs. 7 ;; This file is part of GNU Emacs.
8 8
809 809
810 (defun ediff-set-overlay-face (extent face) 810 (defun ediff-set-overlay-face (extent face)
811 (ediff-overlay-put extent 'face face) 811 (ediff-overlay-put extent 'face face)
812 (ediff-overlay-put extent 'help-echo 'ediff-region-help-echo)) 812 (ediff-overlay-put extent 'help-echo 'ediff-region-help-echo))
813 813
814 (defun ediff-region-help-echo (extent-or-window &optional buffer point) 814 (defun ediff-region-help-echo (extent-or-window &optional overlay point)
815 (let (is-current face diff-num face-help) 815 (unless overlay
816 (if buffer 816 (setq overlay extent-or-window))
817 ;; Emacs 21 calling sequence. 817 (let ((is-current (ediff-overlay-get overlay 'ediff))
818 (progn 818 (face (ediff-overlay-get overlay 'face))
819 (setq is-current (get-char-property point 'ediff buffer)) 819 (diff-num (ediff-overlay-get overlay 'ediff-diff-num)))
820 (setq face (get-char-property point 'face buffer))
821 (if (stringp face)
822 (setq face (intern face)))
823 (setq diff-num (get-char-property point 'ediff-diff-num buffer)))
824 ;; XEmacs calling sequence.
825 (setq is-current (ediff-overlay-get extent-or-window 'ediff))
826 (setq face (ediff-overlay-get extent-or-window 'face))
827 (setq diff-num (ediff-overlay-get extent-or-window 'ediff-diff-num)))
828 820
829 ;; This happens only for refinement overlays 821 ;; This happens only for refinement overlays
822 (if (stringp face)
823 (setq face (intern face)))
830 (setq face-help (and face (get face 'ediff-help-echo))) 824 (setq face-help (and face (get face 'ediff-help-echo)))
831 825
832 (cond ((and is-current diff-num) ; current diff region 826 (cond ((and is-current diff-num) ; current diff region
833 (format "Difference region %S -- current" (1+ diff-num))) 827 (format "Difference region %S -- current" (1+ diff-num)))
834 ;; This doesn't DTRT because we may have got it from the wrong 828 (face-help) ; refinement of current diff region
835 ;; goverlay. Fixme.
836 ;;; (face-help) ; refinement of current diff region
837 (diff-num ; non-current 829 (diff-num ; non-current
838 (format "Difference region %S -- non-current" (1+ diff-num))) 830 (format "Difference region %S -- non-current" (1+ diff-num)))
839 (t "")) ; none 831 (t "")) ; none
840 )) 832 ))
841 833