• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/emacs-92/emacs/lisp/

Lines Matching defs:meta

46 ;;         The function ediff-make-new-meta-list-element can be used to create
48 ;; description header). See ediff-make-new-meta-list-element for the
52 ;; above list. Search for `API for ediff-meta-list' for details.
63 ;; Also, keep in mind that the function ediff-prepare-meta-buffer
76 ;; Use ediff-make-new-meta-list-element to create these things.
83 ;; 4. Write a function that makes a call to ediff-prepare-meta-buffer
102 ;; functions that do the layout of the meta- and differences buffers and of
126 ;; meta-buffer
127 (ediff-defvar-local ediff-meta-buffer nil "")
128 (ediff-defvar-local ediff-parent-meta-buffer nil "")
132 (defconst ediff-meta-buffer-message "This is an Ediff Session Group Panel: %s
149 (ediff-defvar-local ediff-meta-buffer-map nil
150 "The keymap for the meta buffer.")
156 ;; meta buffer. This is usually ediff-registry-action or ediff-filegroup-action
157 (ediff-defvar-local ediff-meta-action-function nil "")
158 ;; Tells ediff-update-meta-buffer how to redraw it
159 (ediff-defvar-local ediff-meta-redraw-function nil "")
167 (ediff-defvar-local ediff-meta-diff-buffer nil "")
181 ;; This has the form ((meta-buf regexp dir1 dir2 dir3 merge-auto-store-dir)
190 (ediff-defvar-local ediff-meta-list nil "")
192 (ediff-defvar-local ediff-meta-session-number nil "")
202 (defcustom ediff-meta-truncate-filenames t
208 (defcustom ediff-meta-mode-hook nil
209 "*Hooks run just after setting up meta mode."
226 "*Hooks run just after a meta-buffer controlling a session group, such as
242 (defcustom ediff-meta-buffer-keymap-setup-hook nil
243 "*Hooks run just after setting up the `ediff-meta-buffer-map'.
244 This keymap controls key bindings in the meta buffer and is a local variable.
245 This means that you can set different bindings for different kinds of meta
250 ;; Buffer holding the multi-file patch. Local to the meta buffer
251 (ediff-defvar-local ediff-meta-patchbufer nil "")
253 ;;; API for ediff-meta-list
255 ;; A meta-list is either ediff-meta-list, which contains a header and the list
258 ;; in all directories). The header is the same in all meta lists, but the rest
260 ;; Structure of the meta-list:
268 (defsubst ediff-get-group-buffer (meta-list)
269 (nth 0 (car meta-list)))
271 (defsubst ediff-get-group-regexp (meta-list)
272 (nth 1 (car meta-list)))
274 (defsubst ediff-get-group-objA (meta-list)
275 (nth 2 (car meta-list)))
276 (defsubst ediff-get-group-objB (meta-list)
277 (nth 3 (car meta-list)))
278 (defsubst ediff-get-group-objC (meta-list)
279 (nth 4 (car meta-list)))
280 (defsubst ediff-get-group-merge-autostore-dir (meta-list)
281 (nth 5 (car meta-list)))
282 (defsubst ediff-get-group-comparison-func (meta-list)
283 (nth 6 (car meta-list)))
285 ;; ELT is a session meta descriptor (what is being preserved as
286 ;; 'ediff-meta-info)
321 ;; Create a new element for the meta list out of obj1/2/3, which usually are
332 (defun ediff-make-new-meta-list-element (obj1 obj2 obj3)
335 ;; Constructs a meta list header.
339 (defun ediff-make-new-meta-list-header (regexp
354 ;; checks if the session is a meta session
355 (defun ediff-meta-session-p (session-info)
363 ;; set up the keymap in the meta buffer
364 (defun ediff-setup-meta-map ()
365 (setq ediff-meta-buffer-map (make-sparse-keymap))
366 (suppress-keymap ediff-meta-buffer-map)
367 (define-key ediff-meta-buffer-map "q" 'ediff-quit-meta-buffer)
368 (define-key ediff-meta-buffer-map "T" 'ediff-toggle-filename-truncation)
369 (define-key ediff-meta-buffer-map "R" 'ediff-show-registry)
370 (define-key ediff-meta-buffer-map "E" 'ediff-documentation)
371 (define-key ediff-meta-buffer-map "v" ediff-meta-action-function)
372 (define-key ediff-meta-buffer-map "\C-m" ediff-meta-action-function)
373 (define-key ediff-meta-buffer-map " " 'ediff-next-meta-item)
374 (define-key ediff-meta-buffer-map "n" 'ediff-next-meta-item)
375 (define-key ediff-meta-buffer-map "\C-?" 'ediff-previous-meta-item)
376 (define-key ediff-meta-buffer-map "p" 'ediff-previous-meta-item)
377 (define-key ediff-meta-buffer-map [delete] 'ediff-previous-meta-item)
378 (define-key ediff-meta-buffer-map [backspace] 'ediff-previous-meta-item)
381 (define-key ediff-meta-buffer-map "=" nil)
382 (define-key ediff-meta-buffer-map "==" 'ediff-meta-mark-equal-files)
383 (define-key ediff-meta-buffer-map "=m" 'ediff-meta-mark-equal-files)
384 (define-key ediff-meta-buffer-map "=h" 'ediff-meta-mark-equal-files)))
386 (define-key ediff-meta-buffer-map "\C-h" 'ediff-previous-meta-item))
388 (define-key ediff-meta-buffer-map [mouse-2] ediff-meta-action-function)
389 (define-key ediff-meta-buffer-map [button2] ediff-meta-action-function))
391 (use-local-map ediff-meta-buffer-map)
392 ;; modify ediff-meta-buffer-map here
393 (run-hooks 'ediff-meta-buffer-keymap-setup-hook))
396 (defun ediff-meta-mode ()
415 \\{ediff-meta-buffer-map}"
417 (setq major-mode 'ediff-meta-mode)
420 (run-hooks 'ediff-meta-mode-hook))
437 (defun ediff-next-meta-item (count)
445 (ediff-next-meta-item1)
446 (setq overl (ediff-get-meta-overlay-at-pos (point)))
449 (ediff-next-meta-item1)
450 (setq overl (ediff-get-meta-overlay-at-pos (point)))))))
452 ;; Move to the next meta item
453 (defun ediff-next-meta-item1 ()
455 (setq pos (ediff-next-meta-overlay-start (point)))
458 (if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
465 (defun ediff-previous-meta-item (count)
473 (ediff-previous-meta-item1)
474 (setq overl (ediff-get-meta-overlay-at-pos (point)))
477 (ediff-previous-meta-item1)
478 (setq overl (ediff-get-meta-overlay-at-pos (point)))))))
480 (defun ediff-previous-meta-item1 ()
482 (setq pos (ediff-previous-meta-overlay-start (point)))
485 ;;; (ediff-get-meta-info (current-buffer) pos 'noerror))
486 ;;; (setq pos (ediff-previous-meta-overlay-start pos)))
490 (if (and (ediff-get-meta-info (current-buffer) pos 'noerror)
504 Set `ediff-meta-truncate-filenames' variable if you want to change the default
507 (setq ediff-meta-truncate-filenames (not ediff-meta-truncate-filenames))
508 (ediff-update-meta-buffer (current-buffer) 'must-redraw))
546 ;; Contains the meta info about this ediff operation
548 ;; Later the meta-buffer is prepended to this list.
550 ;; Some operations might use a different meta header. For instance,
635 (ediff-make-new-meta-list-header regexp
644 (ediff-make-new-meta-list-header regexp
650 (ediff-make-new-meta-list-element
714 ;; ediff-prepare-meta-buffer
715 (ediff-make-new-meta-list-header regexp
718 (mapcar (lambda (elt) (ediff-make-new-meta-list-element
754 ;; Prepare meta-buffer in accordance with the argument-function and
755 ;; redraw-function. Must return the created meta-buffer.
756 (defun ediff-prepare-meta-buffer (action-func meta-list
757 meta-buffer-name redraw-function
759 (let* ((meta-buffer-name
760 (ediff-unique-buffer-name meta-buffer-name "*"))
761 (meta-buffer (get-buffer-create meta-buffer-name)))
762 (ediff-with-current-buffer meta-buffer
765 (ediff-meta-mode)
767 (setq ediff-meta-action-function action-func
768 ediff-meta-redraw-function redraw-function
770 ediff-meta-buffer meta-buffer)
772 ;; comes after ediff-meta-action-function is set
773 (ediff-setup-meta-map)
777 (setq ediff-registry-buffer meta-buffer
778 ediff-meta-list meta-list)
780 ;; meta-buffs.
782 ediff-meta-buffer-map "M" 'ediff-show-meta-buff-from-registry))
783 ;; Initialize the meta list -- we don't do this for registry.
784 (setq ediff-meta-list
785 ;; add meta-buffer to the list header
786 (cons (cons meta-buffer (car meta-list))
787 (cdr meta-list))))
789 (or (eq meta-buffer ediff-registry-buffer)
791 (cons meta-buffer ediff-session-registry)))
793 ;; redraw-function uses ediff-meta-list
794 (funcall redraw-function ediff-meta-list)
807 ;; put meta buffer in (car ediff-dir-difference-list)
809 (cons (cons meta-buffer (car ediff-dir-difference-list))
815 ediff-meta-buffer-map "h" 'ediff-mark-for-hiding-at-pos)
816 (define-key ediff-meta-buffer-map "x" 'ediff-hide-marked-sessions)
818 ediff-meta-buffer-map "m" 'ediff-mark-for-operation-at-pos)
819 (define-key ediff-meta-buffer-map "u" nil)
821 ediff-meta-buffer-map "um" 'ediff-unmark-all-for-operation)
823 ediff-meta-buffer-map "uh" 'ediff-unmark-all-for-hiding)
826 ediff-meta-buffer-map "P" 'ediff-collect-custom-diffs))
829 ediff-meta-buffer-map "P" 'ediff-meta-show-patch)))
830 (define-key ediff-meta-buffer-map "^" 'ediff-up-meta-hierarchy)
831 (define-key ediff-meta-buffer-map "D" 'ediff-show-dir-diffs)))
836 ) ; eval in meta-buffer
837 meta-buffer))
839 ;; Insert the activity marker for session SESSION in the meta buffer at point
843 (defun ediff-insert-session-activity-marker-in-meta-buffer (session)
853 (defun ediff-insert-session-status-in-meta-buffer (session)
860 ;; in the meta buffer. If nil, use SPC
861 (defun ediff-replace-session-activity-marker-in-meta-buffer (point new-marker)
862 (let* ((overl (ediff-get-meta-overlay-at-pos point))
863 (session-info (ediff-overlay-get overl 'ediff-meta-info))
875 ;; the meta buffer. If nil, use SPC
876 (defun ediff-replace-session-status-in-meta-buffer (point new-status)
877 (let* ((overl (ediff-get-meta-overlay-at-pos point))
878 (session-info (ediff-overlay-get overl 'ediff-meta-info))
890 ;; insert all file info in meta buffer for a given session
891 (defun ediff-insert-session-info-in-meta-buffer (session-info sessionNum)
898 (ediff-insert-session-activity-marker-in-meta-buffer session-info)
900 (ediff-insert-session-status-in-meta-buffer session-info)
902 (ediff-meta-insert-file-info1 f1)
903 (ediff-meta-insert-file-info1 f2)
904 (ediff-meta-insert-file-info1 f3)
905 (ediff-set-meta-overlay pt (point) session-info sessionNum hidden)))
909 ;; must return meta-buffer
910 (defun ediff-redraw-directory-group-buffer (meta-list)
912 (let ((meta-buf (ediff-get-group-buffer meta-list))
917 (ediff-with-current-buffer meta-buf
927 (insert (format ediff-meta-buffer-message
930 (setq regexp (ediff-get-group-regexp meta-list)
932 (ediff-get-group-merge-autostore-dir meta-list))
953 (ediff-insert-dirs-in-meta-buffer meta-list)
966 (setq meta-list (cdr meta-list)
967 tmp-list meta-list)
981 (while meta-list
982 (setq elt (car meta-list)
983 meta-list (cdr meta-list)
987 (ediff-insert-session-info-in-meta-buffer elt sessionNum)))
990 meta-buf)))
992 (defun ediff-update-markers-in-dir-meta-buffer (meta-list)
993 (let ((meta-buf (ediff-get-group-buffer meta-list))
995 (ediff-with-current-buffer meta-buf
998 (ediff-next-meta-item1)
1000 (setq session-info (ediff-get-meta-info meta-buf (point) 'no-error)
1001 overl (ediff-get-meta-overlay-at-pos (point)))
1011 (t (ediff-replace-session-activity-marker-in-meta-buffer
1014 (ediff-replace-session-status-in-meta-buffer
1017 (ediff-next-meta-item1) ; advance to the next item
1021 meta-buf))
1023 (defun ediff-update-session-marker-in-dir-meta-buffer (session-num)
1024 (let (buffer-meta-overlays session-info overl buffer-read-only)
1030 (ediff-overlay-get ext 'ediff-meta-info)
1031 (eq (ediff-overlay-get ext 'ediff-meta-session-number)
1037 (setq buffer-meta-overlays (overlay-lists)
1038 buffer-meta-overlays (append (car buffer-meta-overlays)
1039 (cdr buffer-meta-overlays)))
1045 (ediff-overlay-get overl 'ediff-meta-info)
1047 overl 'ediff-meta-session-number)
1050 buffer-meta-overlays))))
1054 "Bug in ediff-update-session-marker-in-dir-meta-buffer: no overlay with given number %S"
1056 (setq session-info (ediff-overlay-get overl 'ediff-meta-info))
1058 (ediff-replace-session-activity-marker-in-meta-buffer
1061 (ediff-replace-session-status-in-meta-buffer
1064 (ediff-next-meta-item1))
1086 (defun ediff-meta-insert-file-info1 (fileinfo)
1089 (max-filename-width (if ediff-meta-truncate-filenames
1113 ;; dir names in meta lists have training slashes, so we just
1144 (defun ediff-insert-dirs-in-meta-buffer (meta-list)
1145 (let* ((dir1 (ediff-abbreviate-file-name (ediff-get-group-objA meta-list)))
1146 (dir2 (ediff-get-group-objB meta-list))
1148 (dir3 (ediff-get-group-objC meta-list))
1165 (meta-buf (ediff-get-group-buffer diff-list))
1176 (setq ediff-meta-buffer meta-buf)
1217 ;; format of meta info in the dir-diff-buffer:
1219 (ediff-set-meta-overlay
1221 (list meta-buf file (concat dir1 file) dir1 dir2 dir3)))
1232 (ediff-set-meta-overlay
1234 (list meta-buf file (concat dir2 file) dir1 dir2 dir3)))
1246 (ediff-set-meta-overlay
1248 (list meta-buf file (concat dir3 file) dir1 dir2 dir3)))
1257 "Bury the directory difference buffer. Display the meta buffer instead."
1259 ;; ediff-meta-buffer is set in ediff-draw-dir-diffs so the directory
1260 ;; difference buffer remembers the meta buffer
1261 (let ((buf ediff-meta-buffer)
1282 ;; Format of meta info in dir-diff-buffer:
1288 (info (ediff-get-meta-info (current-buffer) pos 'noerror))
1289 (meta-buf (car info))
1298 meta-list dir-diff-list
1302 (ediff-with-current-buffer meta-buf
1303 (setq meta-list ediff-meta-list
1338 ;; update ediff-meta-list by direct modification
1339 (nconc meta-list
1340 (list (ediff-make-new-meta-list-element
1346 (ediff-update-meta-buffer meta-buf 'must-redraw)
1349 (defun ediff-up-meta-hierarchy ()
1352 (if (ediff-buffer-live-p ediff-parent-meta-buffer)
1353 (ediff-show-meta-buffer
1354 ediff-parent-meta-buffer ediff-meta-session-number)
1363 job-name meta-list registry-list buffer-read-only)
1406 meta-list ediff-meta-list)
1416 (ediff-get-group-objA meta-list))
1419 (ediff-get-group-objB meta-list))
1420 (ediff-get-group-objB meta-list)
1424 (ediff-get-group-objC meta-list))
1425 (ediff-get-group-objC meta-list)
1427 (ediff-set-meta-overlay pt (point) elt))
1450 ;; back in the meta buf
1457 (ediff-set-meta-overlay pt (point) elt))))
1463 ;; Sets overlay around a meta record with 'ediff-meta-info property PROP
1465 ;; ediff-meta-session-number
1466 ;; PROP is either the ctl or meta buffer (used when we work with the registry)
1467 ;; or a session meta descriptor of the form
1469 (defun ediff-set-meta-overlay (b e prop &optional session-number hidden)
1475 (ediff-overlay-put overl 'ediff-meta-info prop)
1479 (ediff-overlay-put overl 'ediff-meta-session-number session-number))))
1485 (meta-buf (ediff-event-buffer last-command-event))
1486 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
1487 (info (ediff-get-meta-info meta-buf pos))
1490 (ediff-next-meta-item 1)
1492 (ediff-update-meta-buffer meta-buf nil session-number))
1515 (meta-buf (ediff-event-buffer last-command-event))
1516 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
1517 (info (ediff-get-meta-info meta-buf pos))
1520 (ediff-next-meta-item 1)
1522 (ediff-update-meta-buffer meta-buf nil session-number))
1543 (let ((grp-buf (ediff-get-group-buffer ediff-meta-list))
1544 (meta-list (cdr ediff-meta-list))
1549 (while meta-list
1550 (setq elt (car meta-list)
1551 meta-list (cdr meta-list)
1562 (ediff-update-meta-buffer grp-buf 'must-redraw)
1572 ;; meta-list member (not the first one), i.e., a regular session description.
1575 (let ((grp-buf (ediff-get-group-buffer ediff-meta-list))
1576 (meta-list (cdr ediff-meta-list))
1580 (diff-buffer ediff-meta-diff-buffer)
1582 (while meta-list
1583 (setq elt (car meta-list)
1584 meta-list (cdr meta-list)
1592 ((and (ediff-meta-session-p elt)
1598 ;; pass meta-diff along
1599 (setq ediff-meta-diff-buffer diff-buffer)
1602 (ediff-update-meta-buffer grp-buf 'must-redraw) ; just in case
1610 (meta-diff-buff ediff-meta-diff-buffer)
1620 (or (ediff-buffer-live-p meta-diff-buff)
1627 (set-buffer meta-diff-buff)
1650 (set-buffer meta-diff-buff)
1655 (ediff-kill-buffer-carefully meta-diff-buff)
1667 (or (ediff-buffer-live-p ediff-meta-diff-buffer)
1668 (setq ediff-meta-diff-buffer
1671 (ediff-with-current-buffer ediff-meta-diff-buffer
1677 (display-buffer ediff-meta-diff-buffer 'not-this-window)
1678 (ediff-with-current-buffer ediff-meta-diff-buffer
1682 (with-current-buffer ediff-meta-diff-buffer
1687 (defun ediff-meta-show-patch ()
1691 (meta-buf (ediff-event-buffer last-command-event))
1692 (info (ediff-get-meta-info meta-buf pos 'noerror))
1693 (patchbuffer ediff-meta-patchbufer))
1711 ;; This function executes in meta buffer. It knows where event happened.
1716 (meta-buf (ediff-event-buffer last-command-event))
1717 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
1718 (info (ediff-get-meta-info meta-buf pos))
1720 (session-number (ediff-get-session-number-at-pos pos meta-buf))
1736 (ediff-update-meta-buffer meta-buf nil session-number))
1739 (ediff-with-current-buffer meta-buf
1741 (ediff-get-group-merge-autostore-dir ediff-meta-list))
1746 (cond ((ediff-meta-session-p info)
1749 (ediff-show-meta-buffer session-buf)
1767 (setq ediff-parent-meta-buffer
1768 (quote ,ediff-meta-buffer)
1769 ediff-meta-session-number
1772 (setcar (quote ,info) ediff-meta-buffer))))))
1779 (ediff-show-meta-buffer session-buf)
1789 (setq ediff-parent-meta-buffer
1790 (quote ,ediff-meta-buffer)
1791 ediff-meta-session-number
1794 (setcar (quote ,info) ediff-meta-buffer))))))
1816 (ediff-show-meta-buffer
1819 (setq ediff-meta-buffer ,(current-buffer)
1820 ediff-meta-session-number
1831 ;; ediff-control-buffer back to the meta
1846 (ediff-show-meta-buffer
1850 (setq ediff-meta-buffer ,(current-buffer)
1851 ediff-meta-session-number
1861 ;; ediff-control-buffer back to the meta
1875 (ediff-show-meta-buffer
1879 (setq ediff-meta-buffer ,(current-buffer)
1880 ediff-meta-session-number
1890 ;; ediff-control-buffer back to the meta
1904 (ediff-show-meta-buffer
1915 (setq ediff-meta-buffer , (current-buffer)
1916 ediff-meta-session-number
1920 ;; the meta level, to the record in the meta
1927 ) ; eval in meta-buf
1935 (ctl-buf (ediff-get-meta-info buf pos)))
1938 ;; check if this is ediff-control-buffer or ediff-meta-buffer
1940 (eq (key-binding "q") 'ediff-quit-meta-buffer))
1941 ;; it's a meta-buffer -- last action should just display it
1942 (ediff-show-meta-buffer ctl-buf t)
1955 ;; If session number is t, means don't update meta buffer
1956 (defun ediff-show-meta-buffer (&optional meta-buf session-number)
1961 (if meta-buf (setq silent t))
1963 (setq meta-buf (or meta-buf ediff-meta-buffer))
1964 (cond ((not (bufferp meta-buf))
1966 ((not (ediff-buffer-live-p meta-buf))
1971 (ediff-update-meta-buffer meta-buf nil session-number))
1974 (t (ediff-cleanup-meta-buffer meta-buf)))
1976 (ediff-with-current-buffer meta-buf
1978 (cond ((setq wind (ediff-get-visible-buffer-window meta-buf))
1982 (set-window-buffer wind meta-buf)
1985 (set-window-buffer ediff-window-C meta-buf)
1988 (set-window-buffer ediff-window-A meta-buf)
1991 (set-window-buffer ediff-window-B meta-buf)
1999 (set-window-buffer (selected-window) meta-buf))
2001 (set-window-buffer (selected-window) meta-buf)))
2005 (setq wind (ediff-get-visible-buffer-window meta-buf))))
2015 (defun ediff-show-current-session-meta-buffer ()
2017 (ediff-show-meta-buffer nil ediff-meta-session-number))
2019 (defun ediff-show-meta-buff-from-registry ()
2023 (meta-buf (ediff-event-buffer last-command-event))
2024 (info (ediff-get-meta-info meta-buf pos))
2025 (meta-or-session-buf info))
2026 (ediff-with-current-buffer meta-or-session-buf
2027 (ediff-show-meta-buffer nil t))))
2056 (ediff-get-visible-buffer-window ediff-meta-buffer))
2077 ;; If meta-buf doesn't exist, it is created. In that case, id doesn't have a
2078 ;; parent meta-buf
2080 ;; Optional MUST-REDRAW, if non-nil, would force redrawal of the whole meta
2084 (defun ediff-update-meta-buffer (meta-buf &optional must-redraw session-number)
2085 (if (ediff-buffer-live-p meta-buf)
2086 (ediff-with-current-buffer meta-buf
2088 (cond (must-redraw ; completely redraw the meta buffer
2089 (funcall ediff-meta-redraw-function ediff-meta-list))
2091 (ediff-update-session-marker-in-dir-meta-buffer
2093 (t ; update what changed only, but scan the entire meta buffer
2094 (ediff-update-markers-in-dir-meta-buffer ediff-meta-list)))
2095 (setq overl (ediff-get-meta-overlay-at-pos (point)))
2098 (ediff-next-meta-item1)
2099 (setq overl (ediff-get-meta-overlay-at-pos (point))))
2106 (ediff-prepare-meta-buffer
2114 ;; If meta-buf exists, it is redrawn along with parent.
2116 (defun ediff-cleanup-meta-buffer (meta-buffer)
2117 (if (ediff-buffer-live-p meta-buffer)
2118 (ediff-with-current-buffer meta-buffer
2119 (ediff-update-meta-buffer meta-buffer)
2120 (if (ediff-buffer-live-p ediff-parent-meta-buffer)
2121 (ediff-update-meta-buffer
2122 ediff-parent-meta-buffer nil ediff-meta-session-number)))))
2125 (defun ediff-safe-to-quit (meta-buffer)
2126 (if (ediff-buffer-live-p meta-buffer)
2127 (let ((lis ediff-meta-list)
2130 ;;(ediff-update-meta-buffer meta-buffer)
2131 (ediff-with-current-buffer meta-buffer
2132 (setq lis (cdr lis)) ; discard the description part of meta-list
2140 (defun ediff-quit-meta-buffer ()
2141 "If the group has no active session, delete the meta buffer.
2142 If no session is in progress, ask to confirm before deleting meta buffer.
2143 Otherwise, bury the meta buffer.
2148 (meta-diff-buffer ediff-meta-diff-buffer)
2149 (session-number ediff-meta-session-number)
2150 (parent-buf ediff-parent-meta-buffer)
2154 ;;(ediff-cleanup-meta-buffer buf)
2159 (ediff-dispose-of-meta-buffer buf))
2165 (ediff-update-meta-buffer parent-buf nil session-number)
2167 (ediff-kill-buffer-carefully meta-diff-buffer)
2171 (ediff-show-meta-buffer parent-buf session-number)))
2176 (defun ediff-dispose-of-meta-buffer (buf)
2184 ;; Obtain information on a meta record where the user clicked or typed
2187 ;; meta info is found on line.
2188 (defun ediff-get-meta-info (buf point &optional noerror)
2194 (if (setq tmp (extent-at point buf 'ediff-meta-info))
2195 (ediff-overlay-get tmp 'ediff-meta-info)))
2201 (overlay-get elt 'ediff-meta-info)))
2216 (defun ediff-get-meta-overlay-at-pos (point)
2218 (extent-at point (current-buffer) 'ediff-meta-info) ; xemacs
2222 (while (and overl (null (overlay-get overl 'ediff-meta-info)))
2229 (defsubst ediff-get-session-number-at-pos (point &optional meta-buffer)
2230 (setq meta-buffer (if (ediff-buffer-live-p meta-buffer)
2231 meta-buffer
2233 (ediff-with-current-buffer meta-buffer
2235 (ediff-get-meta-overlay-at-pos point) 'ediff-meta-session-number)))
2238 ;; Return location of the next meta overlay after point
2239 (defun ediff-next-meta-overlay-start (point)
2242 (let ((overl (ediff-get-meta-overlay-at-pos point)))
2261 (defun ediff-previous-meta-overlay-start (point)
2264 (let ((overl (ediff-get-meta-overlay-at-pos point)))
2290 ;; this is the action invoked when the user selects a patch from the meta
2292 (defun ediff-patch-file-form-meta (file &optional startup-hooks)
2294 (meta-buf (ediff-event-buffer last-command-event))
2295 ;; ediff-get-meta-info gives error if meta-buf or pos are invalid
2296 (info (ediff-get-meta-info meta-buf pos))
2297 (meta-patchbuf ediff-meta-patchbufer)
2311 (ediff-with-current-buffer meta-patchbuf
2315 (ediff-patch-file-internal meta-patchbuf file startup-hooks)))))
2321 (let ((list (cdr ediff-meta-list))
2326 (ediff-update-meta-buffer (current-buffer) 'must-redraw))
2331 (let ((list (cdr ediff-meta-list))
2336 (ediff-update-meta-buffer (current-buffer) 'must-redraw))
2341 (defun ediff-meta-mark-equal-files (&optional action)
2350 (let ((list (cdr ediff-meta-list))
2382 (ediff-update-meta-buffer (current-buffer) 'must-redraw))