annotate lisp/ediff-wind.el @ 76022:e892213b9815

(w32_set_scroll_bar_thumb): Don't resize scroll-bar handle while dragging, except when we get close to eob. Fix position and size calculations so we don't scroll backwards just by clicking on the handle.
author Kim F. Storm <storm@cua.dk>
date Mon, 19 Feb 2007 14:45:39 +0000
parents e3694f1cb928
children 9355f9b7bbff b8d9a391daf3 95d0cdf160ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1 ;;; ediff-wind.el --- window manipulation utilities
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13948
diff changeset
2
64762
41bb365f41c4 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64091
diff changeset
3 ;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
75347
e3694f1cb928 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 71382
diff changeset
4 ;; 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
5
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
6 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
7
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
9
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
13 ;; any later version.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
14
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
19
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13948
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64091
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64010
diff changeset
22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64010
diff changeset
23 ;; Boston, MA 02110-1301, USA.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
24
38422
7a94f1c588c4 Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 36857
diff changeset
25 ;;; Commentary:
7a94f1c588c4 Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 36857
diff changeset
26
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13948
diff changeset
27 ;;; Code:
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
28
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
29
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
30 ;; Compiler pacifier
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
31 (defvar icon-title-format)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
32 (defvar top-toolbar-height)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
33 (defvar bottom-toolbar-height)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
34 (defvar left-toolbar-height)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
35 (defvar right-toolbar-height)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
36 (defvar left-toolbar-width)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
37 (defvar right-toolbar-width)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
38 (defvar default-menubar)
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
39 (defvar top-gutter)
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
40 (defvar frame-icon-title-format)
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
41 (defvar ediff-diff-status)
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
42 (defvar ediff-emacs-p)
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
43
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
44 (eval-when-compile
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
45 (let ((load-path (cons (expand-file-name ".") load-path)))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
46 (or (featurep 'ediff-init)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
47 (load "ediff-init.el" nil nil 'nosuffix))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
48 (or (featurep 'ediff-util)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
49 (load "ediff-util.el" nil nil 'nosuffix))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
50 (or (featurep 'ediff-help)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
51 (load "ediff-help.el" nil nil 'nosuffix))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
52 (or (featurep 'ediff-tbar)
21940
f7e788ea680b new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 19047
diff changeset
53 ediff-emacs-p
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
54 (load "ediff-tbar.el" 'noerror nil 'nosuffix))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
55 ))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
56 ;; end pacifier
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
57
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
58 (require 'ediff-init)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
59
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
60 ;; be careful with ediff-tbar
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
61 (if ediff-xemacs-p
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
62 (condition-case nil
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
63 (require 'ediff-tbar)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
64 (error
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
65 (defun ediff-compute-toolbar-width () 0)))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
66 (defun ediff-compute-toolbar-width () 0))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
67
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
68 (defgroup ediff-window nil
64010
2dd49ab983ac (ediff-window): Finish `defgroup' description with period.
Juanma Barranquero <lekktu@gmail.com>
parents: 52401
diff changeset
69 "Ediff window manipulation."
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
70 :prefix "ediff-"
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
71 :group 'ediff
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
72 :group 'frames)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
73
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
74
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
75 (defcustom ediff-window-setup-function (if (ediff-window-display-p)
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
76 'ediff-setup-windows-multiframe
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
77 'ediff-setup-windows-plain)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
78 "*Function called to set up windows.
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
79 Ediff provides a choice of two functions: `ediff-setup-windows-plain', for
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
80 doing everything in one frame, and `ediff-setup-windows-multiframe',
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
81 which sets the control panel in a separate frame. Also, if the latter
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
82 function detects that one of the buffers A/B is seen in some other frame,
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
83 it will try to keep that buffer in that frame.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
84
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
85 If you don't like the two functions provided---write your own one.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
86 The basic guidelines:
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
87 1. It should leave the control buffer current and the control window
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
88 selected.
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
89 2. It should set `ediff-window-A', `ediff-window-B', `ediff-window-C',
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
90 and `ediff-control-window' to contain window objects that display
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
91 the corresponding buffers.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
92 3. It should accept the following arguments:
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
93 buffer-A, buffer-B, buffer-C, control-buffer
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
94 Buffer C may not be used in jobs that compare only two buffers.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
95 If you plan to do something fancy, take a close look at how the two
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
96 provided functions are written."
46694
9b8e9cf6b790 (ediff-window-setup-function): Extend type declaration.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 43220
diff changeset
97 :type '(choice (const :tag "Multi Frame" ediff-setup-windows-multiframe)
9b8e9cf6b790 (ediff-window-setup-function): Extend type declaration.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 43220
diff changeset
98 (const :tag "Single Frame" ediff-setup-windows-plain)
9b8e9cf6b790 (ediff-window-setup-function): Extend type declaration.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 43220
diff changeset
99 (function :tag "Other function"))
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
100 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
101
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
102 ;; indicates if we are in a multiframe setup
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
103 (ediff-defvar-local ediff-multiframe nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
104
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
105 ;; Share of the frame occupied by the merge window (buffer C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
106 (ediff-defvar-local ediff-merge-window-share 0.45 "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
107
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
108 ;; The control window.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
109 (ediff-defvar-local ediff-control-window nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
110 ;; Official window for buffer A
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
111 (ediff-defvar-local ediff-window-A nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
112 ;; Official window for buffer B
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
113 (ediff-defvar-local ediff-window-B nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
114 ;; Official window for buffer C
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
115 (ediff-defvar-local ediff-window-C nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
116 ;; Ediff's window configuration.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
117 ;; Used to minimize the need to rearrange windows.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
118 (ediff-defvar-local ediff-window-config-saved "" "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
119
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
120 ;; Association between buff-type and ediff-window-*
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
121 (defconst ediff-window-alist
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
122 '((A . ediff-window-A)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
123 (?A . ediff-window-A)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
124 (B . ediff-window-B)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
125 (?B . ediff-window-B)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
126 (C . ediff-window-C)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
127 (?C . ediff-window-C)))
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
128
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
129
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
130 (defcustom ediff-split-window-function 'split-window-vertically
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
131 "*The function used to split the main window between buffer-A and buffer-B.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
132 You can set it to a horizontal split instead of the default vertical split
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
133 by setting this variable to `split-window-horizontally'.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
134 You can also have your own function to do fancy splits.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
135 This variable has no effect when buffer-A/B are shown in different frames.
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
136 In this case, Ediff will use those frames to display these buffers."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
137 :type 'function
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
138 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
139
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
140 (defcustom ediff-merge-split-window-function 'split-window-horizontally
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
141 "*The function used to split the main window between buffer-A and buffer-B.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
142 You can set it to a vertical split instead of the default horizontal split
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
143 by setting this variable to `split-window-vertically'.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
144 You can also have your own function to do fancy splits.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
145 This variable has no effect when buffer-A/B/C are shown in different frames.
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
146 In this case, Ediff will use those frames to display these buffers."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
147 :type 'function
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
148 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
149
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
150 (defconst ediff-control-frame-parameters
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
151 (list
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
152 '(name . "Ediff")
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
153 ;;'(unsplittable . t)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
154 '(minibuffer . nil)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
155 '(user-position . t) ; Emacs only
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
156 '(vertical-scroll-bars . nil) ; Emacs only
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
157 '(scrollbar-width . 0) ; XEmacs only
48034
2bdc2b912091 2002-10-27 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 47846
diff changeset
158 '(scrollbar-height . 0) ; XEmacs only
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
159 '(menu-bar-lines . 0) ; Emacs only
33842
f6a67d77484a * ediff-diff.el: Moved variables around to have it compile under NT.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 33317
diff changeset
160 '(tool-bar-lines . 0) ; Emacs 21+ only
71382
4033086b16b6 2006-06-18 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 68997
diff changeset
161 '(left-fringe . 0)
4033086b16b6 2006-06-18 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 68997
diff changeset
162 '(right-fringe . 0)
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
163 ;; don't lower but auto-raise
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
164 '(auto-lower . nil)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
165 '(auto-raise . t)
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
166 '(visibility . nil)
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
167 ;; make initial frame small to avoid distraction
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
168 '(width . 1) '(height . 1)
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
169 ;; this blocks queries from window manager as to where to put
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
170 ;; ediff's control frame. we put the frame outside the display,
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
171 ;; so the initial frame won't jump all over the screen
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
172 (cons 'top (if (fboundp 'ediff-display-pixel-height)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
173 (1+ (ediff-display-pixel-height))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
174 3000))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
175 (cons 'left (if (fboundp 'ediff-display-pixel-width)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
176 (1+ (ediff-display-pixel-width))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
177 3000))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
178 )
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
179 "Frame parameters for displaying Ediff Control Panel.
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
180 Used internally---not a user option.")
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
181
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
182 ;; position of the mouse; used to decide whether to warp the mouse into ctl
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
183 ;; frame
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
184 (ediff-defvar-local ediff-mouse-pixel-position nil "")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
185
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
186 ;; not used for now
13948
60556fda3e6f (ediff-mouse-pixel-threshold): Renamed from
Karl Heuer <kwzh@gnu.org>
parents: 13132
diff changeset
187 (defvar ediff-mouse-pixel-threshold 30
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
188 "If the user moves mouse more than this many pixels, Ediff won't warp mouse into control window.")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
189
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
190 (defcustom ediff-grab-mouse t
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
191 "*If t, Ediff will always grab the mouse and put it in the control frame.
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
192 If 'maybe, Ediff will do it sometimes, but not after operations that require
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
193 relatively long time. If nil, the mouse will be entirely user's
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
194 responsibility."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
195 :type 'boolean
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
196 :group 'ediff-window)
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
197
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
198 (defcustom ediff-control-frame-position-function 'ediff-make-frame-position
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
199 "Function to call to determine the desired location for the control panel.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
200 Expects three parameters: the control buffer, the desired width and height
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
201 of the control frame. It returns an association list
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
202 of the form \(\(top . <position>\) \(left . <position>\)\)"
18839
1405083241e8 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18054
diff changeset
203 :type 'function
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
204 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
205
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
206 (defcustom ediff-control-frame-upward-shift 42
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
207 "*The upward shift of control frame from the top of buffer A's frame.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
208 Measured in pixels.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
209 This is used by the default control frame positioning function,
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
210 `ediff-make-frame-position'. This variable is provided for easy
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
211 customization of the default control frame positioning."
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
212 :type 'integer
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
213 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
214
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
215 (defcustom ediff-narrow-control-frame-leftward-shift (if ediff-xemacs-p 7 3)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
216 "*The leftward shift of control frame from the right edge of buf A's frame.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
217 Measured in characters.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
218 This is used by the default control frame positioning function,
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
219 `ediff-make-frame-position' to adjust the position of the control frame
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
220 when it shows the short menu. This variable is provided for easy
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
221 customization of the default."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
222 :type 'integer
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
223 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
224
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
225 (defcustom ediff-wide-control-frame-rightward-shift 7
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
226 "*The rightward shift of control frame from the left edge of buf A's frame.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
227 Measured in characters.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
228 This is used by the default control frame positioning function,
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
229 `ediff-make-frame-position' to adjust the position of the control frame
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
230 when it shows the full menu. This variable is provided for easy
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
231 customization of the default."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
232 :type 'integer
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
233 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
234
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
235
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
236 ;; Wide frame display
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
237
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
238 ;; t means Ediff is using wide display
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
239 (ediff-defvar-local ediff-wide-display-p nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
240 ;; keeps frame config for toggling wide display
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
241 (ediff-defvar-local ediff-wide-display-orig-parameters nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
242 "Frame parameters to be restored when the user wants to toggle the wide
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
243 display off.")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
244 (ediff-defvar-local ediff-wide-display-frame nil
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
245 "Frame to be used for wide display.")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
246 (ediff-defvar-local ediff-make-wide-display-function 'ediff-make-wide-display
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
247 "The value is a function that is called to create a wide display.
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
248 The function is called without arguments. It should resize the frame in
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
249 which buffers A, B, and C are to be displayed, and it should save the old
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
250 frame parameters in `ediff-wide-display-orig-parameters'.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
251 The variable `ediff-wide-display-frame' should be set to contain
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
252 the frame used for the wide display.")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
253
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
254 ;; Frame used for the control panel in a windowing system.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
255 (ediff-defvar-local ediff-control-frame nil "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
256
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
257 (defcustom ediff-prefer-iconified-control-frame nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
258 "*If t, keep control panel iconified when help message is off.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
259 This has effect only on a windowing system.
13948
60556fda3e6f (ediff-mouse-pixel-threshold): Renamed from
Karl Heuer <kwzh@gnu.org>
parents: 13132
diff changeset
260 If t, hitting `?' to toggle control panel off iconifies it.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
261
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
262 This is only useful in Emacs and only for certain kinds of window managers,
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
263 such as TWM and its derivatives, since the window manager must permit
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
264 keyboard input to go into icons. XEmacs completely ignores keyboard input
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
265 into icons, regardless of the window manager."
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
266 :type 'boolean
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
267 :group 'ediff-window)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
268
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
269 ;;; Functions
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
270
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
271 (defun ediff-get-window-by-clicking (wind prev-wind wind-number)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
272 (let (event)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
273 (message
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
274 "Select windows by clicking. Please click on Window %d " wind-number)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
275 (while (not (ediff-mouse-event-p (setq event (ediff-read-event))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
276 (if (sit-for 1) ; if sequence of events, wait till the final word
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
277 (beep 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
278 (message "Please click on Window %d " wind-number))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
279 (ediff-read-event) ; discard event
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
280 (setq wind (ediff-cond-compile-for-xemacs-or-emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
281 (event-window event) ; xemacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
282 (posn-window (event-start event)) ; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
283 )
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
284 )
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
285 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
286
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
287
27899
42f9a58e0fc4 * viper-cmd.el (viper-envelop-ESC-key): added the option to
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 26934
diff changeset
288 ;; Select the lowest window on the frame.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
289 (defun ediff-select-lowest-window ()
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
290 (ediff-cond-compile-for-xemacs-or-emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
291 (select-window (frame-lowest-window)) ; xemacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
292 ;; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
293 (let* ((lowest-window (selected-window))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
294 (bottom-edge (car (cdr (cdr (cdr (window-edges))))))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
295 (last-window (save-excursion
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
296 (other-window -1) (selected-window)))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
297 (window-search t))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
298 (while window-search
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
299 (let* ((this-window (next-window))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
300 (next-bottom-edge
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
301 (car (cdr (cdr (cdr (window-edges this-window)))))))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
302 (if (< bottom-edge next-bottom-edge)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
303 (progn
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
304 (setq bottom-edge next-bottom-edge)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
305 (setq lowest-window this-window)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
306
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
307 (select-window this-window)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
308 (if (eq last-window this-window)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
309 (progn
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
310 (select-window lowest-window)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
311 (setq window-search nil))))))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
312 ))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
313
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
314
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
315 ;;; Common window setup routines
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
316
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
317 ;; Set up the window configuration. If POS is given, set the points to
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
318 ;; the beginnings of the buffers.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
319 ;; When 3way comparison is added, this will have to choose the appropriate
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
320 ;; setup function based on ediff-job-name
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
321 (defun ediff-setup-windows (buffer-A buffer-B buffer-C control-buffer)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
322 ;; Make sure we are not in the minibuffer window when we try to delete
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
323 ;; all other windows.
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
324 (run-hooks 'ediff-before-setup-windows-hook)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
325 (if (eq (selected-window) (minibuffer-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
326 (other-window 1))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
327
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
328 ;; in case user did a no-no on a tty
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
329 (or (ediff-window-display-p)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
330 (setq ediff-window-setup-function 'ediff-setup-windows-plain))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
331
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
332 (or (ediff-keep-window-config control-buffer)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
333 (funcall
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
334 (ediff-with-current-buffer control-buffer ediff-window-setup-function)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
335 buffer-A buffer-B buffer-C control-buffer))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
336 (run-hooks 'ediff-after-setup-windows-hook))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
337
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
338 ;; Just set up 3 windows.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
339 ;; Usually used without windowing systems
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
340 ;; With windowing, we want to use dedicated frames.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
341 (defun ediff-setup-windows-plain (buffer-A buffer-B buffer-C control-buffer)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
342 (ediff-with-current-buffer control-buffer
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
343 (setq ediff-multiframe nil))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
344 (if ediff-merge-job
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
345 (ediff-setup-windows-plain-merge
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
346 buffer-A buffer-B buffer-C control-buffer)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
347 (ediff-setup-windows-plain-compare
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
348 buffer-A buffer-B buffer-C control-buffer)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
349
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
350 (defun ediff-setup-windows-plain-merge (buf-A buf-B buf-C control-buffer)
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
351 ;; skip dedicated and unsplittable frames
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
352 (ediff-destroy-control-frame control-buffer)
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
353 (let ((window-min-height 1)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
354 split-window-function
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
355 merge-window-share merge-window-lines
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
356 wind-A wind-B wind-C)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
357 (ediff-with-current-buffer control-buffer
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
358 (setq merge-window-share ediff-merge-window-share
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
359 ;; this lets us have local versions of ediff-split-window-function
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
360 split-window-function ediff-split-window-function))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
361 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
362 (split-window-vertically)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
363 (ediff-select-lowest-window)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
364 (ediff-setup-control-buffer control-buffer)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
365
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
366 ;; go to the upper window and split it betw A, B, and possibly C
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
367 (other-window 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
368 (setq merge-window-lines
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
369 (max 2 (round (* (window-height) merge-window-share))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
370 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
371 (setq wind-A (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
372
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
373 ;; XEmacs used to have a lot of trouble with display
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
374 ;; It did't set things right unless we tell it to sit still
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
375 ;; 19.12 seems ok.
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
376 ;;(if ediff-xemacs-p (sit-for 0))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
377
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
378 (split-window-vertically (max 2 (- (window-height) merge-window-lines)))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
379 (if (eq (selected-window) wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
380 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
381 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
382 (switch-to-buffer buf-C)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
383
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
384 (select-window wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
385 (funcall split-window-function)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
386
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
387 (if (eq (selected-window) wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
388 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
389 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
390 (setq wind-B (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
391
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
392 (ediff-with-current-buffer control-buffer
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
393 (setq ediff-window-A wind-A
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
394 ediff-window-B wind-B
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
395 ediff-window-C wind-C))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
396
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
397 (ediff-select-lowest-window)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
398 (ediff-setup-control-buffer control-buffer)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
399 ))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
400
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
401
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
402 ;; This function handles all comparison jobs, including 3way jobs
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
403 (defun ediff-setup-windows-plain-compare (buf-A buf-B buf-C control-buffer)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
404 ;; skip dedicated and unsplittable frames
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
405 (ediff-destroy-control-frame control-buffer)
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
406 (let ((window-min-height 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
407 split-window-function wind-width-or-height
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
408 three-way-comparison
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
409 wind-A-start wind-B-start wind-A wind-B wind-C)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
410 (ediff-with-current-buffer control-buffer
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
411 (setq wind-A-start (ediff-overlay-start
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
412 (ediff-get-value-according-to-buffer-type
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
413 'A ediff-narrow-bounds))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
414 wind-B-start (ediff-overlay-start
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
415 (ediff-get-value-according-to-buffer-type
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
416 'B ediff-narrow-bounds))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
417 ;; this lets us have local versions of ediff-split-window-function
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
418 split-window-function ediff-split-window-function
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
419 three-way-comparison ediff-3way-comparison-job))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
420 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
421 (split-window-vertically)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
422 (ediff-select-lowest-window)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
423 (ediff-setup-control-buffer control-buffer)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
424
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
425 ;; go to the upper window and split it betw A, B, and possibly C
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
426 (other-window 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
427 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
428 (setq wind-A (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
429 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
430 (setq wind-width-or-height
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
431 (/ (if (eq split-window-function 'split-window-vertically)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
432 (window-height wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
433 (window-width wind-A))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
434 3)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
435
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
436 ;; XEmacs used to have a lot of trouble with display
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
437 ;; It did't set things right unless we told it to sit still
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
438 ;; 19.12 seems ok.
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
439 ;;(if ediff-xemacs-p (sit-for 0))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
440
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
441 (funcall split-window-function wind-width-or-height)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
442
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
443 (if (eq (selected-window) wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
444 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
445 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
446 (setq wind-B (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
447
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
448 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
449 (progn
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
450 (funcall split-window-function) ; equally
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
451 (if (eq (selected-window) wind-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
452 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
453 (switch-to-buffer buf-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
454 (setq wind-C (selected-window))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
455
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
456 (ediff-with-current-buffer control-buffer
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
457 (setq ediff-window-A wind-A
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
458 ediff-window-B wind-B
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
459 ediff-window-C wind-C))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
460
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
461 ;; It is unlikely that we will want to implement 3way window comparison.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
462 ;; So, only buffers A and B are used here.
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
463 (if ediff-windows-job
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
464 (progn
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
465 (set-window-start wind-A wind-A-start)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
466 (set-window-start wind-B wind-B-start)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
467
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
468 (ediff-select-lowest-window)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
469 (ediff-setup-control-buffer control-buffer)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
470 ))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
471
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
472
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
473 ;; dispatch an appropriate window setup function
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
474 (defun ediff-setup-windows-multiframe (buf-A buf-B buf-C control-buf)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
475 (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
476 (setq ediff-multiframe t))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
477 (if ediff-merge-job
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
478 (ediff-setup-windows-multiframe-merge buf-A buf-B buf-C control-buf)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
479 (ediff-setup-windows-multiframe-compare buf-A buf-B buf-C control-buf)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
480
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
481 (defun ediff-setup-windows-multiframe-merge (buf-A buf-B buf-C control-buf)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
482 ;;; Algorithm:
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
483 ;;; 1. Never use frames that have dedicated windows in them---it is bad to
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
484 ;;; destroy dedicated windows.
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
485 ;;; 2. If A and B are in the same frame but C's frame is different--- use one
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
486 ;;; frame for A and B and use a separate frame for C.
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
487 ;;; 3. If C's frame is non-existent, then: if the first suitable
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
488 ;;; non-dedicated frame is different from A&B's, then use it for C.
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
489 ;;; Otherwise, put A,B, and C in one frame.
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
490 ;;; 4. If buffers A, B, C are is separate frames, use them to display these
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
491 ;;; buffers.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
492
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
493 ;; Skip dedicated or iconified frames.
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
494 ;; Unsplittable frames are taken care of later.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
495 (ediff-skip-unsuitable-frames 'ok-unsplittable)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
496
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
497 (let* ((window-min-height 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
498 (wind-A (ediff-get-visible-buffer-window buf-A))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
499 (wind-B (ediff-get-visible-buffer-window buf-B))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
500 (wind-C (ediff-get-visible-buffer-window buf-C))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
501 (frame-A (if wind-A (window-frame wind-A)))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
502 (frame-B (if wind-B (window-frame wind-B)))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
503 (frame-C (if wind-C (window-frame wind-C)))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
504 ;; on wide display, do things in one frame
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
505 (force-one-frame
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
506 (ediff-with-current-buffer control-buf ediff-wide-display-p))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
507 ;; this lets us have local versions of ediff-split-window-function
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
508 (split-window-function
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
509 (ediff-with-current-buffer control-buf ediff-split-window-function))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
510 (orig-wind (selected-window))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
511 (orig-frame (selected-frame))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
512 (use-same-frame (or force-one-frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
513 ;; A and C must be in one frame
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
514 (eq frame-A (or frame-C orig-frame))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
515 ;; B and C must be in one frame
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
516 (eq frame-B (or frame-C orig-frame))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
517 ;; A or B is not visible
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
518 (not (frame-live-p frame-A))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
519 (not (frame-live-p frame-B))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
520 ;; A or B is not suitable for display
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
521 (not (ediff-window-ok-for-display wind-A))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
522 (not (ediff-window-ok-for-display wind-B))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
523 ;; A and B in the same frame, and no good frame
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
524 ;; for C
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
525 (and (eq frame-A frame-B)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
526 (not (frame-live-p frame-C)))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
527 ))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
528 ;; use-same-frame-for-AB implies wind A and B are ok for display
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
529 (use-same-frame-for-AB (and (not use-same-frame)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
530 (eq frame-A frame-B)))
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
531 (merge-window-share (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
532 ediff-merge-window-share))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
533 merge-window-lines
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
534 designated-minibuffer-frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
535 done-A done-B done-C)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
536
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
537 ;; buf-A on its own
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
538 (if (and (window-live-p wind-A)
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
539 (null use-same-frame) ; implies wind-A is suitable
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
540 (null use-same-frame-for-AB))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
541 (progn ; bug A on its own
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
542 ;; buffer buf-A is seen in live wind-A
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
543 (select-window wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
544 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
545 (setq wind-A (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
546 (setq done-A t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
547
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
548 ;; buf-B on its own
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
549 (if (and (window-live-p wind-B)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
550 (null use-same-frame) ; implies wind-B is suitable
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
551 (null use-same-frame-for-AB))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
552 (progn ; buf B on its own
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
553 ;; buffer buf-B is seen in live wind-B
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
554 (select-window wind-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
555 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
556 (setq wind-B (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
557 (setq done-B t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
558
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
559 ;; buf-C on its own
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
560 (if (and (window-live-p wind-C)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
561 (ediff-window-ok-for-display wind-C)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
562 (null use-same-frame)) ; buf C on its own
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
563 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
564 ;; buffer buf-C is seen in live wind-C
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
565 (select-window wind-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
566 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
567 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
568 (setq done-C t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
569
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
570 (if (and use-same-frame-for-AB ; implies wind A and B are suitable
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
571 (window-live-p wind-A))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
572 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
573 ;; wind-A must already be displaying buf-A
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
574 (select-window wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
575 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
576 (setq wind-A (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
577
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
578 (funcall split-window-function)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
579 (if (eq (selected-window) wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
580 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
581 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
582 (setq wind-B (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
583
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
584 (setq done-A t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
585 done-B t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
586
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
587 (if use-same-frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
588 (let ((window-min-height 1))
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
589 (if (and (eq frame-A frame-B)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
590 (eq frame-B frame-C)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
591 (frame-live-p frame-A))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
592 (select-frame frame-A)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
593 ;; avoid dedicated and non-splittable windows
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
594 (ediff-skip-unsuitable-frames))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
595 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
596 (setq merge-window-lines
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
597 (max 2 (round (* (window-height) merge-window-share))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
598 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
599 (setq wind-A (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
600
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
601 (split-window-vertically
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
602 (max 2 (- (window-height) merge-window-lines)))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
603 (if (eq (selected-window) wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
604 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
605 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
606 (switch-to-buffer buf-C)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
607
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
608 (select-window wind-A)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
609
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
610 (funcall split-window-function)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
611 (if (eq (selected-window) wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
612 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
613 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
614 (setq wind-B (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
615
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
616 (setq done-A t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
617 done-B t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
618 done-C t)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
619 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
620
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
621 (or done-A ; Buf A to be set in its own frame,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
622 ;;; or it was set before because use-same-frame = 1
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
623 (progn
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
624 ;; Buf-A was not set up yet as it wasn't visible,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
625 ;; and use-same-frame = nil, use-same-frame-for-AB = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
626 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
627 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
628 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
629 (setq wind-A (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
630 ))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
631 (or done-B ; Buf B to be set in its own frame,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
632 ;;; or it was set before because use-same-frame = 1
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
633 (progn
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
634 ;; Buf-B was not set up yet as it wasn't visible
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
635 ;; and use-same-frame = nil, use-same-frame-for-AB = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
636 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
637 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
638 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
639 (setq wind-B (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
640 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
641
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
642 (or done-C ; Buf C to be set in its own frame,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
643 ;;; or it was set before because use-same-frame = 1
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
644 (progn
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
645 ;; Buf-C was not set up yet as it wasn't visible
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
646 ;; and use-same-frame = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
647 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
648 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
649 (switch-to-buffer buf-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
650 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
651 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
652
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
653 (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
654 (setq ediff-window-A wind-A
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
655 ediff-window-B wind-B
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
656 ediff-window-C wind-C)
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
657 (setq frame-A (window-frame ediff-window-A)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
658 designated-minibuffer-frame
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
659 (window-frame (minibuffer-window frame-A))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
660
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
661 (ediff-setup-control-frame control-buf designated-minibuffer-frame)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
662 ))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
663
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
664
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
665 ;; Window setup for all comparison jobs, including 3way comparisons
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
666 (defun ediff-setup-windows-multiframe-compare (buf-A buf-B buf-C control-buf)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
667 ;;; Algorithm:
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
668 ;;; If a buffer is seen in a frame, use that frame for that buffer.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
669 ;;; If it is not seen, use the current frame.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
670 ;;; If both buffers are not seen, they share the current frame. If one
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
671 ;;; of the buffers is not seen, it is placed in the current frame (where
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
672 ;;; ediff started). If that frame is displaying the other buffer, it is
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
673 ;;; shared between the two buffers.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
674 ;;; However, if we decide to put both buffers in one frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
675 ;;; and the selected frame isn't splittable, we create a new frame and
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
676 ;;; put both buffers there, event if one of this buffers is visible in
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
677 ;;; another frame.
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
678
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
679 ;; Skip dedicated or iconified frames.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
680 ;; Unsplittable frames are taken care of later.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
681 (ediff-skip-unsuitable-frames 'ok-unsplittable)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
682
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
683 (let* ((window-min-height 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
684 (wind-A (ediff-get-visible-buffer-window buf-A))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
685 (wind-B (ediff-get-visible-buffer-window buf-B))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
686 (wind-C (ediff-get-visible-buffer-window buf-C))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
687 (frame-A (if wind-A (window-frame wind-A)))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
688 (frame-B (if wind-B (window-frame wind-B)))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
689 (frame-C (if wind-C (window-frame wind-C)))
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
690 (ctl-frame-exists-p (ediff-with-current-buffer control-buf
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
691 (frame-live-p ediff-control-frame)))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
692 ;; on wide display, do things in one frame
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
693 (force-one-frame
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
694 (ediff-with-current-buffer control-buf ediff-wide-display-p))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
695 ;; this lets us have local versions of ediff-split-window-function
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
696 (split-window-function
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
697 (ediff-with-current-buffer control-buf ediff-split-window-function))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
698 (three-way-comparison
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
699 (ediff-with-current-buffer control-buf ediff-3way-comparison-job))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
700 (orig-wind (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
701 (use-same-frame (or force-one-frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
702 (eq frame-A frame-B)
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
703 (not (ediff-window-ok-for-display wind-A))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
704 (not (ediff-window-ok-for-display wind-B))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
705 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
706 (or (eq frame-A frame-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
707 (eq frame-B frame-C)
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
708 (not (ediff-window-ok-for-display wind-C))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
709 (not (frame-live-p frame-A))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
710 (not (frame-live-p frame-B))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
711 (not (frame-live-p frame-C))))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
712 (and (not (frame-live-p frame-B))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
713 (or ctl-frame-exists-p
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
714 (eq frame-A (selected-frame))))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
715 (and (not (frame-live-p frame-A))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
716 (or ctl-frame-exists-p
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
717 (eq frame-B (selected-frame))))))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
718 wind-A-start wind-B-start
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
719 designated-minibuffer-frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
720 done-A done-B done-C)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
721
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
722 (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
723 (setq wind-A-start (ediff-overlay-start
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
724 (ediff-get-value-according-to-buffer-type
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
725 'A ediff-narrow-bounds))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
726 wind-B-start (ediff-overlay-start
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
727 (ediff-get-value-according-to-buffer-type
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
728 'B ediff-narrow-bounds))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
729
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
730 (if (and (window-live-p wind-A) (null use-same-frame)) ; buf-A on its own
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
731 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
732 ;; buffer buf-A is seen in live wind-A
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
733 (select-window wind-A) ; must be displaying buf-A
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
734 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
735 (setq wind-A (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
736 (setq done-A t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
737
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
738 (if (and (window-live-p wind-B) (null use-same-frame)) ; buf B on its own
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
739 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
740 ;; buffer buf-B is seen in live wind-B
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
741 (select-window wind-B) ; must be displaying buf-B
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
742 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
743 (setq wind-B (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
744 (setq done-B t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
745
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
746 (if (and (window-live-p wind-C) (null use-same-frame)) ; buf C on its own
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
747 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
748 ;; buffer buf-C is seen in live wind-C
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
749 (select-window wind-C) ; must be displaying buf-C
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
750 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
751 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
752 (setq done-C t)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
753
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
754 (if use-same-frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
755 (let (wind-width-or-height) ; this affects 3way setups only
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
756 (if (and (eq frame-A frame-B) (frame-live-p frame-A))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
757 (select-frame frame-A)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
758 ;; avoid dedicated and non-splittable windows
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
759 (ediff-skip-unsuitable-frames))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
760 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
761 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
762 (setq wind-A (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
763
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
764 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
765 (setq wind-width-or-height
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
766 (/
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
767 (if (eq split-window-function 'split-window-vertically)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
768 (window-height wind-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
769 (window-width wind-A))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
770 3)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
771
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
772 (funcall split-window-function wind-width-or-height)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
773 (if (eq (selected-window) wind-A)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
774 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
775 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
776 (setq wind-B (selected-window))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
777
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
778 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
779 (progn
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
780 (funcall split-window-function) ; equally
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
781 (if (memq (selected-window) (list wind-A wind-B))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
782 (other-window 1))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
783 (switch-to-buffer buf-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
784 (setq wind-C (selected-window))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
785 (setq done-A t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
786 done-B t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
787 done-C t)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
788 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
789
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
790 (or done-A ; Buf A to be set in its own frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
791 ;;; or it was set before because use-same-frame = 1
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
792 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
793 ;; Buf-A was not set up yet as it wasn't visible,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
794 ;; and use-same-frame = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
795 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
796 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
797 (switch-to-buffer buf-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
798 (setq wind-A (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
799 ))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
800 (or done-B ; Buf B to be set in its own frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
801 ;;; or it was set before because use-same-frame = 1
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
802 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
803 ;; Buf-B was not set up yet as it wasn't visible,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
804 ;; and use-same-frame = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
805 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
806 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
807 (switch-to-buffer buf-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
808 (setq wind-B (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
809 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
810
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
811 (if three-way-comparison
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
812 (or done-C ; Buf C to be set in its own frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
813 ;;; or it was set before because use-same-frame = 1
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
814 (progn
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
815 ;; Buf-C was not set up yet as it wasn't visible,
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
816 ;; and use-same-frame = nil
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
817 (select-window orig-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
818 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
819 (switch-to-buffer buf-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
820 (setq wind-C (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
821 )))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
822
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
823 (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
824 (setq ediff-window-A wind-A
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
825 ediff-window-B wind-B
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
826 ediff-window-C wind-C)
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
827
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
828 (setq frame-A (window-frame ediff-window-A)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
829 designated-minibuffer-frame
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
830 (window-frame (minibuffer-window frame-A))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
831
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
832 ;; It is unlikely that we'll implement a version of ediff-windows that
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
833 ;; would compare 3 windows at once. So, we don't use buffer C here.
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
834 (if ediff-windows-job
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
835 (progn
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
836 (set-window-start wind-A wind-A-start)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
837 (set-window-start wind-B wind-B-start)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
838
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
839 (ediff-setup-control-frame control-buf designated-minibuffer-frame)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
840 ))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
841
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
842 ;; skip unsplittable frames and frames that have dedicated windows.
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
843 ;; create a new splittable frame if none is found
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
844 (defun ediff-skip-unsuitable-frames (&optional ok-unsplittable)
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
845 (if (ediff-window-display-p)
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
846 (let ((wind-frame (window-frame (selected-window)))
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
847 seen-windows)
33019
6306740f6938 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 31928
diff changeset
848 (while (and (not (memq (selected-window) seen-windows))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
849 (or
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
850 (ediff-frame-has-dedicated-windows wind-frame)
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
851 (ediff-frame-iconified-p wind-frame)
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
852 ;; skip small windows
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
853 (< (frame-height wind-frame)
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
854 (* 3 window-min-height))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
855 (if ok-unsplittable
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
856 nil
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
857 (ediff-frame-unsplittable-p wind-frame))))
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
858 ;; remember history
33019
6306740f6938 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 31928
diff changeset
859 (setq seen-windows (cons (selected-window) seen-windows))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
860 ;; try new window
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
861 (other-window 1 t)
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
862 (setq wind-frame (window-frame (selected-window)))
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
863 )
33019
6306740f6938 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 31928
diff changeset
864 (if (memq (selected-window) seen-windows)
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
865 ;; fed up, no appropriate frames
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
866 (setq wind-frame (make-frame '((unsplittable)))))
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
867
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
868 (select-frame wind-frame)
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
869 )))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
870
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
871 (defun ediff-frame-has-dedicated-windows (frame)
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
872 (let (ans)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
873 (walk-windows
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
874 (lambda (wind) (if (window-dedicated-p wind)
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
875 (setq ans t)))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
876 'ignore-minibuffer
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
877 frame)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
878 ans))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
879
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
880 ;; window is ok, if it is only one window on the frame, not counting the
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
881 ;; minibuffer, or none of the frame's windows is dedicated.
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
882 ;; The idea is that it is bad to destroy dedicated windows while creating an
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
883 ;; ediff window setup
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
884 (defun ediff-window-ok-for-display (wind)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
885 (and
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
886 (window-live-p wind)
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
887 (or
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
888 ;; only one window
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
889 (eq wind (next-window wind 'ignore-minibuffer (window-frame wind)))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
890 ;; none is dedicated
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
891 (not (ediff-frame-has-dedicated-windows (window-frame wind)))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
892 )))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
893
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
894 ;; Prepare or refresh control frame
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
895 (defun ediff-setup-control-frame (ctl-buffer designated-minibuffer-frame)
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
896 (let ((window-min-height 1)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
897 ctl-frame-iconified-p dont-iconify-ctl-frame deiconify-ctl-frame
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
898 ctl-frame old-ctl-frame lines
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
899 ;; user-grabbed-mouse
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
900 fheight fwidth adjusted-parameters)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
901
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
902 (ediff-with-current-buffer ctl-buffer
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
903 (ediff-cond-compile-for-xemacs-or-emacs
65856
d64aeb0dc54e 2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 64762
diff changeset
904 (when (featurep 'menubar) (set-buffer-menubar nil)) ; xemacs
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
905 nil ; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
906 )
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
907 ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
908 (run-hooks 'ediff-before-setup-control-frame-hook))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
909
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
910 (setq old-ctl-frame (ediff-with-current-buffer ctl-buffer ediff-control-frame))
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
911 (ediff-with-current-buffer ctl-buffer
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
912 (setq ctl-frame (if (frame-live-p old-ctl-frame)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
913 old-ctl-frame
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
914 (make-frame ediff-control-frame-parameters))
29977
ebf68f69b586 (ediff-setup-control-frame): Remove :box
Gerd Moellmann <gerd@gnu.org>
parents: 27899
diff changeset
915 ediff-control-frame ctl-frame)
33050
84f89d78d87a 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 33019
diff changeset
916 ;; protect against undefined face-attribute
36857
f6386773ce30 2001-03-17 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 33842
diff changeset
917 (condition-case nil
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
918 (ediff-cond-compile-for-xemacs-or-emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
919 nil ; xemacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
920 (when (face-attribute 'mode-line :box)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
921 (set-face-attribute 'mode-line ctl-frame :box nil))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
922 )
33050
84f89d78d87a 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 33019
diff changeset
923 (error))
84f89d78d87a 2000-10-29 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 33019
diff changeset
924 )
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
925
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
926 (setq ctl-frame-iconified-p (ediff-frame-iconified-p ctl-frame))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
927 (select-frame ctl-frame)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
928 (if (window-dedicated-p (selected-window))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
929 ()
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
930 (delete-other-windows)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
931 (switch-to-buffer ctl-buffer))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
932
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
933 ;; must be before ediff-setup-control-buffer
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
934 ;; just a precaution--we should be in ctl-buffer already
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
935 (ediff-with-current-buffer ctl-buffer
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
936 (make-local-variable 'frame-title-format)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
937 (make-local-variable 'frame-icon-title-format) ; XEmacs
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
938 (make-local-variable 'icon-title-format)) ; Emacs
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
939
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
940 (ediff-setup-control-buffer ctl-buffer)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
941 (setq dont-iconify-ctl-frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
942 (not (string= ediff-help-message ediff-brief-help-message)))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
943 (setq deiconify-ctl-frame
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
944 (and (eq this-command 'ediff-toggle-help)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
945 dont-iconify-ctl-frame))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
946
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
947 ;; 1 more line for the modeline
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
948 (setq lines (1+ (count-lines (point-min) (point-max)))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
949 fheight lines
16766
beb94a5271e2 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16248
diff changeset
950 fwidth (max (+ (ediff-help-message-line-length) 2)
beb94a5271e2 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16248
diff changeset
951 (ediff-compute-toolbar-width))
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
952 adjusted-parameters
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
953 (list
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
954 ;; possibly change surrogate minibuffer
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
955 (cons 'minibuffer
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
956 (minibuffer-window
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
957 designated-minibuffer-frame))
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
958 (cons 'width fwidth)
67202
3423d9dbb1b7 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 67117
diff changeset
959 (cons 'height fheight)
3423d9dbb1b7 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 67117
diff changeset
960 (cons 'user-position t)
3423d9dbb1b7 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 67117
diff changeset
961 ))
47846
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
962
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
963 ;; adjust autoraise
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
964 (setq adjusted-parameters
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
965 (cons (if ediff-use-long-help-message
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
966 '(auto-raise . nil)
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
967 '(auto-raise . t))
8e6ed5c1f142 2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 46694
diff changeset
968 adjusted-parameters))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
969
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
970 ;; In XEmacs, buffer menubar needs to be killed before frame parameters
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
971 ;; are changed.
21940
f7e788ea680b new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 19047
diff changeset
972 (if (ediff-has-toolbar-support-p)
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
973 (ediff-cond-compile-for-xemacs-or-emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
974 (progn ; xemacs
43220
69c91aaa067a 2002-02-10 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42602
diff changeset
975 (if (ediff-has-gutter-support-p)
69c91aaa067a 2002-02-10 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42602
diff changeset
976 (set-specifier top-gutter (list ctl-frame nil)))
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
977 (sit-for 0)
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
978 (set-specifier top-toolbar-height (list ctl-frame 0))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
979 ;;(set-specifier bottom-toolbar-height (list ctl-frame 0))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
980 (set-specifier left-toolbar-width (list ctl-frame 0))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
981 (set-specifier right-toolbar-width (list ctl-frame 0))
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
982 )
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
983 nil ; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
984 )
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
985 )
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
986
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
987 ;; Under OS/2 (emx) we have to call modify frame parameters twice, in order
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
988 ;; to make sure that at least once we do it for non-iconified frame. If
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
989 ;; appears that in the OS/2 port of Emacs, one can't modify frame
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
990 ;; parameters of iconified frames. As a precaution, we do likewise for
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
991 ;; windows-nt.
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
992 (if (memq system-type '(emx windows-nt windows-95))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
993 (modify-frame-parameters ctl-frame adjusted-parameters))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
994
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
995 ;; make or zap toolbar (if not requested)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
996 (ediff-make-bottom-toolbar ctl-frame)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
997
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
998 (goto-char (point-min))
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
999
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1000 (modify-frame-parameters ctl-frame adjusted-parameters)
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1001 (make-frame-visible ctl-frame)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1002
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
1003 ;; This works around a bug in 19.25 and earlier. There, if frame gets
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1004 ;; iconified, the current buffer changes to that of the frame that
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1005 ;; becomes exposed as a result of this iconification.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1006 ;; So, we make sure the current buffer doesn't change.
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1007 (select-frame ctl-frame)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1008 (ediff-refresh-control-frame)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1009
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1010 (cond ((and ediff-prefer-iconified-control-frame
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1011 (not ctl-frame-iconified-p) (not dont-iconify-ctl-frame))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1012 (iconify-frame ctl-frame))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1013 ((or deiconify-ctl-frame (not ctl-frame-iconified-p))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1014 (raise-frame ctl-frame)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1015
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1016 (set-window-dedicated-p (selected-window) t)
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1017
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
1018 ;; Now move the frame. We must do it separately due to an obscure bug in
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1019 ;; XEmacs
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1020 (modify-frame-parameters
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1021 ctl-frame
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1022 (funcall ediff-control-frame-position-function ctl-buffer fwidth fheight))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1023
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1024 ;; synchronize so the cursor will move to control frame
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1025 ;; per RMS suggestion
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1026 (if (ediff-window-display-p)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1027 (let ((count 7))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1028 (sit-for .1)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1029 (while (and (not (frame-visible-p ctl-frame)) (> count 0))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1030 (setq count (1- count))
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1031 (sit-for .3))))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1032
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1033 (or (ediff-frame-iconified-p ctl-frame)
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1034 ;; don't warp the mouse, unless ediff-grab-mouse = t
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1035 (ediff-reset-mouse ctl-frame
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1036 (or (eq this-command 'ediff-quit)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1037 (not (eq ediff-grab-mouse t)))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1038
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1039 (if ediff-xemacs-p
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1040 (ediff-with-current-buffer ctl-buffer
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1041 (ediff-cond-compile-for-xemacs-or-emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1042 (make-local-hook 'select-frame-hook) ; xemacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1043 nil ; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1044 )
42288
3ce98f3e0608 2001-12-24 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 38422
diff changeset
1045 (add-hook
3ce98f3e0608 2001-12-24 Michael Kifer <kifer@cs.sunysb.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 38422
diff changeset
1046 'select-frame-hook 'ediff-xemacs-select-frame-hook nil 'local)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1047 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1048
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1049 (ediff-with-current-buffer ctl-buffer
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1050 (run-hooks 'ediff-after-setup-control-frame-hook))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1051 ))
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1052
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1053
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1054 (defun ediff-destroy-control-frame (ctl-buffer)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1055 (ediff-with-current-buffer ctl-buffer
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1056 (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1057 (let ((ctl-frame ediff-control-frame))
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1058 (ediff-cond-compile-for-xemacs-or-emacs
65856
d64aeb0dc54e 2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 64762
diff changeset
1059 (when (featurep 'menubar)
d64aeb0dc54e 2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 64762
diff changeset
1060 (set-buffer-menubar default-menubar)) ; xemacs
42602
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1061 nil ; emacs
633233bf2bbf 2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 42288
diff changeset
1062 )
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1063 (setq ediff-control-frame nil)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1064 (delete-frame ctl-frame)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1065 )))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1066 (ediff-skip-unsuitable-frames)
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1067 ;;(ediff-reset-mouse nil)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1068 )
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1069
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1070
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1071 ;; finds a good place to clip control frame
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1072 (defun ediff-make-frame-position (ctl-buffer ctl-frame-width ctl-frame-height)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1073 (ediff-with-current-buffer ctl-buffer
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1074 (let* ((frame-A (window-frame ediff-window-A))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1075 (frame-A-parameters (frame-parameters frame-A))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1076 (frame-A-top (eval (cdr (assoc 'top frame-A-parameters))))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1077 (frame-A-left (eval (cdr (assoc 'left frame-A-parameters))))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1078 (frame-A-width (frame-width frame-A))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1079 (ctl-frame ediff-control-frame)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1080 horizontal-adjustment upward-adjustment
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1081 ctl-frame-top ctl-frame-left)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1082
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1083 ;; Multiple control frames are clipped based on the value of
26263
4f315ca65976 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 21940
diff changeset
1084 ;; ediff-control-buffer-number. This is done in order not to obscure
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1085 ;; other active control panels.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1086 (setq horizontal-adjustment (* 2 ediff-control-buffer-number)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1087 upward-adjustment (* -14 ediff-control-buffer-number))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1088
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1089 (setq ctl-frame-top
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1090 (- frame-A-top upward-adjustment ediff-control-frame-upward-shift)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1091 ctl-frame-left
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1092 (+ frame-A-left
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1093 (if ediff-use-long-help-message
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1094 (* (ediff-frame-char-width ctl-frame)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1095 (+ ediff-wide-control-frame-rightward-shift
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1096 horizontal-adjustment))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1097 (- (* frame-A-width (ediff-frame-char-width frame-A))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1098 (* (ediff-frame-char-width ctl-frame)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1099 (+ ctl-frame-width
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1100 ediff-narrow-control-frame-leftward-shift
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1101 horizontal-adjustment))))))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1102 (setq ctl-frame-top
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1103 (min ctl-frame-top
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1104 (- (ediff-display-pixel-height)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1105 (* 2 ctl-frame-height
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1106 (ediff-frame-char-height ctl-frame))))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1107 ctl-frame-left
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1108 (min ctl-frame-left
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1109 (- (ediff-display-pixel-width)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1110 (* ctl-frame-width (ediff-frame-char-width ctl-frame)))))
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1111 ;; keep ctl frame within the visible bounds
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1112 (setq ctl-frame-top (max ctl-frame-top 1)
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1113 ctl-frame-left (max ctl-frame-left 1))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1114
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1115 (list (cons 'top ctl-frame-top)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1116 (cons 'left ctl-frame-left))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1117 )))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1118
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1119 (defun ediff-xemacs-select-frame-hook ()
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1120 (if (and (equal (selected-frame) ediff-control-frame)
14582
c768f6d7daaa *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14169
diff changeset
1121 (not ediff-use-long-help-message))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1122 (raise-frame ediff-control-frame)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1123
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1124 (defun ediff-make-wide-display ()
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1125 "Construct an alist of parameters for the wide display.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1126 Saves the old frame parameters in `ediff-wide-display-orig-parameters'.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1127 The frame to be resized is kept in `ediff-wide-display-frame'.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1128 This function modifies only the left margin and the width of the display.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1129 It assumes that it is called from within the control buffer."
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1130 (if (not (fboundp 'ediff-display-pixel-width))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1131 (error "Can't determine display width"))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1132 (let* ((frame-A (window-frame ediff-window-A))
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1133 (frame-A-params (frame-parameters frame-A))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1134 (cw (ediff-frame-char-width frame-A))
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1135 (wd (- (/ (ediff-display-pixel-width) cw) 5)))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1136 (setq ediff-wide-display-orig-parameters
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1137 (list (cons 'left (max 0 (eval (cdr (assoc 'left frame-A-params)))))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1138 (cons 'width (cdr (assoc 'width frame-A-params))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1139 ediff-wide-display-frame frame-A)
67202
3423d9dbb1b7 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 67117
diff changeset
1140 (modify-frame-parameters
3423d9dbb1b7 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 67117
diff changeset
1141 frame-A `((left . ,cw) (width . ,wd) (user-position t)))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1142
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1143
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1144 ;; Revise the mode line to display which difference we have selected
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1145 ;; Also resets modelines of buffers A/B, since they may be clobbered by
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1146 ;; anothe invocations of Ediff.
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1147 (defun ediff-refresh-mode-lines ()
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1148 (let (buf-A-state-diff buf-B-state-diff buf-C-state-diff buf-C-state-merge)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1149
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1150 (if (ediff-valid-difference-p)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1151 (setq
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1152 buf-C-state-diff (ediff-get-state-of-diff ediff-current-difference 'C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1153 buf-C-state-merge (ediff-get-state-of-merge ediff-current-difference)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1154 buf-A-state-diff (ediff-get-state-of-diff ediff-current-difference 'A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1155 buf-B-state-diff (ediff-get-state-of-diff ediff-current-difference 'B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1156 buf-A-state-diff (if buf-A-state-diff
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1157 (format "[%s] " buf-A-state-diff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1158 "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1159 buf-B-state-diff (if buf-B-state-diff
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1160 (format "[%s] " buf-B-state-diff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1161 "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1162 buf-C-state-diff (if (and (ediff-buffer-live-p ediff-buffer-C)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1163 (or buf-C-state-diff buf-C-state-merge))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1164 (format "[%s%s%s] "
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1165 (or buf-C-state-diff "")
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1166 (if buf-C-state-merge
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1167 (concat " " buf-C-state-merge)
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1168 "")
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1169 (if (ediff-get-state-of-ancestor
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1170 ediff-current-difference)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1171 " AncestorEmpty"
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1172 "")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1173 )
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1174 ""))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1175 (setq buf-A-state-diff ""
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1176 buf-B-state-diff ""
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1177 buf-C-state-diff ""))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1178
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1179 ;; control buffer format
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1180 (setq mode-line-format
18054
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1181 (if (ediff-narrow-control-frame-p)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1182 (list " " mode-line-buffer-identification)
0b9d9cbf3cd4 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 16766
diff changeset
1183 (list "-- " mode-line-buffer-identification " Quick Help")))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1184 ;; control buffer id
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1185 (setq mode-line-buffer-identification
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1186 (if (ediff-narrow-control-frame-p)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1187 (ediff-make-narrow-control-buffer-id 'skip-name)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1188 (ediff-make-wide-control-buffer-id)))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1189 ;; Force mode-line redisplay
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1190 (force-mode-line-update)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1191
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1192 (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1193 (ediff-refresh-control-frame))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1194
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1195 (ediff-with-current-buffer ediff-buffer-A
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1196 (setq ediff-diff-status buf-A-state-diff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1197 (ediff-strip-mode-line-format)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1198 (setq mode-line-format
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1199 (list " A: " 'ediff-diff-status mode-line-format))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1200 (force-mode-line-update))
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1201 (ediff-with-current-buffer ediff-buffer-B
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1202 (setq ediff-diff-status buf-B-state-diff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1203 (ediff-strip-mode-line-format)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1204 (setq mode-line-format
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1205 (list " B: " 'ediff-diff-status mode-line-format))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1206 (force-mode-line-update))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1207 (if ediff-3way-job
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1208 (ediff-with-current-buffer ediff-buffer-C
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1209 (setq ediff-diff-status buf-C-state-diff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1210 (ediff-strip-mode-line-format)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1211 (setq mode-line-format
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1212 (list " C: " 'ediff-diff-status mode-line-format))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1213 (force-mode-line-update)))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1214 (if (ediff-buffer-live-p ediff-ancestor-buffer)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1215 (ediff-with-current-buffer ediff-ancestor-buffer
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1216 (ediff-strip-mode-line-format)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1217 ;; we keep the second dummy string in the mode line format of the
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1218 ;; ancestor, since for other buffers Ediff prepends 2 strings and
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1219 ;; ediff-strip-mode-line-format expects that.
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1220 (setq mode-line-format
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1221 (list " Ancestor: "
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1222 (cond ((not (stringp buf-C-state-merge))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1223 "")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1224 ((string-match "prefer-A" buf-C-state-merge)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1225 "[=diff(B)] ")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1226 ((string-match "prefer-B" buf-C-state-merge)
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1227 "[=diff(A)] ")
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1228 (t ""))
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1229 mode-line-format))))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1230 ))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1231
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1232
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1233 (defun ediff-refresh-control-frame ()
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1234 (if ediff-emacs-p
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1235 ;; set frame/icon titles for Emacs
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1236 (modify-frame-parameters
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1237 ediff-control-frame
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1238 (list (cons 'title (ediff-make-base-title))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1239 (cons 'icon-name (ediff-make-narrow-control-buffer-id))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1240 ))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1241 ;; set frame/icon titles for XEmacs
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1242 (setq frame-title-format (ediff-make-base-title)
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1243 frame-icon-title-format (ediff-make-narrow-control-buffer-id))
13132
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1244 ;; force an update of the frame title
7ed272c3c177 (ediff-make-frame-position): fixed bugs.
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 12559
diff changeset
1245 (modify-frame-parameters ediff-control-frame '(()))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1246
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1247
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1248 (defun ediff-make-narrow-control-buffer-id (&optional skip-name)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1249 (concat
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1250 (if skip-name
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1251 " "
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1252 (ediff-make-base-title))
26934
Dave Love <fx@gnu.org>
parents: 26263
diff changeset
1253 (cond ((< ediff-current-difference 0)
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1254 (format " _/%d" ediff-number-of-differences))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1255 ((>= ediff-current-difference ediff-number-of-differences)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1256 (format " $/%d" ediff-number-of-differences))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1257 (t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1258 (format " %d/%d"
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1259 (1+ ediff-current-difference)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1260 ediff-number-of-differences)))))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1261
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1262 (defun ediff-make-base-title ()
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1263 (concat
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1264 (cdr (assoc 'name ediff-control-frame-parameters))
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1265 ediff-control-buffer-suffix))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1266
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1267 (defun ediff-make-wide-control-buffer-id ()
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1268 (cond ((< ediff-current-difference 0)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1269 (list (format "%%b At start of %d diffs"
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1270 ediff-number-of-differences)))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1271 ((>= ediff-current-difference ediff-number-of-differences)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1272 (list (format "%%b At end of %d diffs"
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1273 ediff-number-of-differences)))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1274 (t
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1275 (list (format "%%b diff %d of %d"
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1276 (1+ ediff-current-difference)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1277 ediff-number-of-differences)))))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1278
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1279
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1280
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1281 ;; If buff is not live, return nil
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1282 (defun ediff-get-visible-buffer-window (buff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1283 (if (ediff-buffer-live-p buff)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1284 (if ediff-xemacs-p
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1285 (get-buffer-window buff t)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1286 (get-buffer-window buff 'visible))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1287
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1288
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1289 ;;; Functions to decide when to redraw windows
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1290
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1291 (defun ediff-keep-window-config (control-buf)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1292 (and (eq control-buf (current-buffer))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1293 (/= (buffer-size) 0)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1294 (ediff-with-current-buffer control-buf
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1295 (let ((ctl-wind ediff-control-window)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1296 (A-wind ediff-window-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1297 (B-wind ediff-window-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1298 (C-wind ediff-window-C))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48034
diff changeset
1299
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1300 (and
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1301 (ediff-window-visible-p A-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1302 (ediff-window-visible-p B-wind)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1303 ;; if buffer C is defined then take it into account
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1304 (or (not ediff-3way-job)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1305 (ediff-window-visible-p C-wind))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1306 (eq (window-buffer A-wind) ediff-buffer-A)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1307 (eq (window-buffer B-wind) ediff-buffer-B)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1308 (or (not ediff-3way-job)
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1309 (eq (window-buffer C-wind) ediff-buffer-C))
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1310 (string= ediff-window-config-saved
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1311 (format "%S%S%S%S%S%S%S"
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1312 ctl-wind A-wind B-wind C-wind
12084
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1313 ediff-split-window-function
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1314 (ediff-multiframe-setup-p)
4a13777b153b (ediff-make-control-frame): optimized for display.
Karl Heuer <kwzh@gnu.org>
parents: 12020
diff changeset
1315 ediff-wide-display-p)))))))
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1316
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1317
68997
6169b51037af 2006-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 68651
diff changeset
1318 (provide 'ediff-wind)
6169b51037af 2006-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 68651
diff changeset
1319
6169b51037af 2006-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 68651
diff changeset
1320
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1321 ;;; Local Variables:
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1322 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
19047
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1323 ;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
f90d40b0bff5 new version
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 18839
diff changeset
1324 ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
15480
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1325 ;;; End:
43a3308fcf61 *** empty log message ***
Michael Kifer <kifer@cs.stonybrook.edu>
parents: 14582
diff changeset
1326
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49588
diff changeset
1327 ;;; arch-tag: 73d9a5d7-eed7-4d9c-8b4b-21d5d78eb597
11042
57316020d271 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1328 ;;; ediff-wind.el ends here