emacs-diffs
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]