annotate lisp/master.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1 ;;; master.el --- make a buffer the master over another buffer
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
74440
b1795bf98801 Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 64762
diff changeset
4 ;; Free Software Foundation, Inc.
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6 ;; Author: Alex Schroeder <alex@gnu.org>
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7 ;; Maintainer: Alex Schroeder <alex@gnu.org>
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8 ;; Version: 1.0.2
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
9 ;; Keywords: comm
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
10
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
11 ;; This file is part of GNU Emacs.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; GNU Emacs is free software: you can redistribute it and/or modify
39783
369d1b70be7c Use the usual disclaimer.
Gerd Moellmann <gerd@gnu.org>
parents: 39781
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
16 ;; (at your option) any later version.
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17
39783
369d1b70be7c Use the usual disclaimer.
Gerd Moellmann <gerd@gnu.org>
parents: 39781
diff changeset
18 ;; GNU Emacs is distributed in the hope that it will be useful,
369d1b70be7c Use the usual disclaimer.
Gerd Moellmann <gerd@gnu.org>
parents: 39781
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
369d1b70be7c Use the usual disclaimer.
Gerd Moellmann <gerd@gnu.org>
parents: 39781
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
369d1b70be7c Use the usual disclaimer.
Gerd Moellmann <gerd@gnu.org>
parents: 39781
diff changeset
21 ;; GNU General Public License for more details.
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
22
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
25
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
27
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28 ;; master-mode is a minor mode which enables you to scroll another
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
29 ;; buffer (the slave) without leaving your current buffer (the master).
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 ;; It can be used by sql.el, for example: The SQL buffer is the master
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 ;; and its SQLi buffer is the slave. This allows you to scroll the SQLi
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 ;; buffer containing the output from the SQL buffer containing the
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
34 ;; commands.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
35 ;;
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
36 ;; This is how to use sql.el and master.el together: The variable
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37 ;; sql-buffer contains the slave buffer. It is a local variable in the
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
38 ;; SQL buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 ;;
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40 ;; (add-hook 'sql-mode-hook
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
41 ;; (function (lambda ()
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 ;; (master-mode t)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43 ;; (master-set-slave sql-buffer))))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
44 ;; (add-hook 'sql-set-sqli-hook
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 ;; (function (lambda ()
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 ;; (master-set-slave sql-buffer))))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 ;;; Thanks to all the people who helped me out:
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 ;;
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50 ;; Rob Riepel <networking.stanford.edu>
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52 ;;; History:
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42319
diff changeset
53 ;;
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
54
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
55 ;;; Code:
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
56
61273
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
57 (defgroup master nil
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
58 "Support for master/slave relationships between buffers."
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
59 :version "22.1"
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
60 :group 'convenience)
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
61
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
62 ;; Variables that don't need initialization.
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42319
diff changeset
63
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
64 (defvar master-of nil
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
65 "Slave buffer of the current buffer. See `master-mode'.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
66 You can set this variable using `master-set-slave'.")
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
67
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68 (defvar master-set-slave-hook nil
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69 "Hook run after the slave is changed using \\[master-set-slave].")
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
70
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 ;;; Define master mode.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
72
39781
38b6f34f98dd (master-mode): Use define-minor-mode instead
Gerd Moellmann <gerd@gnu.org>
parents: 39780
diff changeset
73 ;;;###autoload
38b6f34f98dd (master-mode): Use define-minor-mode instead
Gerd Moellmann <gerd@gnu.org>
parents: 39780
diff changeset
74 (define-minor-mode master-mode
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
75 "Toggle Master mode.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
76 With no argument, this command toggles the mode.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
77 Non-null prefix argument turns on the mode.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
78 Null prefix argument turns off the mode.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
79
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
80 When Master mode is enabled, you can scroll the slave buffer using the
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
81 following commands:
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 \\{master-mode-map}
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 The slave buffer is stored in the buffer-local variable `master-of'.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86 You can set this variable using `master-set-slave'. You can show
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
87 yourself the value of `master-of' by calling `master-show-slave'."
61273
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
88 :group 'master
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
89 :keymap
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
90 '(("\C-c\C-n" . master-says-scroll-up)
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
91 ("\C-c\C-p" . master-says-scroll-down)
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
92 ("\C-c<" . master-says-beginning-of-buffer)
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
93 ("\C-c>" . master-says-end-of-buffer)
1e74e0c38af6 Don't require easy-mmode.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
94 ("\C-c\C-l" . master-says-recenter)))
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
95
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
96 ;; Initialize Master mode by setting a slave buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
97
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
98 (defun master-set-slave (buffer)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
99 "Makes BUFFER the slave of the current buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 Use \\[master-mode] to toggle control of the slave buffer."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101 (interactive "bSlave: ")
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102 (make-local-variable 'master-of)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103 (setq master-of buffer)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 (run-hooks 'master-set-slave-hook))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106 (defun master-show-slave ()
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
107 "Displays a message with the name of the slave buffer."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
108 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
109 (message "This buffer is the master of %s. Master-mode is %S."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
110 (or master-of "none")
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
111 master-mode))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
112
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
113
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
114
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
115 ;;; Functions that the master buffer can call for the slave buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
116
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 (defun master-says-scroll-up (&optional arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 "Display and scroll the slave buffer up.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 See `scroll-up'."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
120 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
121 (master-says 'scroll-up arg))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
122
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
123 (defun master-says-scroll-down (&optional arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124 "Display and scroll the slave buffer down.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
125 See `scroll-down'."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
126 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127 (master-says 'scroll-down arg))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
129 (defun master-says-beginning-of-buffer (&optional arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
130 "Display and move to the beginning of the slave buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
131 See `beginning-of-buffer'."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 (master-says 'beginning-of-buffer arg))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
134
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 (defun master-says-end-of-buffer (&optional arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136 "Display and move to the end of the slave buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 See `end-of-buffer'."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
138 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139 (master-says 'end-of-buffer arg))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 (defun master-says-recenter (&optional arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 "Recenter the slave buffer.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
143 See `recenter'."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 (master-says 'recenter arg))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
147 ;; The master function doing the stuff.
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
149 (defun master-says (&optional command arg)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 "Display slave buffer and execute COMMAND with ARG in its window."
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 (interactive)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 (if (null (buffer-live-p (get-buffer master-of)))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153 (error "Slave buffer has disappeared")
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
154 (let ((window (selected-window)))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
155 (if (not (eq (window-buffer window) (get-buffer master-of)))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
156 (switch-to-buffer-other-window master-of))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
157 (if command (condition-case nil (apply command arg) (error nil)))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
158 (select-window window))))
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160 (provide 'master)
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
161
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
162 ;; arch-tag: dca08daa-8127-45ae-b77e-b135160dce98
39780
20d3b87f7a2d *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
163 ;;; master.el ends here