[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ediff-mult.el
From: |
Juanma Barranquero |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ediff-mult.el |
Date: |
Mon, 21 Oct 2002 05:14:29 -0400 |
Index: emacs/lisp/ediff-mult.el
diff -c emacs/lisp/ediff-mult.el:1.29 emacs/lisp/ediff-mult.el:1.30
*** emacs/lisp/ediff-mult.el:1.29 Wed Mar 20 01:36:18 2002
--- emacs/lisp/ediff-mult.el Fri Oct 18 04:52:37 2002
***************
*** 27,33 ****
;; The present file contains all the infrastructure needed for that.
;;
;; Generally, to implement a new multisession capability within Ediff,
! ;; you need to tell it
;;
;; 1. How to display the session group buffer.
;; This function must indicate which Ediff sessions are active (+) and
--- 27,33 ----
;; The present file contains all the infrastructure needed for that.
;;
;; Generally, to implement a new multisession capability within Ediff,
! ;; you need to tell it
;;
;; 1. How to display the session group buffer.
;; This function must indicate which Ediff sessions are active (+) and
***************
*** 53,60 ****
;; HEADER must be a list of SIX elements (nil or string):
;; (regexp metaobj1 metaobj2 metaobj3 merge-save-buffer
;; comparison-function)
! ;; The function ediff-redraw-registry-buffer displays the
! ;; 1st - 4th of these in the registry buffer.
;; For some jobs some of the members of the header might be nil.
;; The meaning of metaobj1, metaobj2, and metaobj3 depend on the job.
;; Typically these are directories where the files to be compared are
--- 53,60 ----
;; HEADER must be a list of SIX elements (nil or string):
;; (regexp metaobj1 metaobj2 metaobj3 merge-save-buffer
;; comparison-function)
! ;; The function ediff-redraw-registry-buffer displays the
! ;; 1st - 4th of these in the registry buffer.
;; For some jobs some of the members of the header might be nil.
;; The meaning of metaobj1, metaobj2, and metaobj3 depend on the job.
;; Typically these are directories where the files to be compared are
***************
*** 80,86 ****
;; (whose name is obj1).
;; The nil's are placeholders, which are used internally by ediff.
;; 4. Write a function that makes a call to ediff-prepare-meta-buffer
! ;; passing all this info.
;; You may be able to use ediff-directories-internal as a template.
;; 5. If you intend to add several related pieces of functionality,
;; you may want to keep the function in 4 as an internal version
--- 80,86 ----
;; (whose name is obj1).
;; The nil's are placeholders, which are used internally by ediff.
;; 4. Write a function that makes a call to ediff-prepare-meta-buffer
! ;; passing all this info.
;; You may be able to use ediff-directories-internal as a template.
;; 5. If you intend to add several related pieces of functionality,
;; you may want to keep the function in 4 as an internal version
***************
*** 88,94 ****
;; with different parameters.
;; See how ediff-directories, ediff-merge-directories, and
;; ediff-merge-directories-with-ancestor all use
! ;; ediff-directories-internal.
;;
;; A useful addition here could be session groups selected by patterns
;; (which are different in each directory). For instance, one may want to
--- 88,94 ----
;; with different parameters.
;; See how ediff-directories, ediff-merge-directories, and
;; ediff-merge-directories-with-ancestor all use
! ;; ediff-directories-internal.
;;
;; A useful addition here could be session groups selected by patterns
;; (which are different in each directory). For instance, one may want to
***************
*** 96,102 ****
;; which may be in the same or different directories. Or, one may want to
;; compare all files of the form {something} to files of the form
{something}~.
;;
! ;; Implementing this requires writing an collating function, which should pair
;; up appropriate files. It will also require a generalization of the
;; functions that do the layout of the meta- and differences buffers and of
;; ediff-filegroup-action.
--- 96,102 ----
;; which may be in the same or different directories. Or, one may want to
;; compare all files of the form {something} to files of the form
{something}~.
;;
! ;; Implementing this requires writing a collating function, which should pair
;; up appropriate files. It will also require a generalization of the
;; functions that do the layout of the meta- and differences buffers and of
;; ediff-filegroup-action.
***************
*** 207,213 ****
This hook can be used to save the previous window config, which can be
restored
on ediff-quit, ediff-suspend, or ediff-quit-session-group-hook."
:type 'hook
! :group 'ediff-hook)
(defcustom ediff-after-session-group-setup-hook nil
"*Hooks run just after a meta-buffer controlling a session group, such as
ediff-directories, is run."
--- 207,213 ----
This hook can be used to save the previous window config, which can be
restored
on ediff-quit, ediff-suspend, or ediff-quit-session-group-hook."
:type 'hook
! :group 'ediff-hook)
(defcustom ediff-after-session-group-setup-hook nil
"*Hooks run just after a meta-buffer controlling a session group, such as
ediff-directories, is run."
***************
*** 322,328 ****
;; OBJA, OBJB, OBJC are usually directories involved, but can be different for
;; different jobs. For instance, multifile patch has only OBJA, which is the
;; patch buffer.
! (defun ediff-make-new-meta-list-header (regexp
objA objB objC
merge-auto-store-dir
comparison-func)
--- 322,328 ----
;; OBJA, OBJB, OBJC are usually directories involved, but can be different for
;; different jobs. For instance, multifile patch has only OBJA, which is the
;; patch buffer.
! (defun ediff-make-new-meta-list-header (regexp
objA objB objC
merge-auto-store-dir
comparison-func)
***************
*** 340,346 ****
;; checks if the session is a meta session
(defun ediff-meta-session-p (session-info)
(and (stringp (ediff-get-session-objA-name session-info))
! (file-directory-p (ediff-get-session-objA-name session-info))
(stringp (ediff-get-session-objB-name session-info))
(file-directory-p (ediff-get-session-objB-name session-info))
(if (stringp (ediff-get-session-objC-name session-info))
--- 340,346 ----
;; checks if the session is a meta session
(defun ediff-meta-session-p (session-info)
(and (stringp (ediff-get-session-objA-name session-info))
! (file-directory-p (ediff-get-session-objA-name session-info))
(stringp (ediff-get-session-objB-name session-info))
(file-directory-p (ediff-get-session-objB-name session-info))
(if (stringp (ediff-get-session-objC-name session-info))
***************
*** 468,474 ****
;;; (while (ediff-get-session-status
;;; (ediff-get-meta-info (current-buffer) pos 'noerror))
;;; (setq pos (ediff-previous-meta-overlay-start pos)))
!
(if pos (goto-char pos))
(if (eq ediff-metajob-name 'ediff-registry)
(if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
--- 468,474 ----
;;; (while (ediff-get-session-status
;;; (ediff-get-meta-info (current-buffer) pos 'noerror))
;;; (setq pos (ediff-previous-meta-overlay-start pos)))
!
(if pos (goto-char pos))
(if (eq ediff-metajob-name 'ediff-registry)
(if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
***************
*** 545,563 ****
lis1 (directory-files auxdir1 nil regexp)
lis1 (delete "." lis1)
lis1 (delete ".." lis1)
! lis1 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir1 elt))
lis1)
auxdir2 (file-name-as-directory dir2)
! lis2 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir2 elt))
(directory-files auxdir2 nil regexp)))
(if (stringp dir3)
(setq auxdir3 (file-name-as-directory dir3)
! lis3 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir3 elt))
(directory-files auxdir3 nil regexp))))
--- 545,563 ----
lis1 (directory-files auxdir1 nil regexp)
lis1 (delete "." lis1)
lis1 (delete ".." lis1)
! lis1 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir1 elt))
lis1)
auxdir2 (file-name-as-directory dir2)
! lis2 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir2 elt))
(directory-files auxdir2 nil regexp)))
(if (stringp dir3)
(setq auxdir3 (file-name-as-directory dir3)
! lis3 (mapcar
(lambda (elt)
(ediff-add-slash-if-directory auxdir3 elt))
(directory-files auxdir3 nil regexp))))
***************
*** 614,629 ****
merge-autostore-dir
comparison-func)
difflist))
!
(setq common-part
! (cons
;; metalist header
(ediff-make-new-meta-list-header regexp
auxdir1 auxdir2 auxdir3
merge-autostore-dir
comparison-func)
(mapcar
! (lambda (elt)
(ediff-make-new-meta-list-element
(concat auxdir1 elt)
(concat auxdir2 elt)
--- 614,629 ----
merge-autostore-dir
comparison-func)
difflist))
!
(setq common-part
! (cons
;; metalist header
(ediff-make-new-meta-list-header regexp
auxdir1 auxdir2 auxdir3
merge-autostore-dir
comparison-func)
(mapcar
! (lambda (elt)
(ediff-make-new-meta-list-element
(concat auxdir1 elt)
(concat auxdir2 elt)
***************
*** 686,694 ****
(setq common (sort (ediff-copy-list common) 'string-lessp))
;; return result
! (cons
;; header -- has 6 elements. Meta buffer is prepended later by
! ;; ediff-prepare-meta-buffer
(ediff-make-new-meta-list-header regexp
auxdir1 nil nil
merge-autostore-dir nil)
--- 686,694 ----
(setq common (sort (ediff-copy-list common) 'string-lessp))
;; return result
! (cons
;; header -- has 6 elements. Meta buffer is prepended later by
! ;; ediff-prepare-meta-buffer
(ediff-make-new-meta-list-header regexp
auxdir1 nil nil
merge-autostore-dir nil)
***************
*** 696,702 ****
(concat auxdir1 elt) nil nil))
common))
))
!
;; If file groups selected by patterns will ever be implemented, this
;; comparison function might become useful.
--- 696,702 ----
(concat auxdir1 elt) nil nil))
common))
))
!
;; If file groups selected by patterns will ever be implemented, this
;; comparison function might become useful.
***************
*** 733,739 ****
(defun ediff-prepare-meta-buffer (action-func meta-list
meta-buffer-name redraw-function
jobname &optional startup-hooks)
! (let* ((meta-buffer-name
(ediff-unique-buffer-name meta-buffer-name "*"))
(meta-buffer (get-buffer-create meta-buffer-name)))
(ediff-with-current-buffer meta-buffer
--- 733,739 ----
(defun ediff-prepare-meta-buffer (action-func meta-list
meta-buffer-name redraw-function
jobname &optional startup-hooks)
! (let* ((meta-buffer-name
(ediff-unique-buffer-name meta-buffer-name "*"))
(meta-buffer (get-buffer-create meta-buffer-name)))
(ediff-with-current-buffer meta-buffer
***************
*** 748,754 ****
;; comes after ediff-meta-action-function is set
(ediff-setup-meta-map)
!
(if (eq ediff-metajob-name 'ediff-registry)
(progn
(setq ediff-registry-buffer meta-buffer
--- 748,754 ----
;; comes after ediff-meta-action-function is set
(ediff-setup-meta-map)
!
(if (eq ediff-metajob-name 'ediff-registry)
(progn
(setq ediff-registry-buffer meta-buffer
***************
*** 762,775 ****
;; add meta-buffer to the list header
(cons (cons meta-buffer (car meta-list))
(cdr meta-list))))
!
(or (eq meta-buffer ediff-registry-buffer)
(setq ediff-session-registry
(cons meta-buffer ediff-session-registry)))
!
;; redraw-function uses ediff-meta-list
(funcall redraw-function ediff-meta-list)
!
;; set read-only/non-modified
(setq buffer-read-only t)
(set-buffer-modified-p nil)
--- 762,775 ----
;; add meta-buffer to the list header
(cons (cons meta-buffer (car meta-list))
(cdr meta-list))))
!
(or (eq meta-buffer ediff-registry-buffer)
(setq ediff-session-registry
(cons meta-buffer ediff-session-registry)))
!
;; redraw-function uses ediff-meta-list
(funcall redraw-function ediff-meta-list)
!
;; set read-only/non-modified
(setq buffer-read-only t)
(set-buffer-modified-p nil)
***************
*** 788,802 ****
(or (ediff-one-filegroup-metajob jobname)
(ediff-draw-dir-diffs ediff-dir-difference-list))
! (define-key
ediff-meta-buffer-map "h" 'ediff-mark-for-hiding-at-pos)
(define-key ediff-meta-buffer-map "x" 'ediff-hide-marked-sessions)
! (define-key
ediff-meta-buffer-map "m" 'ediff-mark-for-operation-at-pos)
(define-key ediff-meta-buffer-map "u" nil)
(define-key
ediff-meta-buffer-map "um" 'ediff-unmark-all-for-operation)
! (define-key
ediff-meta-buffer-map "uh" 'ediff-unmark-all-for-hiding)
(cond ((ediff-collect-diffs-metajob jobname)
(define-key
--- 788,802 ----
(or (ediff-one-filegroup-metajob jobname)
(ediff-draw-dir-diffs ediff-dir-difference-list))
! (define-key
ediff-meta-buffer-map "h" 'ediff-mark-for-hiding-at-pos)
(define-key ediff-meta-buffer-map "x" 'ediff-hide-marked-sessions)
! (define-key
ediff-meta-buffer-map "m" 'ediff-mark-for-operation-at-pos)
(define-key ediff-meta-buffer-map "u" nil)
(define-key
ediff-meta-buffer-map "um" 'ediff-unmark-all-for-operation)
! (define-key
ediff-meta-buffer-map "uh" 'ediff-unmark-all-for-hiding)
(cond ((ediff-collect-diffs-metajob jobname)
(define-key
***************
*** 826,832 ****
;; Insert session status at point. Status is either ?H (marked for hiding),
or
;; ?I (hidden or invalid), or ?* (meaning marked for an operation; currently,
;; such op can only be checking for equality)), or SPC (meaning neither marked
! ;; nor invalid)
(defun ediff-insert-session-status-in-meta-buffer (session)
(insert
(cond ((ediff-get-session-status session)) ; session has status: ?H, ?I, ?*
--- 826,832 ----
;; Insert session status at point. Status is either ?H (marked for hiding),
or
;; ?I (hidden or invalid), or ?* (meaning marked for an operation; currently,
;; such op can only be checking for equality)), or SPC (meaning neither marked
! ;; nor invalid)
(defun ediff-insert-session-status-in-meta-buffer (session)
(insert
(cond ((ediff-get-session-status session)) ; session has status: ?H, ?I, ?*
***************
*** 900,913 ****
(map-extents 'delete-extent) ; xemacs
(mapcar 'delete-overlay (overlays-in 1 1)) ; emacs
)
!
(insert (format ediff-meta-buffer-message
(ediff-abbrev-jobname ediff-metajob-name)))
(setq regexp (ediff-get-group-regexp meta-list)
merge-autostore-dir
(ediff-get-group-merge-autostore-dir meta-list))
!
(cond ((ediff-collect-diffs-metajob)
(insert
" P:\tcollect custom diffs of all marked sessions\n"))
--- 900,913 ----
(map-extents 'delete-extent) ; xemacs
(mapcar 'delete-overlay (overlays-in 1 1)) ; emacs
)
!
(insert (format ediff-meta-buffer-message
(ediff-abbrev-jobname ediff-metajob-name)))
(setq regexp (ediff-get-group-regexp meta-list)
merge-autostore-dir
(ediff-get-group-merge-autostore-dir meta-list))
!
(cond ((ediff-collect-diffs-metajob)
(insert
" P:\tcollect custom diffs of all marked sessions\n"))
***************
*** 938,944 ****
----------------------------------------------
")
!
;; discard info on directories and regexp
(setq meta-list (cdr meta-list)
tmp-list meta-list)
--- 938,944 ----
----------------------------------------------
")
!
;; discard info on directories and regexp
(setq meta-list (cdr meta-list)
tmp-list meta-list)
***************
*** 951,957 ****
(if empty
(insert
" ****** ****** This session group has no members\n"))
!
;; now organize file names like this:
;; use-mark sizeA dateA sizeB dateB filename
;; make sure directories are displayed with a trailing slash.
--- 951,957 ----
(if empty
(insert
" ****** ****** This session group has no members\n"))
!
;; now organize file names like this:
;; use-mark sizeA dateA sizeB dateB filename
;; make sure directories are displayed with a trailing slash.
***************
*** 1213,1219 ****
(if (stringp dir3)
(if (= (mod membership-code ediff-membership-code3) 0) ; dir3
(let ((beg (point)))
! (insert (format " %-25s"
(ediff-truncate-string-left
(ediff-abbreviate-file-name
(if (file-directory-p (concat dir3 file))
--- 1213,1219 ----
(if (stringp dir3)
(if (= (mod membership-code ediff-membership-code3) 0) ; dir3
(let ((beg (point)))
! (insert (format " %-25s"
(ediff-truncate-string-left
(ediff-abbreviate-file-name
(if (file-directory-p (concat dir3 file))
***************
*** 1327,1333 ****
(ediff-show-meta-buffer
ediff-parent-meta-buffer ediff-meta-session-number)
(error "This session group has no parent")))
!
;; argument is ignored
(defun ediff-redraw-registry-buffer (&optional ignore)
--- 1327,1333 ----
(ediff-show-meta-buffer
ediff-parent-meta-buffer ediff-meta-session-number)
(error "This session group has no parent")))
!
;; argument is ignored
(defun ediff-redraw-registry-buffer (&optional ignore)
***************
*** 1373,1379 ****
(while registry-list
(setq elt (car registry-list)
registry-list (cdr registry-list))
!
(if (ediff-buffer-live-p elt)
(if (ediff-with-current-buffer elt
(setq job-name ediff-metajob-name
--- 1373,1379 ----
(while registry-list
(setq elt (car registry-list)
registry-list (cdr registry-list))
!
(if (ediff-buffer-live-p elt)
(if (ediff-with-current-buffer elt
(setq job-name ediff-metajob-name
***************
*** 1479,1485 ****
;;; (error "Can't hide active session, %s" (buffer-name session-buf)))
(t (ediff-set-session-status info ?H))))
unmark)
!
(defun ediff-mark-for-operation-at-pos (unmark)
"Mark session for a group operation. With prefix arg, unmark."
--- 1479,1485 ----
;;; (error "Can't hide active session, %s" (buffer-name session-buf)))
(t (ediff-set-session-status info ?H))))
unmark)
!
(defun ediff-mark-for-operation-at-pos (unmark)
"Mark session for a group operation. With prefix arg, unmark."
***************
*** 1562,1572 ****
(funcall operation elt sessionNum)))
;; The following goes into a session represented by a subdirectory
;; and applies operation to marked sessions there
! ((and (ediff-meta-session-p elt)
! (ediff-buffer-live-p
(setq session-buf (ediff-get-session-buffer elt))))
(setq numMarked
! (+ numMarked
(ediff-with-current-buffer session-buf
;; pass meta-diff along
(setq ediff-meta-diff-buffer diff-buffer)
--- 1562,1572 ----
(funcall operation elt sessionNum)))
;; The following goes into a session represented by a subdirectory
;; and applies operation to marked sessions there
! ((and (ediff-meta-session-p elt)
! (ediff-buffer-live-p
(setq session-buf (ediff-get-session-buffer elt))))
(setq numMarked
! (+ numMarked
(ediff-with-current-buffer session-buf
;; pass meta-diff along
(setq ediff-meta-diff-buffer diff-buffer)
***************
*** 1602,1608 ****
(insert-buffer custom-diff-buf)
(insert "\n")))
;; if ediff session is not live, run diff directly on the files
! ((memq metajob '(ediff-directories
ediff-merge-directories
ediff-merge-directories-with-ancestor))
;; get diffs by calling shell command on ediff-custom-diff-program
--- 1602,1608 ----
(insert-buffer custom-diff-buf)
(insert "\n")))
;; if ediff session is not live, run diff directly on the files
! ((memq metajob '(ediff-directories
ediff-merge-directories
ediff-merge-directories-with-ancestor))
;; get diffs by calling shell command on ediff-custom-diff-program
***************
*** 1671,1677 ****
))
(error "The patch buffer wasn't found"))))
!
;; This function executes in meta buffer. It knows where event happened.
(defun ediff-filegroup-action ()
"Execute appropriate action for a selected session."
--- 1671,1677 ----
))
(error "The patch buffer wasn't found"))))
!
;; This function executes in meta buffer. It knows where event happened.
(defun ediff-filegroup-action ()
"Execute appropriate action for a selected session."
***************
*** 1710,1723 ****
;; do ediff/ediff-merge on subdirectories
(if (ediff-buffer-live-p session-buf)
(ediff-show-meta-buffer session-buf)
! (setq regexp (read-string "Filter through regular expression: "
nil 'ediff-filtering-regexp-history))
(ediff-directories-internal
file1 file2 file3 regexp
ediff-session-action-function
! ediff-metajob-name
;; make it update (car info) after startup
! `(list (lambda ()
;; child session group should know its parent
(setq ediff-parent-meta-buffer
(quote ,ediff-meta-buffer)
--- 1710,1723 ----
;; do ediff/ediff-merge on subdirectories
(if (ediff-buffer-live-p session-buf)
(ediff-show-meta-buffer session-buf)
! (setq regexp (read-string "Filter through regular expression: "
nil 'ediff-filtering-regexp-history))
(ediff-directories-internal
file1 file2 file3 regexp
ediff-session-action-function
! ediff-metajob-name
;; make it update (car info) after startup
! `(list (lambda ()
;; child session group should know its parent
(setq ediff-parent-meta-buffer
(quote ,ediff-meta-buffer)
***************
*** 1732,1744 ****
(file-directory-p file1))
(if (ediff-buffer-live-p session-buf)
(ediff-show-meta-buffer session-buf)
! (setq regexp (read-string "Filter through regular expression: "
nil 'ediff-filtering-regexp-history))
(ediff-directory-revisions-internal
file1 regexp
ediff-session-action-function ediff-metajob-name
;; make it update (car info) after startup
! `(list (lambda ()
;; child session group should know its parent and
;; its number
(setq ediff-parent-meta-buffer
--- 1732,1744 ----
(file-directory-p file1))
(if (ediff-buffer-live-p session-buf)
(ediff-show-meta-buffer session-buf)
! (setq regexp (read-string "Filter through regular expression: "
nil 'ediff-filtering-regexp-history))
(ediff-directory-revisions-internal
file1 regexp
ediff-session-action-function ediff-metajob-name
;; make it update (car info) after startup
! `(list (lambda ()
;; child session group should know its parent and
;; its number
(setq ediff-parent-meta-buffer
***************
*** 1762,1769 ****
"This session has no ancestor. Merge without the ancestor? ")
(ediff-merge-files
file1 file2
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
--- 1762,1769 ----
"This session has no ancestor. Merge without the ancestor? ")
(ediff-merge-files
file1 file2
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
***************
*** 1791,1798 ****
((ediff-one-filegroup-metajob) ; needs 1 file arg
(funcall ediff-session-action-function
file1
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
--- 1791,1798 ----
((ediff-one-filegroup-metajob) ; needs 1 file arg
(funcall ediff-session-action-function
file1
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
***************
*** 1820,1827 ****
((not (ediff-metajob3)) ; need 2 file args
(funcall ediff-session-action-function
file1 file2
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
--- 1820,1827 ----
((not (ediff-metajob3)) ; need 2 file args
(funcall ediff-session-action-function
file1 file2
! ;; provide startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
***************
*** 1849,1856 ****
((ediff-metajob3) ; need 3 file args
(funcall ediff-session-action-function
file1 file2 file3
! ;; arrange startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
--- 1849,1856 ----
((ediff-metajob3) ; need 3 file args
(funcall ediff-session-action-function
file1 file2 file3
! ;; arrange startup hooks
! `(list (lambda ()
(add-hook
'ediff-after-quit-hook-internal
(lambda ()
***************
*** 1956,1962 ****
(set-window-buffer (selected-window) meta-buf)))
))
(if (and (ediff-window-display-p)
! (window-live-p
(setq wind (ediff-get-visible-buffer-window meta-buf))))
(progn
(setq frame (window-frame wind))
--- 1956,1962 ----
(set-window-buffer (selected-window) meta-buf)))
))
(if (and (ediff-window-display-p)
! (window-live-p
(setq wind (ediff-get-visible-buffer-window meta-buf))))
(progn
(setq frame (window-frame wind))
***************
*** 2018,2024 ****
))
(if (ediff-window-display-p)
(progn
! (setq frame
(window-frame
(ediff-get-visible-buffer-window ediff-registry-buffer)))
(raise-frame frame)
--- 2018,2024 ----
))
(if (ediff-window-display-p)
(progn
! (setq frame
(window-frame
(ediff-get-visible-buffer-window ediff-registry-buffer)))
(raise-frame frame)
***************
*** 2058,2064 ****
(ediff-with-current-buffer (current-buffer)
(if (ediff-buffer-live-p ediff-registry-buffer)
(ediff-redraw-registry-buffer)
! (ediff-prepare-meta-buffer
'ediff-registry-action
ediff-session-registry
"*Ediff Registry"
--- 2058,2064 ----
(ediff-with-current-buffer (current-buffer)
(if (ediff-buffer-live-p ediff-registry-buffer)
(ediff-redraw-registry-buffer)
! (ediff-prepare-meta-buffer
'ediff-registry-action
ediff-session-registry
"*Ediff Registry"
***************
*** 2066,2072 ****
'ediff-registry))
))
! ;; If meta-buf exists, it is redrawn along with parent.
;; Otherwise, nothing happens.
(defun ediff-cleanup-meta-buffer (meta-buffer)
(if (ediff-buffer-live-p meta-buffer)
--- 2066,2072 ----
'ediff-registry))
))
! ;; If meta-buf exists, it is redrawn along with parent.
;; Otherwise, nothing happens.
(defun ediff-cleanup-meta-buffer (meta-buffer)
(if (ediff-buffer-live-p meta-buffer)
***************
*** 2134,2140 ****
(if (ediff-buffer-live-p ediff-dir-diffs-buffer)
(kill-buffer ediff-dir-diffs-buffer)))
(kill-buffer buf))
!
;; Obtain information on a meta record where the user clicked or typed
;; BUF is the buffer where this happened and POINT is the position
--- 2134,2140 ----
(if (ediff-buffer-live-p ediff-dir-diffs-buffer)
(kill-buffer ediff-dir-diffs-buffer)))
(kill-buffer buf))
!
;; Obtain information on a meta record where the user clicked or typed
;; BUF is the buffer where this happened and POINT is the position