diff options
author | Michael Kifer <kifer@cs.stonybrook.edu> | 2001-09-28 03:06:09 +0000 |
---|---|---|
committer | Michael Kifer <kifer@cs.stonybrook.edu> | 2001-09-28 03:06:09 +0000 |
commit | cd653311a9256056590562c3b7d0cf1870aec0b5 (patch) | |
tree | 919f26c997812c666b2e63e4b5ce81b1bdf42c43 /lisp/ediff-mult.el | |
parent | 09c4719eacd5308dfa1d762335f776c90d7a8d4d (diff) | |
download | emacs-cd653311a9256056590562c3b7d0cf1870aec0b5.tar.gz |
2001-09-27 Michael Kifer <kifer@cs.sunysb.edu>
* ediff-mult.el (ediff-get-meta-info): Installed Gerd's changes.
Added comments.
Diffstat (limited to 'lisp/ediff-mult.el')
-rw-r--r-- | lisp/ediff-mult.el | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/lisp/ediff-mult.el b/lisp/ediff-mult.el index 83ed80b74b2..8b0860e5c8a 100644 --- a/lisp/ediff-mult.el +++ b/lisp/ediff-mult.el @@ -26,7 +26,7 @@ ;; Users are encouraged to add functionality to this file. ;; The present file contains all the infrastructure needed for that. ;; -;; Generally, to to implement a new multisession capability within Ediff, +;; Generally, to implement a new multisession capability within Ediff, ;; you need to tell it ;; ;; 1. How to display the session group buffer. @@ -49,7 +49,7 @@ ;; or string). The function ediff-redraw-registry-buffer displays the ;; second through last of these in the registry buffer. ;; Also, keep in mind that the function ediff-prepare-meta-buffer -;; (which see) prepends the session group buffer to the descriptor and +;; (which see) prepends the session group buffer to the descriptor, and ;; nil in front of each subsequent list (i.e., the above list ;; will become ;; ((meta-buf descriptor) (nil obj1 obj2 obj3) (nil ...) ...) @@ -225,6 +225,13 @@ buffers." ;;; API for ediff-meta-list +;; Structure of the meta-list: +;; (HEADER SESSION1 SESSION2 ...) +;; HEADER: (GROUP-BUF REGEXP OBJA OBJB OBJC SAVE-DIR) +;; OBJA - first directory +;; OBJB - second directory +;; OBJC - third directory +;; SESSION1/2/... are described below ;; group buffer/regexp (defsubst ediff-get-group-buffer (meta-list) (nth 0 (car meta-list))) @@ -241,6 +248,13 @@ buffers." (defsubst ediff-get-group-merge-autostore-dir (meta-list) (nth 5 (car meta-list))) +;; ELT is a session meta descriptor (what is being preserved as +;; 'ediff-meta-info) +;; The structure is: (SESSION-CTL-BUFFER STATUS OBJA OBJB OBJC) +;; STATUS is ?I, ?*, ?H +;; OBJA/B/C is (FILENAME EQSTATUS) +;; EQSTATUS is ?= or nil (?= means that this file is equal to some other +;; file in this session) ;; session buffer (defsubst ediff-get-session-buffer (elt) (nth 0 elt)) @@ -1263,6 +1277,9 @@ Useful commands: ;; Sets overlay around a meta record with 'ediff-meta-info property PROP ;; If optional SESSION-NUMBER, make it a property of the overlay, ;; ediff-meta-session-number +;; PROP is either the ctl or meta buffer (used when we work with the registry) +;; or a session meta descriptor of the form +;; (SESSION-CTL-BUFFER STATUS OBJA OBJB OBJC) (defun ediff-set-meta-overlay (b e prop &optional session-number hidden) (let (overl) (setq overl (ediff-make-overlay b e)) @@ -1964,12 +1981,11 @@ If this is a session registry buffer then just bury it." (ediff-overlay-get tmp 'ediff-meta-info))) (setq olist (overlays-at point)) (setq olist - (mapcar (lambda (elt) (overlay-get elt 'ediff-meta-info)) + (mapcar (lambda (elt) + (unless (overlay-get elt 'invisible) + (overlay-get elt 'ediff-meta-info))) olist)) - (while (and olist - (or (null (car olist)) - (and (overlayp (car olist)) - (overlay-get (car olist) 'invisible)))) + (while (and olist (null (car olist))) (setq olist (cdr olist))) (setq result (car olist))))) (if result |