Mercurial > emacs
comparison lisp/ediff-init.el @ 19047:f90d40b0bff5
new version
author | Michael Kifer <kifer@cs.stonybrook.edu> |
---|---|
date | Thu, 31 Jul 1997 04:04:23 +0000 |
parents | 1405083241e8 |
children | eb1cef5fa337 |
comparison
equal
deleted
inserted
replaced
19046:689f3dc973f9 | 19047:f90d40b0bff5 |
---|---|
95 ;; Ancestor buffer | 95 ;; Ancestor buffer |
96 (ediff-defvar-local ediff-ancestor-buffer nil "") | 96 (ediff-defvar-local ediff-ancestor-buffer nil "") |
97 ;; The Ediff control buffer | 97 ;; The Ediff control buffer |
98 (ediff-defvar-local ediff-control-buffer nil "") | 98 (ediff-defvar-local ediff-control-buffer nil "") |
99 | 99 |
100 | |
101 ;; Association between buff-type and ediff-buffer-* | |
102 (defconst ediff-buffer-alist | |
103 '((?A . ediff-buffer-A) | |
104 (?B . ediff-buffer-B) | |
105 (?C . ediff-buffer-C))) | |
106 | |
100 ;;; Macros | 107 ;;; Macros |
101 (defmacro ediff-odd-p (arg) | 108 (defmacro ediff-odd-p (arg) |
102 (` (eq (logand (, arg) 1) 1))) | 109 (` (eq (logand (, arg) 1) 1))) |
103 | 110 |
104 (defmacro ediff-buffer-live-p (buf) | 111 (defmacro ediff-buffer-live-p (buf) |
121 (` (cond ((memq (, arg) '(?a ?A)) 'A) | 128 (` (cond ((memq (, arg) '(?a ?A)) 'A) |
122 ((memq (, arg) '(?b ?B)) 'B) | 129 ((memq (, arg) '(?b ?B)) 'B) |
123 ((memq (, arg) '(?c ?C)) 'C) | 130 ((memq (, arg) '(?c ?C)) 'C) |
124 ) | 131 ) |
125 )) | 132 )) |
126 | 133 |
134 ;; A-list is supposed to be of the form (A . symb) (B . symb)...) | |
135 ;; where the first part of any association is a buffer type and the second is | |
136 ;; an appropriate symbol. Given buffer-type, this function returns the | |
137 ;; symbol. This is used to avoid using `intern' | |
138 (defsubst ediff-get-symbol-from-alist (buf-type alist) | |
139 (cdr (assoc buf-type alist))) | |
140 | |
141 (defconst ediff-difference-vector-alist | |
142 '((A . ediff-difference-vector-A) | |
143 (B . ediff-difference-vector-B) | |
144 (C . ediff-difference-vector-C) | |
145 (Ancestor . ediff-difference-vector-Ancestor))) | |
146 | |
127 (defmacro ediff-get-difference (n buf-type) | 147 (defmacro ediff-get-difference (n buf-type) |
128 (` (aref | 148 (` (aref |
129 (symbol-value | 149 (symbol-value |
130 (intern (format "ediff-difference-vector-%S" (, buf-type)))) (, n)))) | 150 (ediff-get-symbol-from-alist |
151 (, buf-type) ediff-difference-vector-alist)) | |
152 (, n)))) | |
131 | 153 |
132 ;; Tell if it has been previously determined that the region has | 154 ;; Tell if it has been previously determined that the region has |
133 ;; no diffs other than the white space and newlines | 155 ;; no diffs other than the white space and newlines |
134 ;; The argument, N, is the diff region number used by Ediff to index the | 156 ;; The argument, N, is the diff region number used by Ediff to index the |
135 ;; diff vector. It is 1 less than the number seen by the user. | 157 ;; diff vector. It is 1 less than the number seen by the user. |
187 | 209 |
188 (defmacro ediff-get-fine-diff-vector (n buf-type) | 210 (defmacro ediff-get-fine-diff-vector (n buf-type) |
189 (` (ediff-get-fine-diff-vector-from-diff-record | 211 (` (ediff-get-fine-diff-vector-from-diff-record |
190 (ediff-get-difference (, n) (, buf-type))))) | 212 (ediff-get-difference (, n) (, buf-type))))) |
191 | 213 |
192 ;; Macro to switch to BUFFER, evaluate FORMS, returns to original buffer. | 214 ;; Macro to switch to BUFFER, evaluate BODY, returns to original buffer. |
193 ;; Differs from `save-excursion' in that it doesn't save the point and mark. | 215 ;; Doesn't save the point and mark. |
194 ;; This is essentially `emerge-eval-in-buffer' with the test for live buffers." | 216 ;; This is `with-current-buffer' with the added test for live buffers." |
195 (defmacro ediff-eval-in-buffer (buffer &rest forms) | 217 (defmacro ediff-with-current-buffer (buffer &rest body) |
196 (` (let ((StartBuffer (current-buffer))) | 218 (` (if (ediff-buffer-live-p (, buffer)) |
197 (if (ediff-buffer-live-p (, buffer)) | 219 (save-current-buffer |
198 (unwind-protect | 220 (set-buffer (, buffer)) |
199 (progn | 221 (,@ body)) |
200 (set-buffer (, buffer)) | 222 (or (eq this-command 'ediff-quit) |
201 (,@ forms)) | 223 (error ediff-KILLED-VITAL-BUFFER)) |
202 (set-buffer StartBuffer)) | 224 ))) |
203 (or (eq this-command 'ediff-quit) | 225 |
204 (error ediff-KILLED-VITAL-BUFFER)) | |
205 )))) | |
206 | |
207 | 226 |
208 (defsubst ediff-multiframe-setup-p () | 227 (defsubst ediff-multiframe-setup-p () |
209 (and (ediff-window-display-p) ediff-multiframe)) | 228 (and (ediff-window-display-p) ediff-multiframe)) |
210 | 229 |
211 (defmacro ediff-narrow-control-frame-p () | 230 (defmacro ediff-narrow-control-frame-p () |
559 ;; The original values of ediff-protected-variables for buffer C | 578 ;; The original values of ediff-protected-variables for buffer C |
560 (ediff-defvar-local ediff-buffer-values-orig-C nil "") | 579 (ediff-defvar-local ediff-buffer-values-orig-C nil "") |
561 ;; The original values of ediff-protected-variables for buffer Ancestor | 580 ;; The original values of ediff-protected-variables for buffer Ancestor |
562 (ediff-defvar-local ediff-buffer-values-orig-Ancestor nil "") | 581 (ediff-defvar-local ediff-buffer-values-orig-Ancestor nil "") |
563 | 582 |
583 ;; association between buff-type and ediff-buffer-values-orig-* | |
584 (defconst ediff-buffer-values-orig-alist | |
585 '((A . ediff-buffer-values-orig-A) | |
586 (B . ediff-buffer-values-orig-B) | |
587 (C . ediff-buffer-values-orig-C) | |
588 (Ancestor . ediff-buffer-values-orig-Ancestor))) | |
589 | |
564 ;; Buffer-local variables to be saved then restored during Ediff sessions | 590 ;; Buffer-local variables to be saved then restored during Ediff sessions |
565 (defconst ediff-protected-variables '( | 591 (defconst ediff-protected-variables '( |
566 ;;buffer-read-only | 592 ;;buffer-read-only |
567 mode-line-format)) | 593 mode-line-format)) |
568 | 594 |
583 ;; different from the other two (used only in 3-way jobs. | 609 ;; different from the other two (used only in 3-way jobs. |
584 (ediff-defvar-local ediff-difference-vector-A nil "") | 610 (ediff-defvar-local ediff-difference-vector-A nil "") |
585 (ediff-defvar-local ediff-difference-vector-B nil "") | 611 (ediff-defvar-local ediff-difference-vector-B nil "") |
586 (ediff-defvar-local ediff-difference-vector-C nil "") | 612 (ediff-defvar-local ediff-difference-vector-C nil "") |
587 (ediff-defvar-local ediff-difference-vector-Ancestor nil "") | 613 (ediff-defvar-local ediff-difference-vector-Ancestor nil "") |
614 ;; A-list of diff vector types associated with buffer types | |
615 (defconst ediff-difference-vector-alist | |
616 '((A . ediff-difference-vector-A) | |
617 (B . ediff-difference-vector-B) | |
618 (C . ediff-difference-vector-C) | |
619 (Ancestor . ediff-difference-vector-Ancestor))) | |
588 | 620 |
589 ;; [ status status status ...] | 621 ;; [ status status status ...] |
590 ;; Each status: [state-of-merge state-of-ancestor] | 622 ;; Each status: [state-of-merge state-of-ancestor] |
591 ;; state-of-merge is default-A, default-B, prefer-A, or prefer-B. It | 623 ;; state-of-merge is default-A, default-B, prefer-A, or prefer-B. It |
592 ;; indicates the way a diff region was created in buffer C. | 624 ;; indicates the way a diff region was created in buffer C. |
741 (fset 'ediff-display-pixel-width | 773 (fset 'ediff-display-pixel-width |
742 (symbol-function 'x-display-pixel-width)) | 774 (symbol-function 'x-display-pixel-width)) |
743 (fset 'ediff-display-pixel-height | 775 (fset 'ediff-display-pixel-height |
744 (symbol-function 'x-display-pixel-height)))) | 776 (symbol-function 'x-display-pixel-height)))) |
745 | 777 |
778 ;; A-list of current-diff-overlay symbols asssociated with buf types | |
779 (defconst ediff-current-diff-overlay-alist | |
780 '((A . ediff-current-diff-overlay-A) | |
781 (B . ediff-current-diff-overlay-B) | |
782 (C . ediff-current-diff-overlay-C) | |
783 (Ancestor . ediff-current-diff-overlay-Ancestor))) | |
784 | |
785 ;; A-list of current-diff-face-* symbols asssociated with buf types | |
786 (defconst ediff-current-diff-face-alist | |
787 '((A . ediff-current-diff-face-A) | |
788 (B . ediff-current-diff-face-B) | |
789 (C . ediff-current-diff-face-C) | |
790 (Ancestor . ediff-current-diff-face-Ancestor))) | |
791 | |
746 | 792 |
747 (defun ediff-make-current-diff-overlay (type) | 793 (defun ediff-make-current-diff-overlay (type) |
748 (if (ediff-has-face-support-p) | 794 (if (ediff-has-face-support-p) |
749 (let ((overlay (intern (format "ediff-current-diff-overlay-%S" type))) | 795 (let ((overlay (ediff-get-symbol-from-alist |
796 type ediff-current-diff-overlay-alist)) | |
750 (buffer (ediff-get-buffer type)) | 797 (buffer (ediff-get-buffer type)) |
751 (face (face-name | 798 (face (face-name |
752 (symbol-value | 799 (symbol-value |
753 (intern (format "ediff-current-diff-face-%S" type)))))) | 800 (ediff-get-symbol-from-alist |
801 type ediff-current-diff-face-alist))))) | |
754 (set overlay | 802 (set overlay |
755 (ediff-make-bullet-proof-overlay (point-max) (point-max) buffer)) | 803 (ediff-make-bullet-proof-overlay (point-max) (point-max) buffer)) |
756 (ediff-set-overlay-face (symbol-value overlay) face) | 804 (ediff-set-overlay-face (symbol-value overlay) face) |
757 (ediff-overlay-put (symbol-value overlay) 'ediff ediff-control-buffer)) | 805 (ediff-overlay-put (symbol-value overlay) 'ediff ediff-control-buffer)) |
758 )) | 806 )) |
1030 'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor) | 1078 'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor) |
1031 (ediff-set-face-pixmap 'ediff-even-diff-face-Ancestor | 1079 (ediff-set-face-pixmap 'ediff-even-diff-face-Ancestor |
1032 ediff-even-diff-pixmap))) | 1080 ediff-even-diff-pixmap))) |
1033 'ediff-even-diff-face-Ancestor)) | 1081 'ediff-even-diff-face-Ancestor)) |
1034 "Face highlighting even-numbered differences in the ancestor buffer.") | 1082 "Face highlighting even-numbered differences in the ancestor buffer.") |
1035 | 1083 |
1084 ;; Association between buffer types and even-diff-face symbols | |
1085 (defconst ediff-even-diff-face-alist | |
1086 '((A . ediff-even-diff-face-A) | |
1087 (B . ediff-even-diff-face-B) | |
1088 (C . ediff-even-diff-face-C) | |
1089 (Ancestor . ediff-even-diff-face-Ancestor))) | |
1090 | |
1036 (defvar ediff-odd-diff-face-A | 1091 (defvar ediff-odd-diff-face-A |
1037 (if (ediff-has-face-support-p) | 1092 (if (ediff-has-face-support-p) |
1038 (progn | 1093 (progn |
1039 (make-face 'ediff-odd-diff-face-A) | 1094 (make-face 'ediff-odd-diff-face-A) |
1040 (ediff-hide-face 'ediff-odd-diff-face-A) | 1095 (ediff-hide-face 'ediff-odd-diff-face-A) |
1095 (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor | 1150 (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor |
1096 ediff-odd-diff-pixmap))) | 1151 ediff-odd-diff-pixmap))) |
1097 'ediff-odd-diff-face-Ancestor)) | 1152 'ediff-odd-diff-face-Ancestor)) |
1098 "Face used to highlight even-numbered differences in the ancestor buffer.") | 1153 "Face used to highlight even-numbered differences in the ancestor buffer.") |
1099 | 1154 |
1155 ;; Association between buffer types and odd-diff-face symbols | |
1156 (defconst ediff-odd-diff-face-alist | |
1157 '((A . ediff-odd-diff-face-A) | |
1158 (B . ediff-odd-diff-face-B) | |
1159 (C . ediff-odd-diff-face-C) | |
1160 (Ancestor . ediff-odd-diff-face-Ancestor))) | |
1161 | |
1162 ;; A-list of fine-diff face symbols associated with buffer types | |
1163 (defconst ediff-fine-diff-face-alist | |
1164 '((A . ediff-fine-diff-face-A) | |
1165 (B . ediff-fine-diff-face-B) | |
1166 (C . ediff-fine-diff-face-C) | |
1167 (Ancestor . ediff-fine-diff-face-Ancestor))) | |
1168 | |
1100 ;; Help echo | 1169 ;; Help echo |
1101 (put 'ediff-fine-diff-face-A 'ediff-help-echo | 1170 (put 'ediff-fine-diff-face-A 'ediff-help-echo |
1102 "A `refinement' of the current difference region") | 1171 "A `refinement' of the current difference region") |
1103 (put 'ediff-fine-diff-face-B 'ediff-help-echo | 1172 (put 'ediff-fine-diff-face-B 'ediff-help-echo |
1104 "A `refinement' of the current difference region") | 1173 "A `refinement' of the current difference region") |
1116 "Overlay for the current difference region in buffer B.") | 1185 "Overlay for the current difference region in buffer B.") |
1117 (ediff-defvar-local ediff-current-diff-overlay-C nil | 1186 (ediff-defvar-local ediff-current-diff-overlay-C nil |
1118 "Overlay for the current difference region in buffer C.") | 1187 "Overlay for the current difference region in buffer C.") |
1119 (ediff-defvar-local ediff-current-diff-overlay-Ancestor nil | 1188 (ediff-defvar-local ediff-current-diff-overlay-Ancestor nil |
1120 "Overlay for the current difference region in the ancestor buffer.") | 1189 "Overlay for the current difference region in the ancestor buffer.") |
1121 | 1190 |
1122 ;; Compute priority of ediff overlay. | 1191 ;; Compute priority of ediff overlay. |
1123 (defun ediff-highest-priority (start end buffer) | 1192 (defun ediff-highest-priority (start end buffer) |
1124 (let ((pos (max 1 (1- start))) | 1193 (let ((pos (max 1 (1- start))) |
1125 ovr-list) | 1194 ovr-list) |
1126 (if ediff-xemacs-p | 1195 (if ediff-xemacs-p |
1127 (1+ ediff-shadow-overlay-priority) | 1196 (1+ ediff-shadow-overlay-priority) |
1128 (ediff-eval-in-buffer buffer | 1197 (ediff-with-current-buffer buffer |
1129 (while (< pos (min (point-max) (1+ end))) | 1198 (while (< pos (min (point-max) (1+ end))) |
1130 (setq ovr-list (append (overlays-at pos) ovr-list)) | 1199 (setq ovr-list (append (overlays-at pos) ovr-list)) |
1131 (setq pos (next-overlay-change pos))) | 1200 (setq pos (next-overlay-change pos))) |
1132 (1+ (apply '+ | 1201 (1+ (apply '+ |
1133 (mapcar (function | 1202 (mapcar (function |
1238 (kill-buffer (get-buffer buf)))) | 1307 (kill-buffer (get-buffer buf)))) |
1239 | 1308 |
1240 (defsubst ediff-background-face (buf-type dif-num) | 1309 (defsubst ediff-background-face (buf-type dif-num) |
1241 ;; The value of dif-num is always 1- the one that user sees. | 1310 ;; The value of dif-num is always 1- the one that user sees. |
1242 ;; This is why even face is used when dif-num is odd. | 1311 ;; This is why even face is used when dif-num is odd. |
1243 (intern (format (if (ediff-odd-p dif-num) | 1312 (ediff-get-symbol-from-alist |
1244 "ediff-even-diff-face-%S" | 1313 buf-type (if (ediff-odd-p dif-num) |
1245 "ediff-odd-diff-face-%S") | 1314 ediff-even-diff-face-alist |
1246 buf-type))) | 1315 ediff-odd-diff-face-alist) |
1316 )) | |
1247 | 1317 |
1248 | 1318 |
1249 ;; activate faces on diff regions in buffer | 1319 ;; activate faces on diff regions in buffer |
1250 (defun ediff-paint-background-regions-in-one-buffer (buf-type unhighlight) | 1320 (defun ediff-paint-background-regions-in-one-buffer (buf-type unhighlight) |
1251 (let ((diff-vector | 1321 (let ((diff-vector |
1252 (eval (intern (format "ediff-difference-vector-%S" buf-type)))) | 1322 (eval (ediff-get-symbol-from-alist |
1323 buf-type ediff-difference-vector-alist))) | |
1253 overl diff-num) | 1324 overl diff-num) |
1254 (mapcar (function | 1325 (mapcar (function |
1255 (lambda (rec) | 1326 (lambda (rec) |
1256 (setq overl (ediff-get-diff-overlay-from-diff-record rec) | 1327 (setq overl (ediff-get-diff-overlay-from-diff-record rec) |
1257 diff-num (ediff-overlay-get overl 'ediff-diff-num)) | 1328 diff-num (ediff-overlay-get overl 'ediff-diff-num)) |
1277 'Ancestor unhighlight)) | 1348 'Ancestor unhighlight)) |
1278 | 1349 |
1279 (defun ediff-highlight-diff-in-one-buffer (n buf-type) | 1350 (defun ediff-highlight-diff-in-one-buffer (n buf-type) |
1280 (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) | 1351 (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) |
1281 (let* ((buff (ediff-get-buffer buf-type)) | 1352 (let* ((buff (ediff-get-buffer buf-type)) |
1282 (last (ediff-eval-in-buffer buff (point-max))) | 1353 (last (ediff-with-current-buffer buff (point-max))) |
1283 (begin (ediff-get-diff-posn buf-type 'beg n)) | 1354 (begin (ediff-get-diff-posn buf-type 'beg n)) |
1284 (end (ediff-get-diff-posn buf-type 'end n)) | 1355 (end (ediff-get-diff-posn buf-type 'end n)) |
1285 (xtra (if (equal begin end) 1 0)) | 1356 (xtra (if (equal begin end) 1 0)) |
1286 (end-hilit (min last (+ end xtra))) | 1357 (end-hilit (min last (+ end xtra))) |
1287 (current-diff-overlay | 1358 (current-diff-overlay |
1288 (symbol-value | 1359 (symbol-value |
1289 (intern (format "ediff-current-diff-overlay-%S" buf-type))))) | 1360 (ediff-get-symbol-from-alist |
1361 buf-type ediff-current-diff-overlay-alist)))) | |
1290 | 1362 |
1291 (if ediff-xemacs-p | 1363 (if ediff-xemacs-p |
1292 (ediff-move-overlay current-diff-overlay begin end-hilit) | 1364 (ediff-move-overlay current-diff-overlay begin end-hilit) |
1293 (ediff-move-overlay current-diff-overlay begin end-hilit buff)) | 1365 (ediff-move-overlay current-diff-overlay begin end-hilit buff)) |
1294 (ediff-overlay-put current-diff-overlay 'priority | 1366 (ediff-overlay-put current-diff-overlay 'priority |
1303 | 1375 |
1304 (defun ediff-unhighlight-diff-in-one-buffer (buf-type) | 1376 (defun ediff-unhighlight-diff-in-one-buffer (buf-type) |
1305 (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) | 1377 (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) |
1306 (let ((current-diff-overlay | 1378 (let ((current-diff-overlay |
1307 (symbol-value | 1379 (symbol-value |
1308 (intern (format "ediff-current-diff-overlay-%S" buf-type)))) | 1380 (ediff-get-symbol-from-alist |
1381 buf-type ediff-current-diff-overlay-alist))) | |
1309 (overlay | 1382 (overlay |
1310 (ediff-get-diff-overlay ediff-current-difference buf-type)) | 1383 (ediff-get-diff-overlay ediff-current-difference buf-type)) |
1311 ) | 1384 ) |
1312 | 1385 |
1313 (ediff-move-overlay current-diff-overlay 1 1) | 1386 (ediff-move-overlay current-diff-overlay 1 1) |
1324 (defun ediff-unhighlight-diffs-totally-in-one-buffer (buf-type) | 1397 (defun ediff-unhighlight-diffs-totally-in-one-buffer (buf-type) |
1325 (ediff-unselect-and-select-difference -1) | 1398 (ediff-unselect-and-select-difference -1) |
1326 (if (and (ediff-has-face-support-p) ediff-use-faces) | 1399 (if (and (ediff-has-face-support-p) ediff-use-faces) |
1327 (let* ((inhibit-quit t) | 1400 (let* ((inhibit-quit t) |
1328 (current-diff-overlay-var | 1401 (current-diff-overlay-var |
1329 (intern (format "ediff-current-diff-overlay-%S" buf-type))) | 1402 (ediff-get-symbol-from-alist |
1403 buf-type ediff-current-diff-overlay-alist)) | |
1330 (current-diff-overlay (symbol-value current-diff-overlay-var))) | 1404 (current-diff-overlay (symbol-value current-diff-overlay-var))) |
1331 (ediff-paint-background-regions 'unhighlight) | 1405 (ediff-paint-background-regions 'unhighlight) |
1332 (if (ediff-overlayp current-diff-overlay) | 1406 (if (ediff-overlayp current-diff-overlay) |
1333 (ediff-delete-overlay current-diff-overlay)) | 1407 (ediff-delete-overlay current-diff-overlay)) |
1334 (set current-diff-overlay-var nil) | 1408 (set current-diff-overlay-var nil) |
1555 (defun ediff-whitespace-diff-region-p (n buf-type) | 1629 (defun ediff-whitespace-diff-region-p (n buf-type) |
1556 (or (and (eq buf-type 'C) (not ediff-3way-job)) | 1630 (or (and (eq buf-type 'C) (not ediff-3way-job)) |
1557 (ediff-empty-diff-region-p n buf-type) | 1631 (ediff-empty-diff-region-p n buf-type) |
1558 (let ((beg (ediff-get-diff-posn buf-type 'beg n)) | 1632 (let ((beg (ediff-get-diff-posn buf-type 'beg n)) |
1559 (end (ediff-get-diff-posn buf-type 'end n))) | 1633 (end (ediff-get-diff-posn buf-type 'end n))) |
1560 (ediff-eval-in-buffer (ediff-get-buffer buf-type) | 1634 (ediff-with-current-buffer (ediff-get-buffer buf-type) |
1561 (save-excursion | 1635 (save-excursion |
1562 (goto-char beg) | 1636 (goto-char beg) |
1563 (skip-chars-forward ediff-whitespace) | 1637 (skip-chars-forward ediff-whitespace) |
1564 (>= (point) end)))))) | 1638 (>= (point) end)))))) |
1565 | 1639 |
1630 str)))) | 1704 str)))) |
1631 | 1705 |
1632 | 1706 |
1633 | 1707 |
1634 (defsubst ediff-get-region-contents (n buf-type ctrl-buf &optional start end) | 1708 (defsubst ediff-get-region-contents (n buf-type ctrl-buf &optional start end) |
1635 (ediff-eval-in-buffer | 1709 (ediff-with-current-buffer |
1636 (ediff-eval-in-buffer ctrl-buf (ediff-get-buffer buf-type)) | 1710 (ediff-with-current-buffer ctrl-buf (ediff-get-buffer buf-type)) |
1637 (buffer-substring | 1711 (buffer-substring |
1638 (or start (ediff-get-diff-posn buf-type 'beg n ctrl-buf)) | 1712 (or start (ediff-get-diff-posn buf-type 'beg n ctrl-buf)) |
1639 (or end (ediff-get-diff-posn buf-type 'end n ctrl-buf))))) | 1713 (or end (ediff-get-diff-posn buf-type 'end n ctrl-buf))))) |
1640 | 1714 |
1641 ;; If ediff modified mode line, strip the modification | 1715 ;; If ediff modified mode line, strip the modification |
1676 fname)) | 1750 fname)) |
1677 | 1751 |
1678 | 1752 |
1679 ;;; Local Variables: | 1753 ;;; Local Variables: |
1680 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) | 1754 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) |
1681 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) | 1755 ;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1) |
1682 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) | 1756 ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) |
1683 ;;; End: | 1757 ;;; End: |
1684 | 1758 |
1685 (provide 'ediff-init) | 1759 (provide 'ediff-init) |
1686 | 1760 |
1687 | 1761 |