Mercurial > emacs
annotate lisp/view.el @ 107794:c4daeb1eaaf1
Fix default-directory for vc-root-diff.
* vc.el (vc-root-diff): Bind default-directory to the root
directory for the diff command.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Tue, 06 Apr 2010 21:14:56 -0700 |
parents | 904ccd8f2acb |
children | 1721e4658521 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
33423
diff
changeset
|
1 ;;; view.el --- peruse file or buffer without editing |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
3 ;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001, 2002, |
106815 | 4 ;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
840
113281b361ec
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
5 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
6 ;; Author: K. Shane Hartman |
18271 | 7 ;; Maintainer: Inge Frick <inge@nada.kth.se> |
39117 | 8 ;; Keywords: files |
44 | 9 |
10 ;; This file is part of GNU Emacs. | |
11 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
12 ;; GNU Emacs is free software: you can redistribute it and/or modify |
44 | 13 ;; 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
|
14 ;; 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
|
15 ;; (at your option) any later version. |
44 | 16 |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; 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
|
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
44 | 24 |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
25 ;;; Commentary: |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
26 |
12856 | 27 ;; This package provides the `view' minor mode documented in the Emacs |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
28 ;; user's manual. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
29 ;; View mode entry and exit is done through the functions view-mode-enter |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
30 ;; and view-mode-exit. Use these functions to enter or exit view-mode from |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
31 ;; emacs lisp programs. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
32 ;; We use both view- and View- as prefix for symbols. View- is used as |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
33 ;; prefix for commands that have a key binding. view- is used for commands |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
34 ;; without key binding. The purpose of this is to make it easier for a |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
35 ;; user to use command name completion. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
36 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
37 ;;; Suggested key bindings: |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
38 ;; |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
39 ;; (define-key ctl-x-4-map "v" 'view-file-other-window) ; ^x4v |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
40 ;; (define-key ctl-x-5-map "v" 'view-file-other-frame) ; ^x5v |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
41 ;; |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
42 ;; You could also bind view-file, view-buffer, view-buffer-other-window and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
43 ;; view-buffer-other-frame to keys. |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
44 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
45 ;;; Code: |
44 | 46 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
47 (defgroup view nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
48 "Peruse file or buffer without editing." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
49 :link '(function-link view-mode) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
50 :link '(custom-manual "(emacs)Misc File Ops") |
107378
904ccd8f2acb
Reorganize Custom groups.
Chong Yidong <cyd@stupidchicken.com>
parents:
106815
diff
changeset
|
51 :group 'wp) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
52 |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
53 (defcustom view-highlight-face 'highlight |
100171 | 54 "The face used for highlighting the match found by View mode search." |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
55 :type 'face |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
56 :group 'view) |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
57 |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
58 ;; `view-mode-auto-exit' is replaced by the following option variable which |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
59 ;; only says if scrolling past buffer end should leave view mode or not, it |
18250 | 60 ;; doesn't say if leaving view mode should restore windows or not. The latter |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
61 ;; is now controlled by the presence of a value in `view-return-to-alist'. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
62 (defcustom view-scroll-auto-exit nil |
100171 | 63 "Non-nil means scrolling past the end of buffer exits View mode. |
77716
c8be59c5a8b1
(view-inhibit-help-message): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
76780
diff
changeset
|
64 A value of nil means attempting to scroll past the end of the buffer, |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
65 only rings the bell and gives a message on how to leave." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
66 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
67 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
68 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
69 (defcustom view-try-extend-at-buffer-end nil |
100171 | 70 "Non-nil means try to load more of file when reaching end of buffer. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
71 This variable is mainly intended to be temporarily set to non-nil by |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
72 the F command in view-mode, but you can set it to t if you want the action |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
73 for all scroll commands in view mode." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
74 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
75 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
76 |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
77 ;;;###autoload |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
78 (defcustom view-remove-frame-by-deleting t |
100171 | 79 "Determine how View mode removes a frame no longer needed. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
80 If nil, make an icon of the frame. If non-nil, delete the frame." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
81 :type 'boolean |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
82 :group 'view |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
83 ;; Changed the default of this to t for Emacs 23. Users consider |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
84 ;; frame iconification annoying. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
85 :version "23.1") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
86 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
87 (defcustom view-exits-all-viewing-windows nil |
100171 | 88 "Non-nil means restore all windows used to view buffer. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
89 Commands that restore windows when finished viewing a buffer, apply to all |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
90 windows that display the buffer and have restore information in |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
91 `view-return-to-alist'. |
21187
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
92 If `view-exits-all-viewing-windows' is nil, only the selected window is |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
93 considered for restoring." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
94 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
95 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
96 |
67203
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
97 (defcustom view-inhibit-help-message nil |
100171 | 98 "Non-nil inhibits the help message shown upon entering View mode." |
67203
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
99 :type 'boolean |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
100 :group 'view |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
101 :version "22.1") |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
102 |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
103 ;;;###autoload |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
104 (defvar view-mode nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
105 "Non-nil if View mode is enabled. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
106 Don't change this variable directly, you must change it by one of the |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
107 functions that enable or disable view mode.") |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
108 ;;;###autoload |
12856 | 109 (make-variable-buffer-local 'view-mode) |
110 | |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
111 (defcustom view-mode-hook nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
112 "Normal hook run when starting to view a buffer or file." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
113 :type 'hook |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
114 :group 'view) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
115 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
116 (defvar view-old-buffer-read-only nil) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
117 (make-variable-buffer-local 'view-old-buffer-read-only) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
118 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
119 (defvar view-old-Helper-return-blurb) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
120 (make-variable-buffer-local 'view-old-Helper-return-blurb) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
121 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
122 (defvar view-page-size nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
123 "Default number of lines to scroll by View page commands. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
124 If nil that means use the window size.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
125 (make-variable-buffer-local 'view-page-size) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
126 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
127 (defvar view-half-page-size nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
128 "Default number of lines to scroll by View half page commands. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
129 If nil that means use half the window size.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
130 (make-variable-buffer-local 'view-half-page-size) |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
131 |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
132 (defvar view-last-regexp nil) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
133 (make-variable-buffer-local 'view-last-regexp) ; Global is better??? |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
134 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
135 (defvar view-return-to-alist nil |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
136 "What to do with used windows and where to go when finished viewing buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
137 This is local in each buffer being viewed. |
21187
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
138 It is added to by `view-mode-enter' when starting to view a buffer and |
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
139 subtracted from by `view-mode-exit' when finished viewing the buffer. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
140 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
141 See RETURN-TO-ALIST argument of function `view-mode-exit' for the format of |
18250 | 142 `view-return-to-alist'.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
143 (make-variable-buffer-local 'view-return-to-alist) |
55014
202b0dc516a5
(view-return-to-alist): Mark it permanent local.
Richard M. Stallman <rms@gnu.org>
parents:
53845
diff
changeset
|
144 (put 'view-return-to-alist 'permanent-local t) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
145 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
146 (defvar view-exit-action nil |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
147 "If non-nil, a function with one argument (a buffer) called when finished viewing. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
148 Commands like \\[view-file] and \\[view-file-other-window] may |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
149 set this to bury or kill the viewed buffer. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
150 Observe that the buffer viewed might not appear in any window at |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
151 the time this function is called.") |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
152 (make-variable-buffer-local 'view-exit-action) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
153 |
19229
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
154 (defvar view-no-disable-on-exit nil |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
155 "If non-nil, View mode \"exit\" commands don't actually disable View mode. |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
156 Instead, these commands just switch buffers or windows. |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
157 This is set in certain buffers by specialized features such as help commands |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
158 that use View mode automatically.") |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
159 |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
160 (defvar view-overlay nil |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
161 "Overlay used to display where a search operation found its match. |
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
162 This is local in each buffer, once it is used.") |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
163 (make-variable-buffer-local 'view-overlay) |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
164 |
38758
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
165 (unless (assq 'view-mode minor-mode-alist) |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
166 (setq minor-mode-alist |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
167 (cons (list 'view-mode |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
168 (propertize " View" |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
169 'local-map mode-line-minor-mode-keymap |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
170 'help-echo "mouse-3: minor mode menu")) |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
171 minor-mode-alist))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
172 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
173 ;; Define keymap inside defvar to make it easier to load changes. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
174 ;; Some redundant "less"-like key bindings below have been commented out. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
175 (defvar view-mode-map |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
176 (let ((map (make-sparse-keymap))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
177 (define-key map "C" 'View-kill-and-leave) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
178 (define-key map "c" 'View-leave) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
179 (define-key map "Q" 'View-quit-all) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
180 (define-key map "E" 'View-exit-and-edit) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
181 ;; (define-key map "v" 'View-exit) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
182 (define-key map "e" 'View-exit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
183 (define-key map "q" 'View-quit) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
184 ;; (define-key map "N" 'View-search-last-regexp-backward) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
185 (define-key map "p" 'View-search-last-regexp-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
186 (define-key map "n" 'View-search-last-regexp-forward) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
187 ;; (define-key map "?" 'View-search-regexp-backward) ; Less does this. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
188 (define-key map "\\" 'View-search-regexp-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
189 (define-key map "/" 'View-search-regexp-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
190 (define-key map "r" 'isearch-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
191 (define-key map "s" 'isearch-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
192 (define-key map "m" 'point-to-register) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
193 (define-key map "'" 'register-to-point) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
194 (define-key map "x" 'exchange-point-and-mark) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
195 (define-key map "@" 'View-back-to-mark) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
196 (define-key map "." 'set-mark-command) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
197 (define-key map "%" 'View-goto-percent) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
198 ;; (define-key map "G" 'View-goto-line-last) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
199 (define-key map "g" 'View-goto-line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
200 (define-key map "=" 'what-line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
201 (define-key map "F" 'View-revert-buffer-scroll-page-forward) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
202 ;; (define-key map "k" 'View-scroll-line-backward) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
203 (define-key map "y" 'View-scroll-line-backward) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
204 ;; (define-key map "j" 'View-scroll-line-forward) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
205 (define-key map "\n" 'View-scroll-line-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
206 (define-key map "\r" 'View-scroll-line-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
207 (define-key map "u" 'View-scroll-half-page-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
208 (define-key map "d" 'View-scroll-half-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
209 (define-key map "z" 'View-scroll-page-forward-set-page-size) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
210 (define-key map "w" 'View-scroll-page-backward-set-page-size) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
211 ;; (define-key map "b" 'View-scroll-page-backward) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
212 (define-key map "\C-?" 'View-scroll-page-backward) |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
213 ;; (define-key map "f" 'View-scroll-page-forward) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
214 (define-key map " " 'View-scroll-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
215 (define-key map "o" 'View-scroll-to-buffer-end) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
216 (define-key map ">" 'end-of-buffer) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
217 (define-key map "<" 'beginning-of-buffer) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
218 (define-key map "-" 'negative-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
219 (define-key map "9" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
220 (define-key map "8" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
221 (define-key map "7" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
222 (define-key map "6" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
223 (define-key map "5" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
224 (define-key map "4" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
225 (define-key map "3" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
226 (define-key map "2" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
227 (define-key map "1" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
228 (define-key map "0" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
229 (define-key map "H" 'describe-mode) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
230 (define-key map "?" 'describe-mode) ; Maybe do as less instead? See above. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
231 (define-key map "h" 'describe-mode) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
232 map)) |
44 | 233 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
234 (or (assq 'view-mode minor-mode-map-alist) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
235 (setq minor-mode-map-alist |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
236 (cons (cons 'view-mode view-mode-map) minor-mode-map-alist))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
237 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
238 ;;; Commands that enter or exit view mode. |
44 | 239 |
79880
2be6cb49457d
Add comment before kill-buffer-if-not-modified.
Eli Zaretskii <eliz@gnu.org>
parents:
79831
diff
changeset
|
240 ;; This is used when view mode is exited, to make sure we don't try to |
2be6cb49457d
Add comment before kill-buffer-if-not-modified.
Eli Zaretskii <eliz@gnu.org>
parents:
79831
diff
changeset
|
241 ;; kill a buffer modified by the user. A buffer in view mode can |
2be6cb49457d
Add comment before kill-buffer-if-not-modified.
Eli Zaretskii <eliz@gnu.org>
parents:
79831
diff
changeset
|
242 ;; become modified if the user types C-x C-q, edits the buffer, then |
2be6cb49457d
Add comment before kill-buffer-if-not-modified.
Eli Zaretskii <eliz@gnu.org>
parents:
79831
diff
changeset
|
243 ;; types C-x C-q again to return to view mode. |
91465
3e380c491c96
(kill-buffer-if-not-modified): Add an autoload cookie.
Eli Zaretskii <eliz@gnu.org>
parents:
88038
diff
changeset
|
244 ;;;###autoload |
79831
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
245 (defun kill-buffer-if-not-modified (buf) |
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
246 "Like `kill-buffer', but does nothing if the buffer is modified." |
87957
eeb928a40b37
Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents:
87903
diff
changeset
|
247 (let ((buf (get-buffer buf))) |
79831
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
248 (and buf (not (buffer-modified-p buf)) |
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
249 (kill-buffer buf)))) |
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
250 |
256 | 251 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
252 (defun view-file (file) |
44 | 253 "View FILE in View mode, returning to previous buffer when done. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
254 Emacs commands editing the buffer contents are not available; instead, a |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
255 special set of commands (mostly letters and punctuation) are defined for |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
256 moving around in the buffer. |
44 | 257 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
258 For a list of all View commands, type H or h while viewing. |
354 | 259 |
6330
3badf836d51d
(view-mode): Run view-mode-hook as well as view-hook.
Richard M. Stallman <rms@gnu.org>
parents:
5123
diff
changeset
|
260 This command runs the normal hook `view-mode-hook'." |
354 | 261 (interactive "fView file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
262 (unless (file-exists-p file) (error "%s does not exist" file)) |
51848
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
263 (let ((had-a-buf (get-file-buffer file)) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
264 (buffer (find-file-noselect file))) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
265 (if (eq (with-current-buffer buffer |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
266 (get major-mode 'mode-class)) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
267 'special) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
268 (progn |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
269 (switch-to-buffer buffer) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
270 (message "Not using View mode because the major mode is special")) |
79831
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
271 (view-buffer buffer (and (not had-a-buf) 'kill-buffer-if-not-modified))))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
272 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
273 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
274 (defun view-file-other-window (file) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
275 "View FILE in View mode in another window. |
79829
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
276 When done, return that window to its previous buffer, and kill the |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
277 buffer visiting FILE if unmodified and if it wasn't visited before. |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
278 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
279 Emacs commands editing the buffer contents are not available; instead, |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
280 a special set of commands (mostly letters and punctuation) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
281 are defined for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
282 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
283 For a list of all View commands, type H or h while viewing. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
284 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
285 This command runs the normal hook `view-mode-hook'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
286 (interactive "fIn other window view file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
287 (unless (file-exists-p file) (error "%s does not exist" file)) |
79829
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
288 (let ((had-a-buf (get-file-buffer file)) |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
289 (buf-to-view (find-file-noselect file))) |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
290 (view-buffer-other-window buf-to-view nil |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
291 (and (not had-a-buf) |
79831
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
292 'kill-buffer-if-not-modified)))) |
354 | 293 |
294 ;;;###autoload | |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
295 (defun view-file-other-frame (file) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
296 "View FILE in View mode in another frame. |
79829
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
297 When done, kill the buffer visiting FILE if unmodified and if it wasn't |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
298 visited before; also, maybe delete other frame and/or return to previous |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
299 buffer. |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
300 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
301 Emacs commands editing the buffer contents are not available; instead, |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
302 a special set of commands (mostly letters and punctuation) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
303 are defined for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
304 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
305 For a list of all View commands, type H or h while viewing. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
306 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
307 This command runs the normal hook `view-mode-hook'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
308 (interactive "fIn other frame view file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
309 (unless (file-exists-p file) (error "%s does not exist" file)) |
79829
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
310 (let ((had-a-buf (get-file-buffer file)) |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
311 (buf-to-view (find-file-noselect file))) |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
312 (view-buffer-other-frame buf-to-view nil |
9cd51e20e318
(view-file-other-window, view-file-other-frame): Don't kill the buffer if it
Eli Zaretskii <eliz@gnu.org>
parents:
79721
diff
changeset
|
313 (and (not had-a-buf) |
79831
8b17197a6be3
(view-file-other-window, view-file-other-frame): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
79829
diff
changeset
|
314 'kill-buffer-if-not-modified)))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
315 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
316 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
317 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
318 (defun view-buffer (buffer &optional exit-action) |
44 | 319 "View BUFFER in View mode, returning to previous buffer when done. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
320 Emacs commands editing the buffer contents are not available; instead, a |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
321 special set of commands (mostly letters and punctuation) are defined for |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
322 moving around in the buffer. |
44 | 323 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
324 For a list of all View commands, type H or h while viewing. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
325 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
326 This command runs the normal hook `view-mode-hook'. |
44 | 327 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
328 Optional argument EXIT-ACTION is either nil or a function with buffer as |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
329 argument. This function is called when finished viewing buffer. Use |
88038
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
330 this argument instead of explicitly setting `view-exit-action'. |
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
331 |
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
332 Do not set EXIT-ACTION to `kill-buffer' when BUFFER visits a |
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
333 file: Users may suspend viewing in order to modify the buffer. |
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
334 Exiting View mode will then discard the user's edits. Setting |
e75f63aebb2b
(view-buffer): Explain in doc-string why exit-action
Martin Rudalics <rudalics@gmx.at>
parents:
87957
diff
changeset
|
335 EXIT-ACTION to `kill-buffer-if-not-modified' avoids this." |
44 | 336 (interactive "bView buffer: ") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
337 (let ((undo-window (list (window-buffer) (window-start) (window-point)))) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
338 (switch-to-buffer buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
339 (view-mode-enter (cons (selected-window) (cons nil undo-window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
340 exit-action))) |
44 | 341 |
256 | 342 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
343 (defun view-buffer-other-window (buffer &optional not-return exit-action) |
12856 | 344 "View BUFFER in View mode in another window. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
345 Return to previous buffer when done, unless optional NOT-RETURN is |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
346 non-nil. Emacs commands editing the buffer contents are not available; |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
347 instead, a special set of commands (mostly letters and punctuation) are |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
348 defined for moving around in the buffer. |
354 | 349 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
350 For a list of all View commands, type H or h while viewing. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
351 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
352 This command runs the normal hook `view-mode-hook'. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
353 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
354 Optional argument EXIT-ACTION is either nil or a function with buffer as |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
355 argument. This function is called when finished viewing buffer. Use |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
356 this argument instead of explicitly setting `view-exit-action'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
357 (interactive "bIn other window view buffer:\nP") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
358 (let* ((win ; This window will be selected by |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
359 (get-lru-window)) ; switch-to-buffer-other-window below. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
360 (return-to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
361 (and (not not-return) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
362 (cons (selected-window) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
363 (if (eq win (selected-window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
364 t ; Has to make new window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
365 (list |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
366 (window-buffer win) ; Other windows old buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
367 (window-start win) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
368 (window-point win))))))) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
369 (switch-to-buffer-other-window buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
370 (view-mode-enter (and return-to (cons (selected-window) return-to)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
371 exit-action))) |
354 | 372 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
373 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
374 (defun view-buffer-other-frame (buffer &optional not-return exit-action) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
375 "View BUFFER in View mode in another frame. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
376 Return to previous buffer when done, unless optional NOT-RETURN is |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
377 non-nil. Emacs commands editing the buffer contents are not available; |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
378 instead, a special set of commands (mostly letters and punctuation) are |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
379 defined for moving around in the buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
380 Space scrolls forward, Delete scrolls backward. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
381 For a list of all View commands, type H or h while viewing. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
382 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
383 This command runs the normal hook `view-mode-hook'. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
384 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
385 Optional argument EXIT-ACTION is either nil or a function with buffer as |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
386 argument. This function is called when finished viewing buffer. Use |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
387 this argument instead of explicitly setting `view-exit-action'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
388 (interactive "bView buffer in other frame: \nP") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
389 (let ((return-to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
390 (and (not not-return) (cons (selected-window) t)))) ; Old window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
391 (switch-to-buffer-other-frame buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
392 (view-mode-enter (and return-to (cons (selected-window) return-to)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
393 exit-action))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
394 |
354 | 395 ;;;###autoload |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
396 (defun view-mode (&optional arg) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
397 ;; In the following documentation string we have to use some explicit key |
18250 | 398 ;; bindings instead of using the \\[] construction. The reason for this |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
399 ;; is that most commands have more than one key binding. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
400 "Toggle View mode, a minor mode for viewing text but not editing it. |
78492
7c8949dbfa0d
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78236
diff
changeset
|
401 With prefix argument ARG, turn View mode on if ARG is positive, otherwise |
7c8949dbfa0d
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78236
diff
changeset
|
402 turn it off. |
15556 | 403 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
404 Emacs commands that do not change the buffer contents are available as usual. |
18250 | 405 Kill commands insert text in kill buffers but do not delete. Other commands |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
406 \(among them most letters and punctuation) beep and tell that the buffer is |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
407 read-only. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
408 \\<view-mode-map> |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
409 The following additional commands are provided. Most commands take prefix |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
410 arguments. Page commands default to \"page size\" lines which is almost a whole |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
411 window full, or number of lines set by \\[View-scroll-page-forward-set-page-size] or \\[View-scroll-page-backward-set-page-size]. Half page commands default to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
412 and set \"half page size\" lines which initially is half a window full. Search |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
413 commands default to a repeat count of one. |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
414 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
415 H, h, ? This message. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
416 Digits provide prefix arguments. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
417 \\[negative-argument] negative prefix argument. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
418 \\[beginning-of-buffer] move to the beginning of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
419 > move to the end of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
420 \\[View-scroll-to-buffer-end] scroll so that buffer end is at last line of window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
421 SPC scroll forward \"page size\" lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
422 With prefix scroll forward prefix lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
423 DEL scroll backward \"page size\" lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
424 With prefix scroll backward prefix lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
425 \\[View-scroll-page-forward-set-page-size] like \\[View-scroll-page-forward] but with prefix sets \"page size\" to prefix. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
426 \\[View-scroll-page-backward-set-page-size] like \\[View-scroll-page-backward] but with prefix sets \"page size\" to prefix. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
427 \\[View-scroll-half-page-forward] scroll forward \"half page size\" lines. With prefix, sets |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
428 \"half page size\" to prefix lines and scrolls forward that much. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
429 \\[View-scroll-half-page-backward] scroll backward \"half page size\" lines. With prefix, sets |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
430 \"half page size\" to prefix lines and scrolls backward that much. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
431 RET, LFD scroll forward one line. With prefix scroll forward prefix line(s). |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
432 y scroll backward one line. With prefix scroll backward prefix line(s). |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
433 \\[View-revert-buffer-scroll-page-forward] revert-buffer if necessary and scroll forward. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
434 Use this to view a changing file. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
435 \\[what-line] prints the current line number. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
436 \\[View-goto-percent] goes prefix argument (default 100) percent into buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
437 \\[View-goto-line] goes to line given by prefix argument (default first line). |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
438 . set the mark. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
439 x exchanges point and mark. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
440 \\[View-back-to-mark] return to mark and pops mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
441 Mark ring is pushed at start of every successful search and when |
18250 | 442 jump to line occurs. The mark is set on jump to buffer start or end. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
443 \\[point-to-register] save current position in character register. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
444 ' go to position saved in character register. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
445 s do forward incremental search. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
446 r do reverse incremental search. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
447 \\[View-search-regexp-forward] searches forward for regular expression, starting after current page. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
448 ! and @ have a special meaning at the beginning of the regexp. |
18250 | 449 ! means search for a line with no match for regexp. @ means start |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
450 search at beginning (end for backward search) of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
451 \\ searches backward for regular expression, starting before current page. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
452 \\[View-search-last-regexp-forward] searches forward for last regular expression. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
453 p searches backward for last regular expression. |
49439 | 454 \\[View-quit] quit View mode, restoring this window and buffer to previous state. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
455 \\[View-quit] is the normal way to leave view mode. |
18250 | 456 \\[View-exit] exit View mode but stay in current buffer. Use this if you started |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
457 viewing a buffer (file) and find out you want to edit it. |
49439 | 458 This command restores the previous read-only status of the buffer. |
459 \\[View-exit-and-edit] exit View mode, and make the current buffer editable | |
460 even if it was not editable before entry to View mode. | |
461 \\[View-quit-all] quit View mode, restoring all windows to previous state. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
462 \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
463 \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
464 |
76780
7a9103325d0f
(view-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
75347
diff
changeset
|
465 The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was |
67287 | 466 entered by view-file, view-file-other-window, view-file-other-frame, or |
467 \\[dired-view-file] \(\\[view-file], \\[view-file-other-window], | |
468 \\[view-file-other-frame], or the Dired mode v command), | |
469 then \\[View-quit] will try to kill the current buffer. | |
470 If view-mode was entered from another buffer, by \\[view-buffer], | |
471 \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file], | |
472 \\[view-file-other-window], or \\[view-file-other-frame], | |
76780
7a9103325d0f
(view-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
75347
diff
changeset
|
473 then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to that buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
474 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
475 Entry to view-mode runs the normal hook `view-mode-hook'." |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
476 (interactive "P") |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
477 (unless (and arg ; Do nothing if already OK. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
478 (if (> (prefix-numeric-value arg) 0) view-mode (not view-mode))) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
479 (if view-mode (view-mode-disable) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
480 (view-mode-enable)))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
481 |
18250 | 482 (defun view-mode-enable () |
483 "Turn on View mode." | |
18268
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
484 ;; Always leave view mode before changing major mode. |
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
485 ;; This is to guarantee that the buffer-read-only variable is restored. |
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
486 (add-hook 'change-major-mode-hook 'view-mode-disable nil t) |
18250 | 487 (setq view-mode t |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
488 view-page-size nil |
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
489 view-half-page-size nil |
18250 | 490 view-old-buffer-read-only buffer-read-only |
104076
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
491 buffer-read-only t) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
492 (if (boundp 'Helper-return-blurb) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
493 (setq view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
494 Helper-return-blurb) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
495 Helper-return-blurb |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
496 (format "continue viewing %s" |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
497 (if (buffer-file-name) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
498 (file-name-nondirectory (buffer-file-name)) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
499 (buffer-name))))) |
25218
9c0733c601c9
(view-mode-enable, view-mode-disable):
Karl Heuer <kwzh@gnu.org>
parents:
23987
diff
changeset
|
500 (force-mode-line-update) |
18250 | 501 (run-hooks 'view-mode-hook)) |
502 | |
503 (defun view-mode-disable () | |
504 "Turn off View mode." | |
18268
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
505 (remove-hook 'change-major-mode-hook 'view-mode-disable t) |
18250 | 506 (and view-overlay (delete-overlay view-overlay)) |
25218
9c0733c601c9
(view-mode-enable, view-mode-disable):
Karl Heuer <kwzh@gnu.org>
parents:
23987
diff
changeset
|
507 (force-mode-line-update) |
28198
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
508 ;; Calling toggle-read-only while View mode is enabled |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
509 ;; sets view-read-only to t as a buffer-local variable |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
510 ;; after exiting View mode. That arranges that the next toggle-read-only |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
511 ;; will reenable View mode. |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
512 ;; Cancelling View mode in any other way should cancel that, too, |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
513 ;; so that View mode stays off if toggle-read-only is called. |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
514 (if (local-variable-p 'view-read-only) |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
515 (kill-local-variable 'view-read-only)) |
104076
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
516 (setq view-mode nil) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
517 (if (boundp 'Helper-return-blurb) |
5a8c46298f5a
* view.el (view-mode-enable): Don't define Helper-return-blurb if
Chong Yidong <cyd@stupidchicken.com>
parents:
103297
diff
changeset
|
518 (setq Helper-return-blurb view-old-Helper-return-blurb)) |
25219
1b99ab7ab219
(view-mode-disable): If buffer-read-only is nil,
Karl Heuer <kwzh@gnu.org>
parents:
25218
diff
changeset
|
519 (if buffer-read-only |
1b99ab7ab219
(view-mode-disable): If buffer-read-only is nil,
Karl Heuer <kwzh@gnu.org>
parents:
25218
diff
changeset
|
520 (setq buffer-read-only view-old-buffer-read-only))) |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
521 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
522 ;;;###autoload |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
523 (defun view-return-to-alist-update (buffer &optional item) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
524 "Update `view-return-to-alist' of buffer BUFFER. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
525 Remove from `view-return-to-alist' all entries referencing dead |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
526 windows. Optional argument ITEM non-nil means add ITEM to |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
527 `view-return-to-alist' after purging. For a decsription of items |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
528 that can be added see the RETURN-TO-ALIST argument of the |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
529 function `view-mode-exit'. If `view-return-to-alist' contains an |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
530 entry for the selected window, purge that entry from |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
531 `view-return-to-alist' before adding ITEM." |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
532 (with-current-buffer buffer |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
533 (when view-return-to-alist |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
534 (let* ((list view-return-to-alist) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
535 entry entry-window last) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
536 (while list |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
537 (setq entry (car list)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
538 (setq entry-window (car entry)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
539 (if (and (windowp entry-window) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
540 (or (and item (eq entry-window (selected-window))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
541 (not (window-live-p entry-window)))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
542 ;; Remove that entry. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
543 (if last |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
544 (setcdr last (cdr list)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
545 (setq view-return-to-alist |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
546 (cdr view-return-to-alist))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
547 ;; Leave entry alone. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
548 (setq last entry)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
549 (setq list (cdr list))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
550 ;; Add ITEM. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
551 (when item |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
552 (setq view-return-to-alist |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
553 (cons item view-return-to-alist))))) |
18250 | 554 |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
555 ;;;###autoload |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
556 (defun view-mode-enter (&optional return-to exit-action) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
557 "Enter View mode and set up exit from view mode depending on optional arguments. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
558 RETURN-TO non-nil means add RETURN-TO as an element to the buffer |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
559 local alist `view-return-to-alist'. Save EXIT-ACTION in buffer |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
560 local variable `view-exit-action'. It should be either nil or a |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
561 function that takes a buffer as argument. This function will be |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
562 called by `view-mode-exit'. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
563 |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
564 RETURN-TO is either nil, meaning do nothing when exiting view |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
565 mode, or must have the format (WINDOW OLD-WINDOW . OLD-BUF-INFO). |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
566 WINDOW is the window used for viewing. OLD-WINDOW is nil or the |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
567 window to select after viewing. OLD-BUF-INFO tells what to do |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
568 with WINDOW when exiting. It is one of: |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
569 1) nil Do nothing. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
570 2) t Delete WINDOW or, if it is the only window and |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
571 `view-remove-frame-by-deleting' is non-nil, its |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
572 frame. |
18250 | 573 3) (OLD-BUFF START POINT) Display buffer OLD-BUFF with displayed text |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
574 starting at START and point at POINT in WINDOW. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
575 4) quit-window Do `quit-window' in WINDOW. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
576 5) keep-frame Like case 2) but do not delete the frame. |
44 | 577 |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
578 For a list of all View commands, type H or h while viewing. |
4119
7b1b2a8d05f2
Doc fixes; some args renamed.
Richard M. Stallman <rms@gnu.org>
parents:
3450
diff
changeset
|
579 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
580 This function runs the normal hook `view-mode-hook'." |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
581 (when return-to |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
582 (let ((entry (assq (car return-to) view-return-to-alist))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
583 (if entry |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
584 (setcdr entry (cdr return-to)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
585 (setq view-return-to-alist (cons return-to view-return-to-alist))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
586 (when exit-action |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
587 (setq view-exit-action exit-action)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
588 |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
589 (unless view-mode |
18250 | 590 (view-mode-enable) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
591 (force-mode-line-update) |
67203
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
592 (unless view-inhibit-help-message |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
593 (message "%s" |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
594 (substitute-command-keys "\ |
78e1225a40a2
(view-inhibit-help-message): New defcustom.
Romain Francoise <romain@orebokech.com>
parents:
66488
diff
changeset
|
595 View mode: type \\[help-command] for help, \\[describe-mode] for commands, \\[View-quit] to quit."))))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
596 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
597 (defun view-mode-exit (&optional return-to-alist exit-action all-win) |
21772
95df64150c8a
(view-mode-exit): Don't alter view-return-to-alist.
Richard M. Stallman <rms@gnu.org>
parents:
21678
diff
changeset
|
598 "Exit View mode in various ways, depending on optional arguments. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
599 RETURN-TO-ALIST, EXIT-ACTION and ALL-WIN determine what to do |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
600 after exit. EXIT-ACTION is nil or a function that is called with |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
601 current buffer as argument. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
602 |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
603 RETURN-TO-ALIST is an alist that, for some of the windows |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
604 displaying the current buffer, maintains information on what to |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
605 do when exiting those windows. If ALL-WIN is non-nil or the |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
606 variable `view-exits-all-viewing-windows' is non-nil, |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
607 view-mode-exit attempts to restore all windows showing the |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
608 current buffer to their old state. Otherwise, only the selected |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
609 window is affected (provided it is on RETURN-TO-ALIST). |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
610 |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
611 Elements of RETURN-TO-ALIST must have the format |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
612 (WINDOW OLD-WINDOW . OLD-BUF-INFO) where |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
613 |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
614 WINDOW is a window displaying the current buffer and OLD-WINDOW |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
615 is either nil or a window to select after viewing. OLD-BUF-INFO |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
616 provides information on what to do with WINDOW and may be one of: |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
617 1) nil Do nothing. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
618 2) t Delete WINDOW and, if it is the only window and |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
619 `view-remove-frame-by-deleting' is non-nil, its |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
620 frame. |
18250 | 621 3) (OLD-BUF START POINT) Display buffer OLD-BUF with displayed text |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
622 starting at START and point at POINT in WINDOW. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
623 4) quit-window Do `quit-window' in WINDOW. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
624 5) keep-frame Like case 2) but do not delete the frame. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
625 |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
626 If one of the WINDOW in RETURN-TO-ALIST is the selected window |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
627 and the corresponding OLD-WINDOW is a live window, then select |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
628 OLD-WINDOW." |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
629 (when view-mode ; Only do something if in view mode. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
630 (setq all-win |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
631 (and return-to-alist |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
632 (or all-win view-exits-all-viewing-windows))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
633 (let* ((buffer (current-buffer)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
634 window notlost |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
635 (sel-old (assq (selected-window) return-to-alist)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
636 (alist (cond |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
637 (all-win ; Try to restore all windows. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
638 (append return-to-alist nil)) ; Copy. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
639 (sel-old ; Only selected window. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
640 (list sel-old)))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
641 (old-window (if sel-old (car (cdr sel-old))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
642 (if all-win ; Follow chains of old-windows. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
643 (let ((c (length alist)) a) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
644 (while (and (> c 0) ; Safety if mutually refering windows. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
645 (or (not (window-live-p old-window)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
646 (eq buffer (window-buffer old-window))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
647 (setq a (assq old-window alist))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
648 (setq c (1- c)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
649 (setq old-window (car (cdr a)))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
650 (if (or (zerop c) (not (window-live-p old-window))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
651 (setq old-window (selected-window))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
652 (unless view-no-disable-on-exit |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
653 (view-mode-disable)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
654 (while alist ; Restore windows with info. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
655 (setq notlost nil) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
656 (when (and (window-live-p (setq window (car (car alist)))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
657 (eq buffer (window-buffer window))) |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
658 (let ((frame (window-frame window)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
659 (old-buf-info (cdr (cdr (car alist))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
660 (if all-win (select-window window)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
661 (cond |
105822
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
662 ((consp old-buf-info) ; Case 3. |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
663 (if (buffer-live-p (car old-buf-info)) |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
664 (progn |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
665 (set-window-buffer window (car old-buf-info)) ; old-buf |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
666 (set-window-start window (car (cdr old-buf-info))) |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
667 (set-window-point window (car (cdr (cdr old-buf-info))))) |
59656f4a5cda
(view-mode-exit): If OLD-BUF is dead bury the buffer
Andreas Schwab <schwab@linux-m68k.org>
parents:
105170
diff
changeset
|
668 (bury-buffer))) |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
669 ((eq old-buf-info 'quit-window) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
670 (quit-window)) ; Case 4. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
671 (old-buf-info ; Case 2 or 5. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
672 (cond |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
673 ((not (one-window-p t)) ; Not only window. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
674 (delete-window)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
675 ((eq old-buf-info 'keep-frame) ; Case 5. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
676 (bury-buffer)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
677 ((not (eq frame (next-frame))) ; Case 2 and only window. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
678 ;; Not the only frame, so can safely be removed. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
679 (if view-remove-frame-by-deleting |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
680 (delete-frame frame) |
105170 | 681 (setq notlost t) ; Keep the window. See below. |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
682 (iconify-frame frame)))))))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
683 ;; If a frame is removed by iconifying it, the window is not |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
684 ;; really lost. In this case we keep the entry in |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
685 ;; `view-return-to-alist' so that if the user deiconifies the |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
686 ;; frame and then hits q, the frame is iconified again. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
687 (unless notlost |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
688 (with-current-buffer buffer |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
689 (setq view-return-to-alist |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
690 (delete (car alist) view-return-to-alist)))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
691 (setq alist (cdr alist))) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
692 (when (window-live-p old-window) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
693 ;; old-window is still alive => select it. |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
694 (select-window old-window)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
695 (when exit-action |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
696 ;; Don't do that: If the user wants to quit the *Help* buffer a |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
697 ;; second time it won't have any effect. |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
698 ;;(setq view-exit-action nil) |
86004
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
699 (funcall exit-action buffer)) |
7c2160a058cb
(view-remove-frame-by-deleting): Change default value to t.
Martin Rudalics <rudalics@gmx.at>
parents:
78893
diff
changeset
|
700 (force-mode-line-update)))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
701 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
702 (defun View-exit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
703 "Exit View mode but stay in current buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
704 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
705 (view-mode-exit)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
706 |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
707 ;;;###autoload |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
708 (defun View-exit-and-edit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
709 "Exit View mode and make the current buffer editable." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
710 (interactive) |
22337
ce89ab9c000e
(View-exit-and-edit): Bind view-no-disable-on-exit to nil.
Karl Heuer <kwzh@gnu.org>
parents:
21772
diff
changeset
|
711 (let ((view-old-buffer-read-only nil) |
ce89ab9c000e
(View-exit-and-edit): Bind view-no-disable-on-exit to nil.
Karl Heuer <kwzh@gnu.org>
parents:
21772
diff
changeset
|
712 (view-no-disable-on-exit nil)) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
713 (view-mode-exit))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
714 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
715 (defun View-leave () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
716 "Quit View mode and maybe switch buffers, but don't kill this buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
717 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
718 (view-mode-exit view-return-to-alist)) |
44 | 719 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
720 (defun View-quit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
721 "Quit View mode, trying to restore window and buffer to previous state. |
18250 | 722 Maybe kill this buffer. Try to restore selected window to previous state |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
723 and go to previous buffer or window." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
724 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
725 (view-mode-exit view-return-to-alist view-exit-action)) |
44 | 726 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
727 (defun View-quit-all () |
18250 | 728 "Quit View mode, trying to restore windows and buffers to previous state. |
729 Maybe kill current buffer. Try to restore all windows viewing buffer to | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
730 previous state and go to previous buffer or window." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
731 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
732 (view-mode-exit view-return-to-alist view-exit-action t)) |
44 | 733 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
734 (defun View-kill-and-leave () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
735 "Quit View mode, kill current buffer and return to previous buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
736 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
737 (view-mode-exit view-return-to-alist (or view-exit-action 'kill-buffer) t)) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
738 |
44 | 739 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
740 ;;; Some help routines. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
741 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
742 (defun view-window-size () |
103297
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
743 ;; Return the height of the current window, excluding the mode line. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
744 ;; Using `window-line-height' accounts for variable-height fonts. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
745 (let ((h (window-line-height -1))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
746 (if h |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
747 (1+ (nth 1 h)) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
748 ;; This should not happen, but if `window-line-height' returns |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
749 ;; nil, fall back on `window-height'. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
750 (1- (window-height))))) |
6330
3badf836d51d
(view-mode): Run view-mode-hook as well as view-hook.
Richard M. Stallman <rms@gnu.org>
parents:
5123
diff
changeset
|
751 |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
752 ;; (defun view-last-command (&optional who what) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
753 ;; (setq view-last-command-entry this-command) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
754 ;; (setq view-last-command who) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
755 ;; (setq view-last-command-argument what)) |
44 | 756 |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
757 ;; (defun View-repeat-last-command () |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
758 ;; "Repeat last command issued in View mode." |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
759 ;; (interactive) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
760 ;; (if (and view-last-command |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
761 ;; (eq view-last-command-entry last-command)) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
762 ;; (funcall view-last-command view-last-command-argument)) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
763 ;; (setq this-command view-last-command-entry)) |
44 | 764 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
765 (defun view-recenter () |
103295
578359a0fca6
* view.el (view-recenter): Allow recenter to compute window height
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
766 ;; Recenter point in window and redisplay normally. |
578359a0fca6
* view.el (view-recenter): Allow recenter to compute window height
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
767 (recenter '(1))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
768 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
769 (defun view-page-size-default (lines) |
103297
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
770 ;; If LINES is nil, 0, or larger than `view-window-size', return nil. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
771 ;; Otherwise, return LINES. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
772 (and lines |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
773 (not (zerop (setq lines (prefix-numeric-value lines)))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
774 (<= (abs lines) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
775 (abs (- (view-window-size) next-screen-context-lines))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
776 (abs lines))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
777 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
778 (defun view-set-half-page-size-default (lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
779 ;; Get and maybe set half page size. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
780 (if (not lines) (or view-half-page-size |
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
781 (/ (view-window-size) 2)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
782 (setq view-half-page-size |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
783 (if (zerop (setq lines (prefix-numeric-value lines))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
784 (/ (view-window-size) 2) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
785 (view-page-size-default lines))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
786 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
787 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
788 ;;; Commands for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
789 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
790 (defun View-goto-percent (&optional percent) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
791 "Move to end (or prefix PERCENT) of buffer in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
792 Display is centered at point. |
18250 | 793 Also set the mark at the position where point was." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
794 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
795 (push-mark) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
796 (goto-char |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
797 (if percent |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
798 (+ (point-min) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
799 (floor (* (- (point-max) (point-min)) 0.01 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
800 (max 0 (min 100 (prefix-numeric-value percent)))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
801 (point-max))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
802 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
803 |
96229
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
804 ;; (defun View-goto-line-last (&optional line) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
805 ;; "Move to last (or prefix LINE) line in View mode. |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
806 ;; Display is centered at LINE. |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
807 ;; Sets mark at starting position and pushes mark ring." |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
808 ;; (interactive "P") |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
809 ;; (push-mark) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
810 ;; (if line (goto-line (prefix-numeric-value line)) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
811 ;; (goto-char (point-max)) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
812 ;; (beginning-of-line)) |
f0fef621a168
Fix up comments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
813 ;; (view-recenter)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49439
diff
changeset
|
814 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
815 (defun View-goto-line (&optional line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
816 "Move to first (or prefix LINE) line in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
817 Display is centered at LINE. |
18250 | 818 Also set the mark at the position where point was." |
44 | 819 (interactive "p") |
820 (push-mark) | |
104543
da8b3e61b182
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104076
diff
changeset
|
821 (goto-char (point-min)) |
da8b3e61b182
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104076
diff
changeset
|
822 (forward-line (1- line)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
823 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
824 |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
825 (defun View-back-to-mark (&optional ignore) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
826 "Return to last mark set in View mode, else beginning of file. |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
827 Display that line at the center of the window. |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
828 This command pops the mark ring, so that successive |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
829 invocations return to earlier marks." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
830 (interactive) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
831 (goto-char (or (mark t) (point-min))) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
832 (pop-mark) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
833 (view-recenter)) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
834 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
835 (defun view-scroll-lines (lines backward default maxdefault) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
836 ;; This function does the job for all the scrolling commands. |
103297
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
837 ;; Scroll forward LINES lines. If BACKWARD is non-nil, scroll backwards. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
838 ;; If LINES is negative scroll in the other direction. |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
839 ;; If LINES is 0 or nil, scroll DEFAULT lines (if DEFAULT is nil, scroll |
105170 | 840 ;; by one page). If MAXDEFAULT is non-nil, scroll no more than a window. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
841 (if (or (null lines) (zerop (setq lines (prefix-numeric-value lines)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
842 (setq lines default)) |
103297
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
843 (when (and lines (< lines 0)) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
844 (setq backward (not backward) lines (- lines))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
845 (when (and maxdefault lines (> lines (view-window-size))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
846 (setq lines nil)) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
847 (cond (backward (scroll-down lines)) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
848 ((view-really-at-end) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
849 (if view-scroll-auto-exit |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
850 (View-quit) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
851 (ding) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
852 (view-end-message))) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
853 (t (scroll-up lines) |
1120e729d920
* view.el (view-window-size): Use window-line-height to find window height.
Chong Yidong <cyd@stupidchicken.com>
parents:
103295
diff
changeset
|
854 (if (view-really-at-end) (view-end-message))))) |
44 | 855 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
856 (defun view-really-at-end () |
18250 | 857 ;; Return true if buffer end visible. Maybe revert buffer and test. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
858 (and (pos-visible-in-window-p (point-max)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
859 (let ((buf (current-buffer)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
860 (bufname (buffer-name)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
861 (file (buffer-file-name))) |
21678
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
862 (or (not view-try-extend-at-buffer-end) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
863 (null file) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
864 (verify-visited-file-modtime buf) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
865 (not (file-exists-p file)) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
866 (when (buffer-modified-p buf) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
867 (setq file (file-name-nondirectory file)) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
868 (not (yes-or-no-p |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
869 (format |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
870 "File %s changed on disk. Discard your edits%s? " |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
871 file |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
872 (if (string= bufname file) "" |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
873 (concat " in " bufname)))))) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
874 (progn |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
875 (revert-buffer t t t) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
876 (pos-visible-in-window-p (point-max))))))) |
44 | 877 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
878 (defun view-end-message () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
879 ;; Tell that we are at end of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
880 (goto-char (point-max)) |
19841
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
881 (if view-return-to-alist |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
882 (message "End of buffer. Type %s to quit viewing." |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
883 (substitute-command-keys |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
884 (if view-scroll-auto-exit "\\[View-scroll-page-forward]" |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
885 "\\[View-quit]"))) |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
886 (message "End of buffer"))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
887 |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
888 (defun View-scroll-to-buffer-end () |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
889 "Scroll backward or forward so that buffer end is at last line of window." |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
890 (interactive) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
891 (let ((p (if (pos-visible-in-window-p (point-max)) (point)))) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
892 (goto-char (point-max)) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
893 (recenter -1) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
894 (and p (goto-char p)))) |
44 | 895 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
896 (defun View-scroll-page-forward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
897 "Scroll \"page size\" or prefix LINES lines forward in View mode. |
18250 | 898 Exit if end of text is visible and `view-scroll-auto-exit' is non-nil. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
899 \"page size\" is whole window full, or number of lines set by |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
900 \\[View-scroll-page-forward-set-page-size] or |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
901 \\[View-scroll-page-backward-set-page-size]. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
902 If LINES is more than a window-full, only the last window-full is shown." |
44 | 903 (interactive "P") |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
904 (view-scroll-lines lines nil (view-page-size-default view-page-size) nil)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
905 |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
906 (defun View-scroll-page-backward (&optional lines) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
907 "Scroll \"page size\" or prefix LINES lines backward in View mode. |
18250 | 908 See also `View-scroll-page-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
909 (interactive "P") |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
910 (view-scroll-lines lines t (view-page-size-default view-page-size) nil)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49439
diff
changeset
|
911 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
912 (defun View-scroll-page-forward-set-page-size (&optional lines) |
18250 | 913 "Scroll forward LINES lines in View mode, setting the \"page size\". |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
914 This is the number of lines which \\[View-scroll-page-forward] and |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
915 \\[View-scroll-page-backward] scroll by default. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
916 If LINES is omitted or = 0, sets \"page size\" to window height and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
917 scrolls forward that much, otherwise scrolls forward LINES lines and sets |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
918 \"page size\" to the minimum of window height and the absolute value of LINES. |
18250 | 919 See also `View-scroll-page-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
920 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
921 (view-scroll-lines lines nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
922 (setq view-page-size (view-page-size-default lines)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
923 nil)) |
13168 | 924 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
925 (defun View-scroll-page-backward-set-page-size (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
926 "Scroll backward prefix LINES lines in View mode, setting the \"page size\". |
18250 | 927 See also `View-scroll-page-forward-set-page-size'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
928 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
929 (view-scroll-lines lines t |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
930 (setq view-page-size (view-page-size-default lines)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
931 nil)) |
13168 | 932 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
933 (defun View-scroll-line-forward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
934 "Scroll forward one line (or prefix LINES lines) in View mode. |
105170 | 935 See also `View-scroll-page-forward', but note that scrolling is limited |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
936 to minimum of LINES and one window-full." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
937 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
938 (view-scroll-lines lines nil 1 t)) |
44 | 939 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
940 (defun View-scroll-line-backward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
941 "Scroll backward one line (or prefix LINES lines) in View mode. |
18250 | 942 See also `View-scroll-line-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
943 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
944 (view-scroll-lines lines t 1 t)) |
13168 | 945 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
946 (defun View-scroll-half-page-forward (&optional lines) |
18250 | 947 "Scroll forward a \"half page\" (or prefix LINES) lines in View mode. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
948 If LINES is not omitted, the \"half page size\" is set to the minimum of |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
949 window height and the absolute value of LINES. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
950 LINES=0 resets \"half page size\" to half window height." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
951 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
952 (view-scroll-lines lines nil (view-set-half-page-size-default lines) t)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
953 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
954 (defun View-scroll-half-page-backward (&optional lines) |
18250 | 955 "Scroll backward a \"half page\" (or prefix LINES) lines in View mode. |
956 See also `View-scroll-half-page-forward'." | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
957 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
958 (view-scroll-lines lines t (view-set-half-page-size-default lines) t)) |
44 | 959 |
18250 | 960 (defun View-revert-buffer-scroll-page-forward (&optional lines) |
961 "Scroll forward, reverting buffer if needed, in View mode. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
962 If buffer has not been changed and the corresponding file is newer, first |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
963 revert the buffer, then scroll. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
964 This command is useful if you are viewing a changing file. |
18250 | 965 |
966 The prefix argument LINES says how many lines to scroll. | |
967 If you don't specify a prefix argument, it uses the number of lines set by | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
968 \\[View-scroll-page-forward-set-page-size] or |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
969 \\[View-scroll-page-backward-set-page-size]. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
970 If LINES is more than a window-full, only the last window-full is shown." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
971 (interactive "P") |
23987
a3199b854cf2
(View-revert-buffer-scroll-page-forward): Bind
Andreas Schwab <schwab@suse.de>
parents:
22337
diff
changeset
|
972 (let ((view-scroll-auto-exit nil) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
973 (view-try-extend-at-buffer-end t)) |
66488
448f6238d8ed
(View-revert-buffer-scroll-page-forward): Use
Andreas Schwab <schwab@suse.de>
parents:
64762
diff
changeset
|
974 (view-scroll-lines lines nil (view-page-size-default view-page-size) nil))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
975 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
976 (defun View-search-regexp-forward (n regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
977 "Search forward for first (or prefix Nth) occurrence of REGEXP in View mode. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
978 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
979 Displays line found at center of window. Sets mark at starting position and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
980 pushes mark ring. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
981 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
982 Characters @ and ! are special at the beginning of REGEXP. They modify |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
983 the search rather than become part of the pattern searched for. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
984 @ means search all the buffer i.e. start search at the beginning of buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
985 ! means search for a line that contains no match for the pattern. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
986 If REGEXP is empty or only consist of these control characters, then |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
987 an earlier remembered REGEXP is used, otherwise REGEXP is remembered |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
988 for use by later search commands. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
989 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
990 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
991 for highlighting the match that is found." |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
992 (interactive "p\nsSearch forward (regexp): ") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
993 (view-search n regexp)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
994 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
995 (defun View-search-regexp-backward (n regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
996 "Search backward for first (or prefix Nth) occurrence of REGEXP in View mode. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
997 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
998 Displays line found at center of window. Sets mark at starting position and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
999 pushes mark ring. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1000 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1001 Characters @ and ! are special at the beginning of REGEXP. They modify |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1002 the search rather than become part of the pattern searched for. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1003 @ means search all the buffer i.e. start search at the end of buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1004 ! means search for a line that contains no match for the pattern. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1005 If REGEXP is empty or only consist of these control characters, then |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1006 an earlier remembered REGEXP is used, otherwise REGEXP is remembered |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1007 for use by later search commands. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1008 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1009 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1010 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1011 (interactive "p\nsSearch backward (regexp): ") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1012 (view-search (- n) regexp)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1013 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1014 (defun View-search-last-regexp-forward (n) "\ |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1015 Search forward for first (or prefix Nth) instance of last regexp in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1016 Displays line found at center of window. Sets mark at starting position and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1017 pushes mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1018 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1019 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1020 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1021 (interactive "p") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1022 (view-search n nil)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1023 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1024 (defun View-search-last-regexp-backward (n) "\ |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1025 Search backward for first (or prefix Nth) instance of last regexp in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1026 Displays line found at center of window. Sets mark at starting position and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1027 pushes mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1028 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1029 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1030 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1031 (interactive "p") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1032 (view-search (- n) nil)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1033 |
44 | 1034 (defun view-search (times regexp) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
1035 ;; This function does the job for all the View-search- commands. |
105170 | 1036 ;; Search for the TIMESt match for REGEXP. If TIMES is negative |
1037 ;; search backwards. If REGEXP is nil use `view-last-regexp'. | |
99382
f1a064081e2e
Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
96229
diff
changeset
|
1038 ;; Characters "!" and "@" have a special meaning at the beginning of |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
1039 ;; REGEXP and are removed from REGEXP before the search "!" means |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
1040 ;; search for lines with no match for REGEXP. "@" means search in |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
1041 ;; the whole buffer, don't start searching from the present point. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1042 (let (where no end ln) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1043 (cond |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1044 ((and regexp (> (length regexp) 0) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1045 (or (not (memq (string-to-char regexp) '(?! ?@))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1046 (progn |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1047 (if (member (substring regexp 0 2) '("!@" "@!")) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1048 (setq end t no t ln 2) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1049 (setq no (not (setq end (eq ?@ (string-to-char regexp)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1050 ln 1)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1051 (> (length (setq regexp (substring regexp ln))) 0)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1052 (setq view-last-regexp (if no (list regexp) regexp))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1053 ((consp view-last-regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1054 (setq regexp (car view-last-regexp)) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
1055 (unless (setq no (not no)) (setq view-last-regexp regexp))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1056 (view-last-regexp (setq regexp view-last-regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1057 (if no (setq view-last-regexp (list regexp)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1058 (t (error "No previous View-mode search"))) |
44 | 1059 (save-excursion |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1060 (if end (goto-char (if (< times 0) (point-max) (point-min))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1061 (move-to-window-line (if (< times 0) 0 -1))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1062 (if (if no (view-search-no-match-lines times regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1063 (re-search-forward regexp nil t times)) |
44 | 1064 (setq where (point)))) |
1065 (if where | |
1066 (progn | |
1067 (push-mark) | |
1068 (goto-char where) | |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
1069 (if view-overlay |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
1070 (move-overlay view-overlay (match-beginning 0) (match-end 0)) |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
1071 (setq view-overlay |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
1072 (make-overlay (match-beginning 0) (match-end 0)))) |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
1073 (overlay-put view-overlay 'face view-highlight-face) |
44 | 1074 (beginning-of-line) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1075 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1076 (message "Can't find occurrence %d of %s%s" |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1077 times (if no "no " "") regexp) |
44 | 1078 (sit-for 4)))) |
1079 | |
78890
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1080 ;; This is the dumb approach, looking at each line. The original |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1081 ;; version of this function looked like it might have been trying to |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1082 ;; do something clever, but not succeeding: |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1083 ;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00073.html |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1084 (defun view-search-no-match-lines (times regexp) |
78890
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1085 "Search for the TIMESth occurrence of a line with no match for REGEXP. |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1086 If such a line is found, return non-nil and set the match-data to that line. |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1087 If TIMES is negative, search backwards." |
78893
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1088 (let ((step (if (>= times 0) 1 |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1089 (setq times (- times)) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1090 -1))) |
78890
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1091 ;; Note that we do not check the current line. |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1092 (while (and (> times 0) |
77e66005aa88
(view-search-no-match-lines): Add a doc string. Rewrite to simplify
Glenn Morris <rgm@gnu.org>
parents:
78492
diff
changeset
|
1093 (zerop (forward-line step))) |
78893
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1094 ;; (forward-line 1) returns 0 on moving within the last line. |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1095 (if (eobp) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1096 (setq times -1) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1097 (or (re-search-forward regexp (line-end-position) t) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1098 (setq times (1- times)))))) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1099 (and (zerop times) |
f8144f59d4b3
(view-search-no-match-lines): Fix previous change (went wrong if
Glenn Morris <rgm@gnu.org>
parents:
78890
diff
changeset
|
1100 (looking-at ".*"))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1101 |
584 | 1102 (provide 'view) |
1103 | |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91465
diff
changeset
|
1104 ;; arch-tag: 6d0ace36-1d12-4de3-8de3-1fa3231636d7 |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
1105 ;;; view.el ends here |