Mercurial > hg > xemacs-beta
comparison lisp/ediff/ediff-util.el @ 14:9ee227acff29 r19-15b90
Import from CVS: tag r19-15b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:48:42 +0200 |
parents | bcdc7deadc19 |
children | 0293115a14e9 |
comparison
equal
deleted
inserted
replaced
13:13c6d0aaafe5 | 14:9ee227acff29 |
---|---|
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the | 20 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
22 ;; Boston, MA 02111-1307, USA. | 22 ;; Boston, MA 02111-1307, USA. |
23 | 23 |
24 ;;; Code: | 24 ;;; Code: |
25 | 25 |
26 ;; Pacify compiler and avoid the need in checking for boundp | 26 (provide 'ediff-util) |
27 (defvar ediff-patch-diagnostics nil) | 27 |
28 (defvar ediff-patchbufer nil) | 28 ;; Compiler pacifier |
29 (and noninteractive | 29 (defvar ediff-patch-diagnostics) |
30 (eval-when-compile | 30 (defvar ediff-patchbufer) |
31 (let ((load-path (cons (expand-file-name ".") load-path))) | 31 (defvar ediff-toolbar) |
32 (load-file "ediff-init.el") | 32 (defvar mark-active) |
33 (load-file "ediff-help.el")))) | 33 |
34 (eval-when-compile | |
35 (let ((load-path (cons "." load-path))) | |
36 (or (featurep 'ediff-init) | |
37 (load "ediff-init.el" nil nil 'nosuffix)) | |
38 (or (featurep 'ediff-help) | |
39 (load "ediff-help.el" nil nil 'nosuffix)) | |
40 (or (featurep 'ediff-mult) | |
41 (load "ediff-mult.el" nil nil 'nosuffix)) | |
42 (or (featurep 'ediff-wind) | |
43 (load "ediff-wind.el" nil nil 'nosuffix)) | |
44 (or (featurep 'ediff-diff) | |
45 (load "ediff-diff.el" nil nil 'nosuffix)) | |
46 (or (featurep 'ediff-merg) | |
47 (load "ediff-merg.el" nil nil 'nosuffix)) | |
48 (or (featurep 'ediff) | |
49 (load "ediff.el" nil nil 'nosuffix)) | |
50 (or (featurep 'ediff-tbar) | |
51 (load "ediff-tbar.el" 'noerror nil 'nosuffix)) | |
52 )) | |
34 ;; end pacifier | 53 ;; end pacifier |
35 | 54 |
36 (require 'ediff-init) | 55 (require 'ediff-init) |
37 (require 'ediff-help) | 56 (require 'ediff-help) |
38 (require 'ediff-mult) | 57 (require 'ediff-mult) |
39 | 58 (require 'ediff-wind) |
40 ;;(if ediff-xemacs-p | 59 (require 'ediff-diff) |
41 ;; (require 'ediff-tbar) | 60 (require 'ediff-merg) |
42 ;; (defun ediff-use-toolbar-p () nil)) | 61 |
43 ;; | 62 |
44 ;; for the time being | 63 ;; be careful with ediff-tbar |
45 (defun ediff-use-toolbar-p () nil) | 64 (if ediff-xemacs-p |
65 (condition-case nil | |
66 (require 'ediff-tbar) | |
67 (error | |
68 (defun ediff-use-toolbar-p () nil))) | |
69 (defun ediff-use-toolbar-p () nil)) | |
46 | 70 |
47 | 71 |
48 ;;; Functions | 72 ;;; Functions |
49 | 73 |
50 (defun ediff-mode () | 74 (defun ediff-mode () |
81 (setq major-mode 'ediff-mode) | 105 (setq major-mode 'ediff-mode) |
82 (setq mode-name "Ediff") | 106 (setq mode-name "Ediff") |
83 (run-hooks 'ediff-mode-hook)) | 107 (run-hooks 'ediff-mode-hook)) |
84 | 108 |
85 | 109 |
86 (require 'ediff-diff) | |
87 (require 'ediff-merg) | |
88 | |
89 | 110 |
90 ;;; Build keymaps | 111 ;;; Build keymaps |
91 | 112 |
92 (ediff-defvar-local ediff-mode-map nil | 113 (ediff-defvar-local ediff-mode-map nil |
93 "Local keymap used in Ediff mode. | 114 "Local keymap used in Ediff mode. |
215 (fset 'ediff-mode-map ediff-mode-map) | 236 (fset 'ediff-mode-map ediff-mode-map) |
216 (run-hooks 'ediff-keymap-setup-hook)) | 237 (run-hooks 'ediff-keymap-setup-hook)) |
217 | 238 |
218 | 239 |
219 ;;; Setup functions | 240 ;;; Setup functions |
220 | |
221 (require 'ediff-wind) | |
222 | 241 |
223 ;; No longer needed: XEmacs has surrogate minibuffers now. | 242 ;; No longer needed: XEmacs has surrogate minibuffers now. |
224 ;;(or (boundp 'synchronize-minibuffers) | 243 ;;(or (boundp 'synchronize-minibuffers) |
225 ;; (defvar synchronize-minibuffers nil)) | 244 ;; (defvar synchronize-minibuffers nil)) |
226 | 245 |
499 (if (not (ediff-multiframe-setup-p)) | 518 (if (not (ediff-multiframe-setup-p)) |
500 (ediff-make-bottom-toolbar)) ; checks if toolbar is requested | 519 (ediff-make-bottom-toolbar)) ; checks if toolbar is requested |
501 (goto-char (point-min)) | 520 (goto-char (point-min)) |
502 (skip-chars-forward ediff-whitespace))) | 521 (skip-chars-forward ediff-whitespace))) |
503 | 522 |
504 | 523 |
505 | 524 |
506 | 525 |
507 ;;; Commands for working with Ediff | 526 ;;; Commands for working with Ediff |
508 | 527 |
509 (defun ediff-update-diffs () | 528 (defun ediff-update-diffs () |
1157 (funcall ediff-make-wide-display-function) | 1176 (funcall ediff-make-wide-display-function) |
1158 ;;(sit-for (if ediff-xemacs-p 0.4 0)) | 1177 ;;(sit-for (if ediff-xemacs-p 0.4 0)) |
1159 (ediff-eval-in-buffer ctl-buf | 1178 (ediff-eval-in-buffer ctl-buf |
1160 (setq ediff-window-B nil) ; force update of window config | 1179 (setq ediff-window-B nil) ; force update of window config |
1161 (ediff-recenter 'no-rehighlight))))) | 1180 (ediff-recenter 'no-rehighlight))))) |
1162 | 1181 |
1163 ;;;###autoload | 1182 ;;;###autoload |
1164 (defun ediff-toggle-multiframe () | 1183 (defun ediff-toggle-multiframe () |
1165 "Switch from the multiframe display to single-frame display and back. | 1184 "Switch from the multiframe display to single-frame display and back. |
1166 For a permanent change, set the variable `ediff-window-setup-function', | 1185 For a permanent change, set the variable `ediff-window-setup-function', |
1167 which see." | 1186 which see." |
1168 (interactive) | 1187 (interactive) |
1169 (let (set-func) | 1188 (let (set-func window-setup-func) |
1170 (or (ediff-window-display-p) | 1189 (or (ediff-window-display-p) |
1171 (error "%sEmacs is not running as a window application" | 1190 (error "%sEmacs is not running as a window application" |
1172 (if ediff-emacs-p "" "X"))) | 1191 (if ediff-emacs-p "" "X"))) |
1173 | 1192 |
1174 (setq set-func (if (ediff-in-control-buffer-p) 'setq 'setq-default)) | 1193 ;;(setq set-func (if (ediff-in-control-buffer-p) 'setq 'setq-default)) |
1175 | 1194 |
1176 (cond ((eq ediff-window-setup-function 'ediff-setup-windows-multiframe) | 1195 (cond ((eq ediff-window-setup-function 'ediff-setup-windows-multiframe) |
1177 (eval | 1196 ;; (eval |
1178 (list | 1197 ;; (list |
1179 set-func | 1198 ;; set-func |
1180 'ediff-window-setup-function ''ediff-setup-windows-plain))) | 1199 ;; 'ediff-window-setup-function ''ediff-setup-windows-plain)) |
1200 (setq window-setup-func 'ediff-setup-windows-plain) | |
1201 ) | |
1181 ((eq ediff-window-setup-function 'ediff-setup-windows-plain) | 1202 ((eq ediff-window-setup-function 'ediff-setup-windows-plain) |
1182 (if (ediff-in-control-buffer-p) | 1203 (if (ediff-in-control-buffer-p) |
1183 (ediff-kill-bottom-toolbar)) | 1204 (ediff-kill-bottom-toolbar)) |
1184 (eval | 1205 ;;(eval |
1185 (list | 1206 ;; (list |
1186 set-func | 1207 ;; set-func |
1187 'ediff-window-setup-function ''ediff-setup-windows-multiframe)))) | 1208 ;; 'ediff-window-setup-function 'ediff-setup-windows-multiframe)) |
1209 (setq window-setup-func 'ediff-setup-windows-multiframe) | |
1210 )) | |
1211 | |
1212 ;; change default | |
1213 (setq-default ediff-window-setup-function window-setup-func) | |
1214 ;; change in all active ediff sessions | |
1215 (mapcar (function (lambda(buf) | |
1216 (ediff-eval-in-buffer buf | |
1217 (setq ediff-window-setup-function window-setup-func | |
1218 ediff-window-B nil)))) | |
1219 ediff-session-registry) | |
1188 (if (ediff-in-control-buffer-p) | 1220 (if (ediff-in-control-buffer-p) |
1189 (progn | 1221 (ediff-recenter 'no-rehighlight)))) |
1190 (setq ediff-window-B nil) | |
1191 (ediff-recenter 'no-rehighlight))))) | |
1192 | 1222 |
1193 ;; if was using toolbar, kill it | 1223 ;; if was using toolbar, kill it |
1194 (defun ediff-kill-bottom-toolbar () | 1224 (defun ediff-kill-bottom-toolbar () |
1195 ;; Using ctl-buffer or ediff-control-window for LOCALE does not | 1225 ;; Using ctl-buffer or ediff-control-window for LOCALE does not |
1196 ;; work properly in XEmacs 19.14: we have to use | 1226 ;; work properly in XEmacs 19.14: we have to use |
1264 (ediff-overlay-start overl-A) (ediff-overlay-end overl-A))) | 1294 (ediff-overlay-start overl-A) (ediff-overlay-end overl-A))) |
1265 (ediff-eval-in-buffer ediff-buffer-B | 1295 (ediff-eval-in-buffer ediff-buffer-B |
1266 (narrow-to-region | 1296 (narrow-to-region |
1267 (ediff-overlay-start overl-B) (ediff-overlay-end overl-B))) | 1297 (ediff-overlay-start overl-B) (ediff-overlay-end overl-B))) |
1268 | 1298 |
1269 (if ediff-3way-comparison-job | 1299 (if ediff-3way-job |
1270 (ediff-eval-in-buffer ediff-buffer-C | 1300 (ediff-eval-in-buffer ediff-buffer-C |
1271 (narrow-to-region | 1301 (narrow-to-region |
1272 (ediff-overlay-start overl-C) (ediff-overlay-end overl-C)))) | 1302 (ediff-overlay-start overl-C) (ediff-overlay-end overl-C)))) |
1273 ))) | 1303 ))) |
1274 | 1304 |
1514 (if (< ediff-current-difference ediff-number-of-differences) | 1544 (if (< ediff-current-difference ediff-number-of-differences) |
1515 (let ((n (min ediff-number-of-differences | 1545 (let ((n (min ediff-number-of-differences |
1516 (+ ediff-current-difference arg))) | 1546 (+ ediff-current-difference arg))) |
1517 regexp-skip) | 1547 regexp-skip) |
1518 | 1548 |
1549 (ediff-visible-region) | |
1519 (or (>= n ediff-number-of-differences) | 1550 (or (>= n ediff-number-of-differences) |
1520 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) | 1551 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) |
1521 (ediff-install-fine-diff-if-necessary n)) | 1552 (ediff-install-fine-diff-if-necessary n)) |
1522 (while (and (< n ediff-number-of-differences) | 1553 (while (and (< n ediff-number-of-differences) |
1523 (or | 1554 (or |
1550 (ediff-barf-if-not-control-buffer) | 1581 (ediff-barf-if-not-control-buffer) |
1551 (if (> ediff-current-difference -1) | 1582 (if (> ediff-current-difference -1) |
1552 (let ((n (max -1 (- ediff-current-difference arg))) | 1583 (let ((n (max -1 (- ediff-current-difference arg))) |
1553 regexp-skip) | 1584 regexp-skip) |
1554 | 1585 |
1586 (ediff-visible-region) | |
1555 (or (< n 0) | 1587 (or (< n 0) |
1556 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) | 1588 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) |
1557 (ediff-install-fine-diff-if-necessary n)) | 1589 (ediff-install-fine-diff-if-necessary n)) |
1558 (while (and (> n -1) | 1590 (while (and (> n -1) |
1559 (or | 1591 (or |
2317 (ediff-kill-buffer-carefully ediff-diff-buffer) | 2349 (ediff-kill-buffer-carefully ediff-diff-buffer) |
2318 (ediff-kill-buffer-carefully ediff-custom-diff-buffer) | 2350 (ediff-kill-buffer-carefully ediff-custom-diff-buffer) |
2319 (ediff-kill-buffer-carefully ediff-fine-diff-buffer) | 2351 (ediff-kill-buffer-carefully ediff-fine-diff-buffer) |
2320 (ediff-kill-buffer-carefully ediff-tmp-buffer) | 2352 (ediff-kill-buffer-carefully ediff-tmp-buffer) |
2321 (ediff-kill-buffer-carefully ediff-error-buffer) | 2353 (ediff-kill-buffer-carefully ediff-error-buffer) |
2322 (ediff-kill-buffer-carefully ediff-patch-diagnostics) | |
2323 (ediff-kill-buffer-carefully ediff-msg-buffer) | 2354 (ediff-kill-buffer-carefully ediff-msg-buffer) |
2324 (ediff-kill-buffer-carefully ediff-debug-buffer) | 2355 (ediff-kill-buffer-carefully ediff-debug-buffer) |
2356 (if (boundp 'ediff-patch-diagnostics) | |
2357 (ediff-kill-buffer-carefully ediff-patch-diagnostics)) | |
2325 | 2358 |
2326 (if (and (ediff-window-display-p) (frame-live-p ctl-frame)) | 2359 (if (and (ediff-window-display-p) (frame-live-p ctl-frame)) |
2327 (delete-frame ctl-frame)) | 2360 (delete-frame ctl-frame)) |
2328 ;; Hide bottom toolbar. --marcpa | 2361 ;; Hide bottom toolbar. --marcpa |
2329 (if (not (ediff-multiframe-setup-p)) | 2362 (if (not (ediff-multiframe-setup-p)) |
2443 (buf-B ediff-buffer-B) | 2476 (buf-B ediff-buffer-B) |
2444 (buf-C ediff-buffer-C) | 2477 (buf-C ediff-buffer-C) |
2445 (buf-A-wind (ediff-get-visible-buffer-window buf-A)) | 2478 (buf-A-wind (ediff-get-visible-buffer-window buf-A)) |
2446 (buf-B-wind (ediff-get-visible-buffer-window buf-B)) | 2479 (buf-B-wind (ediff-get-visible-buffer-window buf-B)) |
2447 (buf-C-wind (ediff-get-visible-buffer-window buf-C)) | 2480 (buf-C-wind (ediff-get-visible-buffer-window buf-C)) |
2448 (buf-patch ediff-patchbufer) | 2481 (buf-patch (if (boundp 'ediff-patchbufer) ediff-patchbufer nil)) |
2449 (buf-patch-diag ediff-patch-diagnostics) | 2482 (buf-patch-diag (if (boundp 'ediff-patch-diagnostics) |
2483 ediff-patch-diagnostics nil)) | |
2450 (buf-err ediff-error-buffer) | 2484 (buf-err ediff-error-buffer) |
2451 (buf-diff ediff-diff-buffer) | 2485 (buf-diff ediff-diff-buffer) |
2452 (buf-custom-diff ediff-custom-diff-buffer) | 2486 (buf-custom-diff ediff-custom-diff-buffer) |
2453 (buf-fine-diff ediff-fine-diff-buffer)) | 2487 (buf-fine-diff ediff-fine-diff-buffer)) |
2454 | 2488 |
2465 (if (window-live-p buf-A-wind) | 2499 (if (window-live-p buf-A-wind) |
2466 (progn | 2500 (progn |
2467 (select-window buf-A-wind) | 2501 (select-window buf-A-wind) |
2468 (delete-other-windows) | 2502 (delete-other-windows) |
2469 (bury-buffer)) | 2503 (bury-buffer)) |
2470 (if (ediff-buffer-live-p buf-A) (bury-buffer buf-A))) | 2504 (if (ediff-buffer-live-p buf-A) |
2505 (progn | |
2506 (set-buffer buf-A) | |
2507 (bury-buffer)))) | |
2471 (if (window-live-p buf-B-wind) | 2508 (if (window-live-p buf-B-wind) |
2472 (progn | 2509 (progn |
2473 (select-window buf-B-wind) | 2510 (select-window buf-B-wind) |
2474 (delete-other-windows) | 2511 (delete-other-windows) |
2475 (bury-buffer)) | 2512 (bury-buffer)) |
2476 (if (ediff-buffer-live-p buf-B) (bury-buffer buf-B))) | 2513 (if (ediff-buffer-live-p buf-B) |
2514 (progn | |
2515 (set-buffer buf-B) | |
2516 (bury-buffer)))) | |
2477 (if (window-live-p buf-C-wind) | 2517 (if (window-live-p buf-C-wind) |
2478 (progn | 2518 (progn |
2479 (select-window buf-C-wind) | 2519 (select-window buf-C-wind) |
2480 (delete-other-windows) | 2520 (delete-other-windows) |
2481 (bury-buffer)) | 2521 (bury-buffer)) |
2482 (if (ediff-buffer-live-p buf-C) (bury-buffer buf-C))) | 2522 (if (ediff-buffer-live-p buf-C) |
2483 | 2523 (progn |
2524 (set-buffer buf-C) | |
2525 (bury-buffer)))) | |
2484 )) | 2526 )) |
2485 | 2527 |
2486 | 2528 |
2487 (defun ediff-suspend () | 2529 (defun ediff-suspend () |
2488 "Suspend Ediff. | 2530 "Suspend Ediff. |
2904 Ediff Control Panel to restore highlighting." | 2946 Ediff Control Panel to restore highlighting." |
2905 (interactive) | 2947 (interactive) |
2906 (let ((answer "") | 2948 (let ((answer "") |
2907 (possibilities (list ?A ?B ?C)) | 2949 (possibilities (list ?A ?B ?C)) |
2908 (zmacs-regions t) | 2950 (zmacs-regions t) |
2951 (ctl-buf (current-buffer)) | |
2909 quit-now | 2952 quit-now |
2910 begA begB endA endB bufA bufB) | 2953 begA begB endA endB bufA bufB) |
2911 | 2954 |
2912 (cond ((ediff-merge-job) | 2955 (cond ((ediff-merge-job) |
2913 (setq bufB ediff-buffer-C) | 2956 (setq bufB ediff-buffer-C) |
2914 (while (cond ((memq answer '(?A ?a)) | 2957 (while (cond ((eq answer ?A) |
2915 (setq bufA ediff-buffer-A) | 2958 (setq bufA ediff-buffer-A |
2959 possibilities '(?B)) | |
2916 nil) | 2960 nil) |
2917 ((memq answer '(?B ?b)) | 2961 ((eq answer ?B) |
2918 (setq bufA ediff-buffer-B) | 2962 (setq bufA ediff-buffer-B |
2963 possibilities '(?A)) | |
2919 nil) | 2964 nil) |
2920 ((equal answer "")) | 2965 ((equal answer "")) |
2921 (t (beep 1) | 2966 (t (beep 1) |
2922 (message "Valid values are A or B") | 2967 (message "Valid values are A or B") |
2923 (sit-for 2) | 2968 (sit-for 2) |
2924 t)) | 2969 t)) |
2925 (let ((cursor-in-echo-area t)) | 2970 (let ((cursor-in-echo-area t)) |
2926 (message "Which buffer to compare to the merge buffer (A/B)? ") | 2971 (message "Which buffer to compare to the merge buffer (A/B)? ") |
2927 (setq answer (read-char-exclusive))))) | 2972 (setq answer (capitalize (read-char-exclusive)))))) |
2928 | 2973 |
2929 ((ediff-3way-comparison-job) | 2974 ((ediff-3way-comparison-job) |
2930 (while (cond ((memq answer possibilities) | 2975 (while (cond ((memq answer possibilities) |
2931 (setq possibilities (delq answer possibilities)) | 2976 (setq possibilities (delq answer possibilities)) |
2932 (setq bufA | 2977 (setq bufA |
2962 (message "Enter the 2nd buffer you want to compare (%s): " | 3007 (message "Enter the 2nd buffer you want to compare (%s): " |
2963 (mapconcat 'char-to-string possibilities "/")) | 3008 (mapconcat 'char-to-string possibilities "/")) |
2964 (setq answer (capitalize (read-char-exclusive)))))) | 3009 (setq answer (capitalize (read-char-exclusive)))))) |
2965 (t ; 2way comparison | 3010 (t ; 2way comparison |
2966 (setq bufA ediff-buffer-A | 3011 (setq bufA ediff-buffer-A |
2967 bufB ediff-buffer-B))) | 3012 bufB ediff-buffer-B |
3013 possibilities nil))) | |
2968 | 3014 |
2969 (ediff-eval-in-buffer bufA | 3015 (ediff-eval-in-buffer bufA |
2970 (or (mark t) | 3016 (or (mark t) |
2971 (error "You forgot to specify a region in buffer %s" (buffer-name))) | 3017 (error "You forgot to specify a region in buffer %s" (buffer-name))) |
2972 (setq begA (region-beginning) | 3018 (setq begA (region-beginning) |
3008 (narrow-to-region begB endB) | 3054 (narrow-to-region begB endB) |
3009 ;; (ediff-activate-mark) | 3055 ;; (ediff-activate-mark) |
3010 ) | 3056 ) |
3011 ;; (sit-for 0) | 3057 ;; (sit-for 0) |
3012 | 3058 |
3059 ;; At this point, possibilities contains either the window char A/B/C | |
3060 ;; that was not selected, or it is nil. We delete the window that is not | |
3061 ;; selected. | |
3062 (if possibilities | |
3063 (ediff-eval-in-buffer ctl-buf | |
3064 (let* ((wind-to-delete (eval | |
3065 (intern | |
3066 (format | |
3067 "ediff-window-%c" (car possibilities))))) | |
3068 (frame (window-frame wind-to-delete))) | |
3069 (delete-window wind-to-delete) | |
3070 (select-frame frame) | |
3071 (balance-windows)))) | |
3013 (or (y-or-n-p | 3072 (or (y-or-n-p |
3014 "Please check the selected regions. Continue? ") | 3073 "Please check regions selected for comparison. Continue? ") |
3015 (setq quit-now t)) | 3074 (setq quit-now t)) |
3016 | 3075 |
3017 (ediff-eval-in-buffer bufA | 3076 (ediff-eval-in-buffer bufA |
3018 (widen)) | 3077 (widen)) |
3019 (ediff-eval-in-buffer bufB | 3078 (ediff-eval-in-buffer bufB |
3020 (widen)) | 3079 (widen)) |
3021 (if quit-now | 3080 (if quit-now |
3022 (error "Thank you. Come back another day...")) | 3081 (ediff-eval-in-buffer ctl-buf |
3082 (ediff-recenter) | |
3083 (sit-for 0) | |
3084 (error "All right. Make up your mind and come back..."))) | |
3023 | 3085 |
3024 (ediff-regions-internal | 3086 (ediff-regions-internal |
3025 bufA begA endA bufB begB endB | 3087 bufA begA endA bufB begB endB |
3026 nil ; startup hook | 3088 nil ; startup hook |
3027 'ediff-regions-linewise ; job name | 3089 'ediff-regions-linewise ; job name |
3028 nil) ; no word mode | 3090 nil) ; no word mode |
3029 )) | 3091 )) |
3030 | 3092 |
3093 | |
3031 | 3094 |
3032 (defun ediff-remove-flags-from-buffer (buffer overlay) | 3095 (defun ediff-remove-flags-from-buffer (buffer overlay) |
3033 (ediff-eval-in-buffer buffer | 3096 (ediff-eval-in-buffer buffer |
3034 (let ((inhibit-read-only t)) | 3097 (let ((inhibit-read-only t)) |
3035 (if ediff-xemacs-p | 3098 (if ediff-xemacs-p |
3181 (ediff-overlay-put overl 'start-open nil) | 3244 (ediff-overlay-put overl 'start-open nil) |
3182 (ediff-overlay-put overl 'end-open nil))) | 3245 (ediff-overlay-put overl 'end-open nil))) |
3183 (ediff-overlay-put overl 'ediff-diff-num 0) | 3246 (ediff-overlay-put overl 'ediff-diff-num 0) |
3184 overl)))) | 3247 overl)))) |
3185 | 3248 |
3186 (defsubst ediff-overlay-start (overl) | |
3187 (if (ediff-overlayp overl) | |
3188 (if ediff-emacs-p | |
3189 (overlay-start overl) | |
3190 (extent-start-position overl)))) | |
3191 | |
3192 (defsubst ediff-overlay-end (overl) | |
3193 (if (ediff-overlayp overl) | |
3194 (if ediff-emacs-p | |
3195 (overlay-end overl) | |
3196 (extent-end-position overl)))) | |
3197 | |
3198 | 3249 |
3199 ;; Like other-buffer, but prefers visible buffers and ignores temporary or | 3250 ;; Like other-buffer, but prefers visible buffers and ignores temporary or |
3200 ;; other insignificant buffers (those beginning with "^[ *]"). | 3251 ;; other insignificant buffers (those beginning with "^[ *]"). |
3201 ;; Gets one arg--buffer name or a list of buffer names (it won't return | 3252 ;; Gets one arg--buffer name or a list of buffer names (it won't return |
3202 ;; these buffers). | 3253 ;; these buffers). |
3591 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) | 3642 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) |
3592 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) | 3643 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) |
3593 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) | 3644 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) |
3594 ;;; End: | 3645 ;;; End: |
3595 | 3646 |
3596 (provide 'ediff-util) | |
3597 | |
3598 ;;; ediff-util.el ends here | 3647 ;;; ediff-util.el ends here |