Mercurial > hg > xemacs-beta
comparison lisp/ediff/ediff-util.el @ 187:b405438285a2 r20-3b20
Import from CVS: tag r20-3b20
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:56:28 +0200 |
parents | 3d6bfa290dbd |
children | acd284d43ca1 |
comparison
equal
deleted
inserted
replaced
186:24ac94803b48 | 187:b405438285a2 |
---|---|
686 (defun ediff-recenter (&optional no-rehighlight) | 686 (defun ediff-recenter (&optional no-rehighlight) |
687 "Bring the highlighted region of all buffers being compared into view. | 687 "Bring the highlighted region of all buffers being compared into view. |
688 Reestablish the default three-window display." | 688 Reestablish the default three-window display." |
689 (interactive) | 689 (interactive) |
690 (ediff-barf-if-not-control-buffer) | 690 (ediff-barf-if-not-control-buffer) |
691 | |
692 ;; ;; No longer needed: XEmacs has surrogate minibuffers now. | |
693 ;; (if ediff-xemacs-p (setq synchronize-minibuffers t)) | |
694 | |
695 (let (buffer-read-only) | 691 (let (buffer-read-only) |
696 (if (and (ediff-buffer-live-p ediff-buffer-A) | 692 (if (and (ediff-buffer-live-p ediff-buffer-A) |
697 (ediff-buffer-live-p ediff-buffer-B) | 693 (ediff-buffer-live-p ediff-buffer-B) |
698 (or (not ediff-3way-job) | 694 (or (not ediff-3way-job) |
699 (ediff-buffer-live-p ediff-buffer-C))) | 695 (ediff-buffer-live-p ediff-buffer-C))) |
2357 (run-hooks 'ediff-quit-hook) | 2353 (run-hooks 'ediff-quit-hook) |
2358 (ediff-cleanup-meta-buffer meta-buffer) | 2354 (ediff-cleanup-meta-buffer meta-buffer) |
2359 | 2355 |
2360 ;; warp mouse into a working window | 2356 ;; warp mouse into a working window |
2361 (setq warp-frame ; if mouse is over a reasonable frame, use it | 2357 (setq warp-frame ; if mouse is over a reasonable frame, use it |
2362 (cond ((and ediff-xemacs-p (window-live-p (car (mouse-position)))) | 2358 (cond ((ediff-good-frame-under-mouse)) |
2363 (window-frame (car (mouse-position)))) | |
2364 ((frame-live-p (car (mouse-position))) | |
2365 (car (mouse-position))) | |
2366 (t warp-frame))) | 2359 (t warp-frame))) |
2367 (if (frame-live-p warp-frame) | 2360 (if (frame-live-p warp-frame) |
2368 (set-mouse-position (if ediff-emacs-p | 2361 (set-mouse-position (if ediff-emacs-p |
2369 warp-frame | 2362 warp-frame |
2370 (frame-selected-window warp-frame)) | 2363 (frame-selected-window warp-frame)) |
2371 2 1)) | 2364 2 1)) |
2372 | 2365 |
2373 (if (ediff-buffer-live-p meta-buffer) | 2366 (if (ediff-buffer-live-p meta-buffer) |
2374 (ediff-show-meta-buffer meta-buffer)) | 2367 (ediff-show-meta-buffer meta-buffer)) |
2375 )) | 2368 )) |
2369 | |
2370 ;; Returns frame under mouse, if this frame is not a minibuffer | |
2371 ;; frame. Otherwise: nil | |
2372 (defun ediff-good-frame-under-mouse () | |
2373 (let ((frame-or-win (car (mouse-position))) | |
2374 (buf-name "") | |
2375 frame obj-ok) | |
2376 (setq obj-ok | |
2377 (if ediff-emacs-p | |
2378 (frame-live-p frame-or-win) | |
2379 (window-live-p frame-or-win))) | |
2380 (if obj-ok | |
2381 (setq frame (if ediff-emacs-p frame-or-win (window-frame frame-or-win)) | |
2382 buf-name | |
2383 (buffer-name (window-buffer (frame-selected-window frame))))) | |
2384 (if (string-match "Minibuf" buf-name) | |
2385 nil | |
2386 frame))) | |
2376 | 2387 |
2377 | 2388 |
2378 (defun ediff-delete-temp-files () | 2389 (defun ediff-delete-temp-files () |
2379 (if (stringp ediff-temp-file-A) | 2390 (if (stringp ediff-temp-file-A) |
2380 (delete-file ediff-temp-file-A)) | 2391 (delete-file ediff-temp-file-A)) |
2917 (erase-buffer)) | 2928 (erase-buffer)) |
2918 (revert-buffer t t)) | 2929 (revert-buffer t t)) |
2919 (error "Buffer out of sync for file %s" buffer-file-name)))) | 2930 (error "Buffer out of sync for file %s" buffer-file-name)))) |
2920 | 2931 |
2921 | 2932 |
2933 (defun ediff-file-compressed-p (file) | |
2934 (require 'jka-compr) | |
2935 (string-match (jka-compr-build-file-regexp) file)) | |
2936 | |
2937 (defun ediff-filename-magic-p (file) | |
2938 (or (ediff-file-compressed-p file) | |
2939 (ediff-file-remote-p file))) | |
2940 | |
2941 | |
2922 (defun ediff-save-buffer (arg) | 2942 (defun ediff-save-buffer (arg) |
2923 "Safe way of saving buffers A, B, C, and the diff output. | 2943 "Safe way of saving buffers A, B, C, and the diff output. |
2924 `wa' saves buffer A, `wb' saves buffer B, `wc' saves buffer C, | 2944 `wa' saves buffer A, `wb' saves buffer B, `wc' saves buffer C, |
2925 and `wd' saves the diff output. | 2945 and `wd' saves the diff output. |
2926 | 2946 |
3313 | 3333 |
3314 ;; Like other-buffer, but prefers visible buffers and ignores temporary or | 3334 ;; Like other-buffer, but prefers visible buffers and ignores temporary or |
3315 ;; other insignificant buffers (those beginning with "^[ *]"). | 3335 ;; other insignificant buffers (those beginning with "^[ *]"). |
3316 ;; Gets one arg--buffer name or a list of buffer names (it won't return | 3336 ;; Gets one arg--buffer name or a list of buffer names (it won't return |
3317 ;; these buffers). | 3337 ;; these buffers). |
3318 (defun ediff-other-buffer (buff) | 3338 (defun ediff-other-buffer (buff-lst) |
3319 (if (not (listp buff)) (setq buff (list buff))) | 3339 (or (listp buff-lst) (setq buff-lst (list buff-lst))) |
3320 (let* ((frame-buffers (buffer-list)) | 3340 (let* ((frame-buffers (buffer-list)) |
3341 (buff-name-list | |
3342 (mapcar | |
3343 (function (lambda (b) | |
3344 (cond ((stringp b) b) | |
3345 ((bufferp b) (buffer-name b))))) | |
3346 buff-lst)) | |
3321 (significant-buffers | 3347 (significant-buffers |
3322 (mapcar | 3348 (mapcar |
3323 (function (lambda (x) | 3349 (function (lambda (x) |
3324 (cond ((member (buffer-name x) buff) | 3350 (cond ((member (buffer-name x) buff-name-list) nil) |
3325 nil) | 3351 ((not (ediff-get-visible-buffer-window x)) nil) |
3326 ((not (ediff-get-visible-buffer-window x)) | 3352 ((string-match "^[ *]" (buffer-name x)) nil) |
3327 nil) | 3353 ((memq (ediff-with-current-buffer x major-mode) |
3328 ((string-match "^ " (buffer-name x)) | 3354 '(dired-mode)) |
3329 nil) | 3355 nil) |
3330 (t x)))) | 3356 (t x)))) |
3331 frame-buffers)) | 3357 frame-buffers)) |
3332 (buffers (delq nil significant-buffers)) | 3358 (buffers (delq nil significant-buffers)) |
3333 less-significant-buffers) | 3359 less-significant-buffers) |
3337 ((setq less-significant-buffers | 3363 ((setq less-significant-buffers |
3338 (delq nil | 3364 (delq nil |
3339 (mapcar | 3365 (mapcar |
3340 (function | 3366 (function |
3341 (lambda (x) | 3367 (lambda (x) |
3342 (cond ((member (buffer-name x) buff) nil) | 3368 (cond ((member (buffer-name x) buff-name-list) nil) |
3343 ((string-match "^[ *]" (buffer-name x)) nil) | 3369 ((string-match "^[ *]" (buffer-name x)) nil) |
3370 ((memq | |
3371 (ediff-with-current-buffer x major-mode) | |
3372 '(dired-mode)) | |
3373 nil) | |
3344 (t x)))) | 3374 (t x)))) |
3345 frame-buffers))) | 3375 frame-buffers))) |
3346 (car less-significant-buffers)) | 3376 (car less-significant-buffers)) |
3347 (t (other-buffer (current-buffer)))) | 3377 (t (other-buffer (current-buffer)))) |
3348 )) | 3378 )) |