comparison lisp/ediff/ediff-mult.el @ 80:1ce6082ce73f r20-0b90

Import from CVS: tag r20-0b90
author cvs
date Mon, 13 Aug 2007 09:06:37 +0200
parents c7528f8e288d
children 6a378aca36af
comparison
equal deleted inserted replaced
79:5b0a5bbffab6 80:1ce6082ce73f
24 ;;; Commentary: 24 ;;; Commentary:
25 25
26 ;; Users are encouraged to add functionality to this file. 26 ;; Users are encouraged to add functionality to this file.
27 ;; The present file contains all the infrastructure needed for that. 27 ;; The present file contains all the infrastructure needed for that.
28 ;; 28 ;;
29 ;; Generally, to implement a new multisession capability within Ediff, 29 ;; Generally, to to implement a new multisession capability within Ediff,
30 ;; you need to tell it 30 ;; you need to tell it
31 ;; 31 ;;
32 ;; 1. How to display the session group buffer. 32 ;; 1. How to display the session group buffer.
33 ;; This function must indicate which Ediff sessions are active (+) and 33 ;; This function must indicate which Ediff sessions are active (+) and
34 ;; which are finished (-). 34 ;; which are finished (-).
88 ;; that do the layout of the meta- and differences buffers and of 88 ;; that do the layout of the meta- and differences buffers and of
89 ;; ediff-filegroup-action. 89 ;; ediff-filegroup-action.
90 90
91 ;;; Code: 91 ;;; Code:
92 92
93 (provide 'ediff-mult)
94
95 ;; compiler pacifier
96 (eval-when-compile
97 (let ((load-path (cons (expand-file-name ".") load-path)))
98 (or (featurep 'ediff-init)
99 (load "ediff-init.el" nil nil 'nosuffix))
100 (or (featurep 'ediff-util)
101 (load "ediff-util.el" nil nil 'nosuffix))
102 ))
103 ;; end pacifier
104
93 (require 'ediff-init) 105 (require 'ediff-init)
106 (require 'ediff-util)
94 107
95 ;; meta-buffer 108 ;; meta-buffer
96 (ediff-defvar-local ediff-meta-buffer nil "") 109 (ediff-defvar-local ediff-meta-buffer nil "")
97 (ediff-defvar-local ediff-parent-meta-buffer nil "") 110 (ediff-defvar-local ediff-parent-meta-buffer nil "")
98 ;; the registry buffer 111 ;; the registry buffer
364 (function 377 (function
365 (lambda (elt) 378 (lambda (elt)
366 (ediff-add-slash-if-directory auxdir1 elt))) 379 (ediff-add-slash-if-directory auxdir1 elt)))
367 lis1) 380 lis1)
368 auxdir2 (file-name-as-directory dir2) 381 auxdir2 (file-name-as-directory dir2)
369 lis2 (mapcar 382 lis2 (mapcar
370 (function 383 (function
371 (lambda (elt) 384 (lambda (elt)
372 (ediff-add-slash-if-directory auxdir2 elt))) 385 (ediff-add-slash-if-directory auxdir2 elt)))
373 (directory-files auxdir2 nil regexp))) 386 (directory-files auxdir2 nil regexp)))
374 387
375 (if (stringp dir3) 388 (if (stringp dir3)
376 (setq auxdir3 (file-name-as-directory dir3) 389 (setq auxdir3 (file-name-as-directory dir3)
377 lis3 (mapcar 390 lis3 (mapcar
378 (function 391 (function
379 (lambda (elt) 392 (lambda (elt)
380 (ediff-add-slash-if-directory auxdir3 elt))) 393 (ediff-add-slash-if-directory auxdir3 elt)))
381 (directory-files auxdir3 nil regexp)))) 394 (directory-files auxdir3 nil regexp))))
382 395
730 (defun ediff-meta-insert-file-info (fileinfo) 743 (defun ediff-meta-insert-file-info (fileinfo)
731 (let ((fname (car fileinfo)) 744 (let ((fname (car fileinfo))
732 (feq (ediff-get-file-eqstatus fileinfo)) 745 (feq (ediff-get-file-eqstatus fileinfo))
733 file-modtime file-size) 746 file-modtime file-size)
734 747
735 (cond ((not (stringp fname)) (setq file-size -2)) ; file doesn't exist 748 (cond ((not (stringp fname)) (setq file-size -2)) ; file doesn't exits
736 ((not (ediff-file-remote-p fname)) 749 ((not (ediff-file-remote-p fname))
737 (if (file-exists-p fname) 750 (if (file-exists-p fname)
738 ;; set real size and modtime 751 ;; set real size and modtime
739 (setq file-size (ediff-file-size fname) 752 (setq file-size (ediff-file-size fname)
740 file-modtime (ediff-file-modtime fname)) 753 file-modtime (ediff-file-modtime fname))
1015 (interactive "P") 1028 (interactive "P")
1016 (let* ((pos (ediff-event-point last-command-event)) 1029 (let* ((pos (ediff-event-point last-command-event))
1017 (meta-buf (ediff-event-buffer last-command-event)) 1030 (meta-buf (ediff-event-buffer last-command-event))
1018 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid 1031 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
1019 (info (ediff-get-meta-info meta-buf pos)) 1032 (info (ediff-get-meta-info meta-buf pos))
1020 merge-autostore-dir
1021 (session-buf (ediff-get-session-buffer info))) 1033 (session-buf (ediff-get-session-buffer info)))
1022 1034
1023 (if (eq (ediff-get-session-status info) ?H) 1035 (if (eq (ediff-get-session-status info) ?H)
1024 (setq unmark t)) 1036 (setq unmark t))
1025 (if unmark 1037 (if unmark
1196 (interactive) 1208 (interactive)
1197 (let* ((pos (ediff-event-point last-command-event)) 1209 (let* ((pos (ediff-event-point last-command-event))
1198 (meta-buf (ediff-event-buffer last-command-event)) 1210 (meta-buf (ediff-event-buffer last-command-event))
1199 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid 1211 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
1200 (info (ediff-get-meta-info meta-buf pos)) 1212 (info (ediff-get-meta-info meta-buf pos))
1213 merge-autostore-dir
1201 session-buf file1 file2 file3 regexp) 1214 session-buf file1 file2 file3 regexp)
1202 1215
1203 (setq session-buf (ediff-get-session-buffer info) 1216 (setq session-buf (ediff-get-session-buffer info)
1204 file1 (ediff-get-session-objA-name info) 1217 file1 (ediff-get-session-objA-name info)
1205 file2 (ediff-get-session-objB-name info) 1218 file2 (ediff-get-session-objB-name info)
1716 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) 1729 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
1717 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) 1730 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1)
1718 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) 1731 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
1719 ;;; End: 1732 ;;; End:
1720 1733
1721 (provide 'ediff-mult)
1722 (require 'ediff-util)
1723
1724 ;;; ediff-mult.el ends here 1734 ;;; ediff-mult.el ends here